tokenizer 가 곁다리가 아닌 이유
model 은 text 를 절대 안 봐 — integer 만 봐. tokenizer 가 그 다리야: 문자열을 sub-word 조각으로 쪼개고, 각 조각을 model 이 학습한 고정 vocabulary 의 ID 로 매핑해. 마지막 구절이 전부야. vocab 이 weight 에 박혀있어서 tokenizer 와 model 은 부부 사이 — 한쪽만 바꾸면 ID 가 엉뚱한 embedding 을 가리키고, 에러 한 줄 없이 그럴듯한 쓰레기가 나와.
알고리즘 셋, 하는 일은 하나
family 마다 쪼개는 방식이 달라: WordPiece (BERT), BytePair / BPE (GPT 계열), SentencePiece (T5, Llama, Gemma). 다 같은 문제를 풀어 — vocab 에 한 번도 없던 단어까지 더 작은 조각으로 fallback 해서 어떤 문자열이든 표현 — 그냥 쪼개는 규칙이 다를 뿐. modern KerasHub 에선 이게 pure-Python 으로 돌아서 TensorFlow 의존성 없어. torch / JAX 프로젝트에 tokenizer 때문에 TF 스택 끌어올 일 없어졌어.
실전 결론 (Code 참고): tokenizer 를 손으로 만들 일은 거의 없어. Preprocessor.from_preset() 로드하면 짝 tokenizer 가 그 안에 따라와. raw vocabulary= 로 직접 빌드하는 건 새 vocab 을 from scratch 로 학습하는 드문 경우용이야.