양자화와 실행 디바이스
양자화와 실행 디바이스
브라우저에서 모델을 돌릴 때는 메모리와 대역폭이 제한되어 있어요. 그래서 Transformers.js는 실행 디바이스(CPU/WASM·WebGPU)와 양자화 수준(dtype)을 손쉽게 바꿀 수 있게 해 줘요.
기본적으로 브라우저에서는 WASM 기반으로 CPU 추론을 해요. 더 빠른 GPU 추론을 원하면 device: 'webgpu'로 바꾸면 되고요. 예제를 볼게요.
// Run the model on WebGPU
const pipe = await pipeline('sentiment-analysis', 'Xenova/distilbert-base-uncased-finetuned-sst-2-english', {
device: 'webgpu',
});
양자화는 dtype 옵션으로 조절해요. 기본 데이터 타입은 "fp32"(WebGPU)와 "q8"(WASM)이고, 대역폭을 더 줄이고 싶으면 "q4"를 써요.
const pipe = await pipeline('sentiment-analysis', 'Xenova/distilbert-base-uncased-finetuned-sst-2-english', {
dtype: 'q4',
});
어떤 dtype을 쓸 수 있는지는 모델마다 달라요. q4 같은 강한 양자화는 파일 크기와 추론 속도를 크게 줄여 주지만, 정확도가 조금 떨어질 수 있어요. 그래서 실습에서는 기본값으로 시작하고, 속도가 문제가 될 때만 양자화를 낮추는 걸 권장해요.
이런 옵션 덕분에, 서버 없이도 브라우저에서 현실적인 성능으로 트랜스포머 모델을 돌릴 수 있어요.