Перейти к содержанию
Публикация AiManual

Аппаратное ускорение инференса LLM: как запустить TGI на Intel Gaudi

Разбираем нативный запуск Text Generation Inference на Intel Gaudi: Docker-сценарий для Gaudi1, Gaudi2 и Gaudi3, совместимые семейства LLM, FP8-квантизация и ре

Коротко

Что будет в материале

  1. 01

    Что изменилось: TGI получил нативную поддержку Intel Gaudi

  2. 02

    Почему Intel Gaudi важен для инференса LLM

  3. 03

    Как устроен запуск TGI на Gaudi через Docker

  4. 04

    Какие модели можно запускать через TGI на Intel Gaudi

Text Generation Inference, или TGI, получил нативную поддержку Intel Gaudi в основном коде проекта. Это позволяет использовать зрелый серверный фреймворк для генерации текста на ускорителях Gaudi без отдельной сторонней адаптации TGI.

Практический сценарий строится вокруг Docker-образов для трех поколений ускорителей: Gaudi1, Gaudi2 и Gaudi3. В экосистеме TGI на Gaudi заявлена работа с популярными семействами моделей, включая Llama 3.1, Llama 3.3, Mistral, Mixtral и Qwen2. Для совместимых конфигураций доступна поддержка FP8, которая может снизить требования к памяти и повысить эффективность отдельных операций.

Эта интеграция интересна разработчикам, владельцам локальных AI-серверов и командам, которые строят продакшен-инфраструктуру для LLM. При этом одинакового результата для любой модели, версии программного стека и поколения Gaudi ожидать нельзя. Перед переносом рабочей нагрузки потребуется проверить совместимость и измерить поведение системы на собственных запросах.

Что изменилось: TGI получил нативную поддержку Intel Gaudi

Раньше запуск TGI на нестандартном ускорителе мог требовать отдельной адаптации, экспериментальной ветки или ручной настройки нескольких компонентов. Теперь Intel Gaudi подключен к основному коду TGI как поддерживаемая аппаратная платформа. Для пользователя это означает более привычную схему: выбрать совместимый образ, подготовить окружение, указать модель и открыть API генерации.

TGI берет на себя серверную часть инференса: загрузку модели, обработку запросов, генерацию продолжения и управление параметрами сервинга. Аппаратный слой меняется с CUDA-ориентированного сценария на стек Intel Gaudi и Habana SynapseAI, который в актуальной документации Intel может обозначаться как программный стек Gaudi.

Поддержка в основном коде упрощает дальнейшее сопровождение. Исправления, настройки и совместимость с новыми версиями TGI можно отслеживать в общей линии развития проекта. Это не отменяет проверки конкретных операций, токенизатора, формата весов и версии драйверов, но снижает зависимость от частной сборки.

Почему Intel Gaudi важен для инференса LLM

Аппаратное разнообразие вместо привязки к одному поставщику

Серверный инференс LLM зависит сразу от нескольких компонентов: ускорителя, памяти, драйверов, библиотек, фреймворка сервинга и инструментов мониторинга. Когда весь стек строится вокруг одного класса GPU, замена оборудования может потребовать заметной переработки инфраструктуры.

Поддержка Intel Gaudi в TGI дает команде дополнительный вариант при проектировании inference-сервера. API, логика генерации и общая модель работы с TGI остаются ближе к знакомому сценарию. Меняется аппаратная среда, а вместе с ней набор требований к контейнеру, устройствам и программному стеку.

Такой подход полезен в трех ситуациях:

  • нужное оборудование доступно в конфигурации Intel Gaudi;
  • команда хочет сравнить несколько платформ для одной LLM;
  • архитектура сервиса должна оставаться переносимой между разными типами ускорителей.

Совместимость фреймворка не гарантирует, что любая модель будет работать одинаково хорошо. Поддержка архитектуры, корректная загрузка весов и высокая эффективность под нагрузкой, это разные уровни готовности.

При выборе платформы полезно учитывать и другие сценарии работы с ускорителями. Например, в отдельном разборе производительности BridgeTower на Habana Gaudi2 показано, почему результаты для обучения нельзя напрямую переносить на инференс генеративных моделей. У этих задач различаются профиль памяти, характер вычислений и требования к задержке.

Откуда может появиться снижение стоимости инференса

Intel Gaudi нельзя автоматически считать более дешевой заменой GPU. Экономику считают по полной стоимости рабочей нагрузки, а не по цене одного ускорителя.

