3P by neo 5달전 | favorite | 댓글과 토론

Here is a summary of the key points from the provided text about Transformers.js:

Transformers.js 소개

  • 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 모두 지원하며 전이학습, 시각화 등 더 많은 기능을 제공함