В статье исследуется возможность восстановления эквивалентного токенизатора для закрытой большой языковой модели, используя только два оракула, полученных из её чат-API. Эти оракулы — оракул длины токена, возвращающий количество токенов в строке, и префиксный оракул токена, декодирующий первые n токенов для разрешения неоднозначностей порядка слияния.
- Оракул длины токена: для любой строки s возвращает len(tokenize(s)).
- Префиксный оракул токена: для строки s и целого числа n возвращает строку, декодированную из первых n токенов tokenize(s).
- Префиксный оракул токена конструируется за счёт способности модели контролируемо повторять текст через обычный чат-интерфейс.
Основной вопрос заключается в том, достаточно ли этих двух оракулов для восстановления эквивалентного токенизатора, который будет давать точно такие же границы токенов на любом входе с точностью до переназначения идентификаторов токенов.