AlexaTM 20B теперь доступен в Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

AlexaTM 20B теперь доступен в Amazon SageMaker JumpStart

Сегодня мы объявляем о публичной доступности ультрасовременной платформы Amazon. Модель учителя Alexa с 20 миллиардами параметров  (AlexaTM 20B) через Amazon SageMaker JumpStart, центр машинного обучения SageMaker. AlexaTM 20B — это многоязычная крупномасштабная языковая модель «последовательность к последовательности» (seq2seq), разработанная Amazon. Вы можете использовать AlexaTM 20B для широкого спектра отраслевых сценариев использования, от сводных финансовых отчетов до ответов на вопросы чат-ботов службы поддержки клиентов. Его можно применять даже тогда, когда имеется всего несколько доступных обучающих примеров или вообще их нет. АлексаTM 20B Превосходит 175 миллиардов Модель ГПТ-3 в задачах нулевого выстрела, таких как SuperGLUE, и демонстрирует современную производительность для многоязычных задач нулевого выстрела, таких как XNLI.

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

AlexaTM 20B и контекстное обучение

Программа Alexa Teacher Model (AlexaTM) от Amazon Alexa AI предназначена для создания крупномасштабных многоязычных моделей глубокого обучения (в основном на основе Transformer) с целью улучшения обобщения и обработки нехватки данных для последующих задач. Благодаря крупномасштабному предварительному обучению модели учителей могут хорошо обобщаться, чтобы изучать новые задачи из разреженных данных и помогать разработчикам повышать производительность при выполнении последующих задач. AlexaTM 20B показал конкурентоспособность на общих тестах и ​​задачах обработки естественного языка (NLP), таких как машинный перевод, генерация данных и обобщение.

Использование базовых моделей, таких как AlexaTM 20B, снижает потребность в дорогостоящем предварительном обучении моделей и обеспечивает современную отправную точку для разработки моделей задач с меньшими усилиями и меньшим объемом обучающих данных для конкретной задачи. Одной из ключевых возможностей базовых моделей является то, что мы можем научить модель выполнять новые задачи, такие как вопросы и ответы на разных языках, с очень небольшим количеством входных примеров и без необходимости тонкой настройки или градиентных обновлений. Это известно как контекстное обучение. Имея всего несколько примеров новой задачи, представленной в качестве контекста для вывода, модель AlexaTM 20B может передавать знания, полученные во время крупномасштабного предварительного обучения, даже на разных языках. Это называется обучение в несколько выстрелов. В некоторых случаях модель может хорошо работать вообще без каких-либо обучающих данных, а только с объяснением того, что должно быть предсказано. Это называется беспроблемное обучение. Например, предположим, что мы используем AlexaTM 20B для одноразовой генерации естественного языка. Входные данные, передаваемые модели, представляют собой обучающий пример в форме пар атрибут-значение вместе с соответствующим выходным текстовым описанием. Затем к тестовому примеру добавляется полная подсказка ввода, как показано на следующем рисунке.

Чтобы узнать больше о модели, см. Модель Alexa с 20B-параметрами устанавливает новые стандарты в обучении за несколько шагов или оригинал бумаги.

Использование AlexaTM 20B доступно для некоммерческого использования и подпадает под действие Лицензионное соглашение модели учителя Alexa.

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

В следующих разделах представлена ​​пошаговая демонстрация того, как развертывать модель, выполнять логические выводы и проводить контекстное обучение для решения задач обучения, состоящих из нескольких шагов.

Обратите внимание, что следующий раздел содержит фрагменты кода; полный код со всеми шагами в этой демонстрации доступен в прилагаемой записной книжке: Контекстное обучение с AlexaTM 20B в SageMaker JumpStart.

Развернуть модель

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

SageMaker дает вам возможность широко запускать контейнеры Docker для обучения и создания логических выводов. JumpStart использует эти доступные Контейнеры глубокого обучения SageMaker (DLC). Начнем с загрузки оптимизированного DLC (deploy_image_uri) используя model_id. Затем мы получаем model_uri содержащий параметры модели, а также сценарии обработки логического вывода и любые связанные зависимости. Далее мы создаем экземпляр модели в SageMaker и разверните его на конечной точке в реальном времени. См. следующий код:

