Найти тему
AI_ML

Пошаговое руководство по запуску ИИ Mistral-7b на одном GPU с помощью Google Colab

Как эффективно управлять ИИ с помощью 4-битной квантизации (с блокнотом Colab в комплекте!) .

Мир больших языковых моделей (LLM) быстро развивается, постоянно появляются такие прорывные модели, как LLAMA2 и Falcon.

27 сентября прошлого года французский стартап Mistral всколыхнул мир технологий, представив свою первую модель - Mistral 7B,
претендующую на звание самой мощной языковой модели для своего размера
на сегодняшний день. Кроме того, Mistral AI представляет собой
многообещающую возможность для Европы проложить свой собственный путь в быстро развивающейся области искусственного интеллекта.

Цель данной статьи

Цель статьи - показать вам, как эффективно загрузить и запустить Mistral 7B
AI в Google Colab, используя всего один GPU. Волшебный ингредиент
успеха? Квантование с 4-битной точностью и QLoRA, о которых будет
рассказано далее.

Здесь вы также можете найти блокнот Google Colab,

https://boosty.to/ai_ml/posts/9e155ba3-9f6e-4897-bd01-6792b61ae845?share=post_link

использованный в нашей статье, чтобы самостоятельно исследовать и экспериментировать с Mistral AI!

Что такое Мистраль 7B

Mistral-7B-v0.1 - это небольшая, но мощная модель
большого языка, адаптируемая ко многим случаям использования. Она может
выполнять различные задачи обработки естественного языка и имеет длину
последовательности 8k. Например, она оптимальна для обобщения текста,
классификации, завершения текста, завершения кода.

Вот краткая информация о Mistral 7B:

Производительность вне сравнения: Mistral 7B превосходит Llama 2 13B по всем показателям.

-2

Характеристики Mistral 7B в деталях

Более эффективный: Благодаря функциям внимания по сгруппированным запросам (GQA) и
внимания по скользящим окнам (SWA) Mistral 7B обеспечивает более
быстрый вывод и легко справляется с длинными последовательностями.

Открыт для всех: Выпущенный под лицензией Apache 2.0, Mistral 7B можно использовать без ограничений.Что такое квантование и QLoRA?

Mistral 7B может быть меньше своих аналогов, но запуск и обучение на потребительском оборудовании остается сложной задачей.

Чтобы запустить ее на одном GPU, нам нужно запустить модель с 4-битной
точностью и использовать QLoRA для уменьшения использования памяти.

Решение QLoRA

QLoRA,
что расшифровывается как Quantized LLMs with Low-Rank Adapters, - это
эффективный подход к тонкой настройке. Он использует 4-битное
квантование для сжатия предварительно обученной языковой модели без
ущерба для производительности по сравнению со стандартной 16-битной
финишной настройкой модели.

Аннотация к статье QLoRA:

Мы представляем QLoRA, эффективный подход к тонкой настройке, который
позволяет снизить потребление памяти настолько, чтобы выполнить тонкую
настройку модели с 65 параметрами на одном GPU объемом 48 ГБ, сохраняя
при этом полную 16-битную производительность задачи тонкой настройки.
[...]

В QLoRA реализован ряд инноваций для экономии памяти без снижения
производительности: (а) 4-битный NormalFloat (NF4), новый тип данных,
который теоретически оптимален для нормально распределенных весов (б)
двойное квантование для уменьшения среднего объема памяти за счет
квантования констант квантования и страничные оптимизаторы для
управления скачками памяти. [...]

Наши результаты показывают, что тонкая настройка QLoRA на небольшом
высококачественном наборе данных приводит к самым современным
результатам, даже при использовании моделей меньшего размера, чем в
предыдущем SoTA.

Пошаговое руководство

Давайте начнем! Вы также можете напрямую открыть блокнот Google Colab здесь,

Пошаговое руководство по запуску ИИ Mistral-7b на одном GPU с помощью Google Colab - AI_ML

где уже подготовлены все инструкции для изучения!

Шаг 1 - Установите необходимые пакеты

QLoRA использует биты и байты для квантования и интегрирована с библиотеками PEFT и трансформаторов Hugging Face.

Поскольку мы хотим быть уверены, что используем самые последние возможности, мы установим эти библиотеки из исходного кода.

-3

Шаг 2. Определите параметры квантования через BitsandBytesConfig из трансформаторов

Теперь мы настроим параметры QLoRA с помощью BitsandBytesConfig из библиотеки transformers.

Вот краткое объяснение аргументов, которые можно настраивать и использовать:

load_in_4bit=True: указать, что мы хотим преобразовать и загрузить модель в 4-битной точности.

bnb_4bit_use_double_quant=True: использование вложенного квантования для более эффективного использования памяти при выводе и обучении.

bnd_4bit_quant_type="nf4":
4-разрядное интегрирование поставляется с двумя различными типами
квантования FP4 и NF4. Тип NF4 означает Normal Float 4 и представлен в
документе QLoRA. По умолчанию используется квантование FP4.

bnb_4bit_compute_dype=torch.bfloat16:
compute dtype используется для изменения dtype, который будет
использоваться во время вычислений. По умолчанию dtype вычислений
установлен в float32, но для ускорения вычислений можно установить bf16.

-4

Шаг 3 - Загрузка Mistral 7B с квантованием

Теперь мы указываем ID модели, а затем загружаем в нее нашу ранее определенную конфигурацию квантования.

-5

Шаг 4 - После загрузки запустите генерацию и попробуйте!

Наконец-то мы готовы ввести Mistral 7B в действие.

Давайте начнем с проверки его возможностей по созданию текста . Вы можете использовать следующий шаблон:

-6

Модель следовала нашим инструкциям и хорошо объяснила концепцию Большой языковой модели!

-7

2. Теперь давайте проверим навыки кодирования Mistral 7B.

-8

Кажется, модель идеально подходит к коду!

-9

3. Попросим модель объяснить простыми словами, что такое большие языковые модели

-10

Подведение итоговКраткий обзор

В итоге мы убедились, что Mistral AI является очень интересной альтернативой таким популярным моделям, как LLaMA и Falcon.

Он бесплатный, компактный и при этом более эффективный. Он позволяет
полностью настроить его под себя и легко поддается тонкой настройке,
обеспечивая превосходную производительность.

В этом руководстве мы рассказали вам о том, как заставить ИИ Mistral
работать на одном GPU, используя подход QLoRA. Если вы хотите пойти
дальше, я настоятельно рекомендую ознакомиться со статьей Huggingface
"Making LLMs even more accessible with bitsandbytes, 4-bit quantization and QLoRA".

Что дальше?

В ближайшее время будут подготовлены практические руководства по
настройке Mistral AI для ваших конкретных случаев использования, в том
числе:

1) Как точно настроить Mistral 7B с помощью собственных данных:

Погрузитесь в искусство настройки Mistral 7B с помощью ваших уникальных наборов данных.

2) Как выполнить тонкую настройку Mistral 7B, используя только файлы
конфигурации YAML: Мы собираемся упростить процесс тонкой настройки,
продемонстрировав, как использовать в этом процессе конфигурационные
файлы YAML.