В сравнении нужно зафиксировать:

  • стоимость ускорителя, сервера и сетевой инфраструктуры;
  • объем доступной памяти и возможность разместить выбранную модель;
  • скорость prefill и decode на нужной длине контекста;
  • пропускную способность при одном и нескольких параллельных запросах;
  • энергопотребление и загрузку ускорителя;
  • время команды на настройку, обновление и диагностику стека.

Для сервиса с короткими запросами главным показателем может стать задержка первого токена. Для пакетной генерации важнее суммарная пропускная способность. Большой контекст увеличивает нагрузку на память и может изменить результат сравнения.

Поэтому корректный вопрос звучит так: сколько стоит обработка нужного объема токенов при заданном качестве и целевой задержке. Ответ появляется только после теста на конкретной модели, длине контекста, размере батча и профиле запросов.

Как устроен запуск TGI на Gaudi через Docker

Что подготовить до запуска контейнера

До запуска TGI нужно установить совместимую связку из аппаратного стека, драйверов и контейнерного окружения. Ошибка на этом уровне обычно выглядит просто: контейнер стартует, но не видит ускоритель, не может загрузить библиотеку или завершается при инициализации модели.

Проверьте следующие пункты:

  • поколение ускорителя: Gaudi1, Gaudi2 или Gaudi3;
  • доступность устройства в операционной системе;
  • версию драйвера и компонентов Habana SynapseAI или актуального стека Intel Gaudi;
  • совместимость Docker-образа TGI с установленным стеком;
  • права контейнера на доступ к устройствам ускорителя;
  • свободную память под веса модели, KV-кэш и служебные процессы;
  • сетевой порт, через который клиенты будут обращаться к API;
  • место на диске для образа, токенизатора и файлов модели.

Перед началом нужно определить рабочую модель и ее конфигурацию. Размер весов, тип чисел, длина контекста и количество одновременных запросов напрямую влияют на требования к памяти. Для MoE-моделей потребуется отдельно проверить поведение маршрутизации токенов и размещение компонентов модели.

Версии следует сверять по актуальной документации TGI и Intel Gaudi для конкретного поколения ускорителя. Универсальная команда, одинаково подходящая Gaudi1, Gaudi2 и Gaudi3, создает ложное ощущение совместимости.

TGI на Gaudi Docker: общий сценарий запуска

Docker-запуск состоит из нескольких логических частей. Сначала выбирается образ TGI, собранный для нужной версии программного стека и поколения Gaudi. Затем контейнеру передают устройства ускорителя и связанные с ними параметры окружения.

В команде или конфигурации контейнера обычно нужно задать:

  • имя Docker-образа TGI;
  • доступ к устройствам Intel Gaudi;
  • переменные окружения, которые требуются библиотекам ускорителя;
  • публикацию API-порта;
  • идентификатор модели и путь к ее локальным файлам, если веса хранятся на сервере;
  • параметры параллелизма;
  • ограничения длины последовательности, размера батча и объема памяти.

Схема выглядит так:

  1. Установить и проверить стек Intel Gaudi на сервере.
  2. Выбрать Docker-образ TGI, совместимый с поколением ускорителя.
  3. Передать контейнеру устройства и переменные окружения, указанные в документации.
  4. Подключить модель, токенизатор и необходимые файлы конфигурации.
  5. Запустить базовый API с консервативными параметрами памяти.
  6. Проверить загрузку модели, генерацию ответа и журналы контейнера.
  7. После этого измерить задержку, пропускную способность и использование памяти.

Конкретные теги образов, имена переменных и параметры запуска зависят от версии TGI, SDK и поколения ускорителя. Их нужно брать из совместимой документации, а не переносить из примера для другой платформы.

Первый тест лучше проводить на коротком запросе и одном параллельном клиенте. Затем постепенно увеличивать длину контекста и число одновременных запросов. Такой порядок помогает отделить ошибку загрузки модели от нехватки памяти при реальной нагрузке.

Различия между Gaudi1, Gaudi2 и Gaudi3

Gaudi1, Gaudi2 и Gaudi3 требуют раздельной проверки окружения. Отличаться могут поддерживаемые версии драйвера, библиотеки, Docker-образы и доступность отдельных функций.

Нельзя считать, что образ для Gaudi2 автоматически подойдет Gaudi1 или Gaudi3. То же касается параметров параллелизма и настроек памяти. Даже если контейнер запускается, конкретная модель может использовать операцию, которая в выбранной комбинации версий работает иначе или еще не поддерживается.