# model_version="*" fetches the latest version of the model
model_id, model_version = "pytorch-textgeneration1-alexa20b", "*"

instance_type = "ml.g4dn.12xlarge"

# Retrieve the inference docker container uri
deploy_image_uri = image_uris.retrieve(
    region=None,
    framework=None,  # automatically inferred from model_id
    image_scope="inference",
    model_id=model_id,
    model_version=model_version,
    instance_type=inference_instance_type,
)

# Retrieve the model uri. This includes the model parameters, all dependencies and scripts for model loading, inference handling etc.
 model_uri = model_uris.retrieve(
 model_id=model_id, 
 model_version=model_version, 
 model_scope="inference")

Для развертывания AlexaTM 20B требуется экземпляр с поддержкой графического процессора с не менее 50 ГБ памяти ЦП и не менее 42 ГБ памяти графического процессора. SageMaker предоставляет множество таких экземпляров, поддерживающих вывод в реальном времени. Мы протестировали это решение на трех экземплярах: ml.g4dn.12xlarge, ml.p3.8xlarge, ml.p3.16xlarge. См. следующий код:

env = {
        "SAGEMAKER_MODEL_SERVER_TIMEOUT": str(3600),
        "MODEL_CACHE_ROOT": "/opt/ml/model",
        "SAGEMAKER_ENV": "1",
        "SAGEMAKER_SUBMIT_DIRECTORY":"/opt/ml/model/code/",
        "SAGEMAKER_PROGRAM": "inference.py",
        "SAGEMAKER_MODEL_SERVER_WORKERS": "1", # One worker for the endpoint rather than one worker per GPU by default
        "TS_DEFAULT_WORKERS_PER_MODEL":"1" # 1 TS worker which allocates all memory to the single master worker.
    }
    
#Create the SageMaker model instance. Note that we need to pass Predictor class when we deploy model through Model class,
#for being able to run inference through the sagemaker API.
model = Model(
    image_uri=deploy_image_uri,
    model_data=model_uri,
    role=aws_role,
    predictor_cls=Predictor,
    name=endpoint_name,
    env=env
)

Затем мы развертываем модель на конечной точке SageMaker в реальном времени:

# deploy the Model.
model_predictor = model.deploy(
    initial_instance_count=1,
    instance_type=instance_type,
    endpoint_name=endpoint_name,
    volume_size= volume_size, # Specify the size of the Amazon EBS volume in GBs.
    model_data_download_timeout = 3600, # Specify the model download timeout in seconds.
    container_startup_health_check_timeout = 3600, # Specify the health checkup timeout in seconds
)

AlexaTM 20B требует 40 ГБ дискового пространства в контейнере логических выводов. Экземпляр ml.g4dn.12xlarge соответствует этому требованию. Например, для типов ml.p3.8xlarge и ml.p3.16xlarge мы присоединяем Магазин эластичных блоков Amazon (Amazon EBS) для работы с моделями большого размера. Поэтому мы устанавливаем volume_size = None при развертывании на ml.g4dn.12xlarge и volume_size=256 при развертывании на ml.p3.8xlarge или ml.p3.16xlarge.

Развертывание модели может занять до 10 минут. После развертывания модели мы можем получать от нее прогнозы в режиме реального времени!

Запустить вывод

AlexaTM 20B — это модель генерации текста, которая на основании частичной последовательности (предложения или фрагмента текста) генерирует следующий набор слов. Следующий фрагмент кода дает представление о том, как запрашивать конечную точку, которую мы развернули, и анализировать выходные данные для задачи автоматического завершения. Для отправки запросов к развернутой модели мы используем словарь JSON, закодированный в формате UTF-8. Ответ конечной точки — это объект JSON, содержащий список сгенерированных текстов.

def query(model_predictor, text, kwargs = None):
    """Query the model predictor."""

    payload = {"text_inputs": text}
    if kwargs is not None:
        payload.update(kwargs)
        
    encoded_inp = json.dumps(payload).encode("utf-8")

    query_response = model_predictor.predict(
        encoded_inp,
        {
            "ContentType": "application/json",
            "Accept": "application/json",
        },
    )
    return query_response
 
