본문 바로가기
Bigdata

Gemma 토크나이저 특징 - 한국어 처리 효율

by 올엠 2025. 10. 21.
반응형

Google의 Gemini 모델과 호환되는 Gemma 토크나이저는 공개된 토크나이저 중 하나로, 이를 통해 비공개 Gemini 토크나이저의 일부 구조를 유추할 수 있다. 

Tokenizer Github 링크

 

아래는 Gemma 토크나이저의 주요 특징을 나열 하였다.

1. SentencePiece 기반
- Gemma 토크나이저는 SentencePiece를 기반으로 구현되어 있다.
- SentencePiece는 언어에 독립적인 토크나이저로, 사전 토큰 분할(pre-tokenization)을 하지 않고 바로 텍스트를 처리한다.

SentencePiece는 Google에서 개발한 서브워드 기반 토크나이저 불규칙한 언어 변화에 강해서, 한국어를 포함한 멀티모달 모델에서 널리 사용되며, Gemini/Gemma에서도 활용된다.
2. 숫자 처리 방식
- OpenAI의 cl100k_base는 숫자를 3자리씩 묶어서 토큰화하는 반면, Gemma는 숫자를 자릿수마다 분리하여 각각 다른 토큰으로 처리한다. (예: 123456 → 1, 2, 3, 4, 5, 6 (각 자릿수별로 분리))
3. Unknown Token 처리
- 알 수 없는 토큰(unknown token)은 바이트 단위로 인코딩된다.
- 이는 BPE(Byte Pair Encoding) 방식의 fallback을 위한 것으로 보인다.
4. 어휘 크기 (Vocabulary Size)
- 총 256,000개의 토큰을 보유하고 있다.
- 이는 기존의 OpenAI cl100k_base (100,000개)보다 훨씬 큰 규모로, 다양한 언어와 특수 문자, 이모지 등을 포괄할 수 있는 여유를 제공한다.
5. Pre-tokenizer 미사용
- OpenAI의 토크나이저는 공백이나 특수문자 등을 미리 분리하는 pre-tokenizer를 사용하여 성능을 향상시키지만,
- Gemma는 pre-tokenizer를 사용하지 않고, SentencePiece의 특성을 그대로 활용한다.(이는 처리 방식의 단순화와 언어 독립성을 높이는 데 기여할 수 있다.)
6. 스페셜 토큰 처리 방식
- 일반적으로 스페셜 토큰은 <pad>, <eos>처럼 꺾쇠나 특수문자를 포함하지만, Gemma에서는 user, model 같은 일반 영단어 형태의 스페셜 토큰을 사용한다. 
8. 특수문자 연속 처리
\n (줄바꿈), \t (탭), 공백 문자(▁; U+2581) 등 자주 반복되는 특수문자 패턴은 1개의 토큰으로 처리된다.
예: \n이 1~31개 반복되어도 1개의 토큰으로 처리됨.(이는 토큰 수를 줄여 효율을 높이는 전략으로 보인다)
9. HTML 태그 처리
<table>, <h1>, </h6>, <strong> 등 주요 HTML 태그를 1개의 토큰으로 처리합니다.(웹 기반 콘텐츠를 다루는 데 유리)
10. Unicode 범위 포함
U+0000부터 U+00FF까지의 모든 유니코드 바이트를 포함합니다.이는 BPE byte fallback을 위한 것으로, 다양한 언어와 특수문자 처리에 유리합니다.

BPE byte fallback는 토크나이저가 알 수 없는 문자나 희귀한 문자를 처리할 때 사용하는 전략으로, 자주 등장하는 문자 쌍을 반복적으로 병합하여 서브워드 단위를 만드는 알고리즘
11. 동아시아 문자 지원
한글, 한자, 이모지 등 동아시아 문자에 약 25,000개의 토큰을 할당.
기존 토크나이저에서는 바이트 단위로 쪼개어 1글자당 3토큰 이상이 필요한 경우가 많았지만,
Gemma는 1글자당 1토큰으로 처리하여 효율을 높음

토크나이저의 한국어 처리 효율

상용 모델 기준으로 아래와 같고, 특히 Google이 독보이는 이유는 신뢰할 수 있는 기업중에 멀티 언어 모델에 강한 토크나이저를 만들어 줬다는 부분이다. 우리가 문서를 사용할때, 특정 언어만 사용하지 않기 때문에 앞으로 언어 다양성 측면에서 발전 가능성이 높고, 토큰에 따른 비용적 이점이 크다고 할 수 있다.

 

모델 토큰 크기 특징
OpenAI GPT-4 (cl100k_base) 약 160 토큰 BPE 기반, 3자리 숫자 묶음, 영어 중심 설계
Google PaLM2 약 88 토큰 SentencePiece 기반, 멀티언어 지원
Gemma (Google) 약 107 토큰 SentencePiece 기반, pre-tokenizer 미사용
Gemini (예상) 미공개 (예상: Gemma보다 효율적) 한국어 성능 우수, 추가 토큰 존재 가능성

 

반응형