글자 수로 나눌 때 생기는 문제
영어 1200자는 대략 240토큰이지만, 같은 1200자의 한국어는 700토큰일 수 있어. 파이썬 소스 1200자는 400토큰쯤 될 수도 있고. 임베딩 모델이 실제로 제한하는 것은 토큰 수야. 글자 수만 세면 언어나 콘텐츠 형식에 따라 청크 크기가 조용히 어긋나.
토큰 수를 고려한 분할
임베딩 모델의 토크나이저를 기준으로 나눠. 흔한 방식은 두 가지야.
- 재귀 분할기에 토크나이저를 결합하기 — 먼저 문단이나 문장 단위로 나누고 토큰 수를 확인한 뒤, 너무 길면 더 잘게 나눠.
- 토큰 배열을 직접 자르기 — 문서 전체를 인코딩하고 토큰 목록을 일정한 길이로 자른 다음 각 조각을 다시 디코딩해.
두 번째 방식이 빠르지만 단어 한가운데를 자를 수 있어 결과가 거칠어. 실제 서비스에서는 대개 첫 번째 방식을 써.