
LLM을 다뤄본 분이라면 '토크나이저'라는 말을 지나가듯 들어보셨을 텐데요. 모델 구조나 GPU 얘기에 비하면 늘 뒷전으로 밀리는, 파이프라인에서 가장 심심한 부품 취급을 받는 녀석이에요. 그런데 이 토크나이제이션을 기존 대비 약 1000배 빠르게 만들었다고 내세우는 오픈소스 프로젝트 'GigaToken'이 공개됐어요. 1000배라는 숫자가 워낙 커서 눈길이 가는데, 이게 왜 의미 있는 시도인지 배경부터 차근차근 짚어볼게요.
토크나이제이션이 뭐냐면요
LLM은 글자를 그대로 읽지 못해요. '안녕하세요'라는 문장이 들어오면 이걸 '안녕', '하', '세요'처럼 작은 조각으로 자르고, 각 조각을 숫자 ID로 바꿔서 모델에 넣어줘야 하거든요. 이 조각을 토큰이라고 부르고, 자르는 과정을 토크나이제이션이라고 해요. 자르는 규칙을 만드는 대표적인 방법이 BPE(Byte Pair Encoding)인데, 이게 뭐냐면 학습 데이터에서 자주 붙어 다니는 글자 쌍을 반복해서 하나로 합쳐가며 어휘 사전을 만드는 방식이에요. 실제 텍스트가 들어오면 이 사전을 참고해서 가장 알맞은 덩어리들로 잘라내는 거고요.
문제는 이 과정이 생각보다 계산 집약적이라는 거예요. 어떤 쌍을 먼저 합칠지 우선순위를 따지며 순서대로 병합해야 해서 병렬화가 까다롭고, 본질적으로 문자열 처리라 CPU에 묶여 있거든요. 채팅 한 번 할 때는 밀리초 수준이라 전혀 티가 안 나요. 그런데 무대를 모델 학습 쪽으로 옮기면 얘기가 달라져요. 요즘 대형 모델의 사전학습 데이터는 수조 개 토큰 규모인데, 이 코퍼스 전체를 토크나이즈하는 데 CPU 클러스터로 몇 시간에서 며칠씩 걸리기도 해요. 데이터 구성을 바꿔가며 실험을 반복해야 하는 연구자 입장에서는 이게 고스란히 실험 회전 속도의 병목이 되는 거죠.
1000배는 어디서 나올까요
이런 종류의 극적인 속도 향상은 보통 두 갈래에서 나와요. 하나는 알고리즘 개선이에요. 순진하게 구현한 BPE는 병합할 때마다 전체를 다시 훑는데, 자료구조를 잘 짜면 같은 결과를 훨씬 적은 연산으로 얻을 수 있거든요. 다른 하나는 하드웨어 활용, 즉 CPU에서 순차적으로 하던 일을 GPU에서 대량 병렬로 처리하는 접근이에요. 학습 데이터는 어차피 문서 단위로 독립적이니, 수만 개 문서를 한꺼번에 얹어 처리하면 처리량이 극적으로 뛸 수 있어요. 다만 '약 1000배'라는 수치는 어디까지나 프로젝트가 제시한 벤치마크 조건에서의 이야기라, 비교 대상이 뭐였는지(순수 파이썬 구현인지, 이미 최적화된 Rust 구현인지)에 따라 체감은 크게 달라질 수 있다는 점은 감안하고 보셔야 해요. 직접 도입하실 거라면 자기 워크로드로 재보는 게 정답이고요.
업계 맥락
토크나이저 속도 경쟁이 처음은 아니에요. HuggingFace의 tokenizers 라이브러리는 Rust로 작성돼서 순수 파이썬 대비 수십 배 빠르고, OpenAI의 tiktoken도 마찬가지로 Rust 기반이에요. 구글의 SentencePiece도 오랫동안 표준처럼 쓰여왔고요. 그런데도 새 프로젝트가 계속 나오는 건, 학습 파이프라인의 다른 단계는 전부 GPU로 넘어갔는데 데이터 전처리만 CPU 시대에 머물러 있다는 불균형 때문이에요. 이미지 분야에서 NVIDIA DALI가 전처리를 GPU로 끌어올렸던 것처럼, 텍스트 전처리도 가속기 위로 옮기려는 흐름이 이어지고 있는 거죠.
한국 개발자에게는요
한국어는 토크나이저와 유독 악연이 깊어요. 대부분의 공개 모델 토크나이저가 영어 중심으로 학습돼서, 같은 내용을 담아도 한국어 문장이 영어보다 토큰을 훨씬 많이 쓰는 경우가 흔하거든요. API 비용 부담도, 컨텍스트 낭비도 여기서 나오고요. 한국어 특화 모델을 만들거나 대량의 한국어 데이터로 파인튜닝을 준비하는 팀이라면 전처리 속도가 실험 효율에 직결되니, 이런 도구의 발전은 반가운 소식이에요. 당장 모델을 학습하지 않는 분에게도, 순차적이라 느릴 수밖에 없다고 여겨지던 작업을 병렬화로 풀어내는 사례 자체가 좋은 공부거리고요. 저장소를 열어 코드 구조를 뜯어보는 것만으로도 고성능 시스템 프로그래밍 감각을 기르는 데 도움이 될 거예요.
정리하면, GigaToken은 '아무도 안 쳐다보던 병목'을 정면으로 겨눈 프로젝트예요. 여러분의 파이프라인에서 다들 당연하게 참고 넘어가는 숨은 병목은 어디인가요? 댓글로 얘기 나눠봐요.
🔗 출처: Hacker News