기가토큰: 기존 대비 최대 1000배 빠른 토크나이저
최대 1000배 빠른 속도를 자랑하는 새로운 언어 모델 토크나이저인 '기가토큰(GigaToken)'이 공개되었습니다. 이 도구는 기존 허깅페이스(HuggingFace) 토크나이저의 코드를 거의 수정하지 않고도 완벽하게 호환되며, 초당 기가바이트(GB/s) 단위의 텍스트 데이터 처리를 가능하게 합니다. 대규모 언어 모델(LLM) 학습을 위한 방대한 데이터 전처리 시간을 혁신적으로 단축시킬 수 있어 AI 개발 실무자들에게 매우 유용한 솔루션입니다.
기가토큰(GigaToken)은 허깅페이스(HuggingFace) 토크나이저보다 약 1000배 빠르며, 기존 코드와 바로 교체할 수 있는 완벽한 호환(drop-in replacement) 기능을 제공합니다. 텍스트 데이터를 초당 기가바이트(GB/s) 단위로 토큰화할 수 있습니다! 참고로 기존의 허깅페이스 토크나이저와 틱토큰(tiktoken) 역시 이미 멀티스레드를 지원하는 러스트(Rust)로 구동되고 있다는 점을 명심하세요.
기가토큰이란 무엇인가요? 기가토큰은 언어 모델링을 위한 가장 빠른 토크나이저입니다. 다양한 CPU 하드웨어와 거의 모든 일반적으로 사용되는 토크나이저를 지원합니다. 토크나이저와 CPU별 처리량에 대한 자세한 수치는 벤치마크 섹션을 참조하세요.
설치 pip install gigatoken
사용법 기가토큰은 자체 API를 사용하거나, 허깅페이스 토크나이저 또는 틱토큰과의 호환 모드(Compatibility Mode)를 통해 사용할 수 있습니다.
호환 모드 (가장 간편한 방법) import gigatoken as gt
기존 허깅페이스 토크나이저 사용법에서 최소한의 코드 수정 (호환 모드)
hf_tokenizer = ... tokenizer = gt.Tokenizer(hf_tokenizer).as_hf()
토크나이저는 기존 hf_tokenizer와 동일한 컨텍스트에서 사용될 수 있습니다.
tokens = tokenizer.encode_batch(["This is a test string", "And here is another"])
또는 틱토큰(tiktoken)과 함께 사용
tiktokenizer = ... tokenizer = gt.Tokenizer(tiktokenizer).as_tiktoken()
이제 기존 틱토큰 토크나이저처럼 작동합니다.
tokens = tokenizer.encode_batch(["This is a test string", "And here is another"])
이 설정에서 허깅페이스 토크나이저를 사용할 때와 완전히 동일한 출력 결과를 얻기 위해 상당한 노력을 기울였지만, 이는 성능 저하로 이어지는 편입니다. 물론 전반적으로 훨씬 빠른 성능을 기대할 수 있지만, 기가토큰 API를 사용할 때 기대할 수 있는 1000배의 속도에는 미치지 못합니다.
기가토큰 API (가장 빠른 방법) import gigatoken as gt tokenizer = gt.Tokenizer("Qwen/Qwen3-8B") # 허깅페이스 모델 이름을 인수로 받음 file_source = gt.TextFileSource(["owt_train.txt"], separator=b"<|endoftext|>") tokens = tokenizer.encode_files(file_source)
기가토큰 API를 사용하면 러스트(Rust) 구현체가 데이터를 직접 읽어오고, 최대한의 병렬 처리를 허용하는 동시에 모든 오버헤드를 최소화합니다. 단, 이 API를 통해 파이썬 데이터 구조를 전달하면 파이썬에서 데이터를 읽어오는 오버헤드가 여전히 발생한다는 점에 유의하세요.
벤치마크 owt_train.txt (11.9 GB) 기반 인코딩 처리량 — AMD EPYC 9565 72-Core Processor x 2 sockets (144 cores)
- GPT-2: 기가토큰 24.53 GB/s, HF 토크나이저 24.8 MB/s, 틱토큰 36.0 MB/s (대비 각각 989배, 681배 빠름)
- Phi-4: 기가토큰 24.00 GB/s, HF 토크나이저 29.9 MB/s (대비 801배 빠름)
- GPT-OSS: 기가토큰 23.96 GB/s, HF 토크나이저 49.7 MB/s, 틱토큰 42.8 MB/s (대비 각각 482배, 560배 빠름)
- OLMo 2 / 3: 기가토큰 23.06 GB/s, HF 토크나이저 27.7 MB/s (대비 833배 빠름)
- Nemotron 3: 기가토큰 22.79 GB/s, HF 토크나이저 49.4 MB/s (대비 462배 빠름)
- Qwen 3: 기가토큰 22.16 GB/s, HF 토크나이저 34.2 MB/s (대비 648배 빠름)
- Llama 3 / 3.1 / 3.2: 기가토큰 22.15 GB/s, HF 토크나이저 48.5 MB/s (대비 457배 빠름)
- GLM 5: 기가토큰 20.97 GB/s, HF 토크나이저 74.8 MB/s (대비 280배 빠름)
- Llama 3.3: 기가토큰 20.82 GB/s, HF 토크나이저 48.3 MB/s (대비 431배 빠름)
- Llama 4: 기가토큰 20.77 GB/s, HF 토크나이저 72.7 MB/s (대비 286배 빠름)
- GLM 4: 기가토큰 20.61 GB/s, HF 토크나이저 72.3 MB/s (대비 285배 빠름)
- Phi-4-mini: 기가토큰 20.05 GB/s, HF 토크나이저 27.6 MB/s (대비 726배 빠름)
- DeepSeek V3 / R1 / V4: 기가토큰 19.69 GB/s, HF 토크나이저 26.2 MB/s (대비 750배 빠름)
- Qwen 2 / 2.5: 기가토큰 19.12 GB/s, HF 토크나이저 27.7 MB/s (대비 691배 빠름)
- Kimi K2: 기가토큰 18.85 GB/s (비교군 없음)
- Qwen 3.5 / 3.6: 기가토큰 15.49 GB/s, HF 토크나이저 27.7 MB/s (대비 558배 빠름)
- Gemma 4: 기가토큰 4.82 GB/s, HF 토크나이저 334.1 MB/s (대비 14배 빠름)
- ModernBERT: 기가토큰 4.18 GB/s, HF 토크나이저 26.9 MB/s (대비 155배 빠름)
- Mistral 7B v0.3: 기가토큰 3.57 GB/s, HF 토크나이저 354.7 MB/s (대비 10배 빠름)
- TinyLlama / Phi-3 (Llama 2): 기가토큰 3.48 GB/s, HF 토크나이저 323.6 MB/s (대비 11배 빠름)
- CodeLlama: 기가토큰 3.47 GB/s, HF 토크나이저 347.4 MB/s (대비 10.0배 빠름)
- Gemma 3: 기가토큰 3.43 GB/s, HF 토크나이저 357.2 MB/s (대비 9.6배 빠름)
- Gemma 1: 기가토큰 2.51 GB/s, HF 토크나이저 342.2 MB/s (대비 7.3배 빠름)
owt_train.txt (11.9 GB) 기반 인코딩 처리량 — Apple M4 Max (16 cores)
- GPT-2: 기가토큰 8.79 GB/s, HF 토크나이저 6.9 MB/s, 틱토큰 62.8 MB/s (대비 각각 1,268배, 140배 빠름)
- Nemotron 3: 기가토큰 7.82 GB/s, HF 토크나이저 10.9 MB/s (대비 715배 빠름)
- Phi-4: 기가토큰 7.76 GB/s, HF 토크나이저 7.7 MB/s (대비 1,012배 빠름)
- Llama 3 / 3.1 / 3.2: 기가토큰 7.60 GB/s, HF 토크나이저 11.2 MB/s (대비 676배 빠름)
- OLMo 2 / 3: 기가토큰 7.56 GB/s, HF 토크나이저 5.8 MB/s (대비 1,299배 빠름)
- Llama 3.3: 기가토큰 7.50 GB/s, HF 토크나이저 15.7 MB/s (대비 479배 빠름)
- Phi-4-mini: 기가토큰 6.97 GB/s, HF 토크나이저 7.2 MB/s (대비 964배 빠름)
- Kimi K2: 기가토큰 6.88 GB/s (비교군 없음)
- Llama 4: 기가토큰 6.81 GB/s, HF 토크나이저 11.6 MB/s (대비 590배 빠름)
- Qwen 2 / 2.5: 기가토큰 6.37 GB/s, HF 토크나이저 5.8 MB/s (대비 1,105배 빠름)
- Qwen 3: 기가토큰 6.36 GB/s, HF 토크나이저 6.9 MB/s (대비 918배 빠름)
- Qwen 3.5 / 3.6: 기가토큰 6.31 GB/s, HF 토크나이저 6.3 MB/s (대비 994배 빠름)
- GPT-OSS: 기가토큰 6.20 GB/s, HF 토크나이저 20.2 MB/s, 틱토큰 87.2 MB/s (대비 각각 306배, 71배 빠름)
- GLM 4: 기가토큰 6.17 GB/s, HF 토크나이저 15.8 MB/s (대비 392배 빠름)
- DeepSeek V3 / R1 / V4: 기가토큰 5.68 GB/s, HF 토크나이저 7.2 MB/s (대비 788배 빠름)
- GLM 5: 기가토큰 5.55 GB/s, HF 토크나이저 12.2 MB/s (대비 456배 빠름)
- ModernBERT: 기가토큰 2.64 GB/s, HF 토크나이저 5.8 MB/s (대비 452배 빠름)
- Mistral 7B v0.3: 기가토큰 1.99 GB/s (비교군 수치 생략)