EAGLE 4 на графических процессорах AMD Instinct

Источник: AMD•

EAGLE 4 на графических процессорах AMD Instinct

Узнайте, как EAGLE-4 работает на графических процессорах AMD Instinct™ MI355X с первого дня благодаря SGLang и ATOM.

EAGLE-4, новейший инструмент генерации черновиков (драфтер) от команды EAGLE, работает на графических процессорах AMD Instinct™ MI355X с нулевого дня в среде SGLang и ATOM. - На модели Qwen3.8-27B один GPU MI355X обслуживает одиночный запрос на скорости ~300 токен/с в формате BF16: это в 3.5 раза быстрее обычного декодирования и в 1.6 раза быстрее встроенного в модель MTP. - Прирост сохраняется по мере роста нагрузки — от 1 до 32 одновременных диалогов — и масштабируется до четырех графических процессоров. Система работает «из коробки»: используются те же чекпоинты и те же флаги инференса, что и на другом «железе».

Рисунок 1: EAGLE-4 при одном запросе

Что нового в EAGLE-4

Метод спекулятивного декодирования позволяет небольшому драфтеру угадывать несколько токенов вперед, а большой модели — проверять их все за один проход. EAGLE-4 привносит три новации в семейство EAGLE:

  • Один драфтер для любого размера батча и любого GPU. EAGLE-4 генерирует черновик по одному токену за раз, поэтому на каждом шаге он может останавливать, углублять или расширять свое дерево предположений. EAGLE-Harness измеряет затраты на генерацию и верификацию на реальном «железе» один раз при запуске. Во время обслуживания он выбирает дерево, которое дает наибольшее количество принятых токенов на единицу затрат: широкое и глубокое дерево для одного пользователя или короткие цепочки при высокой нагрузке.
  • Более дешевый языковой (LM) модуль для драфтера. Проекция словаря драфтера раньше составляла основную часть его затрат. Низкоранговый модуль сначала отбирает кандидатов из полного словаря, а затем полный модуль выполняет точную оценку только для них. Это сокращает затраты на генерацию черновика более чем на 40% без усечения словарного запаса.
  • Компактный драфтер. Один слой трансформера позволяет ему легко разместиться рядом с моделью, требуя минимум памяти — от датацентровых GPU до периферийных устройств.

EAGLE-4 работает на GPU MI355X с теми же чекпоинтами и флагами запуска, что и на других системах:

Чтобы обеспечить высокую производительность с нулевого дня, мы измерили таблицы затрат EAGLE-Harness на GPU MI355X, чтобы размеры деревьев идеально подходили для этого процессора; добавили верификацию дерева для слоев линейного внимания (Gated DeltaNet) модели Qwen3.8: дерево предположений проверяется за один проход, и сохраняется состояние только принятой ветки; проверили сохранение точности: каждый выходной токен совпадает с результатами обычного декодирования (с учетом округления до BF16 при близких значениях).

Результаты

Qwen3.8-27B, веса BF16, один GPU MI355X, SPEED-Bench (the EAGLE-4 paper’s benchmark: режим размышлений включен, жадный поиск).

Одновременные диалоги

Обычное декодирование (SGLang)

292

872

1,285

Встроенный MTP (SGLang)

178

617

1,743

2,551

EAGLE-4, SGLang

289

941

2,167

2,784

EAGLE-4, ATOM

309

976

2,309

3,243

Рисунок 2: EAGLE-4 в условиях нагрузки

  • Один запрос: EAGLE-4 принимает около 4.7 токенов за одну проверку по сравнению с ~2.9 у встроенного MTP. Отсюда и берется прирост в 1.6 раза.
  • При нагрузке: EAGLE-4 сокращает свои предположения по мере заполнения GPU, поэтому он опережает MTP даже при 32 диалогах.
  • Больше GPU: при использовании тензорного параллелизма один запрос достигает 403 токен/с на двух GPU MI355X (ATOM) и 463–489 токен/с на четырех (SGLang / ATOM).

