토크나이저를 1000배 빠르게 만든 GigaToken — GPU도, 새 알고리즘도 아니었다
21
공유

LLM 이야기는 늘 모델과 GPU로 시작한다. 그런데 모든 파이프라인의 가장 첫 단계, 텍스트를 토큰으로 쪼개는 '토크나이제이션'은 아무도 신경 쓰지 않는다. 최근 해커뉴스에서 500표 넘게 받은 GigaToken은 바로 그 지루한 단계를, HuggingFace 토크나이저 대비 약 1000배 빠르게 만들었다.

GigaToken 처리량 벤치마크

중요한 포인트 하나. HF 토크나이저도, tiktoken도 이미 멀티스레드 Rust로 돌아간다. 즉 '느린 파이썬을 Rust로 바꿔서 빨라졌다'는 흔한 이야기가 아니다. 이미 최적화된 Rust를 다시 1000배 앞질렀다.

얼마나 빠른가

11.9GB 텍스트(owt_train.txt) 인코딩 기준이다.

  • Apple M4 Max(16코어): 1.4초, 8.3 GB/s → HF 대비 1,353배
  • AMD EPYC 9565(144코어): 0.49초, 24.5 GB/s → 989배

저자의 비유가 인상적이다. 이 속도라면 흔히 '인터넷 전체'로 불리는 커먼 크롤(Common Crawl, 130조 토큰)을 통째로 약 6.5시간 만에 토큰화할 수 있다.

GPU도, 새 알고리즘도 아니다

비결은 화려하지 않다. 순수 CPU 장인정신이다.

  • 보통 정규식 엔진에 맡기던 사전 토큰화(pretokenization)를 SIMD로 직접 구현하고, 분기(branching)를 최소화했다.
  • 프리토큰 매핑을 공격적으로 캐싱한다. 한 번 본 단어는 빠르게 조회. (어려운 이유: 캐시가 폭발적으로 커지고, 단어 분포가 롱테일이라 그렇다.)
  • 파이썬과의 상호작용, 스레드 간 통신을 최대한 제거했다.

새 모델도, GPU도, 새 알고리즘도 없다. 이미 알려진 알고리즘(BPE)을 현대 CPU의 SIMD와 캐시 계층에 딱 맞게 갈아 넣은 것이 전부다.

왜 이게 인사이트인가

두 가지가 남는다.

  1. 안 보이는 단계가 스케일에선 병목이 된다. 모델 학습 데이터를 만들려면 테라바이트를 토큰화해야 한다. 여기서 1000배는 '몇 시간 대 몇 주'의 차이다. 화려한 곳(모델)만 최적화하다 보면, 지루한 곳(데이터 준비)이 전체를 잡아먹는다.
  2. 오더 오브 매그니튜드는 여전히 기본기에서 나온다. SIMD, 캐시, 분기 예측, 파이썬 오버헤드 제거 — 새로울 것 없는 기술들이다. AI 시대에도 성능의 큰 도약은 종종 새 하드웨어가 아니라, 이미 있는 하드웨어를 제대로 쓰는 데서 나온다.

pip install gigatoken으로 끝나는 드롭인 교체(HF·tiktoken 호환 모드)라 도입 장벽도 낮다. 다만 완전 호환 모드는 1000배까진 아니고, 최대 속도는 네이티브 API에서 나온다는 트레이드오프는 정직하게 봐야 한다.

마무리

가장 큰 최적화는 종종 아무도 안 보는 곳에 숨어 있다. 모두가 모델을 볼 때, 누군가는 그 앞의 '토큰 쪼개기'를 처음부터 다시 썼다.


참고 자료

댓글을 작성하려면로그인이 필요합니다.

관련 글