Швидкість думки: Як VLLM пришвидшує майбутнє генеративного штучного інтелекту
Автор: Ліла Гарт
Уявіть собі: ви звертаєтесь до чат-бота, а відповідь з’являється миттєво, ніби думка матерійнозувалася. Або ж, навпаки, відчуваєте те моторошне очікування, коли велика мовна модель (LLM) «обмірковує» ваше запитання. Що ж ховається за лаштунками цієї магії, цієї швидкості взаємодії з інтелектом? Як зробити так, щоб інтелект працював на повну, не гальмуючи на кожному кроці?
Відповідь, друзі, ховається в серці технології, у вільному доступі для всіх: у проєкті VLLM, розробленому в стінах Каліфорнійського університету в Берклі. Це секрет, що прискорює роботу ваших улюблених чатботів, кодових помічників та багатьох інших додатків, що живляться штучним інтелектом.
Я вирішила заглибитися в цю тему, бо й сама була вражена здатністю штучного інтелекту мислити швидко. І мені захотілося зрозуміти, як саме це відбувається. Тож давайте розберемося разом, які виклики стоять перед запуском великих мовних моделей, і як VLLM намагається їх подолати, відкриваючи нові горизонти реального часу для штучного інтелекту.
Виклики сьогодення: Коли “думати” стає дорого
По суті, LLM – це машини передбачення, свого роду кришталеві кулі. Вони з величезною швидкістю генерують слова, фрази, відповіді, використовуючи колосальні обчислювальні ресурси. Запуск такого “провидця” на віртуальній машині або в Kubernetes вимагає просто неймовірних обчислень, щоб згенерувати кожне слово, кожен відповідь. Це зовсім не схоже на звичні робочі навантаження. І це, як не крути, дорого, повільно та вимагає багато пам’яті.
Для тих, хто прагне використовувати LLM у виробництві, можуть виникнути проблеми з використанням пам’яті. Традиційні фреймворки, що використовуються для обслуговування моделі, іноді неефективно розподіляють пам’ять графічного процесора (GPU). Це марнує дорогі ресурси та змушує організації купувати більше обладнання, ніж потрібно, просто щоб обслуговувати одну модель.
Ще одна сторона медалі – затримка (latency). Чим більше користувачів взаємодіють з LLM, тим повільніше модель видає відповіді. Це пов’язано з вузькими місцями пакетної обробки, що призводить до уповільнення роботи.
І нарешті, масштабованість. Щоб інтегрувати модель в велику організацію, необхідно вийти за рамки пам’яті та обчислювальних можливостей єдиного графічного процесора. Це вимагає складних налаштувань і розподілених систем, які додають додаткові накладні витрати та технічну складність.
Висновок простий: обслуговування LLM повинно бути ефективним та доступним. Тут і з’являється VLLM.
VLLM: Інтелект на швидкості світла
Саме з цією метою з’явилася наукова стаття від Каліфорнійського університету в Берклі, де представили алгоритм і проєкт з відкритим вихідним кодом під назвою VLLM. Він ставить собі за мету вирішити проблеми від фрагментації пам’яті до пакетного виконання та розподілу виведення.
Вражаючі результати: проєкт продемонстрував збільшення пропускної здатності в 24 рази порівняно з подібними системами, як-от Hugging Face Transformers та TGI (Text Generation Inference).
Згодом проєкт постійно покращував продуктивність та використання ресурсів графічного процесора, одночасно зменшуючи затримку. Але як саме це відбувається?
Ключ до швидкої відповіді: Paged Attention
У оригінальній статті представили алгоритм під назвою Paged Attention. Цей алгоритм використовується VLLM для кращого керування ключами та значеннями уваги (K.V. кеш), які використовуються для генерації наступних токенів.
Замість того, щоб зберігати все відразу в безперервному просторі пам’яті, алгоритм розділяє пам’ять на керовані частини, наче сторінки в книзі. Він отримує доступ лише до необхідного в потрібний момент, як віртуальна пам’ять у вашому комп’ютері. Уявіть собі, як ви швидко гортаєте сторінки книги, щоб знайти потрібний уривок, замість того, щоб намагатися вмістити всю книгу в голові одночасно.
Конвейєр, оптимізований для штучного інтелекту:
Що ж далі? VLLM працює по-іншому. Замість обробки запитів по черзі, як на складальній лінії, він групує разом запити з використанням безперервної пакетної обробки (continuous batching). Це дає змогу негайно заповнювати слоти графічного процесора, як тільки послідовності завершуються.
Крім того, впроваджуються різні оптимізації для обслуговування моделей. Наприклад, оптимізація драйверів CUDA для максимізації продуктивності на конкретному обладнанні.
VLLM у вашому арсеналі:
Найімовірніше, ви будете розгортати мовну модель у Linux, будь то віртуальна машина чи кластер Kubernetes. VLLM можна використовувати як середовище виконання (runtime) або як інструмент командного рядка.
Встановлення відбувається за допомогою команди pip
: pip install vllm
. Ви зможете використовувати його у своєму терміналі для завантаження та обслуговування моделей з точкою доступу OpenAI API, сумісною з вашими наявними програмами та сервісами.
VLLM оптимізовано для квантованих (стислих) моделей, що дозволяє економити ресурси графічного процесора, зберігаючи при цьому точність моделі.
Висновок:
VLLM – один з багатьох інструментів, які використовуються для обслуговування LLM. Але він швидко набирає популярність. Він прискорює роботу, зменшує затримку та оптимізує використання ресурсів. Він прокладає шлях до майбутнього, де взаємодія з інтелектом буде швидкою, безперебійною та доступною кожному з нас.
Якщо у вас є запитання або коментарі щодо моделей та виведення, будь ласка, залишайте їх в коментарях нижче! І не забудьте підписатися, щоб отримати більше матеріалів про штучний інтелект та інші захопливі сфери.