Спекулятивное декодирование
Определение
Спекулятивное декодирование — алгоритм генерации, в котором черновые токены проверяют по вероятностям целевой модели и при отказе выбирают замену. Корректная проверка и выборка замены сохраняют целевое распределение в точной арифметике.
Также ищут: speculative decoding · спекулятивная генерация · speculative sampling
Зачем это знать
Можно изменить порядок вычислений, сохранив вероятности продолжений целевой модели. Для этого мало проверить черновик: при отказе нужна специальная выборка. Выигрыш во времени измеряют отдельно.
От черновика к принятому продолжению
Карта понятия
Что подтверждено
Черновая модель предлагает короткое продолжение по одному токену: каждое следующее предложение учитывает уже предложенные токены.
Граница применимости: Рассматривается вариант с авторегрессионной черновой моделью; это не ограничение всех способов построения черновика.
Целевая модель оценивает условные распределения для позиций черновика за один проход. Предложения проверяют слева направо; после первого отказа весь последующий черновой хвост отбрасывают.
Граница применимости: Отказ определяется правилом выборки, а не проверкой истинности текста. Параллельная оценка условных распределений не означает независимой генерации токенов.
Предложенный токен x принимают с вероятностью min(1,p(x)/q(x)). Здесь p — целевое распределение, q — распределение, из которого действительно выбрано предложение.
Граница применимости: Распределения заданы на одном наборе токенов при одном префиксе и учитывают свои фактические настройки выборки. Для корректности q может быть любым распределением; для выпавшего предложения q(x) положительно.
В спекулятивном декодировании после отклонения чернового токена замену выбирают из нормированного остатка: r(x)=max(0,p(x)−q(x))/Σ_y max(0,p(y)−q(y)). Здесь p — целевое распределение, q — распределение предложений. Замена остатка обычным p при том же правиле принятия в общем случае нарушает сохранение целевого распределения.
Граница применимости: p и q относятся к одному префиксу и набору токенов и учитывают фактически применённые настройки выборки. Остаток нужен при отклонении предложения. При p=q все предложения принимаются, нулевой остаток не нормируют.
Корректное принятие и остаточная выборка сохраняют распределение целевой модели в точной арифметике. Из этого не следует совпадение текста при одном и том же начальном состоянии генератора случайных чисел, seed.
Граница применимости: Гарантия относится к распределению результатов, а не к отдельной реализации случайной последовательности. Округление в аппаратных вычислениях — отдельный источник расхождений.
Если весь черновик принят, алгоритм выбирает ещё один токен из следующего условного распределения целевой модели.
Граница применимости: Algorithm 1 Leviathan и Algorithm 2 Chen; описан шаг алгоритма без остановки на пределе длины или токене завершения.
Спекулятивное декодирование может выдавать несколько токенов за один проход целевой модели, но это само по себе не гарантирует меньшего времени генерации. Нужно учитывать затраты на черновик и целевую проверку, число принятых предложений и ресурсы для параллельных вычислений.
Граница применимости: Сравнение относится к конкретной реализации и заданной нагрузке. Сохранение целевого распределения — свойство корректной выборки, а выигрыш во времени проверяют отдельно; результаты статей не переносятся на любую модель и оборудование.
Для A, B, C возьмём p=(0,4; 0,2; 0,4) и q=(0,2; 0,5; 0,3). Предложенный B принимается с вероятностью 0,4. При отказе остаток (0,2; 0; 0,1) после нормировки даёт (2/3; 0; 1/3). Итоговые вероятности снова равны p.
Граница применимости: Оригинальный учебный расчёт для одного фиксированного префикса по формулам источников; это не измерение модели.
Что проверить
- В p и q учтены реально применённые настройки выборки.
- При отказе используется нормированный остаток, а черновой хвост отброшен.
- Ускорение проверено на сопоставимых настройках и нагрузке.