[도구]허깅페이스 tokenizers v1 공개, 속도 최대 수십 배 개선
허깅페이스가 대규모 리팩토링을 거친 'tokenizers v1' 릴리스 후보(RC)를 공개했다. 기존 v0.23과 동일한 토큰 ID와 API를 유지하면서도, 정규식 엔진 대신 SIMD 기반 비트스트림 분할과 캐싱 등을 적용해 성능을 최대 수십 배까지 끌어올렸다.
전문 읽기접기
무슨 일이야
허깅페이스가 Rust 기반 핵심 라이브러리인 'tokenizers v1'의 성능 벤치마크 결과를 공유했다. 이번 업데이트는 기존 v0.23과 결과값(토큰 ID), API, 어휘집(Vocabulary), 병합 순위(Merge ranks)를 완벽히 동일하게 유지하면서 내부 처리 효율을 극대화하는 데 집중했다. BPE 특화 라이브러리와 달리 WordPiece와 Unigram 등 기존에 지원하던 토크나이저 방식도 모두 그대로 지원한다.
속도 향상의 핵심은 전처리 단계의 정규식(Regex) 엔진 대체와 캐싱이다. BPE 모델의 텍스트 분할 규칙이 런타임에 변하지 않는 고정값이라는 점에 착안해 범용 정규식 해석기 대신 현대 CPU의 SIMD 명령어를 활용하는 전용 함수를 적용했다. 64바이트 단위로 레지스터 연산을 수행하는 비트스트림 방식을 도입해 분할 병목을 크게 줄였다.
여기에 반복 등장하는 단어를 건너뛰는 스레드 로컬(Thread-local) 캐시도 추가됐다. 동일한 사전 토큰(Pre-token)에 대해 BPE가 항상 같은 토큰 ID를 반환한다는 특성을 활용해, 처리 결과를 바이트 단위로 매핑해 두고 중복 연산을 건너뛰는 방식이다.
왜 중요해
그동안 토큰화는 무거운 딥러닝 연산에 비해 가벼운 작업으로 여겨졌으나, 대규모 데이터셋 학습이나 동시 다발적인 서빙 환경에서는 데이터 병목의 주원인이 되곤 했다. 이번 v1 개편을 통해 CPU가 토큰 처리를 끝내지 못해 고가의 GPU가 대기하는 현상을 크게 줄일 수 있을 것으로 보인다.
짚고 넘어갈 점
SIMD 기반의 분할 가속은 자주 쓰이는 몇 가지 문법 패턴을 따르는 바이트 레벨 BPE 모델에만 적용된다. 정의된 패턴 범위를 벗어나는 비표준 정규식을 사용하는 토크나이저는 기존 정규식 경로를 그대로 타게 되므로 속도 개선 폭이 크지 않을 수 있다.
참고: Hugging Face
댓글 0
첫 댓글을 남겨보세요.