Компания NVIDIA анонсировала программное обеспечение TensorRT-LLM с открытым исходным кодом, специально разработанное для ускорения исполнения больших языковых моделей (LLM). Платформа станет доступна в ближайшие недели.
Отмечается, что NVIDIA тесно сотрудничает с такими компаниями, как Meta✴, Anyscale, Cohere, Deci, Grammarly, Mistral AI, MosaicML (входит в состав Databricks), OctoML, Tabnine и Together AI, для ускорения и оптимизации LLM. Однако большой размер и уникальные характеристики LLM могут затруднить их эффективное внедрение. Библиотека TensorRT-LLM как раз и призвана решить проблему.
ПО включает в себя компилятор глубокого обучения TensorRT, оптимизированные ядра (kernel), инструменты предварительной и постобработки, а также компоненты для повышения производительности на ускорителях NVIDIA. Платформа позволяет разработчикам экспериментировать с новыми LLM, не требуя глубоких знаний C++ или CUDA. Применяется открытый модульный API Python для определения, оптимизации и выполнения новых архитектур и внедрения усовершенствований по мере развития LLM.
По оценкам NVIDIA, применение TensorRT-LLM позволяет вдвое увеличить производительность ускорителя H100 в тесте GPT-J 6B (входит в состав MLPerf Inference v3.1). При использовании модели Llama2 прирост быстродействия по сравнению с А100 достигает 4,6x. TensorRT-LLM уже включает полностью оптимизированные версии многих популярных LLM, включая Meta✴ Llama 2, OpenAI GPT-2 и GPT-3, Falcon, Mosaic MPT, BLOOM и др.
Софт TensorRT-LLM использует тензорный параллелизм — тип параллелизма моделей, при котором отдельные весовые матрицы разделяются между устройствами. При этом TensorRT-LLM автоматически распределяет нагрузка между несколькими ускорителями, связаннными посредством NVLink, или множественными узлами, объединёнными NVIDIA Quantum 2 InfiniBand. Это позволяет легко масштабировать задачи инференса с одного ускорителя до целой стойки.
Для управления нагрузками TensorRT-LLM использует специальный метод планирования — пакетную обработку в реальном времени, которая позволяет асинхронно обслуживать множество мелких запросов совместно с единичными большими на одном и том же ускорителе. Эта функция доступна для всех актуальных ускорителей NVIDIA, причём именно она даёт двукратный прирост производительности инференса в случае H100.
Наконец, конкретно в случае H100 библиотека активно использует возможностиTransformer Engine, позволяющего динамически привести вычисления к FP8-формату, что ускоряет и обработку и снижает потребление памяти без ухудшения точности итогового результата. Одна эта функция позволяет добиться четырёхкратного прироста быстродействия H100 в сравнении с A100.
Источник: