Имате проблеми с ИИ или разработката на пълен пакет? Нашите експерти са тук, за да ви напътстват: индивидуални съвети, техническа интеграция и др. Свържете се с [email protected].

Двигатели за изводи на GenAI: TensorRT-LLM vs vLLM vs Hugging Face TGI vs LMDeploy

Възходът на генериращия изкуствен интелект (GenAI) преобрази индустриите - от обработката на естествен език до генерирането на творческо съдържание. Ефективното и мащабно внедряване на тези мощни модели обаче остава предизвикателство.

TensorRT-LLM, vLLM, Hugging Face TGI и LMDeploy

Двигателите за изводи играят важна роля за оптимизиране на производителността, намаляване на закъснението и максимално използване на ресурсите. В тази статия ще разгледаме четири водещи решения: TensorRT-LLM, vLLM, Hugging Face TGI и LMDeploy.

Всяка от тях носи уникални предимства, независимо дали става въпрос за хардуерно ускорената прецизност на NVIDIA, иновативното управление на паметта на vLLM, готовата за производство екосистема на TGI или фокуса върху скоростта и простотата на LMDeploy. Присъединете се към нас, докато сравняваме тези двигатели, за да ви помогнем да намерите идеалното решение за вашите GenAI натоварвания.

TensorRT-LLM: мощната система на NVIDIA за оптимизиран извод

TensorRT-LLM е отговорът на NVIDIA за бързо и гладко изпълнение на големи езикови модели. Създаден на базата на рамката TensorRT, той е проектиран така, че да изстисква всяка капка производителност от графичните процесори на NVIDIA. Това става с трикове като сливане на слоеве, промяна на точността (FP16, INT8, FP8...) и оптимизация на ядрото, която намалява времето за изчисления, без да нарушава точността на модела.

TensorRT-LLM

Не става дума само за скорост. TensorRT-LLM работи ефективно с големи модели, като управлява интелигентно паметта, така че да не се срива по средата на работа. Той също така поддържа динамично групиране, което ви позволява да обработвате няколко заявки едновременно, без да изчерпвате паметта. Ако вече използвате хардуер на NVIDIA, това е безсмислено, тъй като е тясно свързан с тяхната екосистема, като CUDA и cuDNN, и дори се интегрира с Triton Inference Server на NVIDIA и NVIDIA Dynamo.

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

vLLM: високопроизводителен извод с PagedAttention

vLLM е много добър в бързата обработка на големи обеми задачи за изводи. Това е проект с отворен код, който блести, когато се нуждаете от висока производителност без забавяне. Тайният сос е PagedAttention - трик, който управлява паметта много по-добре от повечето. Вместо да зарежда всичко наведнъж и да изразходва оперативната памет, той разделя кеша за ключови стойности на части, като взима само това, което е необходимо. По-малко отпадъци, повече скорост.

vLLM

Той също е много гъвкав. Работи с популярни модели като LLaMA или Mistral веднага след изваждането им от кутията и поддържа много хардуер, включително графични процесори NVIDIA или AMD. Получавате също така динамично групиране на заявките, за да ги групирате ефективно и да поддържате конвейера безпроблемно. Настройката е доста лесна, ако сте свикнали с Python и PyTorch.

Основното ограничение на vLLM е неговата относителна незрялост на пазара, което означава, че той все още не може да предложи пълния набор от функции, налични в по-утвърдените решения. Въпреки това за организациите, които търсят ефективно решение, осигуряващо високопроизводителни изводи, vLLM представлява отличен избор.

Прегръдка на лицето TGI: Готово за производство решение за генериране на текст

Hugging Face TGI (Text Generation Inference - генериране на текст) е създаден за хора, които искат да стартират модели без главоболие. Това е инструмент, създаден от екипа на Hugging Face, така че той работи добре с тяхната огромна библиотека от предварително обучени модели - спомнете си BERT, GPT и други. Предназначен е за използване в реални условия, например за захранване на чатботове или приложения, при които генерирането на текст трябва да работи бързо и да не се срива.

Прегръщане на лицето TGI

TGI се справя с тежката работа с функции като непрекъснато дозиране, което поддържа системата заета чрез подмяна на нови заявки след приключване на старите. Поддържа GPU ускорение и може да се разширява, ако разполагате с необходимия хардуер. Освен това има вградена защита, например филтриране на лоши резултати, което е удобно за производството. Можете да я разгърнете с Docker в няколко стъпки, така че е сравнително лесна за настройка.

