
대규모 언어모델용 텍스트를 CPU에서 빠르게 토큰으로 바꾸는 오픈소스 도구가 공개됐다. 개발자 Marcel Rød의 공식 GitHub 저장소와 PyPI 배포 정보에 따르면 GigaToken은 Rust로 작성된 토크나이저로, Hugging Face Tokenizers와 tiktoken 호환 모드를 제공하면서 자체 API에서는 파일을 직접 읽어 병렬 처리한다.
토큰화는 문장을 모델이 처리할 수 있는 작은 단위와 숫자 ID로 바꾸는 과정이다. 학습 데이터가 커지거나 추론 요청이 몰리면 이 전처리 단계도 CPU와 데이터 입출력 자원을 차지한다. GigaToken은 정규식 엔진에 맡기던 사전 토큰화 구간을 CPU의 SIMD 명령에 맞게 최적화하고, 반복되는 문자열 조각의 토큰 결과를 캐시에 저장하는 방식으로 병목을 줄였다고 설명한다. Python과 Rust 사이의 데이터 이동과 작업 스레드 사이의 통신도 최소화했다.
프로젝트가 공개한 벤치마크는 11.9GB 규모의 OpenWebText 학습 파일을 대상으로 했다. 개발자 측 측정에서 듀얼 소켓 AMD EPYC 9565 시스템의 GPT-2 토크나이저 처리량은 초당 24.53GB로, Hugging Face Tokenizers의 초당 24.8MB보다 약 989배 높았다. Apple M4 Max에서는 초당 8.79GB와 초당 6.9MB로 약 1,268배 차이가 났다. 8코어 AMD Ryzen 7 9800X3D에서는 약 106배로 격차가 줄었다.
이 수치는 모든 환경에서 보장되는 일반 성능으로 볼 수 없다. GigaToken은 전체 파일을 자체 Rust 구현에서 직접 읽은 반면 Hugging Face 비교는 사전에 문서 경계를 나눈 첫 100MB를 처리했다. 개발자는 기존 라이브러리가 캐시하지 않아 입력 크기에 따른 속도 차이가 크지 않다고 설명했지만, 데이터 전달 경로와 입력 규모가 동일한 대조 실험은 아니다. 외부 연구기관이나 다른 개발자가 같은 결과를 재현한 자료도 아직 확인되지 않았다.
토크나이저 종류에 따른 편차도 컸다. 프로젝트 표에서 BPE 계열 일부 조합은 수백 배 차이를 보였지만, SentencePiece 기반 모델은 같은 서버에서 한 자릿수에서 수십 배 수준에 머물렀다. Hugging Face 또는 tiktoken 호환 모드는 출력 호환성을 유지하는 데 추가 비용이 들어 자체 파일 API만큼의 속도를 내지 못한다고 개발자는 밝혔다.
PyPI에는 22일 기준 0.9.0 버전이 베타 상태로 올라와 있으며 Python 3.10 이상을 지원한다. 소스는 MIT 라이선스로 공개됐다. 다만 WordPiece 토크나이저는 아직 지원하지 않고 SentencePiece 최적화는 초기 단계다. 프로젝트는 Windows 시험이 충분하지 않아 현재는 WSL 사용을 권고한다.
GigaToken의 의미는 모델 자체의 추론 속도를 높였다는 데 있지 않다. 대규모 말뭉치 전처리나 높은 요청량을 다루는 시스템에서 토큰화가 실제 병목일 때 CPU 시간을 줄일 가능성을 보여준 데 있다. 도입을 검토하는 개발자는 대표 데이터와 운영 하드웨어에서 출력 일치 여부, 메모리 사용량, 파일 입출력 비용을 함께 측정해야 한다.
출처: GigaToken 공식 GitHub 저장소 https://github.com/marcelroed/gigatoken
출처: GigaToken 공식 PyPI 배포 페이지 https://pypi.org/project/gigatoken/