Четыре GPU

Тензорный параллелизм на четырех GPU MI355X, тот же бенчмарк:

Рисунок 3: EAGLE-4 на четырех графических процессорах

Одновременные диалоги

Обычное декодирование (SGLang)

156

539

1,655

2,331

Встроенный MTP (SGLang)

303

1,036

2,711

3,916

EAGLE-4, SGLang

463

1,360

3,339

4,474

EAGLE-4, ATOM

489

1,347

3,381

4,796

В связке со SGLang на четырех GPU производительность EAGLE-4 в 3.0 раза выше обычного декодирования и в 1.5 раза выше MTP для одного запроса, а при 32 диалогах она все еще составляет 1.9 и 1.14 раза соответственно.

Что дальше

Мы очень хотим перенести EAGLE-4 на другие модели и объединяем его с нашими мегакернелами для одиночных запросов, чтобы обеспечить еще меньшую задержку (Ссылка на блог). Мы приветствуем сотрудничество с командой EAGLE, разработчиками моделей и всем сообществом.

Конфигурация теста

  • Аппаратное обеспечение: AMD Instinct MI355X GPU (gfx950); TP1, если не указано иное. ПО AMD ROCm™ 7.2.4.
  • Модель: Qwen/Qwen3.8-27B в формате BF16; драфтер: чекпоинт EAGLE-4 для Qwen3.8-27B.
  • Бенчмарк: качественная выборка SPEED-Bench, каждый 10-й диалог из каждой категории (88 диалогов), воспроизведение шаг за шагом; режим размышлений включен, температура 0; токен/с = сгенерированные токены, деленные на реальное время выполнения.
  • Движки: SGLang: ветка EAGLE-4 на коммите main 2af5570 с перенесенным PR для ROCm; ATOM: ветка eagle4_day0_support репозитория proaditya/ATOM на коммите main 2479251d3, образ rocm/atom-dev:nightly_202610131505 (ROCm 7.2.4 с aiter и FlyDSL). SGLang использует деревья EAGLE-Harness для каждого уровня параллелизма; ATOM использует фиксированные деревья в зависимости от размера батча до 16 диалогов и цепочки при 32.

Воспроизведение результатов

Оба движка измеряются с помощью одинакового клиента SPEED-Bench и данных из репозитория EAGLE-4 (inference/scripts/client_speedbench.py и inference/dataset/speed_bench/question_multiturn.jsonl); для ATOM клиент считывает количество токенов из поля usage ответа. Клиент воспроизводит каждый диалог шаг за шагом (режим размышлений включен, интенсивность рассуждений xhigh, температура 0); в качестве метрики указана скорость wall_tput (сгенерированные токены за реальное время). Параметр --every 10 задает подмножество из 88 диалогов, используемое в таблицах; опустите его, чтобы запустить все 880.

ATOM: одна команда запускает обслуживание для каждого уровня параллелизма с флагами из рецепта, запускает клиент и выводит результаты рядом с нашими; в файле README описаны параметры (размер TP, уровни параллелизма) и соответствующие им флаги:

EAGLE4=<путь к EAGLE-4> DRAFT=<чекпоинт EAGLE-4> bash blog_benchmark/eagle4/build_and_repro.sh

SGLang (EAGLE-4 repository’s SGLang, на образе ROCm SGLang для GPU MI355X):

Три переключателя SGLANG_GDN_TREE_* активируют верификацию деревьев FlyDSL для слоев линейного внимания (для них также необходимо измерить таблицы затрат). Для TP > 1 используйте --tp-size N в обеих командах и отдельную таблицу затрат для каждого размера TP. Обычное декодирование: та же команда запуска сервера без флагов --speculative-*; встроенный MTP: --speculative-algorithm EAGLE --speculative-draft-model-path $MODEL --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4.

О чём эта статья

Ещё в разделе «Hardware и электроника»

Все →

Ещё от AMD