Transformers.js는 HuggingFace가 만든 JavaScript 추론 라이브러리로, 별도 서버 없이 브라우저·Node.js·크롬 확장 프로그램에서 직접 AI 모델을 실행할 수 있다. Python HuggingFace Transformers 라이브러리와 동일한 API를 제공하므로, Python 생태계에 익숙한 개발자도 빠르게 적응할 수 있다.
주요 특징
- 완전한 온디바이스(on-device) 추론: API 키 불필요, 사용자 데이터가 서버로 전송되지 않음
- WebGPU 가속 지원: GPU 가속으로 추론 속도 향상
- ONNX 포맷: HuggingFace Hub의 ONNX 변환 모델을 그대로 사용
- 다양한 태스크 지원: 텍스트 생성, 임베딩, 이미지 분류, 음성 인식 등
- 캐시 공유: 크롬 확장 프로그램에서 확장 오리진 단위로 모델 캐시를 공유해 탭 간 중복 로드 방지
지원 환경
| 환경 | 지원 여부 | 비고 |
|---|---|---|
| 브라우저 | ✅ | WebGPU 가속 가능 |
| Node.js | ✅ | 서버사이드 추론 |
| Chrome Extension (MV3) | ✅ | Background service worker에서 모델 호스팅 |
| React Native | 실험적 |
빠른 시작
npm install @huggingface/transformersimport { pipeline } from "@huggingface/transformers";
const generator = await pipeline(
"text-generation",
"onnx-community/gemma-4-E2B-it-ONNX",
{ dtype: "q4f16", device: "webgpu" }
);
const output = await generator(
[{ role: "user", content: "안녕하세요!" }],
{ max_new_tokens: 128 }
);크롬 확장 프로그램 아키텍처
Manifest V3 환경에서는 모델을 Background Service Worker에서 호스팅하는 것이 권장 패턴이다. 이렇게 하면 모든 탭이 하나의 모델 인스턴스를 공유하고, UI는 가볍게 유지된다. 자세한 내용은 transformersjs-tutorial-chrome-extension 참조.
대표 모델 (ONNX)
onnx-community/gemma-4-E2B-it-ONNX— Gemma 4 2B, 텍스트 생성·도구 호출onnx-community/all-MiniLM-L6-v2-ONNX— 경량 임베딩 모델
관련 문서
- transformersjs-tutorial-chrome-extension — Transformers.js로 크롬 확장 프로그램 만들기
- litert-lm — Google의 엣지 디바이스 LLM 추론 프레임워크 (Android·Pixel 특화)
- local-slm — 로컬 소형 언어 모델(SLM) 개요