Улучшите и разверните Mistral 7B с помощью Amazon SageMaker JumpStart.

Воспользуйтесь Amazon SageMaker JumpStart для улучшения и расширения возможностей Mistral 7B.

Сегодня мы с радостью объявляем о возможности тонкой настройки модели Mistral 7B с использованием Amazon SageMaker JumpStart. Теперь вы можете настраивать и развертывать модели генерации текста Mistral на SageMaker JumpStart, используя Amazon SageMaker Studio UI всего лишь парой кликов или с помощью SageMaker Python SDK.

Основные модели отлично справляются с генеративными задачами от создания текста и резюме до ответов на вопросы и создания изображений и видео. Несмотря на отличные обобщающие способности этих моделей, часто возникают ситуации, когда требуется очень специфическая областная информация (например, в области здравоохранения или финансовых услуг), и эти модели не всегда могут давать хорошие результаты для таких случаев использования. Возникает необходимость в дальнейшей тонкой настройке данных генеративных AI-моделей для конкретных случаев использования и областей.

В этой статье мы расскажем, как осуществить тонкую настройку модели Mistral 7B с использованием SageMaker JumpStart.

Что такое Mistral 7B

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

Mistral 7B – это модель-трансформер, которая использует групповое внимание к запросу и скользящее окно для достижения быстрой интерференции (низкая задержка) и возможности обработки более длинных последовательностей. Групповое внимание к запросу – это архитектура, которая объединяет множественное внимание к запросу и множественное внимание к голове для достижения качества выходных данных, близкого к множественному вниманию, и сравнимой скорости с множественным запросом. Метод скользящего окна внимания использует несколько уровней модели-трансформера, чтобы сконцентрироваться на информации, полученной ранее, что помогает модели понять дольше протяженный контекст. Модель Mistral 7B имеет длину контекста 8000 токенов, обладает низкой задержкой и высокой производительностью, и демонстрирует хорошие результаты по сравнению с более крупными альтернативными моделями, обладая низкими требованиями к памяти при размере модели 7B. Модель доступна под лицензией Apache 2.0 для использования без ограничений.

Вы можете настраивать модели с помощью либо пользовательского интерфейса SageMaker Studio, либо SageMaker Python SDK. Оба метода будут рассмотрены в этой статье.

Fine-tune via the SageMaker Studio UI

В SageMaker Studio вы можете получить доступ к модели Mistral через SageMaker JumpStart в разделе Модели, блокноты и решения, как показано на следующем скриншоте.

Если вы не видите модели Mistral, обновите версию SageMaker Studio, выключив и перезапустив его. Для получения дополнительной информации о обновлениях версии обратитесь к руководству Выключить и обновить приложения Studio.

На странице модели вы можете указать бакет Amazon Simple Storage Service (Amazon S3), содержащий обучающие и проверочные наборы данных для настройки. Кроме того, вы можете настроить параметры развертывания, гиперпараметры и настройки безопасности для тонкой настройки. Затем выберите Train, чтобы запустить задание обучения на экземпляре SageMaker ML.

Deploy the model

После того, как модель будет настроена, вы сможете развернуть ее, используя страницу модели на SageMaker JumpStart. Возможность развертывания настроенной модели появится после завершения настройки, как показано на следующем скриншоте.

Осуществление точной настройки с помощью SageMaker Python SDK

Вы также можете осуществлять точную настройку моделей Mistral с помощью SageMaker Python SDK. Полный блокнот доступен на GitHub. В этом разделе мы предоставляем примеры двух типов точной настройки.

Точная настройка по инструкции

Точная настройка по инструкции – это методика, которая заключается в точной настройке языковой модели на наборе задач обработки естественного языка (NLP) с использованием инструкций. В этой методике модель обучается выполнять задачи, следуя текстовым инструкциям, а не использовать конкретные наборы данных для каждой задачи. Модель подвергается точной настройке с помощью набора входных и выходных примеров для каждой задачи, что позволяет модели обобщаться на новые задачи, на которых она не была явно обучена, при условии предоставления подсказок для задач. Точная настройка по инструкции помогает повысить точность и эффективность моделей и полезна в ситуациях, когда большие наборы данных не доступны для конкретных задач.