Уловката? Тя е свързана с екосистемата на Hugging Face, така че ако все още не сте в този свят, може да ви се стори ограничаваща. Все пак, за опция "plug-and-play", която е готова за използване, TGI е чудесен избор.

LMDeploy: Ефективно разгръщане с превъзходна скорост на декодиране

LMDeploy е набор от инструменти на екипите на MMRazor и MMDeploy, създаден за компресиране, внедряване и стартиране на големи езикови модели без излишни усилия. С какво се отличава той? Той има отлична скорост на декодиране - до 1,8 пъти повече заявки в секунда от vLLM на графичен процесор A100. Това се дължи на трикове като постоянното дозиране, блокираното KV кеширане и хитрите CUDA ядра, които държат графичния процесор зает.

LMDeploy

Той има два двигателя: TurboMind за максимална производителност и PyTorch за по-лесно боравене. TurboMind е звездата тук - той прави 4-битов извод 2,4 пъти по-бързо от FP16 и се справя с лекота с големи модели като Llama-2 70B. Можете също така да квантувате теглата и KV кеша, за да спестите памет, без да навредите на точността. Внедряването също е лесно - с една команда се настройва сървър на няколко машини, ако имате нужда от това. Освен това запомня историята на чата при многорундови разговори, така че не губи време да повтаря стара работа.

Недостатъкът? TurboMind е придирчив - все още не си играе добре с моделите с плъзгащи се прозорци за внимание като Mistral. А ако не използвате графични процесори NVIDIA, трябва да използвате по-бавния двигател PyTorch. Все пак за бързина и простота на подходящия хардуер LMDeploy е чудесен избор.

Сравнение на производителността: Латентност, пропускателна способност и мащабируемост

Нека разгледаме как тези двигатели се справят с латентността (колко бързо завършва една заявка), пропускателната способност (колко заявки могат да приемат) и мащабируемостта (колко добре се справят с по-големи натоварвания или повече хардуер).

Ако разполагате с графични процесори на NVIDIA, TensorRT-LLM се отличава по отношение на латентността. Той е силно оптимизиран за хардуера на NVIDIA, така че единичните заявки завършват бързо: под 50 ms за повечето модели на A100. Пропускателната способност също е отлична, особено при динамичното групиране. Бенчмарковете на BentoML показват, че този двигател достига 700 токена в секунда при 100 едновременни потребители за Llama 3 70B Q4 на A100 80GB GPU. TensorRT-LLM се представя силно в сценарии с дълги входове и висока честота на заявките, предлагайки добра пропускателна способност. Мащабируемостта на множество графични процесори се поддържа от кутията с отлична производителност.

vLLM също има добра производителност, особено при тежки натоварвания с декодиране, с висока производителност и ниска латентност след последните актуализации. Бенчмарковете на BentoML показват, че този двигател достига 600-650 токена в секунда при 100 едновременни потребители за Llama 3 70B Q4 на графичен процесор A100 80GB. Латентността е добра, но не толкова добра, колкото на TensorRT-LLM: около 60-80 ms за самостоятелни изпълнения. Мащабира се добре при различните графични процесори, дори при смесване на марки, но е по-малко шлифован за огромни настройки.

Hugging Face TGI се представя подобно на vLLM, като осигурява баланс между производителност и лекота на използване. Закъснението е прилично: 50-70 ms при добър графичен процесор. Бенчмарковете на BentoML показват, че този двигател достига 600-650 токена в секунда при 100 едновременни потребители за Llama 3 70B Q4 на графичен процесор A100 80GB. Той е създаден за мащабиране за производство, така че се справя безпроблемно с повече потребители или машини, особено с Docker.

LMDeploy печели по отношение на скоростта на декодиране. Той се отличава със скоростта на генериране на маркери, особено за по-малки модели, и има ниско време за генериране на първия маркер (TTFT) за квантувани големи модели. Закъснението е ниско: 40-60 ms. А пропускателната способност е отлична. Бенчмарковете на BentoML показват, че този двигател достига 700 токена в секунда при 100 едновременни потребители за Llama 3 70B Q4 на графичен процесор A100 80GB. Мащабирането е лесно с неговата сървърна настройка, но той се опира силно на графичните процесори NVIDIA за най-добри резултати; режимът PyTorch изостава.

