huggingface/tokenizers
💥 Fast State-of-the-Art Tokenizers optimized for Research and Production
🤖 huggingface/tokenizers란 무엇인가요?
Rust로 작성된 고성능 오픈소스 토큰화 라이브러리로, Python, Node.js 및 (계획 중인) 기타 언어용 바인딩을 제공합니다. BPE, Unigram, WordPiece, WordLevel 등 현대의 거의 모든 LLM에서 사용하는 토크나이저를 구현하며, 원시 텍스트를 모델이 이해할 수 있는 정수 ID로 변환(및 역변환)하는 업계 표준 엔진을 목표로 합니다.
🚀 퀵 스타트 (Python)
pip install --pre tokenizers # pre‑release contains the new v1 API
from tokenizers import Tokenizer
# Load a pretrained tokenizer (e.g. Llama‑3.1) directly from the Hub
tokenizer = Tokenizer.from_pretrained("meta-llama/Llama-3.1-8B")
ids = tokenizer.encode("Hello, y'all! How are you 😁 ?").ids
print(ids)
# → [128000, 9906, 11, 379, 65948, 0, 2650, 527, 499, 27623, 223, 949]
print(tokenizer.decode([15339, 1917])) # → "hello world"
⚙️ 핵심 설계
- Rust 코어 – 참조 구현체로, 필수적인 SIMD 의존성 없이 매우 작은(gzipped 기준 약 325 KB) 바이너리로 컴파일됩니다.
- 모듈화된 Crates – 추론(
tk‑encode), 사전 토큰화(bitcannon), JSON 로딩(tk‑serialize), 레거시 변환(tk‑convert), 학습(tk‑train) 및 개발 전용 비트맵 생성기를 위한 독립적인 서브 crate. - 제로 카피, 배치 지향 API – 향후 v1 기능에는 인코딩된 ID에 대한 제로 카피 뷰와 배치 인코딩 API가 포함됩니다.
- 하드웨어 인식 경로 – ARM의 NEON, 최신 x86의 AVX‑512/VBMI 및 이식 가능한 폴백을 지원합니다. SIMD는 선택 사항이며 정확성을 위해 필수는 아닙니다.
📦 언어 바인딩
| 언어 | 상태 |
|---|---|
| Rust (참조) | ✅ |
| Python | ✅ |
| Node.js | ✅ |
| C / C++ / Java / Go | 🚧 계획 중 |
| Ruby | 커뮤니티 유지 관리 외부 저장소 |
🛣️ 로드맵 하이라이트 (v1.0.0)
- Python API – 전체 학습, 배치 인코딩, 오프셋 출력, 패딩 및 스트림 디코딩 기능 복구.
- 성능 –
bitnorm정규화, 더 빠른 학습, 향상된 디코딩 속도, 단어 캐시 최적화. - GPU 준비 프로토타입 –
tk‑devices를 통해 대규모 배치 디코딩을 위해 어휘와 ID를 장치에 유지하는 방법 탐색. - 추가 바인딩 – C/C++ 코어 이후 Java, Go, Swift 등.
📈 성능 및 풋프린트
- 라이브러리의 crate 크기는 gzipped 기준 325 KB이며, 전체 Rust 소스 코드(선택적 SIMD 커널 포함)는 1 MB 미만입니다.
- 벤치마크(링크된 대화형 데모 참조)에 따르면, 모든 주요 사전 토큰화 정규식에서 CPU 기반 기존 토크나이저보다 뛰어난 성능을 보여줍니다.
📚 문서 및 리소스
- 가이드 및 퀵 투어 – https://huggingface.co/docs/tokenizers/
- API 참조 – https://docs.rs/tokenizers/
- 라이브 벤치마크 데모 – https://huggingface-tokenizers-v1.static.hf.space/
🎯 누가 사용해야 하나요?
- 모델 개발자: 학습이나 추론을 위해 빠르고 정확한 토큰화가 필요한 분.
- 프로덕션 서비스: LLM을 대규모로 서비스하며 작고 의존성 없는 런타임을 원하는 분.
- 연구원: 사용자 정의 토크나이저를 구축하거나 새로운 사전 토큰화 알고리즘을 실험하는 분.
📜 라이선스
MIT – 저장소의 LICENSE 파일을 참조하세요.
관련
- Dispatch
- 프로젝트
- Dispatch
- Dispatch
- Dispatch