Зв'язатися з нами

Майбутнє безсерверного висновку для великих мовних моделей

Штучний Інтелект

Майбутнє безсерверного висновку для великих мовних моделей

mm

Останні досягнення у великих мовних моделях (LLM), таких як GPT-4, PaLM, призвели до трансформаційних можливостей у завданнях природної мови. LLMs вбудовуються в різні програми, такі як чат-боти, пошукові системи та помічники з програмування. Однак масштабне обслуговування LLM залишається складним через значні вимоги до GPU та пам’яті.

Підходи до подолання цього зазвичай діляться на дві основні категорії:

  1. Техніка стиснення моделі

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

  • Обрізка – Видалення з моделі зайвих або менш важливих параметрів. Це створює розріджену модель із меншою кількістю параметрів.
  • Квантування – Використання чисел нижчої точності, таких як int8 або bfloat16, для представлення ваг замість fp32 або fp16. Це зменшує обсяг пам'яті.
  • Перегонка знань – Навчання меншої моделі «учня» імітувати велику модель «вчителя». Менша модель потім використовується для висновку.
  1. Вибіркове виконання

Замість стиснутих моделей ці методи вибірково виконують лише частини моделі за висновок:

  • Рідкісні активації – Пропуск обчислень при нульових активаціях.
  • Умовне обчислення – Виконання лише певних шарів залежно від вхідних даних.

На додатковій стороні щодо сторони архітектора програмного забезпечення; щоб забезпечити швидше розгортання LLM, дослідники запропонували безсерверні системи висновків. У безсерверних архітектурах LLM розміщуються на спільних кластерах GPU та розподіляються динамічно на основі попиту. Це дозволяє ефективно використовувати графічні процесори та зменшує витрати для розробників. Серед видатних реалізацій — Amazon SageMaker, Microsoft Azure ML і варіанти з відкритим кодом, такі як KServe.

Незважаючи на перспективу безсерверних LLM, існуючі системи демонструють високі накладні витрати на затримку, що погіршує взаємодію з користувачем в інтерактивних програмах:

  1. Дорогі завантаження контрольних точок: LLM мають великий обсяг пам’яті, часто від гігабайт до терабайт. Завантаження контрольних точок із віддаленого сховища займає багато часу, займаючи більше 20 секунд навіть з оптимізованими мережами.
  2. Неефективне завантаження КПП: навіть із локальним накопичувачем SSD завантаження контрольних точок у пам’ять графічного процесора займає десятки секунд через такі фактори, як десеріалізація тензорів і розподіл. Це додає значні затримки, крім часу запуску контейнера.

Щоб вирішити ці проблеми, дослідники з MIT CSAIL запропонували ServerlessLLM, інноваційна система, яка забезпечує низьку затримку безсерверного висновку для LLM. ServerlessLLM покращує локальність, використовуючи велику, але недостатньо використану ємність і пропускну здатність багаторівневого серверного сховища для розгортання LLM.

Огляд LLM безсерверних систем висновку

Огляд LLM безсерверних систем висновку

Ключові інновації в ServerlessLLM ServerlessLLM містить кілька нових конструкцій для скорочення часу завантаження LLM у безсерверних середовищах:

  1. Швидке завантаження КПП
  • Формат контрольних точок, оптимізований для завантаження, що забезпечує швидке послідовне читання та ефективну адресацію тензорів у пам’яті.
  • Багаторівневий конвеєр завантаження контрольних точок, який максимізує використання пропускної здатності в мережі, твердотільних накопичувачах, DRAM і пам’яті GPU за допомогою таких методів, як прямий ввід-вивід, передача закріпленої пам’яті та паралелізм.
  1. Жива міграція для визначення місцевості
  • Міграція на основі маркерів, яка передає через мережу лише важливі маркери підказок, уникаючи повільної передачі знімка.
  • Двофазова міграція, яка забезпечує безперервний висновок шляхом асинхронного переобчислення станів кешу на цільовому сервері перед передачею остаточних маркерів.
  1. Розподіл сервера з оптимізацією затримки
  • Точні моделі для оцінки часу завантаження контрольної точки з кожного рівня та часу міграції для сервера.
  • Планувальник з урахуванням місцевості, який вибирає сервери з мінімізацією очікуваної затримки запуску за допомогою наведених вище моделей.

Ці оптимізації дозволяють ServerlessLLM скоротити час завантаження LLM у 4-8 разів і час наскрізного запуску більш ніж у 25 разів порівняно з існуючими системами, такими як PyTorch, TensorFlow і KServe.

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

Прискорення завантаження контрольної точки

Перше велике вузьке місце, яке вирішує ServerlessLLM, — це висока затримка завантаження контрольних точок LLM зі сховища в пам’ять GPU.

