Почему у BPE-токенизатора почти нет unknown tokens
Почему современные subword tokenizers вроде BPE/SentencePiece редко используют unknown token, и какие trade-off есть у такого подхода?
Ответить самому
Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.
Короткий ответ
BPE разбивает редкие слова на более частые subword units, вплоть до символов/байтов, поэтому OOV почти исчезает.
Полный разбор
Идея BPE: начать с маленьких единиц и постепенно объединять частые пары. Поэтому незнакомое слово не обязано превращаться в unknown: его можно разложить на известные subwords, символы или bytes.
Плюс: модель может обрабатывать редкие слова, имена, новые термины и опечатки. Минус: редкий или странный текст может превращаться в много токенов, что увеличивает context length и inference cost. Еще один trade-off - разные языки и домены могут токенизироваться с разной эффективностью.
В интервью полезно связать токенизацию с latency/cost: чем больше токенов на тот же текст, тем дороже attention и generation.
Типичные ошибки
- Думать, что vocabulary содержит все возможные слова.
- Не упомянуть byte/character fallback.
- Забыть про cost от длинной токенизации.
Как отвечать на собеседовании
- Скажи: subword decomposition solves OOV.
- Добавь trade-off про token count.