tgoop.com/neural_cat/60
Last Update:
Speculative Decoding
Помните слив об устройстве GPT4? А именно "OpenAI may be using Speculative Decoding in a GPT-4 conference. (Not 100% sure)". Этот пост об этом
Как ускорить? Квантизация, добавить гпу, перейти на тпу, попробовать новый инференс движок, самому что-то писать на куде. Сложно! Для ускорения нужен лишь простой советский...
Шаг 1. Маленькой моделью сгенерируем последовательность
Шаг 2. Сделаем 1 forward pass большой моделью, чтобы проверить, сгенерила ли бы она сама такую последовательность. По сути, сравниваем вероятности токенов для сэмплирования и сами токены, если у нас greedy decoding/beam search
Шаг 3. Вероятнее всего, сгенерированная последовательность облажается на i-ом токене, поэтому мы исправляем i-ый токен на тот, что предлагает большая модель, и запускаем заново Шаг 1.
Итого, мы сильно уменьшили количество forward pass-ов большой модели, поэтому ускорили генерацию в несколько раз. На практике придется очень тщательно подбирать эвристику перегенерации и валидации сгенерированной последовательности. Например, маленькой моделью можно сгенерировать не всю последовательность, а только 5 токенов, провалидировать большой и, например, продолжить большой. По сути, нужно подобрать трейдофф между качеством и скоростью.
Кстати, эта фича реализована в transformers
Блог пост huggingface
Статья от DeepMind
Статья от Google Research