ПоколениеЧто проверить перед запускомПрактический вывод
Gaudi1Совместимость старого аппаратного стека, драйвера и образа TGIНе переносить настройки из конфигураций новых поколений без отдельного теста
Gaudi2Версии SynapseAI или актуального стека Intel Gaudi, образ TGI и поддерживаемые моделиПроверить работу нужной LLM и режимов точности на конкретном сервере
Gaudi3Актуальность образа, драйверов и заявленных возможностей для выбранной моделиИспользовать рекомендации для Gaudi3, а не предполагать полную обратную совместимость

Эта таблица задает порядок проверки, но не заменяет матрицу совместимости. Для продакшена фиксируйте версии контейнера, драйвера и модели в отдельной конфигурации. Иначе обновление одного компонента может изменить результат запуска.

Какие модели можно запускать через TGI на Intel Gaudi

Llama 3.1 и Llama 3.3

Семейства Llama 3.1 и Llama 3.3 относятся к основным сценариям для TGI на Gaudi. Для них доступны подготовленные варианты запуска в экосистеме интеграции, однако название семейства не описывает все требования конкретного чекпойнта.

Перед загрузкой проверьте размер модели, формат весов, требования к памяти, длину контекста и поддерживаемые параметры генерации. Модель может загружаться в контейнере, но при увеличении контекста упереться в память KV-кэша. Отдельно измеряйте prefill и decode, поскольку эти этапы создают разную нагрузку.

Для ориентира по влиянию формата весов на инфраструктуру можно использовать разбор GLM-5.2 в форматах Int4 и Int8. Эти результаты нельзя переносить на Gaudi или Llama напрямую, но сам принцип сравнения форматов остается полезным: оценивать нужно память, скорость и качество одновременно.

Mistral, Mixtral и Qwen2

Mistral, Mixtral и Qwen2 расширяют набор поддерживаемых архитектур за пределами Llama. Они могут закрывать разные задачи: от общего диалога и генерации кода до сценариев, где важны высокая пропускная способность или работа с несколькими экспертами.

Mixtral относится к MoE-архитектурам. В таких моделях на каждый токен активируется часть параметров, но полный набор весов все равно предъявляет требования к размещению и обмену данными. Поэтому для Mixtral нужно отдельно проверять память, маршрутизацию токенов, параллелизм и стабильность под несколькими запросами.

Для Mistral и Qwen2 проверяйте конкретную архитектуру, версию токенизатора и формат конфигурации. Поддержка семейства не означает автоматическую поддержку любого производного чекпойнта или каждой функции генерации.

Что проверить для модели, которой нет в списке

Модель из репозитория нельзя считать готовой к запуску на Gaudi только потому, что она совместима с Transformers или доступна в TGI для другой аппаратной платформы.

Проверка должна идти по четырем уровням:

  1. Архитектура модели поддерживается TGI и стеком Intel Gaudi.
  2. Веса и токенизатор загружаются без ошибок.
  3. Все необходимые операции имеют рабочую реализацию на ускорителе.
  4. Модель показывает приемлемые скорость, качество и стабильность под целевой нагрузкой.

Разделяйте понятия «модель загружается» и «модель подходит для продакшена». В первом случае достаточно успешной инициализации. Во втором нужны нагрузочные тесты, контроль ошибок, оценка задержки и сравнение ответов с эталонной конфигурацией.

FP8-квантизация на Gaudi: зачем она нужна и где есть компромиссы

Как FP8 влияет на память и пропускную способность

FP8, это формат вычислений с меньшей разрядностью по сравнению с FP16 и BF16. При поддержке со стороны ускорителя и программного стека он позволяет хранить или обрабатывать отдельные данные компактнее.

Меньший размер представления может снизить требования к памяти и освободить место под веса, KV-кэш или дополнительные запросы. Аппаратно оптимизированные операции FP8 способны увеличить эффективность вычислений. Итог зависит от того, какие именно части модели используют этот режим.

FP8 не равна универсальному сжатию модели. Она не превращает любой чекпойнт в совместимый низкоразрядный вариант и не гарантирует одинаковое ускорение для prefill и decode. В некоторых конфигурациях ограничением останется пропускная способность памяти, обмен между ускорителями или работа неподдерживаемой операции.

Почему FP8 нельзя включать вслепую

