Transformers.js v4 Preview: Now Available on NPM!
Blog

Transformers.js v4 Preview: Now Available on NPM!

2026.02.10
·Hugging Face·by 이호민
#AI#JavaScript#NPM#Transformers.js#WebGPU

핵심 포인트

  • 1Transformers.js v4 (preview)가 WebGPU Runtime을 채택하여 NPM에 출시되었으며, 이는 브라우저, Node, Bun, Deno 등 다양한 JavaScript 환경에서 하드웨어 가속을 통한 AI 모델 실행을 가능하게 합니다.
  • 2성능 최적화를 위해 ONNX Runtime Contrib Operators를 활용한 새로운 export 전략과 Webpack에서 esbuild로의 빌드 시스템 전환으로 처리 속도 향상 및 번들 크기 감소를 달성했습니다.
  • 3코드 유지보수성 향상을 위해 PNPM Workspaces 기반의 모노레포 구조와 모듈식 클래스 설계가 적용되었으며, `@huggingface/tokenizers` 독립 라이브러리 출시와 함께 Mamba, MoE 등 다양한 최신 모델 아키텍처가 추가되었습니다.

Transformers.js v4 프리뷰 버전이 NPM에 공식 출시되었음을 알리는 내용의 논문이다. 2025년 3월부터 약 1년간의 개발을 거쳐 2026년 2월 9일에 발표되었으며, npm i @huggingface/transformers@next 명령어를 통해 설치할 수 있다.

핵심 방법론 및 성능/런타임 개선:
이번 v4의 가장 큰 변화는 C++로 완전히 재작성된 새로운 WebGPU Runtime의 도입이다. Hugging Face는 ONNX Runtime 팀과 긴밀히 협력하여 약 200개의 기존 모델 아키텍처와 다양한 v4 전용 아키텍처에 걸쳐 이 런타임을 철저히 테스트했다. 이 새로운 WebGPU Runtime은 더 나은 Operator 지원(성능, 정확성, 커버리지 측면)을 제공하며, 동일한 Transformers.js 코드를 브라우저, 서버 측 런타임(Node, Bun, Deno) 및 데스크톱 애플리케이션을 포함한 광범위한 JavaScript 환경에서 WebGPU 가속 모델을 실행할 수 있도록 지원한다. 이는 AI 모델을 브라우저 내에서 100% 로컬로 실행하는 것을 가능하게 하며, 특히 리소스 제약이 있는 환경에서도 모델을 최대한 빠르게 실행하는 데 초점을 맞추고 있다.

이를 위해 특히 대규모 언어 모델(LLM)에 대한 'export strategy'를 전면 재고했다. 새로운 모델들은 com.microsoft.GroupQueryAttention, com.microsoft.MatMulNBits, com.microsoft.QMoE 또는 com.microsoft.MultiHeadAttention과 같은 ONNX Runtime Contrib Operators를 활용하여 operation by operation 방식으로 재구현된다. 예를 들어, com.microsoft.MultiHeadAttention Operator를 채택함으로써 BERT 기반 임베딩 모델에서 약 4배의 속도 향상을 달성했다. 또한, WASM 파일을 로컬에 캐싱하여 초기 다운로드 후에는 인터넷 연결 없이도 Transformers.js 애플리케이션을 실행할 수 있도록 완전한 오프라인 지원을 구현했다.

저장소 구조 재편 (Repository Restructuring):
v4 개발은 코드베이스 전반에 걸쳐 오랜 기간 미뤄졌던 리팩토링 기회를 제공했다.

  • PNPM Workspaces: 기존에는 GitHub 저장소가 하나의 npm 패키지로만 작동했지만, 다양한 유스케이스를 해결하는 여러 하위 패키지의 필요성을 인지하여 PNPM Workspaces를 활용한 모노레포(monorepo)로 전환했다. 이는 @huggingface/transformers 코어에 의존하는 더 작은 패키지들을 별도의 저장소 관리 오버헤드 없이 배포할 수 있게 한다.
  • Modular Class Structure: v3에서 8,000라인이 넘는 단일 파일이었던 models.js는 v4에서 유틸리티 함수, 코어 로직, 모델별 구현을 명확히 구분하여 더 작고 집중된 모듈로 분할되었다. 이는 가독성을 높이고 새로운 모델을 추가하는 것을 용이하게 한다.
  • Examples Repository: Transformers.js의 예제 프로젝트들은 메인 저장소에서 분리되어 전용 저장소로 이동했다. 이는 코어 라이브러리에 집중된 깔끔한 코드베이스를 유지하고 사용자들이 예제를 쉽게 찾고 기여할 수 있도록 돕는다.
  • Prettier: 코드베이스 전체의 일관된 포맷팅을 위해 Prettier 설정이 업데이트되고 모든 파일이 재포맷팅되었다.

새로운 모델 및 아키텍처 (New Models and Architectures):
새로운 export strategy와 ONNX Runtime의 커스텀 Operator 지원 덕분에 GPT-OSS, Chatterbox, GraniteMoeHybrid, LFM2-MoE, HunYuanDenseV1, Apertus, Olmo3, FalconH1, Youtu-LLM 등 다양한 새로운 모델과 아키텍처가 Transformers.js v4에 추가되었다. 이들 중 다수는 Mamba(state-space models), Multi-head Latent Attention (MLA), Mixture of Experts (MoE)와 같은 고급 아키텍처 패턴에 대한 지원을 필요로 했다. 이 모든 모델들은 WebGPU와 호환되어 브라우저 또는 서버 측 JavaScript 환경에서 하드웨어 가속을 통해 실행될 수 있다.

새로운 빌드 시스템 (New Build System):
빌드 시스템을 Webpack에서 esbuild로 마이그레이션하면서 빌드 시간이 2초에서 200밀리초로 10배 단축되었다. 번들 크기도 평균 10% 감소했으며, 특히 기본 export인 transformers.web.js는 53% 더 작아져 다운로드 속도와 초기 시작 시간이 향상되었다.

독립형 Tokenizers.js 라이브러리 (Standalone Tokenizers.js Library):
사용자들의 요청에 따라 토큰화 로직이 @huggingface/tokenizers라는 별도의 라이브러리로 추출되었다. 이는 브라우저와 서버 측 런타임에서 원활하게 작동하도록 완전히 리팩토링되었으며, 8.8kB(gzipped)의 매우 가벼운 크기에 의존성이 전혀 없으며, 완벽한 type-safe를 제공한다. 이 분리를 통해 Transformers.js의 핵심은 더욱 간결해졌으며, @huggingface/tokenizers는 모든 WebML 프로젝트에서 독립적으로 사용할 수 있는 다목적 도구로 제공된다.

기타 개선 사항 (Miscellaneous Improvements):
라이브러리 전반에 걸쳐 여러 편의성 개선이 이루어졌다. 입력에 따라 동적으로 적응하는 dynamic pipeline types를 포함한 타입 시스템이 향상되어 개발자 경험과 타입 안전성이 개선되었다. 로깅 기능이 개선되어 모델 실행 중 사용자에게 더 많은 제어권과 명확한 피드백을 제공한다. 또한, 8B 파라미터를 초과하는 더 큰 모델에 대한 지원이 추가되었다. 테스트 결과, M4 Pro Max에서 GPT-OSS 20B(q4f16) 모델을 초당 약 60토큰으로 실행할 수 있었다.

이러한 주요 개선 사항들은 ONNX Runtime 팀의 WebGPU 런타임 개발에 대한 기여와 외부 기여자 및 초기 테스터들의 지원 덕분임을 강조하며 감사를 표한다.