Англійська для розробників vLLM Inference

Learn the English vocabulary for vLLM: PagedAttention, continuous batching, KV cache, and throughput tuning for LLM serving.

Обговорення vLLM змішують системний словник (сторінкування пам’яті, пакетування) з термінами, специфічними для LLM (кеш KV, токени на секунду), і описують проблему пропускної здатності нечітко - “виведення повільно” - дає товаришу по команді набагато менше, ніж назвати фактичне вузьке місце.

Ключовий словник

** PagedAttention ** — метод керування пам’ яттю, який vLLM використовує для зберігання кешу KV у несуміжних блоках, подібно до сторінкування віртуальної пам’ яті, що зменшує фрагментацію і дозволяє більшій кількості запитів спільно використовувати пам’ ять GPU. “PagedAttention є причиною, чому vLLM може пакувати так багато одночасних запитів на один GPU — це припиняє кеш KV від потреби в одному великому суміжному розподілі на послідовність.”

** KV кеш ** — збережені тензори ключів і значень з попередніх токенів у поколінні, повторно використовувані на кожному новому токені, щоб модель не перераховувала увагу на всю послідовність з нуля. “Ми отримуємо помилки через відсутність пам’ яті, тому що кеш KV для запитів з довгим контекстом споживає більшу частину вільної пам’ яті графічного процесора.”

** Неперервне пакування ** — стратегія планування, яка додає нові запити до запущеної партії, як тільки звільнюється потужність графічного процесора, замість очікування завершення всієї партії перед початком наступної. “Неперервне пакетування дає нам цей приріст пропускної здатності — короткі запити більше не застрягають у черзі за одним довготривалим поколінням.”

** Комбінація пропускної здатності і затримки ** — баланс між максимізацією кількості генерованих токенів за секунду у всіх запитах і мінімізації часу очікування відповіді на кожен запит. “Збільшення максимального розміру пакету допомогло збільшити пропускну здатність, але підвищило затримку p99 — нам потрібно вирішити, яка сторона цього компромісу має більше значення для цієї кінцевої точки.”

** Попереднє заповнення проти декодування** — дві фази створення: попереднє заповнення обробляє повний рядок вводу паралельно, щоб створити перший токен, у той час як декодування створює наступні токени по одному за раз, і вони мають дуже різні характеристики обчислення.

  • “Довгі запитання домінують у часі GPU на фазі попереднього заповнення, що призводить до голодування фази декодування запитів інших користувачів.” *

Звичайні фрази

  • «Чи є втулка в префілі або декодування — чи є довгі підказки проблемою, чи це довгі покоління?»
  • «Скільки пам’яті GPU кеш KV фактично споживає при нашому поточному одночасності?»
  • Чи є тут ввімкненим постійне пакетування, чи ми все ще пакетуємо статично?»
  • «Чи ми оптимізуємо для пропускної здатності або затримки на цій кінцевій точці — яка з них важливіша?»
  • «Чи дозволить PagedAttention’s пам’ять заощадити нам підвищити розмір бату без втрати OOM?»

Приклади висловлювань

Діагностика проблеми з пам’ яттю: “Ми OOM під навантаженням, тому що кеш KV для наших найдовших контекстних запитів не вивільняється достатньо швидко — нам потрібна суворіша політика резервування пам’яті на запит.”

Пояснення регресії затримки: “Затримка P99 зросла після того, як ми підвищили максимальний розмір пакету — ми обміняли деяку затримку на пропускну здатність, і тепер декілька довгоконтекстних запитів голодують декодування для всіх інших.”

Звітування про результат налаштування:

  • “Перехід на постійне пакування дозволив нам удвічі збільшити пропускну здатність, оскільки короткі запити більше не чекають за тим, яке з довгих поколінь було запущено першим.” *

Професійні поради

  • Розрізняти prefill від decode явно, коли повідомляється про сповільнення — « генерація повільна » не повідомляє співробітнику команди, чи стосується виправлення довжини підказки чи довжини виводу.
  • Назва ** KV кеш ** тиск пам’яті конкретно, а не кажучи “ми закінчуємо пам’ять” - це вказує безпосередньо на одночасність запитів і довжину контексту як на рычаги, щоб потягнути.
  • Зазначте, чи ви оптимізуєте для прохідності або затримки перед тим, як запропонувати зміни у пакетах — ці дві цілі часто змінюють налаштування у протилежних напрямках.
  • Посилання PagedAttention за назвою, коли пояснює, чому vLLM обробляє одночасність по-іншому, ніж наївне налаштування обслуговування — це механізм, а не просто «краще керування пам’яттю»

