В последние годы понимание естественного языка (NLU) приобретает все большую ценность для бизнеса, чему способствуют усовершенствования моделей, а также масштабируемость и экономичность облачной инфраструктуры. В частности, трансформатор архитектура глубокого обучения, часто реализуемая в виде БЕРТ моделей, был очень успешным, но обучение, тонкая настройка и оптимизация этих моделей оказались сложной проблемой. Благодаря Совместная работа AWS и Hugging Face, теперь стало проще обучать и оптимизировать модели NLU на Создатель мудреца Амазонки с помощью SageMaker Python SDK, но поиск размеченных данных для этих моделей по-прежнему затруднен и требует много времени.
Одной из проблем NLU, представляющей особый интерес для бизнеса, является задача ответа на вопрос. В этом посте мы покажем, как создать собственный набор данных для ответов на вопросы, используя Amazon SageMaker - основа правды обучить вопрос об обнимающемся лице, отвечая на модель NLU.
Проблемы с ответами на вопросы
Ответ на вопрос влечет за собой модель, автоматически производящую ответ на запрос, учитывая некоторый текст, который может содержать или не содержать ответ. Например, на следующий вопрос: «Какие рабочие процессы поддерживает SageMaker Ground Truth?» модель должна иметь возможность идентифицировать сегмент «консолидация аннотаций и аудит» в следующем абзаце:
SageMaker Ground Truth помогает улучшить качество этикеток за счет консолидации аннотаций и рабочих процессов аудита. Консолидация аннотаций — это процесс сбора входных данных меток от двух или более меток данных и их объединения для создания единой метки данных для вашей модели машинного обучения. Благодаря встроенным рабочим процессам аудита и проверки работники могут выполнять проверку этикеток и вносить коррективы для повышения точности.
Эта проблема сложна, потому что она требует, чтобы модель понимала значение вопроса, а не просто выполняла поиск по ключевым словам. Точные модели в этой области могут снизить затраты на поддержку клиентов за счет использования интеллектуальных чат-ботов, предоставления высококачественных продуктов с голосовым помощником и увеличения доходов интернет-магазина за счет персонализированных ответов на вопросы о продуктах. Одним из больших наборов данных в этой области является Стэнфордский набор данных для ответов на вопросы (SQuAD), разнообразный набор данных для ответов на вопросы, который представляет модель с короткими текстовыми отрывками и требует, чтобы модель предсказывала расположение диапазона ответа на текст в отрывке. SQuAD — это набор данных для понимания прочитанного, состоящий из вопросов, заданных краудфандинговыми работниками в наборе статей Википедии, где ответом на каждый вопрос является либо фрагмент текста из соответствующего отрывка, либо иным образом помеченный как невозможный ответ.
Одной из проблем адаптации SQuAD для бизнес-применений является создание пользовательских наборов данных для предметной области. Этот процесс создания новых наборов данных вопросов и ответов требует специализированного пользовательского интерфейса, который позволяет аннотаторам выделять диапазоны и добавлять вопросы к этим диапазонам. Он также должен поддерживать добавление невозможных вопросов для поддержки формата SQuAD 2.0, который включает вопросы, на которые невозможно ответить. Эти невозможные вопросы помогают моделям получить дополнительное понимание того, на какие вопросы нельзя ответить, используя данный отрывок. пользовательские шаблоны рабочих в Ground Truth упростит создание этих наборов данных, предоставив работникам возможность создавать специальные аннотации для создания наборов данных вопросов и ответов.
Обзор решения
Это решение создает и управляет заданиями маркировки Ground Truth для маркировки пользовательского набора данных вопросов и ответов для конкретной области с использованием пользовательского интерфейса пользовательских аннотаций. Мы используем SageMaker для обучения, тонкой настройки, оптимизации и развертывания Hugging Face
Модель BERT, созданная с помощью PyTorch на пользовательском наборе данных для ответов на вопросы.
Вы можете реализовать решение, развернув предоставленный AWS CloudFormation шаблон в вашей учетной записи AWS. AWS CloudFormation занимается развертыванием AWS Lambda функции, которые поддерживают предварительную аннотацию и консолидацию аннотаций для пользовательского интерфейса аннотаций. Он также создает Простой сервис хранения Amazon (Amazon S3) ведро и Управление идентификацией и доступом AWS (IAM) для использования при создании задания на маркировку.
В этом посте вы узнаете, как сделать следующее:
- Создайте свой собственный набор данных для ответов на вопросы или дополните существующий с помощью Ground Truth.
- Используйте наборы данных Hugging Face для объединения и разметки текста
- Точная настройка модели BERT для данных ответов на вопросы с помощью обучения SageMaker.
- Разверните свою модель на конечной точке SageMaker и визуализируйте свои результаты.
Пользовательский интерфейс аннотаций
Мы используем новый настраиваемый шаблон рабочей задачи с Ground Truth, чтобы добавить новые аннотации к существующему набору данных SQuAD. Это решение предлагает шаблон рабочей задачи, а также лямбда-функцию перед аннотацией (которая обрабатывает ввод данных в пользовательский интерфейс) и лямбда-функцию после аннотации (которая извлекает результаты из пользовательского интерфейса после завершения маркировки).
Этот настраиваемый шаблон рабочей задачи дает вам возможность выделить текст на правой панели, а затем добавить соответствующий вопрос на левой панели, относящийся к выделенному тексту. Выделенный текст на правой панели также можно добавить к любому ранее созданному вопросу. Кроме того, вы можете добавить невозможные вопросы в соответствии с КОМАНДА 2.0 формат. Невозможные вопросы позволяют моделям уменьшить количество ненадежных ложноположительных предположений, когда отрывок не может ответить на запрос.
Этот пользовательский интерфейс использует ту же схему JSON, что и набор данных SQuAD 2.0, что означает, что он может работать с несколькими статьями и абзацами, отображая по одному абзацу за раз, используя Предыдущая и Следующая кнопки. Пользовательский интерфейс позволяет легко отслеживать и определять работу по маркировке, которую должен выполнить каждый аннотатор на этапе отправки задачи.
Поскольку пользовательский интерфейс аннотаций содержится в одном жидкость HTML, вы можете настроить процесс маркировки, зная основы JavaScript. Вы также можете изменить Жидкие теги для передачи дополнительной информации в пользовательский интерфейс маркировки, и вы можете изменить сам шаблон, включив в него более подробные рабочие инструкции.
Ориентировочная стоимость
Развертывание этого решения может повлечь за собой максимальную стоимость около 20 долларов США без учета затрат на маркировку человеком. Amazon S3, Lambda, SageMaker и Ground Truth предлагают Уровень бесплатного пользования AWS, с оплатой за дополнительное использование. Дополнительные сведения см. на следующих страницах с ценами:
- Цены на Amazon S3
- Цены на AWS Lambda
- Цены на Amazon SageMaker
- Цены на маркировку данных Amazon SageMaker – Эта плата зависит от типа рабочей силы, которую вы используете. Если вы новый пользователь Ground Truth, мы предлагаем использовать частную рабочую силу и включить себя в качестве работника для проверки конфигурации вашей работы по маркировке.
Предпосылки
Для реализации этого решения у вас должны быть следующие предпосылки:
- An Аккаунт AWS.
- Знакомство с земной истиной. Для получения дополнительной информации см. Используйте Amazon SageMaker Ground Truth для маркировки данных.
- Знакомство с AWS CloudFormation. Для получения дополнительной информации см. Руководство пользователя AWS CloudFormation.
- Создатель мудрецов трудовые ресурсы. Для этой демонстрации мы используем частную рабочую силу. Вы можете создать рабочую силу на консоли SageMaker.
Следующий GIF демонстрирует, как создать частную рабочую силу. Инструкции см. Создайте рабочую силу Amazon Cognito с помощью страницы Labeling Workforces.
Запустите стек CloudFormation
Теперь, когда вы ознакомились со структурой решения, вы можете развернуть его в своей учетной записи, чтобы запустить пример рабочего процесса. Все этапы развертывания, связанные с конвейером маркировки, управляются AWS CloudFormation. Это означает, что AWS CloudFormation создает ваши лямбда-функции предварительной обработки и консолидации аннотаций, а также корзину S3 для хранения входных и выходных данных.
Вы можете запустить стек в AWS Region us-east-1
на консоли AWS CloudFormation с помощью Стек запуска кнопка. Чтобы запустить стек в другом регионе, используйте инструкции в файле README. Репозиторий GitHub.
Управляйте ноутбуком
После развертывания решения в вашей учетной записи экземпляр записной книжки с именем gt-hf-squad-notebook
доступен в вашем аккаунте. Чтобы начать работу с ноутбуком, выполните следующие действия:
- В консоли Amazon SageMaker перейдите на страницу экземпляра ноутбука.
- Выберите Откройте JupyterLab чтобы открыть экземпляр.
- Внутри экземпляра перейдите к репозиторию
hf-gt-custom-qa
и откройте блокнотhf_squad_finetuning.ipynb
. - Выберите
conda_pytorch_p38
как ваше ядро.
Теперь, когда вы создали экземпляр записной книжки и открыли записную книжку, вы можете запускать ячейки в записной книжке для работы с решением. Оставшаяся часть этого поста предоставляет дополнительные сведения о каждом разделе записной книжки по мере продвижения.
Загрузите и проверьте данные
Ассоциация Набор данных SQuAD содержит набор данных для обучения, а также наборы данных для тестирования и разработки. Записная книжка загружает для вас набор данных SQuAD2.0, но вы можете выбрать, какую версию SQuAD использовать, изменив ячейку записной книжки в разделе Загрузите и проверьте данные.
SQuAD создали Пранав Раджпуркар, Цзянь Чжан, Константин Лопырев и Перси Лян. Для получения дополнительной информации см. оригинальная бумага и Набор данных. SQuAD был лицензирован авторами в соответствии с Creative Commons Attribution-ShareAlike 4.0 Международная общедоступная лицензия.
Давайте посмотрим на примерную пару вопросов и ответов от SQuAD:
Название абзаца: Иммунная_система
Иммунная система представляет собой систему многих биологических структур и процессов внутри организма, которая защищает от болезней. Чтобы функционировать должным образом, иммунная система должна обнаруживать широкий спектр агентов, известных как патогены, от вирусов до паразитических червей, и отличать их от собственных здоровых тканей организма. У многих видов иммунную систему можно разделить на подсистемы, такие как врожденная иммунная система по сравнению с адаптивной иммунной системой или гуморальный иммунитет по сравнению с клеточно-опосредованным иммунитетом. У людей гематоэнцефалический барьер, гематоэнцефалический барьер и аналогичные барьеры между жидкостью и мозгом отделяют периферическую иммунную систему от нейроиммунной системы, которая защищает мозг.
Вопрос: Иммунная система защищает организмы от чего?
Ответ: болезнь
Загрузить модель
Теперь, когда вы просмотрели пример пары вопросов и ответов в SQuAD, вы можете загрузить модель, которую можно настроить для ответов на вопросы. Hugging Face позволяет легко загрузить базовую модель, прошедшую широкомасштабную предварительную подготовку, и повторно инициализировать ее для другой последующей задачи. В этом случае вы скачиваете distilbert-base-uncased
модель и перепрофилировать ее для ответов на вопросы, используя AutoModelForQuestionAnswering
класс от Hugging Face. Вы также используете AutoTokenizer
класс для получения предварительно обученного токенизатора модели. Мы углубимся в модель, которую используем позже в посте.
Просмотр ввода BERT
BERT требует, чтобы вы преобразовывали текстовые данные в числовое представление, известное как лексемы. Доступно множество токенизаторов; следующие токены были созданы токенизатором, специально разработанным для BERT, который вы создаете с помощью заданного словаря. Каждый токен соответствует слову словаря. Давайте посмотрим на преобразованный вопрос иммунной системы и контекст, который вы предоставляете BERT для вывода.
Вывод модели
Теперь, когда вы увидели, что BERT принимает в качестве входных данных, давайте посмотрим, как можно получить результаты логического вывода из модели. В следующем коде показано, как использовать ранее сгенерированные токенизированные входные данные и возвращать результаты логического вывода из модели. Подобно тому, как BERT не может принимать необработанный текст в качестве входных данных, он также не генерирует необработанный текст в качестве вывода. Вы переводите вывод BERT, определяя начальную и конечную точки в абзаце, который BERT идентифицировал как ответ. Затем вы сопоставляете этот вывод с нашими токенами и обратно с английским текстом.
Результаты перевода следующие:
Вопрос: Иммунная система защищает организмы от чего?
Ответ: болезнь
Отряд дополнений
Далее для получения дополнительных размеченных данных используем настраиваемый шаблон рабочей задачи в «Наземной правде». Сначала мы можем создать новую статью в формате SQuAD. Блокнот копирует этот файл из репозитория в Amazon S3, но не стесняйтесь вносить любые изменения перед запуском Отряд дополнений клетка. Формат SQuAD показан в следующем коде. Каждый файл SQuAD JSON содержит несколько статей, хранящихся в data
ключ. Каждая статья имеет title
поле и один или несколько абзацев. Эти абзацы содержат сегменты текста, называемые context
и любые сопутствующие вопросы в qas
список. Поскольку мы аннотируем с нуля, мы можем оставить qas
список пуст и просто укажите контекст. Пользовательский интерфейс может зацикливаться как на абзацах, так и на статьях, позволяя вам сделать каждую рабочую задачу настолько большой или маленькой, насколько это необходимо.
После того, как мы создадим образец файла данных SQuAD, нам нужно создать Ground Truth. расширенный файл манифеста это относится к нашим входным данным. Мы делаем это, создавая файл в формате строк JSON с «source
», соответствующий месту в Amazon S3, где мы сохранили наши входные данные SQuAD:
Доступ к порталу маркировки
После отправки задания в Ground Truth вы можете просмотреть созданное задание маркировки на консоли Ground Truth.
Чтобы выполнить маркировку, вам необходимо войти в учетную запись рабочего портала, которую вы создали в рамках предварительных шагов. Ваша вакансия доступна на рабочем портале после нескольких минут предварительной обработки. После открытия задачи вам предоставляется настраиваемый рабочий шаблон для аннотации вопросов и ответов. Вы можете добавлять вопросы, выделяя фрагменты текста в контексте, а затем выбирая Добавить вопрос.
Проверить статус задания маркировки
После отправки вы можете запустить Проверить статус задания маркировки ячейку, чтобы увидеть, завершена ли ваша работа по маркировке. Дождитесь завершения, прежде чем переходить к другим ячейкам.
Загрузить помеченные данные
После маркировки выходной манифест содержит запись с именем атрибута метки (в данном случае squad-1626282229
), содержащий S3 URI для данных в формате SQuAD, которые можно использовать во время обучения. См. следующее содержимое выходного манифеста:
Каждая строка в манифесте соответствует одной рабочей задаче.
Загрузить набор поездов SQUAD
Обнимающее лицо имеет пакет набора данных это дает вам возможность загрузить и предварительно обработать SQuAD, но чтобы добавить наши пользовательские вопросы и ответы, нам нужно немного обработать. SQuAD построен вокруг набора тем. Каждая тема имеет множество различных утверждений контекста, и каждое утверждение контекста имеет пары вопросов и ответов. Поскольку мы хотим создавать свои собственные вопросы для обучения, нам нужно объединить наши вопросы с SQuAD. К счастью для нас, наши аннотации уже находятся в формате SQuAD, поэтому мы можем взять наши примеры меток и добавить их в качестве новой темы к существующим данным SQuAD.
Создайте объект набора данных Hugging Face
Чтобы получить наши данные в формате набора данных Hugging Face, у нас есть несколько вариантов. Мы можем использовать load_dataset вариант, и в этом случае мы можем предоставить CSV, JSON или текстовый файл, который загружается как объект набора данных. Вы также можете поставить load_dataset
со скриптом обработки, чтобы преобразовать ваш файл в нужный формат. Для этого поста мы вместо этого используем Dataset.from_dict()
метод, который позволяет нам предоставить словарь в памяти для создания объекта набора данных. Мы также определяем функции нашего набора данных. Мы можем просмотреть функции, используя Средство просмотра набора данных Hugging Face, как показано на следующем скриншоте.
Наши особенности заключаются в следующем:
- ID - идентификатор текста
- название - Соответствующее название темы
- контекст – Оператор контекста, который модель должна искать, чтобы найти ответ
- вопрос – вопрос, который задают модели
- ответ – Принятый текст ответа и место в операторе контекста
Наборы данных Hugging Face позволяют легко определить эту схему:
После того, как мы создадим наш объект набора данных, мы должны токенизировать текст. Поскольку модели не могут принимать необработанный текст в качестве входных данных, нам необходимо преобразовать наш текст в числовой ввод, который он может понять, иначе известный как лексический анализ. Токенизация зависит от модели, поэтому давайте разберемся, какую модель мы собираемся настроить. Мы используем дистиллят-база-без кожуха модель. Он очень похож на BERT: он использует встраивание входных данных, многоголовое внимание (дополнительную информацию об этой операции см. Иллюстрированный трансформатор) и слоев прямой связи, но имеет половину параметров исходной базовой модели BERT. См. следующие начальные слои модели:
Давайте разберем каждый компонент названия модели. Название distilbert
обозначает тот факт, что это дистиллированная версия базовой модели BERT, полученная с помощью процесса, называемого дистилляция знаний. Дистилляция знаний позволяет нам обучать меньшую модель ученика не только на обучающих данных, но и на ответах на тот же обучающий набор от более крупной предварительно обученной модели учителя. base
относится к размеру модели, в данном случае модель была получена из базовой модели BERT (в отличие от большой модели BERT). uncased
относится к тексту, на котором он был обучен. В этом случае текст не учитывал регистр; весь текст, на котором он обучался, был строчным. uncased
аспект напрямую влияет на то, как мы размечаем наш текст. К счастью, в дополнение к простому доступу к загрузке моделей трансформеров, Hugging Face также предоставляет сопутствующий токенизатор модели. Мы также загрузили настроенный токенизатор для нашего distilbert-base-uncased model
который мы теперь используем для преобразования нашего текста:
Еще одна особенность класса набора данных заключается в том, что он позволяет нам выполнять предварительную обработку и токенизацию параллельно с его функцией карты. Мы определяем функцию обработки, а затем передаем ее методу карты.
Для ответа на вопрос Hugging Face требуется несколько компонентов (которые также определены в Глоссарий):
- маска внимания – Маска, указывающая модели, на какие токены следует обратить внимание, используется в основном для различения фактического текста и токенов заполнения.
- начальные_позиции – Начальная позиция ответа в тексте
- конечные_позиции – Конечная позиция ответа в тексте
- input_ids – Индексы токенов, сопоставляющие токены со словарем.
Наш токенизатор будет токенизировать текст, но нам нужно явно зафиксировать начальную и конечную позиции нашего ответа, поэтому мы определили пользовательскую функцию предварительной обработки. Теперь, когда у нас есть готовые входные данные, давайте начнем обучение!
Запустить обучающую работу
Мы можем проводить обучение в нашей записной книжке, но типы экземпляров, которые нам нужны для обучения нашей модели вопросов и ответов за разумное время, экземпляры p3 и p4, являются довольно мощными. Эти экземпляры, как правило, являются излишними для запуска ноутбука или в качестве постоянного Эластичное вычислительное облако Amazon (Amazon EC2). Здесь на помощь приходит обучение SageMaker. Обучение SageMaker позволяет запускать задание обучения на указанном экземпляре или экземплярах, которые работают только на время выполнения задания обучения. Это позволяет нам работать на более крупных инстансах, таких как p4d.24xlarge, с 8 графическими процессорами NVIDIA A100, не беспокоясь о больших счетах, если мы забудем его отключить. Это также дает нам легкий доступ к другим функциям SageMaker, таким как SageMaker эксперименты для отслеживания ваших тренировок по машинному обучению и Отладчик SageMaker для понимания и профилирования ваших учебных заданий.
Местное обучение
Давайте начнем с понимания того, как обучение модели в Hugging Face работает локально, а затем рассмотрим корректировки, которые мы вносим, чтобы запустить ее в SageMaker.
Hugging Face упрощает обучение благодаря использованию своего тренерского класса. Класс тренера позволяет нам передавать нашу модель, наши наборы данных для обучения и проверки, наши гиперпараметры и даже наш токенизатор. Поскольку у нас уже есть наша модель, а также наборы для обучения и проверки, нам нужно только определить наши гиперпараметры. Мы можем сделать это через TrainingArguments
класс. Это позволяет нам указывать такие вещи, как скорость обучения, размер пакета, количество эпох и более подробные параметры, такие как уменьшение веса или стратегия планирования скорости обучения. После того, как мы определим нашу TrainingArguments
, мы можем передать нашу модель, обучающий набор, набор проверки и аргументы для создания экземпляра нашего класса тренера. Тогда мы можем просто позвонить trainer.train()
чтобы начать обучение нашей модели. В следующем блоке кода показано, как запустить локальное обучение:
Отправить данные на S3
Сделать то же самое в обучении SageMaker несложно. Первым шагом является размещение наших данных в Amazon S3, чтобы наша модель могла получить к ним доступ. Обучение SageMaker позволяет указать источник данных; вы можете использовать такие источники, как Amazon S3, Эластичная файловая система Amazon (Amazon EFS) или Amazon FSx для блеска для высокопроизводительного приема данных. В нашем случае наш расширенный набор данных SQuAD не особенно велик, поэтому Amazon S3 — хороший выбор. Мы загружаем наши тренировочные данные в папку в Amazon S3, и когда SageMaker запускает наш тренировочный экземпляр, он загружает данные из указанного нами местоположения.
Создайте экземпляр модели
Чтобы запустить нашу тренировочную работу, мы можем использовать встроенный оценщик Hugging Face в SageMaker SDK. SageMaker использует класс оценщика для определения параметров задания обучения, а также количества и типа экземпляров, используемых для обучения. Обучение SageMaker построено на использовании контейнеров Docker. Вы можете использовать контейнеры по умолчанию в SageMaker или предоставить свой собственный контейнер для обучения. В случае с моделями Hugging Face в SageMaker есть встроенные контейнеры Hugging Face со всеми зависимостями, необходимыми для выполнения обучающих заданий Hugging Face. Все, что нам нужно сделать, это определить наш сценарий обучения, который наш контейнер Hugging Face использует в качестве точки входа.
В этом обучающем скрипте мы определяем наши аргументы, которые мы передаем в нашу точку входа в виде набора гиперпараметров, а также наш обучающий код. Наш обучающий код такой же, как если бы мы запускали его локально; мы можем просто использовать TrainingArguments
а затем передать их объекту тренера. Единственная разница в том, что нам нужно указать выходное местоположение для нашей модели. /opt/ml/model
чтобы обучение SageMaker могло взять его, упаковать и отправить в Amazon S3. В следующем блоке кода показано, как создать экземпляр нашего оценщика Hugging Face:
Точная настройка модели
Для нашей конкретной учебной работы мы используем инстанс p3.8xlarge, состоящий из 4 графических процессоров V100. Класс тренера автоматически поддерживает обучение на инстансах с несколькими графическими процессорами, поэтому для этого нам не нужны никакие дополнительные настройки. Мы обучаем нашу модель для двух эпох с размером пакета 16 и скоростью обучения 4e5. Мы также обеспечиваем обучение смешанной точности, которое использует смешанную точность в областях, где мы можем уменьшить числовую точность, не влияя на точность нашей модели. Это увеличивает нашу доступную память и скорость обучения. Чтобы запустить обучающее задание, мы вызываем fit
метод от нашего huggingface_estimator
класса.
Когда наша модель завершит обучение, мы можем загрузить модель локально и загрузить ее в память нашего ноутбука, чтобы протестировать ее, что демонстрируется в блокноте. Мы сосредоточимся на другом варианте — развертывании его в качестве конечной точки SageMaker!
Развертывание обученной модели
Помимо предоставления утилит для обучения, SageMaker также может позволить специалистам по данным и инженерам по машинному обучению легко развертывать конечные точки REST для своих обученных моделей. Вы можете развертывать модели, обученные в SageMaker или за его пределами. Для получения дополнительной информации см. Развертывание модели в Amazon SageMaker.
Поскольку наша модель была обучена в SageMaker, она уже имеет правильный формат для развертывания в качестве конечной точки. Подобно обучению, мы определяем класс модели SageMaker, который определяет модель, обслуживающий код, а также количество и тип экземпляров, которые мы хотим развернуть в качестве конечных точек. Как и в случае с обучением, обслуживание основано на контейнерах Docker, и мы можем использовать либо встроенные контейнеры SageMaker, либо поставить свои собственные. В этом посте мы используем встроенный обслуживающий контейнер PyTorch, поэтому нам просто нужно определить несколько вещей, чтобы наша конечная точка работала. Наш обслуживающий код нуждается в четырех функциях:
- model_fn – Определяет, как конечная точка загружает модель (она делает это только один раз, а затем сохраняет ее в памяти для последующих прогнозов)
- input_fn – Определяет, как ввод десериализуется и обрабатывается
- предсказать_fn – Определяет, как наша модель делает прогнозы на основе нашего ввода.
- выход_фн – Определяет, как конечная точка форматирует и отправляет выходные данные обратно клиенту, делающему запрос.
После того, как мы определим эти функции, мы можем развернуть нашу конечную точку, передать ей операторы контекста и вопросы и вернуть ее предсказанный ответ:
Визуализируйте результаты модели
Поскольку мы развернули конечную точку SageMaker, которая позволяет нам отправлять операторы контекста и получать ответы, мы можем вернуться и визуализировать полученные выводы в исходном средстве просмотра SQuAD, чтобы лучше визуализировать то, что наша модель нашла в контексте прохода. Мы делаем это, переформатируя результаты вывода обратно в формат SQuAD, а затем заменяя теги Liquid в рабочем шаблоне JSON в формате SQuAD. Затем мы можем создать кадр полученного пользовательского интерфейса внутри нашего рабочего шаблона, чтобы многократно просматривать результаты в контексте одной записной книжки, как показано на следующем снимке экрана. Каждый вопрос слева можно щелкнуть, чтобы выделить фрагменты текста справа, соответствующие запросу. Если вопрос не выбран, все фрагменты текста будут выделены справа, как показано ниже.
Убирать
Чтобы избежать дополнительных расходов, запустите Убирать раздел записной книжки, чтобы удалить все ресурсы, включая конечные точки SageMaker, объекты S3, содержащие необработанные и обработанные наборы данных, а также стек CloudFormation. По завершении удаления обязательно остановите и удалите экземпляр блокнота, в котором размещен текущий сценарий блокнота.
Заключение
В этом посте вы узнали, как создать собственный набор данных для ответов на вопросы с помощью Ground Truth и объединить его с SQuAD для обучения и развертывания собственной модели ответов на вопросы с помощью SageMaker. После заполнения записной книжки у вас будет развернутая конечная точка SageMaker, обученная вашему пользовательскому набору данных вопросов и ответов. Эта конечная точка готова к интеграции в ваши производственные рабочие процессы NLU, поскольку конечные точки SageMaker доступны через стандартные API-интерфейсы REST. У вас также есть аннотированный пользовательский набор данных в формате SQuAD 2.0, который позволяет вам переобучить существующую модель или попробовать обучить другие архитектуры моделей ответов на вопросы. Наконец, у вас есть механизм для быстрой визуализации результатов вашего вывода путем загрузки рабочего шаблона в локальную записную книжку.
Опробовать записная книжка, дополните его своими вопросами, а также обучите и разверните собственную модель ответов на вопросы для ваших вариантов использования NLU!
Счастливое строительство!
Об авторах
Джереми Фелтракко является инженером по разработке программного обеспечения в лаборатории Amazon ML Solutions Lab в Amazon Web Services. Он использует свой опыт в области компьютерного зрения, робототехники и машинного обучения, чтобы помочь клиентам AWS ускорить внедрение ИИ.
Видья Сагар Равипати является менеджером в Лаборатория решений Amazon ML, где он использует свой обширный опыт работы с крупномасштабными распределенными системами и свою страсть к машинному обучению, чтобы помочь клиентам AWS из различных отраслевых вертикалей ускорить внедрение ИИ и облачных технологий. Ранее он был инженером по машинному обучению в службах подключения в Amazon, который помогал создавать платформы персонализации и профилактического обслуживания.
Исаак Привитера является старшим специалистом по данным в лаборатории решений для машинного обучения Amazon, где он разрабатывает индивидуальные решения для машинного обучения и глубокого обучения для решения бизнес-задач клиентов. Он работает в основном в области компьютерного зрения, уделяя особое внимание предоставлению клиентам AWS распределенного обучения и активного обучения.
- Коинсмарт. Лучшая в Европе биржа биткойнов и криптовалют.
- Платоблокчейн. Интеллект метавселенной Web3. Расширение знаний. БЕСПЛАТНЫЙ ДОСТУП.
- КриптоХок. Альткоин Радар. Бесплатная пробная версия.
- Источник: https://aws.amazon.com/blogs/machine-learning/build-a-custom-qa-dataset-using-amazon-sagemaker-ground-truth-to-train-a-hugging-face-qa- nlu-модель/
- "
- &
- 000
- 10
- 100
- 116
- 28
- 39
- 3d
- 7
- 9
- О нас
- ускорять
- доступ
- По
- Учетная запись
- Бухгалтерский учет
- точный
- через
- активный
- дополнение
- дополнительный
- адрес
- Принятие
- агенты
- AI
- Все
- Позволяющий
- уже
- Amazon
- Amazon Web Services
- количество
- Другой
- ответ
- API
- архитектура
- ПЛОЩАДЬ
- Аргументы
- около
- гайд
- статьи
- помощник
- внимание
- аудит
- дополненная
- Авторы
- Автоматизированный
- Автоматический
- доступен
- AWS
- фон
- барьер
- барьеры
- начало
- не являетесь
- ниже
- Билл
- Немного
- Заблокировать
- тело
- граница
- строить
- встроенный
- бизнес
- призывают
- Может получить
- захватить
- случаев
- вызов
- сложные
- расходы
- Выберите
- класс
- облако
- код
- Сбор
- компонент
- Вычисление
- компьютер
- Конфигурация
- связь
- Консоли
- консолидация
- Container
- Контейнеры
- содержит
- содержание
- подрядчики
- соответствующий
- Расходы
- Создайте
- создали
- создает
- Создающий
- Текущий
- изготовленный на заказ
- клиент
- служба поддержки
- Клиенты
- данным
- ученый данных
- более глубокий
- доставки
- демонстрировать
- убивают
- зависит
- развертывание
- развернуть
- развертывание
- развертывание
- предназначенный
- подробный
- подробнее
- Определять
- Развитие
- различный
- трудный
- непосредственно
- Болезнь
- распределенный
- Docker
- не
- вниз
- скачать
- загрузок
- вождение
- в течение
- легко
- позволяет
- Конечная точка
- инженер
- Инженеры
- Английский
- оценка
- пример
- существующий
- опыт
- Экстракты
- Face
- Особенность
- Особенности
- в заключение
- Во-первых,
- Фокус
- фокусировка
- после
- форма
- формат
- вперед
- найденный
- Бесплатно
- функция
- далее
- будущее
- порождать
- порождающий
- поколение
- GitHub
- будет
- хорошо
- помощь
- помогает
- высококачественный
- Выделите
- Выделенные
- очень
- хостинг
- Как
- How To
- HTTPS
- огромный
- человек
- Людей
- Сотни
- определения
- идентифицирующий
- Личность
- изображение
- осуществлять
- в XNUMX году
- что она
- улучшать
- Инк
- включают
- включает в себя
- В том числе
- все больше и больше
- промышленность
- информация
- Инфраструктура
- вход
- интеграции.
- Умный
- интерес
- Интерфейс
- Мультиязычность
- интуитивный
- IT
- саму трезвость
- JavaScript
- работа
- Джобс
- Основные
- знания
- известный
- лаборатория
- маркировка
- Этикетки
- язык
- большой
- больше
- запуск
- узнали
- изучение
- Оставлять
- рычаги
- Лицензирована
- Вероятно
- линия
- жидкость
- Список
- загрузка
- погрузка
- локальным
- в местном масштабе
- расположение
- машина
- обучение с помощью машины
- ДЕЛАЕТ
- Создание
- управляемого
- менеджер
- карта
- отображение
- Карты
- Маркетинг
- маска
- согласование
- смысл
- означает
- Память
- смешанный
- ML
- модель
- Модели
- монитор
- БОЛЕЕ
- самых
- с разными
- натуральный
- ноутбук
- номер
- полученный
- предлагают
- Предложения
- онлайн
- открытый
- открытие
- работать
- операционный
- операция
- Оптимизировать
- оптимизирующий
- Опция
- Опции
- заказ
- организация
- Другое
- в противном случае
- собственный
- часть
- особый
- особенно
- ОПЛАТИТЬ
- выполнения
- воплощение
- Платформы
- Точка
- пунктов
- Портал
- должность
- положительный
- мощный
- предсказывать
- Predictions
- цены
- частная
- Проблема
- проблемам
- процесс
- Процессы
- обработка
- Продукт
- Производство
- Продукция
- профилирование
- обеспечивать
- приводит
- обеспечение
- что такое варган?
- Вопросы и ответы
- вопрос
- быстро
- Сырье
- Reading
- разумный
- Получать
- уменьшить
- хранилище
- представление
- Полезные ресурсы
- ОТДЫХ
- Итоги
- возвращают
- доходы
- обзоре
- робототехника
- год
- Run
- Бег
- Масштабируемость
- Ученый
- Ученые
- SDK
- Поиск
- безопасность
- сегмент
- сегментация
- сегментами
- выбранный
- Услуги
- выступающей
- набор
- установка
- Короткое
- показанный
- аналогичный
- просто
- Размер
- навыки
- небольшой
- So
- Software
- разработка программного обеспечения
- твердый
- Решение
- Решения
- некоторые
- Space
- особый
- специализированный
- конкретно
- стек
- стандарт
- Начало
- заявление
- отчетность
- диск
- магазин
- Стратегия
- структурированный
- "Студент"
- успешный
- поставка
- поддержка
- Поддержка
- система
- системы
- задачи
- тестXNUMX
- Через
- время
- кропотливый
- Название
- знак
- лексемизацию
- лексемы
- Лексемы
- Темы
- факел
- Отслеживание
- Обучение
- Transform
- Типы
- ui
- понимать
- понимание
- us
- использование
- использовать
- Проверка
- ценностное
- разнообразие
- поставщики
- проверка
- Против
- вертикалей
- Видео
- Вид
- вирусы
- видение
- Режимы
- ждать
- Web
- веб-сервисы
- Что
- в то время как
- КТО
- Википедия.
- в
- без
- Работа
- рабочие
- Трудовые ресурсы
- работает
- глисты
- лет