Перейти до вмісту
Mihail Leybuk-Galin — головна

Оптимізація затримки виведення для великих мовних моделей у виробничих середовищах.

Орієнтований на виробництво погляд на зменшення затримки відповіді LLM шляхом оптимізації контексту, безперервної пакетної обробки, кешування KV, квантування, інтелектуальної маршрутизації моделей та архітектури виводу з урахуванням GPU.

Mihail Leybuk-GalinСистемний архітектор

1. Затримка є системною властивістю

Коли робочий LLM-застосунок здається повільним, зазвичай спочатку звинувачують саму модель. На практиці модель являє собою лише один компонент набагато довшого шляху запиту.

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

Оптимізація лише кількості необроблених токенів за секунду може забезпечити чудові показники без суттєвого покращення сприйнятої продуктивності. Перший крок – визначити бюджет затримки та визначити, на що витрачається кожна мілісекунда.

2. Критичний шлях висновків LLM

Висновок LLM містить дві принципово різні фази: попереднє заповнення та декодування. Попереднє заповнення обробляє вхідний контекст паралельно, тоді як декодування генерує вихідні токени послідовно.

Критичний шлях запиту на виробництво LLM

Критичний шлях запиту на виробництво LLM

Відкрити повнорозмірне зображення

Для інтерактивних застосунків найважливішим показником часто є час до першого токена (TTFT). Відповідь, яка починається протягом кількох сотень мілісекунд і потоково передає дані поступово, зазвичай відчувається швидшою, ніж та, яка залишається без звуку протягом кількох секунд.

Довжина запиту безпосередньо впливає на вартість попереднього заповнення. Великі вікна контексту не є вільною потужністю: кожен непотрібний токен споживає обчислювальні ресурси, пропускну здатність пам'яті та простір кешу KV. Тому контекст потрібно розглядати як бюджет інфраструктури.

3. Оптимізація обчислень та пам'яті

Після інструментального забезпечення шляху запиту найбільший приріст зазвичай досягається за рахунок підвищення ефективності графічного процесора та зменшення непотрібної роботи на запит. Безперервна пакетна обробка, кешування KV, кешування префіксів, квантування та корекція розміру моделі найкраще працюють у поєднанні, а не окремо.

inference.yaml

# Production inference profile
model:
  precision: fp8
  max_context_tokens: 16384

scheduler:
  continuous_batching: true
  max_concurrent_sequences: 128
  max_batch_tokens: 32768

cache:
  kv_cache: true
  prefix_cache: true

response:
  streaming: true
  cancel_on_disconnect: true

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

Квантування зменшує навантаження на пам'ять, але найпотужніша оптимізація часто є архітектурною: направляти прості запити на класифікацію, вилучення та підсумовування до менших моделей, резервуючи найбільшу модель для завдань міркування, які дійсно цього потребують.

4. Проектування архітектури обслуговування з низькою затримкою

Системи виробничого виводу повинні ізолювати компоненти з різними характеристиками масштабування. Вибіркові робочі процеси, процеси API, пули виводів та потокові з'єднання не повинні конкурувати за однакові ліміти або масштабування, використовуючи один і той самий сигнал.

Стратегія маршрутизації

Маленька модель

Класифікація, вилучення, маршрутизація

Середня модель

Підсумовування та генерація стандартів

Велика модель

Складні міркування та ескалація

Автоматичне масштабування повинно використовувати сигнали, специфічні для логічного висновку, такі як глибина черги, TTFT p95, активні послідовності, використання графічного процесора та зайнятість кешу KV. Використання процесора саме по собі зазвичай є поганим показником навантаження на графічний процесор.

5. Результати та показники

Оптимізацію виробництва слід вимірювати з урахуванням затримки, пов'язаної з користувачем, ефективності обладнання та вартості, а не лише за сукупною контрольною пропускною здатністю.

Цільовий TTFT p95
650мс
Використання графічного процесора
82%
Вартість за покоління
-46%

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