Непрекъснато дозиране
Непрекъснатото групиране е техника за обслужване, която добавя и премахва заявки от работеща партида токен по токен, вместо да чака цяла фиксирана партида да завърши.
Преглед
It keeps the GPU constantly busy and sharply increases how many users an AI model can serve at once.
Дълбоко гмуркане
Графичните процесори са най-бързи, когато обработват много заявки заедно в пакет. Наивният подход, статичното групиране, групира фиксиран набор от заявки, изпълнява ги всички до завършване, след което започва следващата партида. Проблемът: изходните данни на езиковия модел се различават значително по дължина, така че кратките заявки завършват рано и техните слотове стоят празни, докато партидата чака най-дългата, губейки GPU цикли и забавяйки новите пристигащи. Непрекъснатото групиране (наричано също групиране по време на полет или на ниво итерация, популяризирано от хартията Orca и използвано във vLLM, TensorRT-LLM и TGI) работи с детайлността на една стъпка на декодиране. След като всеки токен бъде генериран, завършените последователности излизат от пакета и прясно пристигналите заявки се поставят незабавно. Това поддържа пакета пълен и графичния процесор наситен, като често повишава пропускателната способност няколко пъти с по-ниска латентност за чакащите потребители.
Техническа информация
Ключовата промяна е от групиране на цели заявки към групиране на отделни повторения. При всяка стъпка на декодиране планировчикът изгражда активния набор: той изпълнява едно преминаване напред през всички последователности по време на полет, излъчва по един токен всяка, изгонва всеки, който достигне токен за край на последователността или ограничение за дължина, и допуска заявки на опашка за запълване на освободените слотове. Сдвояването на това с гъвкавата KV памет на PagedAttention прави вмъкването и премахването на последователности по време на полет евтино, тъй като кешът на всяка последователност живее в независими блокове.
Стратегическо въздействие
Cost and budget
Архитектурните решения стимулират производителността и оперативните разходи в продължение на години.
Clearer decisions
Техническото образование помага на екипите да изберат правилния стек, а не само най-новия.
Quality control
По-добрият инженерен избор намалява инцидентите, свързани с надеждността в производството.
Бъдещето на непрекъснатото дозиране
Непрекъснатото дозиране вече е стандарт при обслужването на LLM в производството. Бъдещата работа усъвършенства планировчика: отделяне на тежката изчислителна фаза на предварително попълване от по-леката фаза на декодиране (дезагрегация), накъсано предварително попълване, за да се избегне забавяне на декодирането, политики за приоритет и справедливост за смесени работни натоварвания и по-тясно свързване със спекулативно декодиране, така че множество чернови токени да се валидират на стъпка. Целта е изстискване на максимален брой токени за секунда на GPU, като същевременно се поддържа ниска и предсказуема латентност на отделния отговор.
Внедряване в реалния свят
API за чат, допускащ незабавно новопристигнали потребителски съобщения в текущата група, вместо да ги поставя в опашка за следващата група
Изгонване на кратък завършен отговор по средата на пакета и запълване на слота му, така че графичният процесор никога да не работи в очакване на дълго поколение
Комбиниране на непрекъснато групиране с PagedAttention на vLLM за евтино вмъкване и премахване на последователности при всяка стъпка на декодиране
Услуга за завършване на код, поддържаща високи токени за секунда при бурен трафик с променлива дължина, като поддържа пакета пълен
Рискове и предпазни огради
Оптимизирането на един бенчмарк може да скрие по-широки системни слабости.
Разходите за инфраструктура и поддръжка често се подценяват.
Пропуските в сигурността и видимостта могат да нарастват, когато системите стават по-сложни.
Пътна карта за изпълнение
Определете целите за латентност, качество и разходи преди внедряването.
Бенчмарк при реалистични условия на натоварване и данни.
Мониторинг на инструмента за грешки, отклонение и въздействие върху потребителя.
Подгответе пътеките за връщане назад и реакция на инцидент преди мащабиране.
Продължете да изследвате
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Continuous Batching quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
Next guide
Kubernetes за работни натоварвания на ML
Frequently asked questions
What is Continuous Batching?
Непрекъснатото групиране е техника за обслужване, която добавя и премахва заявки от работеща партида токен по токен, вместо да чака цяла фиксирана партида да завърши. Той поддържа графичния процесор постоянно зает и рязко увеличава броя потребители, които един AI модел може да обслужва наведнъж.
Каква е основната слабост на статичното (фиксирано) пакетиране за обслужване на LLM?
Тъй като изходните дължини варират, завършените последователности остават бездействащи, докато най-бавната завърши, губейки GPU цикли и забавяйки нови заявки.
С каква степен на детайлност непрекъснатото групиране добавя и премахва заявки?
Непрекъснатото пакетиране (на ниво итерация) актуализира активния набор след всяка отделна стъпка на декодиране, така че работи токен по токен, а не за цялата заявка.
Когато една последователност завърши по средата на партидата при непрекъснато пакетиране, какво се случва с нейния слот?
Завършените последователности се изхвърлят и чакащите заявки се поставят незабавно, поддържайки пакета пълен и GPU зает.
Коя техника се съчетава естествено с непрекъснато групиране, за да направи вмъкването/премахването на последователности евтино?
PagedAttention съхранява KV кеша на всяка последователност в независими блокове, така че добавянето или премахването на последователност по време на полет не нарушава паметта на другите.
На коя изследователска статия обикновено се приписва популяризирането на (непрекъснатото) групиране на ниво итерация?
Документът Orca въведе планиране на ниво итерация и идеята беше възприета от обслужващи системи като vLLM, TGI и TensorRT-LLM.