def parse_response(query_response):
    """Parse response and return the generated texts."""

    model_predictions = json.loads(query_response)
    generated_texts = model_predictions["generated_texts"]
    return generated_texts

Затем мы запрашиваем конечную точку и анализируем ответ на образце входного текста:

# text can be a single string or a list of strings
text = “[CLM]My name is Lewis and I like to"
kwargs = {"num_beams": 5, "no_repeat_ngram_size": 2, “max_length”: 50}
query_response = query_endpoint(model_predictor, text, kwargs)
generated_texts = parse_response(query_response)

Generated_texts: “travel and meet new people. I have been to many countries and I like to meet people from all over the world. If you are interested in meeting me, please feel free to send me a message and we can arrange a meeting.”

AlexaTM 20B в настоящее время поддерживает 10 параметров генерации текста во время логического вывода: max_length, num_return_sequences, num_beams, no_repeat_ngram_size, temperature, early_stopping, do_sample, top_k, top_pкачества seed. Подробную информацию о допустимых значениях каждого параметра и их влиянии на выходные данные см. в прилагаемой записной книжке: Контекстное обучение с AlexaTM 20B в SageMaker JumpStart.

Контекстное обучение

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

Далее мы покажем, как вы можете использовать AlexaTM 20B для выполнения нескольких однократных и нулевых задач с помощью контекстного обучения. В отличие от предыдущих моделей «последовательность за последовательностью», AlexaTM 1B была обучена каузальному языковому моделированию в дополнение к шумоподавлению, что делает ее хорошей моделью для обучения в контексте.

1-кратное краткое изложение текста

Обобщение текста — это задача по сокращению данных и созданию сводки, представляющей наиболее важную информацию, присутствующую в исходном тексте. Одноразовое суммирование текста относится к настройке, в которой мы учимся суммировать текст на основе одной обучающей выборки. Следующий код представляет собой образец сводки текста из Набор данных XSUM:

train_article = "The announcement ends months of uncertainty for Cornish Language Partnership staff whose contracts had been due to end. Local government minister Andrew Stunnell said the three-year funding package for the service would help make sure the language survived. But he warned that long term funding should come from Cornwall. He said it was "important to make sure the Cornish were given the opportunity to put down sound foundations." "In the longer term support for the Cornish language is going to be something which is going to have to be based in Cornwall and will not come from London," he added. The Cornish Language Partnership's, Jennifer Lowe, said: "We can now plan for the future thanks to the funding." The United Nations recently upgraded the status of the Cornish language from "extinct" to "critically endangered". It is thought fewer than 500 people worldwide are fluent in the language.""
                
train_summary = "The government is spending nearly £400,000 to help save the Cornish language."

test_article = "Torrents of water brought down a suspended ceiling and damaged stock "
                "in the Victoria Centre store at about 22:40 BST on Tuesday. Managers "
                "had hoped for a weekend reopening but it is now closed "until "
                "further notice". Staff have been helping with the clean-up "
                "operation. Water poured through from a rooftop room, leaving the "
                "top floor under three inches of water and stock "significantly" "
                "damaged. A spokeswoman said: "Our teams are working around the "
                "clock to get the shop open as quickly as possible and we're sorry "
                "for the inconvenience this has caused to our customers.""

Мы используем следующую подсказку для суммирования, когда предоставляется только одна обучающая выборка. Сгенерированный текст из модели интерпретируется как прогнозируемое резюме тестовой статьи.

AlexaTM 20B теперь доступен в Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Вывод следующий:

AlexaTM 20B output: 'The top floor of a London department store has been flooded.'

Единовременная генерация естественного языка

Генерация естественного языка - это задача создания текстовых повествований на основе входного текста. В следующем примере показана обучающая выборка из Набор данных E2E:

train_inp = "name[The Punter], food[Indian], priceRange[cheap]"
train_out = "The Punter provides Indian food in the cheap price range."

test_inp = "name[Blue Spice], eatType[coffee shop], area"

Мы используем следующую подсказку для генерации естественного языка, когда предоставляется только одна обучающая выборка (1-выстрел). Сгенерированный текст из модели интерпретируется как предсказанное текстовое повествование для тестового ввода (test_inp).

