Home Машинное обучение Развертывание и точная настройка базовых моделей в Amazon SageMaker JumpStart с помощью двух строк кода. | DeepTech

Развертывание и точная настройка базовых моделей в Amazon SageMaker JumpStart с помощью двух строк кода. | DeepTech

0
Развертывание и точная настройка базовых моделей в Amazon SageMaker JumpStart с помощью двух строк кода.
 | DeepTech

Мы рады объявить об упрощенной версии Amazon SageMaker JumpStart SDK, которая упрощает создание, обучение и развертывание базовых моделей. Код прогнозирования также упрощается. В этом посте мы покажем, как можно использовать упрощенный SDK SageMaker Jumpstart, чтобы приступить к использованию базовых моделей всего за пару строк кода.

Дополнительную информацию об упрощенном SDK SageMaker JumpStart для развертывания и обучения см. Развертывание с минимальным количеством кода с помощью класса JumpStartModel и Тонкая настройка с низким уровнем кода с помощью класса JumpStartEstimatorсоответственно.

Обзор решения

SageMaker JumpStart предоставляет предварительно обученные модели с открытым исходным кодом для широкого спектра типов проблем, которые помогут вам начать работу с машинным обучением (ML). Вы можете постепенно обучать и настраивать эти модели перед развертыванием. JumpStart также предоставляет шаблоны решений, которые настраивают инфраструктуру для распространенных случаев использования, а также исполняемые примеры блокнотов для машинного обучения с помощью Amazon SageMaker. Вы можете получить доступ к предварительно обученным моделям, шаблонам решений и примерам через целевую страницу SageMaker JumpStart в Amazon SageMaker Studio или использовать SageMaker Python SDK.

Чтобы продемонстрировать новые возможности SageMaker JumpStart SDK, мы покажем вам, как использовать предварительно обученный Флан Т5 XL модель от Hugging Face для генерации текста для задач обобщения. Мы также покажем, как всего за несколько строк кода можно точно настроить модель Flan T5 XL для задач обобщения. Вы можете использовать любую другую модель для генерации текста, например Лама2, Соколили Мистраль ИИ.

Ноутбук для этого решения с использованием Flan T5 XL можно найти в разделе Репозиторий GitHub.

Развертывание и вызов модели

Модели Foundation, размещенные на SageMaker JumpStart, имеют идентификаторы моделей. Полный список идентификаторов моделей см. Встроенные алгоритмы с предварительно обученной таблицей моделей. В этом посте мы используем идентификатор модели генерации текста Flan T5 XL. Мы создаем экземпляр объекта модели и развертываем его в конечной точке SageMaker, вызывая его deploy метод. См. следующий код:

from sagemaker.jumpstart.model import JumpStartModel

# Replace with larger model if needed
pretrained_model = JumpStartModel(model_id="huggingface-text2text-flan-t5-base")
pretrained_predictor = pretrained_model.deploy()

Затем мы вызываем модель для создания сводки предоставленного текста с использованием модели Flan T5 XL. Новый интерфейс SDK упрощает вызов модели: вам просто нужно передать текст предиктору, и он вернет ответ модели в виде словаря Python.

text = """Summarize this content - Amazon Comprehend uses natural language processing (NLP) to extract insights about the content of documents. It develops insights by recognizing the entities, key phrases, language, sentiments, and other common elements in a document. Use Amazon Comprehend to create new products based on understanding the structure of documents. For example, using Amazon Comprehend you can search social networking feeds for mentions of products or scan an entire document repository for key phrases. 
You can access Amazon Comprehend document analysis capabilities using the Amazon Comprehend console or using the Amazon Comprehend APIs. You can run real-time analysis for small workloads or you can start asynchronous analysis jobs for large document sets. You can use the pre-trained models that Amazon Comprehend provides, or you can train your own custom models for classification and entity recognition. """
query_response = pretrained_predictor.predict(text)
print(query_response("generated_text"))

Ниже приведены выходные данные задачи суммирования:

Understand how Amazon Comprehend works. Use Amazon Comprehend to analyze documents.

Точная настройка и развертывание модели

SageMaker JumpStart SDK предоставляет вам новый класс: JumpStartEstimator, что упрощает тонкую настройку. Вы можете указать расположение данных для точной настройки и, при необходимости, также передать наборы данных проверки. После точной настройки модели используйте метод развертывания объекта Estimator для развертывания точно настроенной модели:

from sagemaker.jumpstart.estimator import JumpStartEstimator

estimator = JumpStartEstimator(
    model_id=model_id,
)
estimator.set_hyperparameters(instruction_tuned="True", epoch="3", max_input_length="1024")
estimator.fit({"training": train_data_location})
finetuned_predictor = estimator.deploy()

Настройте новые классы в SageMaker SDK.

Новый SDK упрощает развертывание и тонкую настройку моделей JumpStart за счет установки многих параметров по умолчанию. У вас по-прежнему есть возможность переопределить значения по умолчанию и настроить развертывание и вызов в соответствии с вашими требованиями. Например, вы можете настроить тип формата входных полезных данных, тип экземпляра, конфигурацию VPC и многое другое для своей среды и варианта использования.

