토큰화
Tokenization
토큰화란?
- 문장을 토큰으로 쪼갬
- LLM이 글을 '읽는' 첫 단계
- 비용·한계와 직결
토큰화가 실제로 바꾸는 것은 '글의 분량을 무엇으로 재느냐'입니다. 사람은 글자 수나 페이지 수로 문서를 재지만, 모델 앞에서는 그 기준이 전부 토큰으로 환산됩니다. 같은 A4 한 장이라도 토큰 수는 문서마다 제각각입니다 — 표가 많은지, 영문 약어가 섞였는지, 줄바꿈과 공백이 어떻게 들어갔는지에 따라 두 배 가까이 벌어집니다. 프롬프트를 다듬을 때도 벤더 견적을 검토할 때도 계산의 단위가 글자에서 토큰으로 옮겨간다는 것이 첫 번째 변화입니다.
토큰을 만드는 방식은 크게 단어 단위, 글자 단위, 그 사이의 서브워드 방식으로 나뉘는데 현대 LLM은 사실상 서브워드만 씁니다. 사전에 없는 신조어나 오타도 아는 조각으로 쪼개 처리할 수 있기 때문입니다. 감을 잡는 수치로는 영어는 4글자당 1토큰, 한국어는 1글자당 1~1.5토큰 정도가 무난합니다. 같은 내용을 담아도 한국어 문서가 영어보다 1.5~2배의 토큰을 먹는다는 뜻입니다. 경계도 분명히 해 둘 필요가 있습니다. 토큰화는 쪼개고 번호를 붙이는 데까지이고, 그 번호에 의미를 입혀 벡터로 만드는 일은 임베딩의 몫입니다.
현장에서 가장 자주 어긋나는 지점은 '글자 수가 곧 토큰 수'라는 가정입니다. 한글 10만 자짜리 매뉴얼을 10만 토큰으로 잡고 연간 비용을 산정했다가 청구서가 1.5배로 날아오는 일이 드물지 않습니다. 컨텍스트 윈도우도 마찬가지입니다. 128K 모델이라고 해서 한글 12만 자가 들어가는 것이 아니고, 입력과 출력이 같은 창을 나눠 쓰기 때문에 자료를 창 끝까지 밀어 넣으면 답변이 중간에 끊깁니다. 표·JSON·마크다운 기호는 눈에 보이는 분량보다 토큰을 훨씬 많이 먹으니, RAG 청크 크기를 글자 수로 못 박아 두면 검색 단계에서 문서 뒷부분이 소리 없이 잘려 나갑니다.
자연어 처리(NLP)의 기초 전처리 기법으로, 서브워드 토큰화(BPE 등)가 현대 LLM의 표준 방식으로 자리잡았습니다.
가상의 사례로 살펴보겠습니다. 임직원 320명 규모의 가전 부품 제조사 A사는 지난해 10월부터 CS 상담 이력을 LLM으로 요약해 주간 리포트를 만들어 왔습니다. 3개월 만에 API 비용이 월 480만 원까지 올랐고, 긴 상담 건은 요약에서 뒷부분이 통째로 빠지는 일이 반복됐습니다.
- 정보전략팀 김 과장이 호출 로그를 뜯어보니 상담 1건 평균 입력이 3,800토큰이었습니다. 한글 원문은 1,900자뿐인데 HTML 태그와 연속 공백이 그대로 딸려 들어가 있었습니다.
- 김 과장이 토크나이저로 샘플 200건을 직접 세어 본 결과, 한글은 1글자가 1~2토큰이고 태그와 공백도 각각 토큰을 차지한다는 사실이 숫자로 확인됐습니다.
- CS팀장은 '원문을 통째로 넣어야 정확하지 않냐'고 했지만, 직전 3개월 요약에 실제 인용된 구간이 대화 뒷부분 40%에 몰려 있다는 집계를 보고 전처리 범위를 잘랐습니다.
- 태그 제거와 인사말·자동응답 문구 필터를 붙여 평균 입력을 1,500토큰대로 줄였고, 8,000토큰이 넘는 건은 두 번 나눠 호출한 뒤 합치는 방식으로 파이프라인을 바꿨습니다.
- 두 달 뒤 API 비용은 월 480만 원에서 171만 원으로 내려갔고, 뒷부분이 잘려 나가던 요약 누락 건은 주당 11건에서 1건으로 줄었습니다.