AlexaTM 20B теперь доступен в Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Вывод следующий:

AlexaTM 20B output: 'Blue Spice is a coffee shop in the city centre. '

1-кратный машинный перевод

Машинный перевод — это задача перевода текста с одного языка на другой. В следующем примере показана обучающая выборка из Набор данных WMT19 в котором нам нужно перевести с немецкого на английский:

train_inp = "Das Parlament erhebt sich zu einer Schweigeminute."
train_out = "The House rose and observed a minute' s silence"

test_inp = "Kleingärtner bewirtschaften den einstigen Grund von Bauern."

Мы используем следующую подсказку для машинного перевода, когда предоставляется только одна обучающая выборка (1-выстрел). Сгенерированный текст из модели интерпретируется как перевод тестового ввода (test_inp).

AlexaTM 20B теперь доступен в Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Вывод следующий:

AlexaTM 20B translation: 'Gardeners cultivate the former land of farmers.'

Ответ на извлекающий вопрос с нулевым выстрелом

Экстрактивный ответ на вопрос - это задача найти ответ на вопрос из абзаца контекста. Ниже приведен пример контекста и вопрос из Набор данных SQuAD v2:

test_context = "The Normans (Norman: Nourmands; French: Normands; Latin: Normanni) were the people who in the 10th and 11th centuries gave their name to Normandy, a region in France. They were descended from Norse ("Norman" comes from "Norseman") raiders and pirates from Denmark, Iceland and Norway who, under their leader Rollo, agreed to swear fealty to King Charles III of West Francia. Through generations of assimilation and mixing with the native Frankish and Roman-Gaulish populations, their descendants would gradually merge with the Carolingian-based cultures of West Francia. The distinct cultural and ethnic identity of the Normans emerged initially in the first half of the 10th century, and it continued to evolve over the succeeding centuries."
test_question = "In what country is Normandy located?"

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

Мы используем следующую подсказку для извлечения ответа на вопрос, когда не предоставляется обучающая выборка. Сгенерированный текст из модели интерпретируется как ответ на тестовый вопрос.

AlexaTM 20B теперь доступен в Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Вывод следующий:

AlexaTM 20B output: 'France'

Быстрый инжиниринг

Быстрый инжиниринг иногда может быть искусством. Даже небольшие изменения в шаблоне подсказки могут привести к значительным изменениям в производительности модели при выполнении конкретной задачи. Ниже приведены несколько советов по написанию хороших шаблонов подсказок. Во-первых, важно помнить, что модель была обучена изучению структуры реальных предложений (каузальное языковое моделирование). Таким образом, лучше всего убедиться, что ваш шаблон подсказки грамматически и структурно верен на естественном языке. Во-вторых, эта конкретная модель выигрывает от фиктивных снимков, которые помогают научить ее структуре, ожидаемой в ответе, как показано выше. В-третьих, всегда рекомендуется проверять производительность задачи на различных шаблонах подсказок-кандидатов. Источник подсказки и Природные инструкции — это две платформы с открытым исходным кодом для стандартизации шаблонов подсказок, и они предоставляют множество примеров подсказок, используемых для существующих задач моделирования. Кроме того, Приложение B Бумага AlexaTM 20B предоставляет шаблоны подсказок, используемые для получения результатов, представленных в статье. Существует растущее подполе, посвященное автоматическому созданию и изучению лучших подсказок для задачи, включая как естественный язык, так и непрерывные подсказки. Это выходит за рамки данного руководства.

Заключение

В этом посте мы показали, как развернуть модель AlexaTM 20B на конечной точке SageMaker и выполнить вывод. Вы можете использовать модель AlexaTM 20B для контекстного обучения для различных задач обучения, состоящих из нескольких шагов. Чтобы узнать больше об AlexaTM 20B, см. Модель Alexa с 20B-параметрами устанавливает новые стандарты в обучении за несколько шагов или оригинал бумаги.

Авторы хотели бы отметить технический вклад Мацея Рудницкого, Якуба Дебски, Ашиша Хетана, Анастасии Дубининой, Виталия Королева, Карла Альбертсена, Салеха Солтана и Мариуша Момотко, который сделал этот запуск возможным.


О JumpStart

