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

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

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

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

AlexaTM 20B і навчання в контексті

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

Використання базових моделей, таких як AlexaTM 20B, зменшує потребу в дорогому попередньому навчанні моделі та забезпечує найсучаснішу відправну точку для розробки моделей завдань з меншими зусиллями та меншою кількістю навчальних даних для конкретних завдань. Одна з ключових можливостей базових моделей полягає в тому, що ми можемо навчити модель виконувати нові завдання, такі як запитання та відповіді різними мовами, з дуже невеликою кількістю вхідних прикладів і без необхідності тонкого налаштування чи оновлення градієнта. Це відомо як навчання в контексті. З лише кількома прикладами нового завдання, наданими як контекст для висновку, модель AlexaTM 20B може передавати знання з того, що було вивчено під час широкомасштабного попереднього навчання, навіть різними мовами. Це називається невелике навчання. У деяких випадках модель може працювати добре без будь-яких навчальних даних взагалі, лише з поясненням того, що слід передбачити. Це називається нульове навчання. Наприклад, скажімо, ми використовуємо AlexaTM 20B для одноразової генерації природної мови. Вхідні дані, передані в модель, є навчальним прикладом у формі пар атрибут-значення разом із відповідним вихідним текстом. Потім тестовий приклад додається, щоб сформувати повну підказку введення, як показано на малюнку нижче.

Щоб дізнатися більше про модель, перегляньте Модель Alexa з параметрами 20B встановлює нові позначки у швидкому навчанні або оригінал папір.

Використання AlexaTM 20B доступне для некомерційного використання та регулюється положеннями Модель ліцензійної угоди Alexa Teacher.

Огляд рішення

У наступних розділах наведено покрокову демонстрацію того, як розгорнути модель, виконати висновок і виконати навчання в контексті, щоб розв’язувати короткострокові навчальні завдання.

Зауважте, що наступний розділ містить фрагменти коду; повний код із усіма кроками в цій демонстрації доступний у супровідному блокноті: Навчання в контексті за допомогою AlexaTM 20B у SageMaker JumpStart.

Розгортання моделі

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

SageMaker дає вам можливість широко запускати контейнери Docker для навчання та висновків. JumpStart використовує ці доступні фреймворки Контейнери глибокого навчання SageMaker (DLC). Ми починаємо з отримання оптимізованого DLC (deploy_image_uri) за допомогою model_id. Тоді ми дістаємо model_uri містить параметри моделі разом зі сценаріями обробки висновків і будь-якими пов’язаними залежностями. Далі ми створюємо a екземпляр моделі у 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. Вертикальний пошук. Ai.

Вихід такий:

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. Вертикальний пошук. Ai.

Вихід такий:

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. Вертикальний пошук. Ai.

Вихід такий:

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. Вертикальний пошук. Ai.

Вихід такий:

AlexaTM 20B output: 'France'

Оперативна інженерія

Швидке проектування іноді може бути мистецтвом. Навіть невеликі зміни в шаблоні підказки можуть призвести до значних змін у продуктивності моделі для конкретного завдання. Нижче наведено кілька порад щодо написання хороших шаблонів підказок. По-перше, важливо пам’ятати, що модель була навчена вивчати структуру реальних речень (моделювання причинно-наслідкової мови). Таким чином, найкраще переконатися, що ваш шаблон підказки граматично та структурно правильний природною мовою. По-друге, ця конкретна модель отримує користь від фіктивних знімків, які допомагають навчити її структурі, очікуваній у відповіді, як показано вище. По-третє, завжди рекомендується перевіряти продуктивність завдання за різними шаблонами підказок-кандидатів. Promptsource та  Природні інструкції це два фреймворки з відкритим кодом для стандартизації шаблонів підказок, які надають різноманітні приклади підказок, які використовуються для існуючих завдань моделювання. Крім того, Додаток Б ст Папір AlexaTM 20B надає шаблони підказок, які використовуються для створення результатів, представлених у статті. Зростає підполе, призначене для автоматичного створення та вивчення найкращих підказок для завдання, включаючи як природну мову, так і безперервні підказки. Це виходить за рамки цього посібника.

Висновок

У цій публікації ми показали, як розгорнути модель AlexaTM 20B на кінцевій точці SageMaker і виконати висновок. Ви можете використовувати модель AlexaTM 20B для навчання в контексті для різноманітних невеликих навчальних завдань. Щоб дізнатися більше про AlexaTM 20B, див Модель Alexa з параметрами 20B встановлює нові позначки у швидкому навчанні або оригінал папір.

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


Про JumpStart

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

  • Легкий доступ за допомогою інтерфейсу користувача та SDK – ви можете отримати доступ до моделей і алгоритмів у JumpStart програмним шляхом за допомогою SageMaker Python SDK або через інтерфейс користувача JumpStart в Amazon SageMaker Studio. Наразі AlexaTM 20B доступна лише через SageMaker Python SDK.
  • Вбудовані алгоритми SageMaker – JumpStart надає понад 350 вбудованих алгоритмів і попередньо навчених моделей, а також відповідні навчальні сценарії (якщо підтримуються), сценарії висновків і приклади блокнотів. Сценарії оптимізовано для кожного фреймворку та завдання та забезпечують такі функції, як підтримка GPU, автоматичне налаштування моделі та поступове навчання. Сценарії також перевіряються на екземпляри та функції SageMaker, щоб ви не зіткнулися з проблемами сумісності.
  • Готові рішення – JumpStart пропонує набір із 23 рішень для поширених випадків використання машинного навчання, таких як прогнозування попиту та промислові та фінансові програми, які можна розгорнути лише кількома клацаннями миші. Рішення — це наскрізні програми ML, які об’єднують різноманітні служби AWS для вирішення конкретного бізнес-випадку використання. Вони використовують шаблони AWS CloudFormation і еталонні архітектури для швидкого розгортання, що означає, що їх можна повністю налаштувати.
  • Підтримка – SageMaker надає широкий спектр підтримки, як-от підтримку актуальних версій, коли виходять нові функції SageMaker або версії контейнера глибокого навчання, і створення документації щодо використання вмісту JumpStart у середовищі SageMaker.

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


Про авторів

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

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

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

AlexaTM 20B тепер доступна в Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai. Джун Вон є менеджером із продуктів із SageMaker JumpStart і вбудованими алгоритмами. Він зосереджується на тому, щоб зробити вміст ML легким для виявлення та зручним для використання клієнтами SageMaker.

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

Часова мітка:

Більше від AWS Машинне навчання