Доска AI-объявлений dan repost
Спекулятивный декодинг
Многие слышали, но немногие знают его секреты. Давайте разбираться!
В почти оригинальной статье авторы предлагают следующую идею:
Использовать огромные модели в каждом случае и тратить тонны ресурсов — это расточительно. Лучше оптимизировать процесс и дать большой (target) модели помощника маленькую черновую (draft) модель.
Как это работает под капотом?
1️⃣ Маленькая модель авторегрессионно генерирует сразу K токенов на основе префикса (в общем, как принято в обществе GPT)
2️⃣ Большая модель за один forward pass проверяет эти токены. Если она находит ошибку, то корректирует её, добавляя правильный («бонусный») токен.
3️⃣ Исправленный батч токенов снова отправляется в маленькую модель, и процесс повторяется.
Очень понятно описали у себя этот процесс ребята из vLLM в блоге.
Но есть важный нюанс!
Спекулятивный декодинг наиболее эффективен только на малых размерах батчей. На больших батчах (или при большом K) производительность упирается уже не в Memory Bound (как при маленьких батчах), а в Compute Bound.
В таком режиме преимущество спекулятивного декодинга практически исчезает. Подробнее об этом в обзорной статье, где разбирают проблемы инференса и их решения.
Но заканчивать посты на грустной ноте — плохая примета! Поэтому, продолжим:
На помощь приходит метод EAGLE
Серия статей: EAGLE-1 → EAGLE-2 → EAGLE-3.
Ключевая идея EAGLE — внедрение в основную модель адаптера, позволяющего генерировать сразу несколько токенов за раз:
👉 Основная модель качественно генерирует начальные токены без адаптера.
👉 Информативные эмбеддинги передаются адаптеру, который строит «дерево возможных токенов», аналогично beam-search.
👉 Полученное дерево затем проверяется одним forward pass основной модели.
Разница между EAGLE-1 и EAGLE-3, как вы, наверное, догадались, это больше, выше, сильнее. Например, в EAGLE-1 адаптер тренировали на почти 70к диалогах, а в EAGLE-3 уже 500к.
Но и тут, видимо, начинает близиться конец, ведь в последней статье авторы отмечают, что добавление новых данных и расширение адаптера уже не сильно растят метрики.
Запасаемся попкорном и следим за развитием событий!
Многие слышали, но немногие знают его секреты. Давайте разбираться!
В почти оригинальной статье авторы предлагают следующую идею:
Использовать огромные модели в каждом случае и тратить тонны ресурсов — это расточительно. Лучше оптимизировать процесс и дать большой (target) модели помощника маленькую черновую (draft) модель.
Как это работает под капотом?
1️⃣ Маленькая модель авторегрессионно генерирует сразу K токенов на основе префикса (в общем, как принято в обществе GPT)
2️⃣ Большая модель за один forward pass проверяет эти токены. Если она находит ошибку, то корректирует её, добавляя правильный («бонусный») токен.
3️⃣ Исправленный батч токенов снова отправляется в маленькую модель, и процесс повторяется.
Очень понятно описали у себя этот процесс ребята из vLLM в блоге.
Но есть важный нюанс!
Спекулятивный декодинг наиболее эффективен только на малых размерах батчей. На больших батчах (или при большом K) производительность упирается уже не в Memory Bound (как при маленьких батчах), а в Compute Bound.
В таком режиме преимущество спекулятивного декодинга практически исчезает. Подробнее об этом в обзорной статье, где разбирают проблемы инференса и их решения.
Но заканчивать посты на грустной ноте — плохая примета! Поэтому, продолжим:
На помощь приходит метод EAGLE
Серия статей: EAGLE-1 → EAGLE-2 → EAGLE-3.
Ключевая идея EAGLE — внедрение в основную модель адаптера, позволяющего генерировать сразу несколько токенов за раз:
👉 Основная модель качественно генерирует начальные токены без адаптера.
👉 Информативные эмбеддинги передаются адаптеру, который строит «дерево возможных токенов», аналогично beam-search.
👉 Полученное дерево затем проверяется одним forward pass основной модели.
Разница между EAGLE-1 и EAGLE-3, как вы, наверное, догадались, это больше, выше, сильнее. Например, в EAGLE-1 адаптер тренировали на почти 70к диалогах, а в EAGLE-3 уже 500к.
Но и тут, видимо, начинает близиться конец, ведь в последней статье авторы отмечают, что добавление новых данных и расширение адаптера уже не сильно растят метрики.
A growing trend in the LLM community is scaling up training data to improve model intelligence without increasing inference costs. However, we observe that scaling up data provides limited improvements for EAGLE.
Similarly, we aim to improve the acceptance rate and acceleration ratio of EAGLE by increasing its training data. Unfortunately, we observe that the gains from additional training data for EAGLE are limited.
Запасаемся попкорном и следим за развитием событий!