Боретеся зі штучним інтелектом або повним циклом розробки? Наші експерти допоможуть вам: індивідуальні консультації, технічна інтеграція та багато іншого. Звертайтеся за адресою [email protected].

Розгортання генеративної моделі Mistral 7b на графічному процесорі A10 в AWS

Summary

Цей хмарний курс з NLP показує, як розгортати та використовувати модель генеративного ШІ Mistral 7b на графічному процесорі NVIDIA A10 в AWS.

Модель Mistral 7b перевершує LLaMA 3 7b за всіма показниками і LLaMA 3 13b за багатьма показниками. Фактично він навіть на одному рівні з моделлю LLaMA 1 34b.

Для його розгортання та використання потрібно щонайменше 15 ГБ оперативної пам'яті, тому нам потрібен графічний процесор A10 з щонайменше 24 ГБ оперативної пам'яті.

Ось структура курсу:

Transcript

Привіт, це Джуліан Сайнас з NLP Cloud.

Сьогодні ми подивимося, як розгорнути генеративну модель Mistral 7b на графічному процесорі AWS A10.

Mistral 7b - це найсучасніша генеративна модель, випущена французькою компанією Mistral AI.

Ця модель була випущена у вересні 2023 року і перевершує Lama 2 7b за всіма офіційними бенчмарками.

Що ще цікавіше, він також перевершує Lama 2 13b за багатьма показниками і знаходиться на одному рівні з Lama 1 34b.

Mistral AI випустила цю модель з ліцензією Apache, яка дозволяє використовувати її як завгодно.

Команда випустила як базову модель, так і доопрацьовану версію чату.

Сьогодні в цьому відео ми розгорнемо версію чату.

Mistral 7b вимагає щонайменше 14 гігабайт віртуальної пам'яті і більше у випадку великого розміру контексту.

Тому ми розгорнемо його на графічному процесорі NVIDIA A10 на AWS, оскільки цей графічний процесор має 24 гігабайти віртуальної пам'яті і є досить економічно вигідним.

Найпростіший спосіб розгортання Mistral 7b - це використання фреймворку Hugging Face і дотримання офіційних інструкцій Mistral AI.

На першому етапі нам потрібно вибрати правильну машину AWS.

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

Тут у вас є список всіх прискорених апаратних екземплярів, які надає AWS, і той, який ми хочемо сьогодні - це G5.

Як ви можете бачити тут, G5 має графічний процесор A10, а це саме те, що нам потрібно.

Існує кілька смаків екземплярів G5.

Деякі мають лише один графічний процесор, деякі - чотири або вісім.

Одного графічного процесора нам достатньо, тому що на ньому достатньо віртуальної пам'яті, але ми повинні бути дуже обережними з кількістю пам'яті, яку має екземпляр, тому що коли ми запустимо модель Mistral 7b, нам тимчасово знадобиться деяка пам'ять для завантаження моделі.

Саме тому сьогодні ми виберемо великий екземпляр G5 4X, оскільки 64 гігабайт повинно бути достатньо.

Тепер я перемикаюся на свою консоль AWS і натискаю "Запустити екземпляр".

Назвемо це випробування А10 "Містраль".

Ми виберемо ОС Ubuntu, але є одна хитрість.

Ми не хочемо вибирати стандартну ОС Ubuntu, тому що нам доведеться вручну встановлювати на неї драйвери NVIDIA, а це дуже болісно.

Ми виберемо сервер Deep Learning AMI GPU PyTorch, який набагато кращий, тому що цей AMI поставляється з Ubuntu плюс драйвери NVIDIA, плюс набір інструментів CUDA, плюс PyTorch та інші речі, які нам знадобляться сьогодні для наших тестів.

Тут ми обираємо великий екземпляр G5 4X.

Якщо у вас немає пари ключів, вам потрібно її створити.

Якщо ви робите це вперше і не зовсім впевнені, як підключити VS Code до вашого екземпляра AWS, я рекомендую вам переглянути наше спеціальне відео про віддалене середовище розробки з VS Code на AWS.

Не потрібно відкривати інші порти, і я рекомендую вам додати близько 100 гігабайт на диск.

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

Натискаємо Запустити екземпляр.

Добре, він створений.

Якщо у вас виникли проблеми з квотами, тому що, можливо, ви вперше запускаєте 8N GPU, я рекомендую вам звернутися до служби підтримки AWS.

Зараз я беру публічний IP тут, а також переходжу на VS Code.

Внизу ліворуч вам потрібно підключити поточне вікно до хосту, і спочатку вам потрібно налаштувати хости.

Ось, це IP-адреса, яку я щойно отримав з AWS, а це мій SSH-ключ.

Я зберігаю файл і роблю те саме ще раз, і цього разу натискаю Містраль 7Б.

Я хочу прийняти новий відбиток пальця.

Чудово.

Зараз ми працюємо на нашій машині з графічним процесором 8N.

Спочатку перевіримо, чи встановлені потрібні драйвери для графічного процесора.

З NVIDIA SMI - ідеально.

Я бачу, що у мене тут графічний процесор 8N, і він порожній, тож сьогодні у мене майже 24 гігабайти VRAM для моєї моделі.

Я створюю тестову директорію, яку відкрию за допомогою VS Code, а тепер створюю тестовий файл.

Може, назвемо його infer.py.

Отже, що ми повинні помістити в цей файл infer.py? Легко.

Перейдемо до нашої моделі ШІ Mistral на Hugging Face.

Якщо ви вперше завантажуєте модель на Hugging Face, в принципі, ви можете зайти сюди, і у вас є безліч доступних моделей.

Ви можете натиснути тут і ввести Mistral 7B.

Як бачите, "Містраль" вже був у верхній частині списку, тому що це дуже модно в наші дні.

Я виберу модель Instruct, тому що з нею сьогодні веселіше грати, і тут я просто дотримуюся вказівок від команди ШІ Mistral.

Тому я просто копіюю код у VS Code.

Як є, це не спрацює, оскільки перед цим нам потрібно буде встановити бібліотеку Transformers.

Оскільки ця модель Містраля 7B була щойно додана до Трансформерів, вона ще не доступна в пакеті PyPy, але це не проблема.

Ми встановимо Transformers безпосередньо з репозиторію GitHub.

Добре.

Тепер трансформатори правильно встановлені.

Останнє, що нам потрібно зробити, це використати версію моделі з плаваючою комою 16, тому що якщо ми використаємо версію моделі за замовчуванням з плаваючою комою 32, вона буде занадто великою для нашого графічного процесора A10, а в більшості випадків різниця між FP16 і FP32 для такого типу моделей абсолютно не помітна.

Отже, що нам потрібно зробити сьогодні - це імпортувати Torch і додати цей параметр, Torch dtype, при завантаженні моделі.

Добре.

Тепер спробуємо запустити скрипт виведення.

Добре.

Отже, у нас є правильний рецепт про майонез.

Може, спробуємо щось інше.

Давайте запитаємо модель, як встановити Transformers на сервер Linux.

Ми можемо це прибрати.

Добре.

Отже, CSS, я не впевнений, чому.

Це звучить правильно, за винятком CSS-розмітки.

Я не знаю, навіщо ця деталь, але думаю, що цього достатньо, щоб показати вам, що це гарна модель 7B, і тепер ви знаєте, як нею користуватися, тож тепер ваша черга.

Тепер ви знаєте, як розгорнути модель Mistral 7B на власному сервері.

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

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

У такому випадку вам потрібно буде розбити модель на декілька менших графічних процесорів.

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

Гарного дня.