- Transformers.js는 서버 없이 브라우저에서 직접 🤗 Transformers를 실행할 수 있는 웹용 최첨단 머신러닝 라이브러리임
- Python transformers 라이브러리와 기능적으로 동등하도록 설계되어 동일한 사전 훈련된 모델을 유사한 API로 실행할 수 있음
- 자연어 처리, 컴퓨터 비전, 오디오, 멀티모달 등 다양한 양식의 일반적인 작업을 지원함
- ONNX Runtime을 사용하여 브라우저에서 모델을 실행하며, 🤗 Optimum을 사용하여 PyTorch, TensorFlow 또는 JAX 사전 훈련 모델을 ONNX로 쉽게 변환할 수 있음
주요 기능
- Python 라이브러리와 동일한
pipeline
API 지원으로 기존 코드에서 쉽게 변환 가능
- 다양한 작업과 아키텍처 지원 (지원 여부 및 문서/모델 링크 포함)
- 자연어 처리: Fill-Mask, Question Answering, Sentence Similarity, Summarization, Text Classification, Text Generation, Text-to-text Generation, Token Classification, Translation, Zero-Shot Classification, Feature Extraction 등
- 비전: Depth Estimation, Image Classification, Image Segmentation, Image-to-Image, Object Detection, Image Feature Extraction 등
- 오디오: Audio Classification, Automatic Speech Recognition, Text-to-Speech
- 멀티모달: Document Question Answering, Image-to-Text, Zero-Shot Audio/Image Classification, Zero-Shot Object Detection 등
- 호스팅된 사전 훈련 모델과 사전 컴파일된 WASM 바이너리를 기본으로 사용하며, 사용자 정의 가능
설치 및 사용 방법
- NPM으로 설치 가능:
npm i @xenova/transformers
- CDN이나 정적 호스팅을 사용하여 번들러 없이 바닐라 JS에서 사용 가능
- 다양한 샘플 애플리케이션/템플릿 제공: Whisper Web, Doodle Dash, Code Playground, Semantic Image Search, Vanilla JavaScript, React, Text to speech, Browser extension, Electron, Next.js, Node.js 등
- 환경 설정을 통해 모델 경로, 원격 모델 로드 여부, WASM 파일 위치 등을 사용자 정의할 수 있음
- 제공되는 변환 스크립트를 사용하여 PyTorch, TensorFlow, JAX 모델을 ONNX로 변환 가능
지원되는 모델
- ALBERT, Audio Spectrogram Transformer, BART, BEiT, BERT, Blenderbot, BLOOM, CamemBERT, Chinese-CLIP, CLAP, CLIP, CLIPSeg, CodeGen, ConvBERT, ConvNeXT, DeBERTa, DeiT, Depth Anything, DETR, DINOv2, DistilBERT, DiT, Donut, DPT, EfficientNet, ELECTRA, ESM, Falcon, FLAN-T5, GLPN, GPT Neo, GPT NeoX, GPT-2, GPT-J, GPTBigCode, HerBERT, Hubert, LongT5, LLaMA, MPNet, MPT, MT5, NLLB, Nougat, OPT 등 다양한 모델 지원
GN⁺의 의견
- Transformers.js는 서버 없이 브라우저에서 다양한 최신 Transformer 모델을 실행할 수 있게 해주는 유용한 라이브러리임. 특히 자연어 처리, 컴퓨터 비전, 오디오 등 여러 분야의 작업을 지원해 활용도가 높음
- Python 라이브러리와 유사한 API를 제공하여 기존 코드에서 쉽게 전환할 수 있고, 많은 사전 훈련된 모델을 지원하므로 추가 학습 없이 바로 사용 가능함
- 샘플 애플리케이션과 템플릿을 제공하여 다양한 용도로 활용하기 쉬우며, 사용자 정의 기능도 제공하여 유연성이 높음
- 다만 브라우저에서 실행되는 만큼 리소스 제약이 있을 수 있고, 최신 모델을 계속 추가/지원해야 하는 점은 개발 유지보수 측면에서 부담이 될 수 있음
- 유사한 브라우저 기반 ML 프레임워크로는 TensorFlow.js, ONNX.js, WebDNN 등이 있음. 특히 TensorFlow.js는 브라우저와 Node.js 모두 지원하며 전이학습, 시각화 등 더 많은 기능을 제공함