JumpStart — это центр машинного обучения (ML) Amazon SageMaker, который предлагает более 350 предварительно обученных моделей, встроенных алгоритмов и готовых шаблонов решений, которые помогут вам быстро приступить к работе с ML. JumpStart размещает самые современные модели из популярных центров моделей, таких как TensorFlow, PyTorch, Hugging Face и MXNet, которые поддерживают популярные задачи машинного обучения, такие как обнаружение объектов, классификация текста и генерация текста. Исследовательское сообщество машинного обучения приложило немало усилий, чтобы сделать большинство недавно разработанных моделей общедоступными для использования. JumpStart стремится помочь вам найти правильные модели и алгоритмы машинного обучения и сразу же приступить к созданию моделей. В частности, JumpStart предоставляет следующие преимущества:

  • Простой доступ с помощью пользовательского интерфейса и SDK. Доступ к моделям и алгоритмам в JumpStart можно получить программно с помощью SageMaker Python SDK или через пользовательский интерфейс JumpStart в Amazon SageMaker Studio. В настоящее время AlexaTM 20B доступен только через SageMaker Python SDK.
  • Встроенные алгоритмы SageMaker. JumpStart предоставляет более 350 встроенных алгоритмов и предварительно обученных моделей, а также соответствующие обучающие сценарии (если они поддерживаются), логические сценарии и примеры блокнотов. Скрипты оптимизированы для каждой платформы и задачи и предоставляют такие функции, как поддержка графического процессора, автоматическая настройка модели и дополнительное обучение. Скрипты также проверяются на экземплярах и функциях SageMaker, чтобы у вас не возникало проблем с совместимостью.
  • Готовые решения. JumpStart предоставляет набор из 23 решений для распространенных вариантов использования машинного обучения, таких как прогнозирование спроса, а также промышленные и финансовые приложения, которые можно развернуть всего несколькими щелчками мыши. Решения — это комплексные приложения машинного обучения, которые объединяют различные сервисы AWS для решения конкретных бизнес-задач. Они используют шаблоны AWS CloudFormation и эталонные архитектуры для быстрого развертывания, что означает, что они полностью настраиваемы.
  • Поддержка — SageMaker предоставляет широкий спектр поддержки, например, поддержание актуальных версий при выпуске новых функций SageMaker или версий контейнера для глубокого обучения, а также создание документации по использованию содержимого JumpStart в среде SageMaker.

Чтобы узнать больше о JumpStart и о том, как вы можете использовать предварительно обученные модели с открытым исходным кодом для множества других задач машинного обучения, ознакомьтесь со следующими материалами. Видео AWS re:Invent 2020.


Об авторах

AlexaTM 20B теперь доступен в Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Доктор Вивек Мадан — ученый-прикладник в команде Amazon SageMaker JumpStart. Он получил докторскую степень в Университете Иллинойса в Урбана-Шампейн и был постдокторантом в Технологическом институте Джорджии. Он является активным исследователем в области машинного обучения и разработки алгоритмов и публиковал статьи на конференциях EMNLP, ICLR, COLT, FOCS и SODA.

AlexaTM 20B теперь доступен в Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Джек Фицджеральд — старший научный сотрудник Alexa AI, где в настоящее время занимается моделированием больших языков, многоязычным текстовым моделированием и операциями машинного обучения.

AlexaTM 20B теперь доступен в Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Жоао Моура является специалистом по архитектуре решений AI/ML в Amazon Web Services. Он в основном сосредоточен на примерах использования НЛП и помогает клиентам оптимизировать обучение и развертывание модели глубокого обучения. Он также является активным сторонником решений машинного обучения с низким кодом и специализированного оборудования для машинного обучения.

AlexaTM 20B теперь доступен в Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай. июнь выиграл является менеджером по продукту с SageMaker JumpStart и встроенными алгоритмами. Он фокусируется на том, чтобы сделать содержимое ML легко обнаруживаемым и удобным для использования клиентами SageMaker.

AlexaTM 20B теперь доступен в Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Пулкит Капур является руководителем программы модели учителя Alexa с Alexa AI, уделяя особое внимание обобщенному интеллекту и приложениям многозадачных мультимодальных базовых моделей Alexa.

Отметка времени:

Больше от Машинное обучение AWS