Снижение разрядности меняет численное поведение вычислений. Для большинства практических задач это может быть приемлемо, но чувствительные сценарии требуют проверки качества ответов.

Перед использованием FP8 сравните:

  • точность и полноту ответов на контрольном наборе запросов;
  • частоту ошибок и аварий при длинном контексте;
  • задержку первого токена и скорость decode;
  • пропускную способность при целевом числе клиентов;
  • стабильность после длительной работы;
  • совместимость режима с конкретной моделью и версией TGI.

Проверяйте качество на собственных данных. Общая скорость без оценки ответов не показывает, подходит ли FP8 для продукта.

Ограничения TGI на Gaudi и критерии выбора для продакшена

Когда Gaudi имеет смысл рассматривать

Intel Gaudi стоит включить в сравнение, если у команды уже есть подходящие серверы, важен выбор аппаратного поставщика или требуется проверить альтернативную платформу для серверного инференса LLM.

Платформа выглядит практично при одновременном выполнении нескольких условий:

  • нужная модель входит в подтвержденный набор совместимых архитектур;
  • для выбранного поколения доступен рабочий Docker-образ TGI;
  • команда может поддерживать драйверы и стек Intel Gaudi;
  • нагрузка допускает пилотное сравнение по задержке, пропускной способности и стоимости;
  • есть понятный план мониторинга и обновления окружения.

Выбор должен опираться на профиль запросов. Для интерактивного чата важна задержка, для пакетной обработки документов, суммарная производительность, для локального сервера, простота обслуживания и доступность подходящей конфигурации.

Когда лучше выбрать другой стек

Миграция на Gaudi не оправдана, если нужная модель или операция еще не поддерживается, а команда уже глубоко зависит от другого стека, инструментов мониторинга и процедур обновления.

Другой вариант разумнее выбрать и тогда, когда пилот показывает нестабильность, неудовлетворительную задержку или сложную диагностику. Совместимость Docker-контейнера с ускорителем сама по себе не решает вопросы наблюдаемости, отказоустойчивости и масштабирования.

Для сравнения с альтернативными конфигурациями полезно фиксировать одинаковые условия. В статье о сравнении инференса BLOOMZ на Habana Gaudi2 и NVIDIA A100 показано, почему результат зависит от конкретной модели, размера и режима нагрузки. Такие цифры служат ориентиром, но не заменяют собственный тест.

Минимальный чек-лист перед внедрением

  • Зафиксировать поколение ускорителя: Gaudi1, Gaudi2 или Gaudi3.
  • Сверить версии драйвера, стека Intel Gaudi, Docker и образа TGI.
  • Проверить загрузку выбранной модели и корректность токенизатора.
  • Проверить базовый API TGI на коротком запросе.
  • Измерить использование памяти при разных длинах контекста.
  • Записать задержку первого токена, скорость decode и пропускную способность.
  • Проверить FP8 отдельно, если этот режим нужен проекту.
  • Сравнить качество ответов в исходном и низкоразрядном режимах.
  • Провести тест с реальным числом параллельных запросов.
  • Зафиксировать версии и параметры, с которыми получены результаты.

Минимальный пилот должен отвечать на три вопроса: запускается ли нужная LLM, выдерживает ли сервер целевую нагрузку и оправдывает ли результат стоимость платформы и сопровождения. Без этих данных переход на новое оборудование остается предположением.

Перспективы расширения поддержки моделей: что делать с DeepSeek

DeepSeek можно рассматривать как пример модели, для которой совместимость с TGI на Intel Gaudi нужно отслеживать отдельно. Наличие TGI и поддержка нескольких популярных семейств не подтверждают автоматически готовность DeepSeek к продакшен-запуску на каждой версии Gaudi.

Перед использованием DeepSeek проверьте обновления TGI, Intel Gaudi и соответствующего Docker-образа. Затем последовательно подтвердите загрузку архитектуры, работу весов, доступность нужных оптимизаций, корректность генерации и результаты нагрузочного теста.

Признаком готовности служит не запись модели в списке, а рабочая цепочка целиком: контейнер видит ускоритель, модель загружается, API стабильно отвечает, качество соответствует задаче, а задержка и пропускная способность подходят продукту.

Нативная поддержка Intel Gaudi расширяет выбор аппаратной платформы для TGI и делает запуск LLM на Gaudi более системным. Практическая ценность появляется после проверки конкретного поколения ускорителя, версии стека, модели, режима точности и профиля нагрузки.

Подписаться на канал