WebGPU ๊ธฐ๋ฐ WebLLM ๋์ ์ผ๋ก ์๋ฒ ๋น์ฉ 0์ ๋ฐ ์์ ํ ๊ฐ์ธ์ ๋ณด ๋ณดํธ ๊ตฌํ
Your Browser is the New Doctor: Building a Zero-Latency, Private AI Symptom Screener with WebLLM & WebGPU ๐ฉบ๐ป
AI ์์ฝ
Context
๋ฏผ๊ฐํ ์๋ฃ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ ๋ฐ์ํ๋ ํด๋ผ์ฐ๋ ์๋ฒ ์ ์ก์ ๋ฐ๋ฅธ ๊ฐ์ธ์ ๋ณด ์ ์ถ ์ํ๊ณผ ๋คํธ์ํฌ ์ง์ฐ ์๊ฐ์ด๋ผ๋ ๊ตฌ์กฐ์ ํ๊ณ ์กด์ฌ. ๊ธฐ์กด AI ์ฑ์ Thin Client-Heavy Backend ๊ตฌ์กฐ๋ก๋ ์ค์๊ฐ์ฑ๊ณผ ๋ฐ์ดํฐ ํ๋ผ์ด๋ฒ์๋ฅผ ๋์์ ์ถฉ์กฑํ๊ธฐ ์ด๋ ค์ด ์ํฉ ๋ถ์.
Technical Solution
- TVM.js ์ค์ผ์คํธ๋ ์ด์ ๋ ์ด์ด ํ์ฉ์ ํตํ ๋ก์ปฌ GPU ๊ธฐ๋ฐ ๋ชจ๋ธ ๊ฐ์ค์น ์ง์ ์คํ ๊ตฌ์กฐ ์ค๊ณ
- WebGPU API ์ง์ ์ฌ๋ถ ํ๋จ ๋ก์ง์ ํตํ ํ๋์จ์ด ๊ฐ์ ๊ฐ๋ฅ ์ฌ๋ถ ์ฌ์ ๊ฒ์ฆ ๋ฐ WASM/CPU Fallback ์ ๋ต ์๋ฆฝ
- Llama-3-8B-Instruct-q4f16_1-MLC ๋ฐ Phi-3-mini ๋ฑ Quantized ๋ชจ๋ธ ์ฑํ์ผ๋ก ์๋ฃ ์ถ๋ก ๋ฅ๋ ฅ๊ณผ ๋ค์ด๋ก๋ ํฌ๊ธฐ ๊ฐ์ Trade-off ์ต์ ํ
- Streaming Response ๊ตฌํ์ ํตํ ์ฌ์ฉ์ ์ฒด๊ฐ ์ง์ฐ ์๊ฐ(Perceived Latency) ์ต์ํ
- Client-side Inference ๊ธฐ๋ฐ์ Zero-server ์ํคํ ์ฒ ์ ํ์ผ๋ก ๋ฐ์ดํฐ ์ธ๋ถ ์ ์ถ ๊ฒฝ๋ก ์์ฒ ์ฐจ๋จ
์ค์ฒ ํฌ์ธํธ
1. navigator.gpu API๋ฅผ ํตํ WebGPU ์ง์ ์ฌ๋ถ ํ์ธ ๋ก์ง ๊ตฌํ
2. ๋ชจ๋ธ ์ฌ์ด์ฆ์ ์ถ๋ก ์ฑ๋ฅ์ ๊ท ํ์ ์ํ Quantization ์ ๋ต ์๋ฆฝ
3. ๋์ฉ๋ ๋ชจ๋ธ ๊ฐ์ค์น ๋ก๋ ์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ํ Progress Callback ์ธํฐํ์ด์ค ์ค๊ณ
4. ํ๋์จ์ด ๋ฏธ์ง์ ํ๊ฒฝ์ ์ํ WASM ๊ธฐ๋ฐ Fallback ๊ฒฝ๋ก ํ๋ณด