Этот облачный курс по NLP показывает, как развернуть и использовать генеративную модель ИИ Mistral 7b на NVIDIA A10 GPU в AWS.
Модель Mistral 7b превосходит LLaMA 3 7b во всех бенчмарках и LLaMA 3 13b во многих бенчмарках. Фактически она даже находится на одном уровне с моделью LLaMA 1 34b.
Для его развертывания и использования требуется не менее 15 Гбайт VRAM, поэтому нам необходим графический процессор A10 с объемом VRAM не менее 24 Гбайт.
Вот структура курса:
Здравствуйте, это Жюльен Сайнас из компании 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 гигабайт виртуальной памяти, а в случае большого размера контекста - и того больше.
Поэтому мы развернем его на графическом процессоре A10 NVIDIA на AWS, так как этот GPU имеет 24 гига виртуальной памяти и является достаточно экономичным.
Самый простой способ развертывания Mistral 7b - использовать фреймворк Hugging Face и следовать официальным рекомендациям Mistral AI.
В качестве первого шага нам необходимо выбрать подходящую машину AWS.
В AWS существует множество машин, поэтому лучший совет, который я могу вам дать, - это начать со страницы типов экземпляров, а затем перейти к разделу Accelerated Computing слева.
Здесь представлен список всех ускоренных аппаратных экземпляров, которые предоставляет AWS, и тот, который нам нужен сегодня, - это G5.
Как видно, в G5 установлен графический процессор A10, что нам и нужно.
Существует несколько разновидностей экземпляров G5.
Некоторые из них имеют только один GPU, другие - четыре или восемь.
Нам достаточно одного GPU, поскольку виртуальной памяти на нем достаточно, но мы должны быть очень внимательны к объему памяти экземпляра, поскольку, когда мы запустим модель Mistral 7b, нам временно потребуется некоторое количество памяти для загрузки модели.
Именно поэтому сегодня мы выберем большой экземпляр G5 4X, поскольку 64 гигабайт должно хватить.
Теперь я перехожу в консоль AWS и нажимаю кнопку Launch Instance.
Назовем его Test A10 Mistral.
Мы выберем ОС Ubuntu, но здесь есть одна хитрость.
Мы не хотим выбирать стандартную ОС Ubuntu, так как придется вручную устанавливать на нее драйверы NVIDIA, а это очень мучительно.
Мы выберем сервер Deep Learning AMI GPU PyTorch, который гораздо лучше, потому что этот AMI поставляется с Ubuntu, драйверами NVIDIA, инструментарием CUDA, PyTorch и другими вещами, которые нам сегодня понадобятся для наших тестов.
Здесь мы выбираем большой экземпляр G5 4X.
Если у вас нет пары ключей, ее необходимо создать.
Если вы делаете это впервые и не совсем понимаете, как подключить VS Code к вашему экземпляру AWS, рекомендую посмотреть наше специальное видео об удаленной среде разработки с VS Code на AWS.
Не нужно открывать другие порты, и я рекомендую добавить, возможно, 100 гигов диска.
Теоретически модель должна занимать всего 20 гигабайт жесткого диска, но всегда лучше иметь больше, потому что нам, возможно, понадобится установить библиотеки, так что здесь мы подстрахуемся.
Нажмем кнопку Launch Instance.
Хорошо, он создан.
Если у вас возникла проблема с квотой, поскольку, возможно, вы впервые запускаете 8N GPU, я рекомендую обратиться в службу поддержки AWS.
Здесь я беру публичный IP, а теперь переключаюсь на VS Code.
В левом нижнем углу необходимо подключить текущее окно к хосту, причем сначала нужно настроить хосты.
Вот, это IP-адрес, который я только что получил от AWS, а это мой SSH-ключ.
Я сохраняю файл и снова проделываю те же действия, на этот раз я выбираю Mistral 7B.
Я хочу принять новый отпечаток пальца.
Идеально.
Теперь мы находимся на нашей машине с 8N GPU.
Сначала проверим, имеются ли для GPU подходящие драйверы.
С NVIDIA SMI - идеально.
Я вижу, что у меня здесь 8N GPU и что он пуст, так что на сегодня у меня почти 24 гига VRAM для моей модели.
Я создаю тестовый каталог, который буду открывать с помощью VS Code, и теперь создаю тестовый файл.
Может быть, назовем его infer.py.
Что же мы должны поместить в этот файл infer.py? Легко.
Перейдем к нашей модели ИИ "Мистраль", посвященной обнимающемуся лицу.
Если вы впервые загружаете модель на Hugging Face, то, в принципе, вы можете перейти сюда, к моделям, и у вас будет масса доступных моделей.
Вы можете щелкнуть здесь и набрать Mistral 7B.
Как видите, "Мистраль" уже был на первом месте в списке, поскольку он очень моден в наши дни.
Я выберу модель Instruct, потому что с ней сегодня интереснее играть, а здесь я просто следую указаниям команды Mistral AI.
Поэтому я просто копирую-вставляю код в VS Code.
В существующем виде он работать не будет, так как перед этим нам необходимо установить библиотеку Transformers.
Так как эта модель Mistral 7B только что была добавлена в Transformers, она еще не доступна в пакете PyPy, но это не проблема.
Мы установим Transformers непосредственно из репозитория GitHub.
Хорошо.
Теперь Transformers установлен правильно.
Последнее, что нам нужно сделать, - это использовать 16-ю версию модели с плавающей точкой, поскольку если мы будем использовать версию модели по умолчанию с плавающей точкой 32, то она будет слишком большой для нашего графического процессора A10, а в большинстве случаев разница между FP16 и FP32 для такого рода моделей абсолютно не заметна.
Поэтому сегодня нам нужно импортировать Torch и добавить этот параметр, Torch dtype, при загрузке модели.
Хорошо.
Теперь попробуем запустить скрипт вывода.
Хорошо.
Итак, у нас есть правильный рецепт майонеза.
Может быть, мы попробуем что-нибудь другое.
Зададимся моделью, как установить Transformers на Linux-сервер.
Мы можем это устранить.
Хорошо.
Так что CSS, я не уверен, почему.
Все звучит правильно, за исключением разметки CSS.
Я не уверен, зачем нужна эта деталь, но думаю, что этого достаточно, чтобы показать, что это хорошая модель 7B, и теперь вы знаете, как ее использовать, так что теперь ваша очередь.
Теперь вы знаете, как развернуть модель Mistral 7B на собственном сервере.
Как видите, это не обязательно сложно, тем более что сегодня мы используем только один единственный графический процессор.
Если у вас нет графического процессора A10 с достаточным объемом виртуальной памяти, вам может понадобиться несколько графических процессоров меньшего размера.
В этом случае необходимо разделить модель на несколько небольших GPU.
Это будет несколько сложнее, и для этого нам понадобится еще один специальный видеоролик.
Всего доброго.