Следующий код показывает, как переопределить тип экземпляра при развертывании модели:

finetuned_predictor = estimator.deploy(instance_type="ml.g5.2xlarge")

SDK JumpStart для SageMaker deploy Функция автоматически выберет для вас тип контента и сериализатор по умолчанию. Если вы хотите изменить тип формата входных полезных данных, вы можете использовать serializers и content_types объекты для анализа доступных вам вариантов, передав model_id модели, с которой вы работаете. В следующем коде мы устанавливаем формат ввода полезных данных как JSON, установив JSONSerializer как serializer и application/json как content_type:

from sagemaker import serializers
from sagemaker import content_types

serializer_options = serializers.retrieve_options(model_id=model_id, model_version=model_version)
content_type_options = content_types.retrieve_options(model_id=model_id, model_version=model_version)

pretrained_predictor.serializer = serializers.JSONSerializer()
pretrained_predictor.content_type="application/json"

Далее вы можете вызвать модель Flan T5 XL для задачи суммирования с полезной нагрузкой формата JSON. В следующем коде мы также передаем параметры вывода в полезные данные JSON, чтобы сделать ответы более точными:

from sagemaker import serializers

input_text= """Summarize this content - Amazon Comprehend uses natural language processing (NLP) to extract insights about the content of documents. It develops insights by recognizing the entities, key phrases, language, sentiments, and other common elements in a document. Use Amazon Comprehend to create new products based on understanding the structure of documents. For example, using Amazon Comprehend you can search social networking feeds for mentions of products or scan an entire document repository for key phrases.
You can access Amazon Comprehend document analysis capabilities using the Amazon Comprehend console or using the Amazon Comprehend APIs. You can run real-time analysis for small workloads or you can start asynchronous analysis jobs for large document sets. You can use the pre-trained models that Amazon Comprehend provides, or you can train your own custom models for classification and entity recognition. """

parameters = {
    "max_length": 600,
    "num_return_sequences": 1,
    "top_p": 0.01,
    "do_sample": False,
}

payload = {"text_inputs": input_text, **parameters} #JSON Input format

pretrained_predictor.serializer = serializers.JSONSerializer()
query_response = pretrained_predictor.predict(payload)
print(query_response("generated_texts")(0))

Если вам нужны дополнительные способы настройки входных данных и другие параметры хостинга и тонкой настройки, обратитесь к документации по JumpStartМодель и JumpStartEstimator занятия.

Заключение

В этом посте мы показали, как можно использовать упрощенный SDK SageMaker JumpStart для создания, обучения и развертывания моделей, основанных на задачах и базовых моделях, всего с помощью нескольких строк кода. Мы продемонстрировали новые классы, такие как JumpStartModel и JumpStartEstimator на примере модели Hugging Face Flan T5-XL. Вы можете использовать любую другую базовую модель SageMaker JumpStart для таких сценариев использования, как написание контента, генерация кода, ответы на вопросы, обобщение, классификация, поиск информации и многое другое. Чтобы просмотреть полный список моделей, доступных с помощью SageMaker JumpStart, см. Встроенные алгоритмы с предварительно обученной таблицей моделей. SageMaker JumpStart также поддерживает модели для конкретных задач для многих популярных типов проблем.

Мы надеемся, что упрощенный интерфейс SageMaker JumpStart SDK поможет вам быстро приступить к работе и ускорить выполнение задач. Мы с нетерпением ждем возможности услышать, как вы используете упрощенный SDK SageMaker JumpStart для создания интересных приложений!


Об авторах

Эван Кравиц — инженер-программист в Amazon Web Services, работающий над SageMaker JumpStart. Его интересует слияние машинного обучения с облачными вычислениями. Эван получил степень бакалавра в Корнелльском университете и степень магистра в Калифорнийском университете в Беркли. В 2021 году он представил доклад о состязательных нейронных сетях на конференции ICLR. В свободное время Эван любит готовить, путешествовать и совершать пробежки по Нью-Йорку.

Рахна Чадха — главный архитектор решений AI/ML в отделе стратегических счетов в AWS. Рахна — оптимистка, которая верит, что этичное и ответственное использование ИИ может улучшить общество в будущем и принести экономическое и социальное процветание. В свободное время Рахна любит проводить время с семьей, ходить в походы и слушать музыку.

Джонатан Гинеган — старший инженер-программист в Amazon SageMaker JumpStart в AWS. Он получил степень магистра в Колумбийском университете. Его интересы охватывают машинное обучение, распределенные системы и облачные вычисления, а также демократизацию использования искусственного интеллекта. Джонатан родом из Франции и сейчас живет в Бруклине, штат Нью-Йорк.

Доктор Ашиш Хетан — старший ученый-прикладник, работающий со встроенными алгоритмами Amazon SageMaker и помогающий разрабатывать алгоритмы машинного обучения. Он получил докторскую степень в Университете Иллинойса Урбана-Шампейн. Он является активным исследователем в области машинного обучения и статистического вывода и опубликовал множество статей на конференциях NeurIPS, ICML, ICLR, JMLR, ACL и EMNLP.

LEAVE A REPLY

Please enter your comment!
Please enter your name here