피드로 돌아가기
Hugging Face BlogBackend
원문 읽기
Hugging Face가 Transformers v5에서 토크나이저를 파이썬 2개 파일(slow/fast)에서 1개 파일로 통합하고 아키텍처를 명시적으로 노출해 커스터마이제이션 가능성 향상
Tokenization in Transformers v5: Simpler, Clearer, and More Modular
AI 요약
Context
Transformers v4에서는 토크나이저가 직렬화된 파일에 숨겨진 아키텍처와 모델별 slow/fast 2개 파일 구조로 관리되어 검사 및 커스터마이제이션이 어려웠다. 사용자가 토크나이저를 블랙박스로 취급할 수밖에 없는 상황이 지속되었다.
Technical Solution
- 파일 구조 통합: 모델별 tokenization_X.py와 tokenization_X_fast.py 2개 파일을 단일 tokenization_X.py로 통합
- 기본 백엔드 표준화: Rust 기반 TokenizersBackend를 기본값으로 설정하여 Python/Rust 분리 제거
- 아키텍처 명시화: Normalizer, Pre-tokenizer, Model, Post-processor, Decoder 각 컴포넌트를 클래스 정의에서 직접 접근 가능하게 공개 (tokenizer.normalizer, tokenizer.pre_tokenizer 등)
- 부모 클래스 재설계: PreTrainedTokenizer, PreTrainedTokenizerFast에서 TokenizersBackend(또는 SentencePieceBackend, PythonBackend)로 변경하여 백엔드별 명확한 계층 구조 제공
- 학습 템플릿 제공: tokenizer.train(files=[...])으로 파이프라인을 수동 구성하지 않고 직접 커스텀 토크나이저 학습 가능
Key Takeaway
토크나이저를 학습된 가중치와 분리된 아키텍처로 재설계하면 PyTorch처럼 신경망 아키텍처와 학습된 가중치를 분리하는 방식으로 투명성과 모듈화를 확보할 수 있다. 이는 토크나이저를 검사, 커스터마이제이션, 처음부터 학습하는 과정을 단순화한다.
실천 포인트
LLM 토크나이저를 커스터마이징하거나 특정 도메인 데이터셋에 맞게 새로 학습해야 하는 엔지니어는 Transformers v5에서 tokenizer._tokenizer.normalizer, tokenizer._tokenizer.model 등의 공개 속성을 통해 각 파이프라인 단계를 직접 검사하고 수정할 수 있으며, tokenizer.train()으로 파이프라인 구성 없이 즉시 학습을 시작할 수 있다.