Практичні вправи

  1. Поясніть різницю між фазами попереднього заповнення і декодування в одному реченні.
  2. Описати, що PagedAttention вирішує, а що не вирішує фіксоване визначення кешу KV.
  3. Напишіть речення, у якому ви поясните взаємозв’ язок пропускної здатності і затримки вашими словами.

Навигація Nuance: Precision в vLLM комунікації

Як розробник, що працює з vLLM, ви швидко виявите, що технічна майстерність не тільки в розумінні основних алгоритмів. Не менш важливо, щоб ваші ідеї були чітко, чітко і точно - особливо при співпраці з колегами, які можуть мати різні джерела або рівень знайомства з технологією. Саме тут освоєння професійного англійського словника стає критичним, особливо для тих, чия перша мова не є англійською. Ми часто чуємо про «технічний жаргон», але це більше, ніж просто спеціалізовані слова; це про те, як ви їх використовуєте, щоб ефективно передати зміст. Давайте розглянемо деякі типові сценарії і як підійти до них з точністю.

Одна з найчастіших ситуацій під час перегляду коду. Уявіть, що ви отримали такий коментар у вашому PR: « Розмір кешу KV здається надмірно великим для очікуваного навантаження. Розгляньте можливість зменшення її і спостереження за її впливом на пропускну здатність.» Простим перекладом може бути « зменшити об’ єм пам’ яті ». Однак, ця фраза не відповідає контексту і не передає * причину *, яка стоїть за пропозицією рецензента. Професійніша відповідь б підтвердила їхню точку зору безпосередньо: «Дякую за те, що ви це позначили. Я збільшив розмір кешу KV, щоб вмістити потенційні піки обсягу запитів під час годин пік. Я буду стежити за пропускною здатністю, як ви запропонували, і відповідно змінювати її. » Зауважте, як такі фрази, як « флагінг », « влаштовувати » і « відповідно змінювати » додають шар технічного розуміння і демонструють залучення до зворотного зв’ язку. Також у ній буде підкреслено вашу стратегію активного моніторингу — цінну інформацію для оцінювання рецензентом.

Інша поширена точка спілкування виникає в обговореннях Slack про оптимізацію продуктивності. Ви можете обговорювати неперервну партію з іншим інженером: « Чи можемо ми дослідити збільшення розміру партії? Ми спостерігаємо певні піки затримки під час обробки окремих запитів. » Менш витонченим варіантом було б просто сказати: « Збільшити розмір пакетів ». Проте, більш докладне пояснення є важливим. « Давайте дослідимо, як збільшення послідовного розміру пакетів впливає на пропускну здатність і затримку. Я особливо зацікавлений у спостереженні ефекту на PagedAttention - чи ми максимізуємо його переваги, використовуючи більші партії? “Це демонструє розуміння того, * чому * ви пропонуєте зміну і з’єднує її з іншим ключовим компонентом vLLM, демонструючи глибший рівень знань. Фрази на кшталт «спостерігати», «максимізувати» і «вплинути» є більш точними, ніж простіші альтернативи.

Нарешті, створення ефективних описів PR є надзвичайно важливим. Хороший опис повинен чітко описувати зміни, які було внесено, і * чому * вони були внесені. Замість того, щоб просто вказати « Реалізовано неперервну пакетну обробку », ви можете написати: « Реалізовано неперервну пакетну обробку з цільовим розміром пакета 64, щоб поліпшити пропускну здатність без значного впливу на затримку. Це відповідає рекомендаціям щодо оптимізації PagedAttention, використовуючи його здатність ефективно керувати використанням кешу KV під тривалим навантаженням. Використання « відповідає » і конкретних відомостей про розмір пакета демонструє обдуманий підхід до налаштування продуктивності.

# Example vLLM CLI command to monitor throughput (simplified)
vllm monitor --model gpt-3.5-turbo --throughput-limit 1000

За допомогою цієї команди можна отримати базовий приклад того, як можна створювати * звіт * про результати спостереження, використовуючи точну термінологію, пов’ язану з показниками швидкодії. Це не про саму команду, а про інформацію, що передається через її вивід і подальшу обговорення.

Поширені запитання

Про що ця стаття "Англійська для розробників vLLM Inference"?

Learn the English vocabulary for vLLM: PagedAttention, continuous batching, KV cache, and throughput tuning for LLM serving.

Чи безкоштовна ця стаття?

Так. Усі статті на CoderSlingo, включно з цією, доступні безкоштовно без реєстрації.

Скільки часу займає читання "Англійська для розробників vLLM Inference"?

Приблизно 6 min.