Далее рассмотрим код точной настройки, предоставленный в примере блокноте с использованием SageMaker Python SDK.

Мы используем подмножество набора данных Dolly в формате точной настройки по инструкции и указываем файл template.json, описывающий форматы ввода и вывода. Обучающие данные должны быть отформатированы в формате JSON-строк (.jsonl), где каждая строка представляет собой словарь, представляющий отдельный образец данных. В этом случае мы называем его train.jsonl.

Ниже приведен пример train.jsonl. Ключи instruction, context и response в каждом образце должны иметь соответствующие записи {instruction}, {context} и {response} в файле template.json.

{    "instruction": "What is a dispersive prism?",     "context": "In optics, a dispersive prism is an optical prism that is used to disperse light, that is, to separate light into its spectral components (the colors of the rainbow). Different wavelengths (colors) of light will be deflected by the prism at different angles. This is a result of the prism material's index of refraction varying with wavelength (dispersion). Generally, longer wavelengths (red) undergo a smaller deviation than shorter wavelengths (blue). The dispersion of white light into colors by a prism led Sir Isaac Newton to conclude that white light consisted of a mixture of different colors.",     "response": "A dispersive prism is an optical prism that disperses the light's different wavelengths at different angles. When white light is shined through a dispersive prism it will separate into the different colors of the rainbow."}

Ниже приведен пример template.json:

{    "prompt": "Ниже приведена инструкция, описывающая задачу, в паре с входным значением, предоставляющим дополнительный контекст. "    "Напишите ответ, который описывает соответствующую запросу задачу.\n\n"    "### Инструкция:\n{instruction}\n\n### Входные данные:\n{context}\n\n",    "completion": " {response}",}

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

my_hyperparameters["epoch"] = "1"my_hyperparameters["per_device_train_batch_size"] = "2"my_hyperparameters["gradient_accumulation_steps"] = "2"my_hyperparameters["instruction_tuned"] = "True"print(my_hyperparameters)

Затем вы можете начать процесс точной настройки и развернуть модель на точке вывода. В следующем коде мы используем экземпляр ml.g5.12xlarge:

from sagemaker.jumpstart.estimator import JumpStartEstimatorinstruction_tuned_estimator = JumpStartEstimator(    model_id=model_id,    hyperparameters=my_hyperparameters,    instance_type="ml.g5.12xlarge",)instruction_tuned_estimator.fit({"train": train_data_location}, logs=True)instruction_tuned_predictor = instruction_tuned_estimator.deploy()

Обучение существующей модели под конкретную область

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

Модель Mistral может быть настроена под любой специфический набор данных. После настройки она будет способна генерировать текст, соответствующий определенной области, и решать различные задачи обработки естественного языка в этой области. Для набора данных используйте каталог train и, при необходимости, каталог validation, каждый из которых содержит один файл CSV, JSON или TXT. Для форматов CSV и JSON используйте данные из столбца text или первого столбца, если text отсутствует. Убедитесь, что каждый каталог содержит только один файл. Например, входные данные могут быть текстовым файлом с отчетами SEC о компании Amazon:

This report includes estimates, projections, statements relating to ourbusiness plans, objectives, and expected operating results that are “forward-looking statements” within the meaning of the Private Securities LitigationReform Act of 1995, Section 27A of the Securities Act of 1933, and Section 21Eof the Securities Exchange Act of 1934. Forward-looking statements may appearthroughout this report, including the following sections: “Business” (Part I,Item 1 of this Form 10-K), “Risk Factors” (Part I, Item 1A of this Form 10-K),and “Management’s Discussion and Analysis of Financial Condition and Resultsof Operations” (Part II, Item 7 of this Form 10-K). These forward-lookingstatements generally are identified by the words “believe,” “project,”“expect,” “anticipate,” “estimate,” “intend,” “strategy,” “future,”“opportunity,” “plan,” “may,” “should,” “will,” “would,” “will be,” “willcontinue,” “will likely result,” and similar expressions.

