Быстрое железо для открытых моделей — EAGLE3

В llama.cpp — главный движок для запуска LLM на домашнем железе — завезли EAGLE3, и это ускоряет инференс в 2–3 раза. Без нового GPU, без новой модели и без единого изменения в ответах.

Что произошло

В llama.cpp приняли пулреквест с поддержкой EAGLE3 — это текущий SOTA-метод так называемого спекулятивного декодирования. Сделано в связке команд NVIDIA и GGML. Раньше EAGLE3 уже был в «серверных» движках вроде vLLM, SGLang и TRT-LLM, где давал прирост около 2–2,5 раза, но именно llama.cpp — тот инструмент, который крутится на потребительских видеокартах и ноутбуках. По замерам самого проекта прирост составляет 2–3 раза: с включёнными рассуждениями ускорение больше двух, без них — больше трёх, и даже на сжатой модели в Q4_K_M эффект сохраняется.

Как это работает

Идея спекулятивного декодирования простая. Маленькая быстрая «черновая» модель угадывает сразу несколько токенов вперёд, а большая основная модель проверяет их все разом за один проход: совпавшие оставляет, неверные отбрасывает. EAGLE3 делает это хитрее — берёт скрытые состояния основной модели с низких, средних и высоких слоёв, добавляет эмбеддинг токена и скармливает крошечному спекулятивному слою, который и набрасывает черновик. Ключевой момент: итоговый ответ математически идентичен обычному. Качество не падает ни на йоту — меняется только скорость.

Пример на пальцах

Переведём в практику. Возьмём подержанную видеокарту RTX 3090 на 24 ГБ — на вторичке это примерно $750–1000, по меркам ИИ-железа недорого. На неё уже сегодня влезает серьёзная модель на 30–32 миллиарда параметров. Помогает квантование: веса модели ужимают с 16 бит до 4 (формат Q4_K_M), объём падает примерно вчетверо — с неподъёмных 60+ ГБ до ~20 ГБ, а качество почти не страдает. Двадцать гигабайт спокойно помещаются в двадцать четыре. Важная оговорка: именно квантование позволяет модель уместить — EAGLE3 видеопамять не экономит.

А теперь то, что добавляет EAGLE3. Без него большая модель выдаёт по одному токену и каждый раз пересчитывает всё заново — на нашей карте это, условно, пара десятков токенов в секунду, видно, как текст набегает строчка за строчкой. EAGLE3 подсаживает рядом маленького «стенографиста»: тот забегает на несколько токенов вперёд и предлагает черновик, а большая модель не печатает их по одному, а проверяет всю пачку разом за один проход. Угадал — несколько токенов проскочили за один шаг; не угадал — черновик отбросили, ничего не испортилось. Те же условные двадцать токенов в секунду превращаются в сорок–шестьдесят: из «видно, как печатает» в «почти мгновенно».

И пара слов про «активные параметры». У обычной (dense) модели на 32 миллиарда в работе все 32 миллиарда. У моделей типа MoE — «смесь экспертов» — параметров может быть в разы больше, но на каждый токен включается лишь малая их часть, те самые активные. Поэтому модель с 30 миллиардами активных способна весить как гигант, а считать как середнячок. EAGLE3 работает поверх любой из них: он не трогает саму модель, а лишь ускоряет выдачу.

Где счётчик

EAGLE3-чекпойнт привязан к конкретной модели: нужен «угадыватель», обученный именно под твою сеть; готовые лежат на Hugging Face, при желании можно дообучить свой. Есть точка безубыточности по проценту принятия: если черновик угадывает плохо, метод не ускоряет, а замедляет. На локальном сценарии — батч из одного запроса, один пользователь — у видеокарты обычно есть простаивающий запас, поэтому даже скромный черновик окупается.

Почему это важнее громких релизов

Для аудитории self-hosted это важнее очередного флагмана. Громкие заголовки — про размер моделей; реальный рычаг для локального запуска — оптимизация инференса. EAGLE3 в llama.cpp означает, что твоя домашняя 8B или 70B стала ощутимо отзывчивее без покупки нового железа. Так открытая инфраструктура и догоняет закрытые API — не деньгами и не маркетингом, а переносом передовых приёмов в инструмент, который работает прямо на твоём столе.

Никакого волшебства: большая модель и маленький угадыватель, считающий вероятности наперёд. Магия имеет счётчик — нужен правильный черновик и достаточный процент попаданий. Но когда сходится, тот же чип отдаёт в разы больше.

Если интересно — встретимся у меня в Telegram-канале @wbindexes