Щоб забезпечити швидке завантаження контрольної точки, ServerlessLLM представляє:

  1. Формат контрольної точки, оптимізований для завантаження

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

Щоб оптимізувати використання для такого інтенсивного читання, ServerlessLLM перетворює контрольні точки у формат із двома ключовими властивостями:

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

ServerlessLLM використовує багаторівневу архітектуру серверів GPU з носіями даних, як-от SSD, і мережевим підключенням до GPU через PCIe, NVMe тощо.

Система включає багатоступінчастий конвеєр для максимального використання пропускної здатності на всіх рівнях:

  • Фрагменти даних у пам’яті розподіляються за допомогою закріпленої пам’яті для швидкої передачі GPU.
  • Прямий ввід-вивід використовується для ефективного читання SSD без накладних витрат на кешування.
  • Кілька потоків паралельно зчитують різні блоки зберігання.
  • Міжетапна координація відбувається через асинхронні черги завдань.

Разом це дозволяє наситити пропускну здатність навіть найшвидших рівнів, таких як NVMe RAID. Експерименти показують, що ServerlessLLM завантажується в 6-8 разів швидше, ніж PyTorch/TensorFlow, скорочуючи час запуску для великих LLM з понад хвилини до менше 10 секунд.

LLM, орієнтований на місцевість, за допомогою Live Migration

Завдяки прискореному завантаженню ServerlessLLM постає перед новим викликом: як використовувати попередньо завантажені контрольні точки для локальності, не перериваючи поточні висновки на зайнятих серверах?

ServerlessLLM представляє нову техніку – оперативну міграцію висновків LLM між серверами GPU. Це дозволяє безперешкодно передавати виконання на сервери з доступними локальними контрольними точками.

Ключові чинники міграції LLM в реальному часі:

  1. Міграція на основі токенів

Замість того, щоб знімати весь стан моделі, ServerlessLLM переносить через мережу лише мінімальні маркери підказок. Це передає на порядки менше даних, ніж знімки.

  1. Двофазова міграція

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

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

Планування моделі, оптимізоване за затримкою

Щоб мінімізувати наскрізну затримку, ServerlessLLM покращує планувальник для оптимізації вибору серверів з урахуванням місцевості. Це передбачає:

  1. Точний оцінювач часу завантаження

Моделі передбачають час завантаження з мережі, кеш-пам’яті SSD і пам’яті для кожного сервера, використовуючи такі показники, як затримки в черзі, розміри моделі та виміряна пропускна здатність.

  1. Точний прогноз часу міграції

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

  1. Розподіл з урахуванням місцевості

Для кожного запиту на висновок планувальник оцінює приблизний час завантаження та міграції між серверами. Він вибирає сервер, мінімізуючи очікувану затримку запуску.

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

Оцінка продуктивності ServerlessLLM

Комплексні експерименти перевіряють наскрізну ефективність ServerlessLLM порівняно з існуючими системами з використанням моделей реального світу, таких як OPT-175B, і робочих навантажень, змодельованих за трасуваннями Azure.

Ключові результати:

  • Мікротестування: ServerlessLLM прискорює завантаження контрольних точок у 3.6-8.2 раза через PyTorch/TensorFlow. Він повністю насичує пропускну здатність сховища навіть для найсучаснішого NVMe RAID.
  • Планування: ServerlessLLM зменшує затримку розподілу в 4-12 разів порівняно з довільним плануванням, підкреслюючи переваги усвідомлення місцевості. Жива міграція запобігає затримкам у чергах.
  • Наскрізне обслуговування: Для великих моделей, таких як OPT-30B, ServerlessLLM покращує затримку 99-го процентиля на 28-200 разів порівняно з такими системами, як KServe і Ray Serve. Це також підвищує ефективність використання ресурсів.

Ці суттєві досягнення демонструють здатність ServerlessLLM долати вузькі місця в існуючих безсерверних реалізаціях та розкривати можливості LLM для інтерактивних сервісів.

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

Погляд у майбутнє: поточні виклики

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

  • Прогнозування попиту на моделі в режимі реального часу для керування наданням і попереднім завантаженням
  • Розумне розміщення контрольних точок на серверах для максимізації звернень до кешу
  • Ефективне масштабування алгоритмів планування для обробки великих кластерів
  • Забезпечення справедливого розподілу ресурсів між моделями та розробниками
  • Узагальнення інновацій, таких як оперативна міграція до інших безсерверних робочих навантажень

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

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

Останні п’ять років я провів, занурюючись у захоплюючий світ машинного та глибокого навчання. Моя пристрасть і досвід допомогли мені внести свій внесок у понад 50 різноманітних проектів розробки програмного забезпечення, зосередивши особливу увагу на ШІ/ML. Моя постійна цікавість також привела мене до обробки природної мови, галузі, яку я хочу досліджувати далі.