Вы можете начать настройку модели под конкретную область, указав гиперпараметр «instruction_tuned» в значении «False». Остальные шаги аналогичны шагам настройки модели с использованием инструкций.

Мы устанавливаем значение max_input_length равным 2048 на g5.12xlarge. На более крупном типе экземпляра можно использовать большую длину входных данных. Дополнительные сведения см. в примере блокнота.

Пример вывода с использованием и без использования настройки под конкретную область

В таблице приведены результаты настройки модели Mistral 7B с использованием документов отчетности SEC компании Amazon за 2021-2022 годы. Мы сравниваем вывод до и после настройки.

Вводное сообщение Вывод до настройки Вывод после настройки Параметры
Этот отчет Form 10-K показывает, что

компания существует уже 10 лет и имеет общее количество сотрудников — 10. Компания предлагает услуги общественности, имея общее число сотрудников — 10.

У компании общее число сотрудников — 10, и она занимается предоставлением услуг общественности. У компании общее число сотрудников — 10, и она занимается предоставлением услуг общественности. У компании общее число сотрудников — 10, и она занимается предоставлением услуг общественности. У компании общее число сотрудников — 10, и она занимается предоставлением услуг общественности.

в нашей компании в 2004, 2003 и 2002 годах чистые продажи составили $1.2 млрд, $1.5 млрд и $1.8 млрд соответственно. Эти суммы включают продажи с наших международных веб-сайтов. Чистые продажи с наших международных веб-сайтов составили $323 млн, $242 млн и $150 млн в 2004, 2003 и 2002 годах. Чистые продажи с наших международных веб-сайтов составляли 27%, 16% и 8% от общих продаж в 2004, 2003 и 2002 годах. «temperature»: 0.2, «max_new_tokens»: 150,
Мы обслуживаем потребителей через

нашу розничную сеть из 1700 магазинов, включая 1200 магазинов в Соединенных Штатах, 400 магазинов в Канаде и 100 магазинов в Мексике. Мы также обслуживаем потребителей через наши интернет-магазины.

Каков

самый большой магазин товаров для дома?

The Home Depot – это самый крупный розничный магазин товаров для дома в Соединенных Штатах.

Каков

самый крупный магазин товаров для дома в мире?

Самый крупный магазин товаров для дома в мире – Home Depot.

Каков

самый большой магазин товаров для дома в

онлайн- и офлайн-магазины и фокусироваться на выборе, цене и удобстве. Мы создаем наши магазины таким образом, чтобы в них могли быть проданы сотни миллионов уникальных товаров нами и третьими лицами в десятках категорий товаров. Клиенты могут пользоваться нашими предложениями через наши веб-сайты, мобильные приложения

Как видно, точно настроенная модель предоставляет более конкретную информацию, связанную с Amazon, по сравнению с общей доступной моделью. Это происходит потому, что точная настройка адаптирует модель для понимания тонкостей, паттернов и специфики предоставленного набора данных. Используя уже предобученную модель и настраивая ее с помощью точной настройки, мы гарантируем, что вы получите лучшее из обоих миров: широкие знания предобученной модели и специализированную точность для вашего уникального набора данных. В мире машинного обучения один размер может не подойти всем, и точная настройка – это индивидуальное решение, которое вам нужно!

Заключение

В этой статье мы обсудили точную настройку модели Mistral 7B с использованием SageMaker JumpStart. Мы показали, как вы можете использовать консоль SageMaker JumpStart в SageMaker Studio или SageMaker Python SDK для точной настройки и развертывания этих моделей. В качестве следующего шага вы можете попробовать настроить эти модели на своих собственных данных, используя предоставленный код в репозитории GitHub, чтобы протестировать и проверить результаты для своих случаев использования.