Оказалось, что они используют технику speculative decoding
В обычном сетапе тяжелая llm генерирует токен за токеном, что может быть слишком долго/дорого. Однако, некоторые токены предсказать довольно просто:
• частые слова вроде the, is, of, and, ...
• цифры / имена, которые уже были в контексте
• повторяющиеся связки слов
И идея заключается в том, что а давайте сначала пробовать сгенерировать несколько токенов более легковесной моделью, далее большая модель их батчево проверит, и если ок, то оставит, если не ок — сгенерит сама
Вместо:
large model:
context → T1
context+T1 → T2
context+T1+T2 → T3
...
Будем делать:
small model:
context → T1
context+T1 → T2
context+T1+T2 → T3
large model:
проверяет context+T1+T2+T3
ок → оставляем
не ок → large генерит сама
И если small и large модели работают "похожим образом", то это может дать серьезный буст в скорости генерации, так как мы будем часто оставлять те токены, которые предложила легковесная модель и не будем тратить ресурсы на генерацию с помощью тяжелой модели
Btw похожая техника используется в Cursor https://cursor.com/blog/instant-apply