Разверните и настройте базовые модели в Amazon SageMaker JumpStart всего лишь двумя строками кода

Базовые модели в Amazon SageMaker JumpStart разверните и настройте всего двумя строками кода

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

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

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

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

Чтобы продемонстрировать новые возможности SDK SageMaker JumpStart, мы покажем вам, как использовать предварительно обученную модель Flan T5 XL от Hugging Face для генерации текста в задачах суммаризации. Мы также покажем, как всего за несколько строк кода можно настроить модель Flan T5 XL для задач суммаризации. Вы можете использовать любую другую модель для генерации текста, такую как Llama2, Falcon или Mistral AI.

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

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

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

from sagemaker.jumpstart.model import JumpStartModel# Replace with larger model if neededpretrained_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"])

Ниже представлен результат задания по суммированию:

Понимание того, как работает Amazon Comprehend. Использование Amazon Comprehend для анализа документов.

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

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

from sagemaker.jumpstart.estimator import JumpStartEstimatorestimator = 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()

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

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

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

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

from sagemaker import serializersfrom sagemaker import content_typesserializer_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 serializersinput_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} # Формат ввода JSONpretrained_predictor.serializer = serializers.JSONSerializer()query_response = pretrained_predictor.predict(payload)print(query_response["generated_texts"][0])

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

Заключение

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

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