Извод: TensorRT-LLM и LMDeploy водят по сурова скорост. Изборът ви зависи от вашия хардуер и от това колко заявки обработвате.

Възможности за квантуване

Квантуването намалява прецизността на модела, за да се намали използването на паметта и да се ускори изводът, което е важно за среди с ограничени ресурси. Ето как се представя всеки двигател:

TensorRT-LLM поддържа FP8, FP4, INT4 с квантуване на теглото с отчитане на активирането (AWQ) и INT8 с SmoothQuant, като предлага надеждни възможности за оптимизиране на производителността на графичния процесор NVIDIA.

vLLM осигурява гъвкавост с GPTQ, AWQ, INT4, INT8 и FP8, като се адаптира към различни хардуерни и прецизни нужди.

Hugging Face TGI интегрира bitsandbytes за 8-битово и 4-битово квантуване и GPT-Q за квантуване само с тегло, подходящи за производствени внедрявания.

LMDeploy предлага 4-битов AWQ, 8-битово квантуване и онлайн квантуване на кеша INT8/INT4 KV, което повишава ефективността на големи модели на ограничен хардуер.

Съвместимост на хардуера

Поддръжката на хардуера определя мястото, където можете да разположите тези двигатели, което оказва влияние върху мащабируемостта и производителността:

TensorRT-LLM е ексклузивен за NVIDIA CUDA, като използва GPU ускорители за висока производителност.

vLLM поддържа NVIDIA CUDA, AMD ROCm, AWS Neuron и CPU, като предлага широка съвместимост за различни настройки.

Hugging Face TGI работи с NVIDIA CUDA, AMD ROCm, Intel Gaudi и AWS Inferentia, като осигурява гъвкавост за различни хардуерни среди.

LMDeploy е оптимизиран за NVIDIA CUDA, което осигурява най-висока производителност на графичните процесори на NVIDIA, но с ограничена поддръжка за други платформи.

Лесно използване

Процесът на конфигуриране и интегриране може да повлияе на сроковете за разработка. Ето как се справят отделните двигатели:

TensorRT-LLM изисква конвертиране на контролните точки, изграждане на двигателя TensorRT и конфигуриране на параметрите, което го прави предизвикателство и отнема много време на инженерите.

vLLM е удобен за потребителя с изчерпателна документация, лесна инсталация и безпроблемна интеграция с библиотеката Python.

Hugging Face TGI се възползва от екосистемата на Hugging Face, която предлага предварително създадени образи на Docker и подробна документация за бързо внедряване.

LMDeploy се характеризира с лесна настройка с една команда за стартиране на сървъра и API на Python за персонализиране, като балансира лекотата и гъвкавостта.

Заключение

Изборът на правилния двигател зависи от вашия случай на използване, хардуер и умения.

TensorRT-LLM е вашият двигател за изводи, ако изпълнявате големи модели на графични процесори NVIDIA и се нуждаете от всеки грам скорост (помислете за приложения с ниска латентност като чатботове в реално време или асистенти с изкуствен интелект, при които отговорите трябва да се генерират за милисекунди). Той е идеален за компании, които вече са навлезли дълбоко в света на NVIDIA, но може да се окаже излишен, ако търсите простота.

vLLM е чудесен компромис между скорост и простота. Той работи много добре за стартиращи фирми или изследователи, които искат нещо гъвкаво и бързо за създаване.

Hugging Face TGI е еквивалентен на vLLM по отношение на бързина и простота. Той е лесен за внедряване, мащабира се плавно и се свързва с хъба за модели на Hugging Face, така че е идеален за екипи, които искат решение без излишни усилия.

LMDeploy блести с производителност, подобно на TensorRT-LLM. Той е подходящ за потребители с графични процесори NVIDIA, които искат лесна настройка и най-висока производителност, но не е толкова удобен, ако моделите ви не работят добре с TurboMind.

Ако не можете или не искате сами да внедрите свой собствен GenAI модел, можете да използвате NLP Cloud и да използвате бързи генеративни AI модели в производствен мащаб. Опитайте бързото извеждане на изводи в NLP Cloud сега!

Ако имате въпроси относно двигателите за изводи като цяло, моля, не се колебайте да ни попитате, за нас винаги е удоволствие да ви посъветваме!

Julien
Технически директор в NLP Cloud