Сегодня Amazon SageMaker запускает новую версию (0.25.0) контейнеров глубокого обучения (DLC) для вывода больших моделей (LMI) и добавляет поддержку Библиотека NVIDIA TensorRT-LLM. Благодаря этим обновлениям вы сможете без труда получить доступ к новейшим инструментам для оптимизации больших языковых моделей (LLM) в SageMaker и добиться снижения цены и производительности. DLC Amazon SageMaker LMI TensorRT-LLM снижает задержку в среднем на 33 % и повышает пропускную способность в среднем на 60 % для моделей Llama2-70B, Falcon-40B и CodeLlama-34B по сравнению с предыдущей версией.
LLM стали свидетелями беспрецедентного роста популярности в широком спектре приложений. Однако эти модели часто слишком велики, чтобы их можно было разместить на одном ускорителе или графическом процессоре, что затрудняет достижение вывода и масштабирование с малой задержкой. SageMaker предлагает дополнения LMI, которые помогут вам максимально эффективно использовать доступные ресурсы и повысить производительность. Последние DLC LMI предлагают непрерывную пакетную поддержку запросов на вывод для повышения пропускной способности, эффективные коллективные операции вывода для уменьшения задержки, Paged Attention V2 (который повышает производительность рабочих нагрузок с большей длиной последовательности) и новейшую библиотеку TensorRT-LLM от NVIDIA для максимизации производительность на графических процессорах. DLC LMI предлагают интерфейс с низким кодом, который упрощает компиляцию с TensorRT-LLM, требуя только идентификатор модели и дополнительные параметры модели; Вся тяжелая работа, необходимая для построения модели, оптимизированной для TensorRT-LLM, и создания репозитория модели выполняется с помощью DLC LMI. Кроме того, вы можете использовать новейшие методы квантования — GPTQ, AWQ и SmoothQuant, доступные в DLC LMI. В результате с помощью дополнений LMI для SageMaker вы можете ускорить окупаемость ваших генеративных приложений искусственного интеллекта и оптимизировать LLM для выбранного вами оборудования, чтобы добиться лучшего в своем классе соотношения цены и качества.
В этом посте мы подробно рассмотрим новые функции последней версии DLC LMI, обсудим тесты производительности и наметим шаги, необходимые для развертывания LLM с DLC LMI, чтобы максимизировать производительность и снизить затраты.
Новые возможности дополнений SageMaker LMI
В этом разделе мы обсудим три новые функции дополнений SageMaker LMI.
SageMaker LMI теперь поддерживает TensorRT-LLM
SageMaker теперь предлагает NVIDIA TensorRT-LLM как часть последней версии LMI DLC (0.25.0), обеспечивающей самые современные оптимизации, такие как SmoothQuant, FP8 и непрерывную пакетную обработку для LLM при использовании графических процессоров NVIDIA. TensorRT-LLM открывает возможности для работы со сверхнизкой задержкой, что может значительно повысить производительность. TensorRT-LLM SDK поддерживает развертывания в диапазоне от конфигураций с одним графическим процессором до конфигураций с несколькими графическими процессорами, при этом дополнительный прирост производительности возможен за счет таких методов, как тензорный параллелизм. Чтобы использовать библиотеку TensorRT-LLM, выберите DLC TensorRT-LLM из доступных DLC LMI и установите engine=MPI
среди других настроек, таких как option.model_id
. На следующей диаграмме показан технологический стек TensorRT-LLM.
Эффективные коллективные операции вывода
При типичном развертывании LLM параметры модели распределяются по нескольким ускорителям, чтобы удовлетворить требования большой модели, которая не может поместиться в один ускоритель. Это увеличивает скорость вывода, позволяя каждому ускорителю выполнять частичные вычисления параллельно. Далее вводится коллективная операция по консолидации этих частичных результатов по окончании этих процессов и перераспределению их между акселераторами.
Для типов экземпляров P4D SageMaker реализует новую коллективную операцию, которая ускоряет обмен данными между графическими процессорами. В результате вы получаете меньшую задержку и более высокую пропускную способность с последними DLC LMI по сравнению с предыдущими версиями. Кроме того, эта функция поддерживается «из коробки» в DLC LMI, и вам не нужно ничего настраивать, чтобы использовать эту функцию, поскольку она встроена в DLC SageMaker LMI и доступна исключительно для Amazon SageMaker.
Поддержка квантования
Дополнения SageMaker LMI теперь поддерживают новейшие методы квантования, включая модели предварительного квантования с GPTQ, весовое квантование с учетом активации (AWQ) и своевременное квантование, такое как SmoothQuant.
GPTQ позволяет LMI запускать популярные модели INT3 и INT4 от Hugging Face. Он предлагает минимально возможный вес модели, который может поместиться на одном графическом процессоре или нескольких графических процессорах. Дополнения LMI также поддерживают вывод AWQ, что обеспечивает более высокую скорость вывода. Наконец, DLC LMI теперь поддерживают SmoothQuant, что позволяет квантовать INT8, чтобы уменьшить объем памяти и вычислительные затраты моделей с минимальной потерей точности. В настоящее время мы позволяем вам выполнять преобразование моделей SmoothQuant «точно в срок» без каких-либо дополнительных действий. GPTQ и AWQ необходимо квантовать с помощью набора данных, который будет использоваться с DLC LMI. Вы также можете подобрать популярные предварительно квантованные модели GPTQ и AWQ для использования в DLC LMI. Чтобы использовать SmoothQuant, установите option.quantize=smoothquan
т с engine=DeepSpeed
в serving.properties
. Пример блокнота с использованием SmoothQuant для размещения GPT-Neox на ml.g5.12xlarge находится по адресу GitHub.
Использование дополнений SageMaker LMI
Вы можете развернуть свои LLM в SageMaker, используя новые DLC LMI 0.25.0, без каких-либо изменений в коде. Дополнения SageMaker LMI используют сервис DJL для предоставления вашей модели для вывода. Чтобы начать, вам просто нужно создать файл конфигурации, в котором указаны такие параметры, как распараллеливание модели и библиотеки оптимизации вывода, которые будут использоваться. Инструкции и учебные пособия по использованию DLC SageMaker LMI см. в разделе Параллелизм моделей и вывод больших моделей, а также в нашем списке доступных DLC SageMaker LMI.
Контейнер DeepSpeed включает библиотеку под названием LMI Distributed Inference Library (LMI-Dist). LMI-Dist — это библиотека вывода, используемая для вывода больших моделей с лучшей оптимизацией, используемой в различных библиотеках с открытым исходным кодом, в средах vLLM, Text-Generation-Inference (до версии 0.9.4), FasterTransformer и DeepSpeed. Эта библиотека включает в себя популярные технологии с открытым исходным кодом, такие как FlashAttention, PagedAttention, FusedKernel, а также эффективные коммуникационные ядра графического процессора для ускорения модели и снижения потребления памяти.
TensorRT LLM — это библиотека с открытым исходным кодом, выпущенная NVIDIA в октябре 2023 года. Мы оптимизировали библиотеку TensorRT-LLM для ускорения вывода и создали набор инструментов, упрощающий взаимодействие с пользователем за счет поддержки своевременного преобразования моделей. Этот набор инструментов позволяет пользователям предоставлять идентификатор модели Hugging Face и осуществлять сквозное развертывание модели. Он также поддерживает непрерывную пакетную обработку с потоковой передачей. На компиляцию моделей Llama-2 7B и 13B уйдет примерно 1–2 минуты, а для модели 70B — около 7 минут. Если вы хотите избежать этих накладных расходов на компиляцию во время настройки конечной точки SageMaker и масштабирования экземпляров, мы рекомендуем использовать упреждающую компиляцию (AOT) с нашей руководство подготовить модель. Мы также принимаем любую модель TensorRT LLM, созданную для Triton Server, которую можно использовать с DLC LMI.
Результаты сравнительного анализа производительности
Мы сравнили производительность последней версии дополнений SageMaker LMI (0.25.0) с предыдущей версией (0.23.0). Мы провели эксперименты на моделях Llama-2 70B, Falcon 40B и CodeLlama 34B, чтобы продемонстрировать прирост производительности с помощью TensorRT-LLM и эффективных коллективных операций вывода (доступно на SageMaker).
Контейнеры SageMaker LMI поставляются со сценарием-обработчиком по умолчанию для загрузки и размещения моделей, что позволяет сократить объем кода. У вас также есть возможность использовать свой собственный сценарий, если вам нужно внести какие-либо настройки в этапы загрузки модели. Вам необходимо передать необходимые параметры в serving.properties
файл. Этот файл содержит необходимые конфигурации для сервера модели Deep Java Library (DJL) для загрузки и размещения модели. Следующий код является serving.properties
используемый для нашего развертывания и сравнительного тестирования:
engine
Параметр используется для определения механизма выполнения для сервера модели DJL. Мы можем указать идентификатор модели Hugging Face или местоположение модели в Amazon Simple Storage Service (Amazon S3), используя model_id
параметр. Параметр Task используется для определения задачи обработки естественного языка (NLP). tensor_parallel_degree
Параметр задает количество устройств, по которым распределяются тензорные параллельные модули. use_custom_all_reduce
Параметр имеет значение true для экземпляров графического процессора, в которых включен NVLink для ускорения вывода модели. Вы можете установить это для P4D, P4de, P5 и других графических процессоров, к которым подключен NVLink. output_formatter
параметр устанавливает формат вывода. max_rolling_batch_size
Параметр устанавливает ограничение на максимальное количество одновременных запросов. model_loading_timeout
устанавливает значение тайм-аута для загрузки и загрузки модели для вывода. Более подробную информацию о параметрах конфигурации см. в разделе Конфигурации и настройки.
Лама-2 70Б
Ниже приведены результаты сравнения характеристик Llama-2 70B. Задержка сократилась на 28 %, а пропускная способность увеличилась на 44 % при параллельности 16 благодаря новому DLC LMI TensorRT LLM.
Сокол 40Б
На следующих рисунках сравнивается Falcon 40B. Задержка сократилась на 36 %, а пропускная способность увеличилась на 59 % при параллельности 16 благодаря новому DLC LMI TensorRT LLM.
КодLlama 34B
На следующих рисунках сравнивается CodeLlama 34B. Задержка сократилась на 36 %, а пропускная способность увеличилась на 77 % при параллельности 16 благодаря новому DLC LMI TensorRT LLM.
Рекомендуемая конфигурация и контейнер для размещения LLM
В последней версии SageMaker предоставляется два контейнера: 0.25.0-deepspeed и 0.25.0-tensorrtllm. Контейнер DeepSpeed содержит DeepSpeed, библиотеку распределенного вывода LMI. Контейнер TensorRT-LLM включает в себя Библиотека NVIDIA TensorRT-LLM для ускорения вывода LLM.
Мы рекомендуем конфигурацию развертывания, показанную на следующей схеме.
Для начала обратитесь к образцам тетрадей:
Заключение
В этом посте мы показали, как вы можете использовать DLC SageMaker LMI для оптимизации LLM для вашего бизнес-приложения и достижения выгоды по соотношению цена-качество. Дополнительные сведения о возможностях LMI DLC см. в разделе Параллелизм моделей и вывод больших моделей. Нам очень интересно увидеть, как вы используете новые возможности Amazon SageMaker.
Об авторах
Майкл Нгуен — старший архитектор решений для стартапов в AWS, специализирующийся на использовании искусственного интеллекта и машинного обучения для стимулирования инноваций и разработки бизнес-решений на AWS. Майкл имеет 12 сертификатов AWS, степень бакалавра/магистра наук в области электротехники и вычислительной техники, а также степень магистра делового администрирования Университета штата Пенсильвания, Бингемтонского университета и Университета штата Делавэр.
Ришаб Рэй Чаудхури — старший менеджер по продукту в Amazon SageMaker, специализирующийся на выводах машинного обучения. Он увлечен инновациями и созданием новых возможностей для клиентов машинного обучения на AWS, которые помогают масштабировать их рабочие нагрузки. В свободное время любит путешествовать и готовить. Вы можете найти его на LinkedIn.
Цин Лан — инженер-разработчик программного обеспечения в AWS. Он работал над несколькими сложными продуктами в Amazon, включая высокопроизводительные решения для вывода машинного обучения и высокопроизводительную систему журналирования. Команда Цина успешно запустила первую модель с миллиардом параметров в Amazon Advertising с очень низкой задержкой. Цин обладает глубокими знаниями в области оптимизации инфраструктуры и ускорения глубокого обучения.
Цзянь Шэн — инженер-разработчик программного обеспечения в Amazon Web Services, который работал над несколькими ключевыми аспектами систем машинного обучения. Он внес ключевой вклад в сервис SageMaker Neo, уделяя особое внимание компиляции глубокого обучения и оптимизации среды выполнения. Недавно он направил свои усилия и внес свой вклад в оптимизацию системы машинного обучения для вывода больших моделей.
Вивек Гангасани — архитектор стартап-решений AI/ML для стартапов генеративного искусственного интеллекта в AWS. Он помогает новым стартапам GenAI создавать инновационные решения с использованием сервисов AWS и ускоренных вычислений. В настоящее время он занимается разработкой стратегий тонкой настройки и оптимизации производительности вывода моделей большого языка. В свободное время Вивек любит ходить в походы, смотреть фильмы и пробовать разные кухни.
Хариш Туммалачерла — инженер-программист в команде Deep Learning Performance в SageMaker. Он занимается разработкой производительности для эффективного обслуживания больших языковых моделей в SageMaker. В свободное время он любит бег, езду на велосипеде и лыжный альпинизм.