Организациям в таких отраслях, как розничная торговля, банковское дело, финансы, здравоохранение, производство и кредитование, часто приходится иметь дело с огромным количеством неструктурированных текстовых документов, поступающих из различных источников, таких как новости, блоги, обзоры продуктов, каналы поддержки клиентов и социальные сети. Эти документы содержат критически важную информацию, которая является ключом к принятию важных бизнес-решений. По мере роста организации извлечение важной информации из этих документов становится проблемой. Благодаря развитию методов обработки естественного языка (NLP) и машинного обучения (ML) мы можем быстро и с высокой точностью находить ценные идеи и связи из этих текстовых документов, тем самым помогая компаниям своевременно принимать качественные бизнес-решения. Полностью управляемые услуги НЛП также ускорили внедрение НЛП. Amazon Comprehend — это полностью управляемая служба, позволяющая создавать собственные модели НЛП, отвечающие вашим требованиям, без каких-либо знаний в области машинного обучения.
В этом посте мы покажем, как использовать современные методы машинного обучения для решения пяти различных задач НЛП: обобщение документов, классификация текста, ответы на вопросы, распознавание именованных сущностей и извлечение отношений. Для каждой из этих задач НЛП мы демонстрируем, как использовать Создатель мудреца Амазонки выполнить следующие действия:
- Развертывание и выполнение логического вывода на предварительно обученной модели
- Точная настройка предварительно обученной модели на новом пользовательском наборе данных
- Дальнейшее улучшение производительности тонкой настройки с помощью SageMaker автоматическая настройка модели
- Оцените производительность модели на данных тестов удержания с помощью различных метрик оценки.
Хотя в этом посте мы рассмотрим пять конкретных задач NLP, вы можете использовать это решение в качестве шаблона для обобщения точной настройки предварительно обученных моделей с вашим собственным набором данных, а затем запустить оптимизацию гиперпараметров для повышения точности.
Шаблоны решений JumpStart
Amazon SageMaker JumpStart предоставляет комплексные решения одним щелчком мыши для многих распространенных случаев использования машинного обучения. Изучите следующие варианты использования для получения дополнительной информации о доступных шаблонах решений:
Шаблоны решений JumpStart охватывают множество вариантов использования, в рамках каждого из которых предлагается несколько различных шаблонов решений (это решение для понимания документов относится к варианту использования «Извлечение и анализ данных из документов»).
Выберите шаблон решения, который лучше всего подходит для вашего варианта использования, на целевой странице JumpStart. Для получения дополнительной информации о конкретных решениях для каждого варианта использования и о том, как запустить решение JumpStart, см. Шаблоны решений.
Обзор решения
На следующем изображении показано, как можно использовать это решение с компонентами SageMaker. Учебные задания SageMaker используются для обучения различных моделей НЛП, а конечные точки SageMaker используются для развертывания моделей на каждом этапе. Мы используем Простой сервис хранения Amazon (Amazon S3) вместе с SageMaker для хранения обучающих данных и артефактов модели, а также Amazon CloudWatch для регистрации результатов обучения и конечной точки.
Откройте решение для понимания документов
Перейдите к решению Document Understanding в JumpStart.
Теперь мы можем более подробно рассмотреть некоторые активы, включенные в это решение, начиная с демонстрационного ноутбука.
Демонстрационный блокнот
Вы можете использовать демонстрационную записную книжку для отправки примеров данных на уже развернутые конечные точки модели для задач суммирования документов и ответов на вопросы. Демонстрационная записная книжка позволяет быстро получить практический опыт, запросив данные примера.
После запуска решения Document Understanding откройте демонстрационную записную книжку, выбрав Использовать конечную точку в записной книжке.
Давайте углубимся в каждый из пяти основных ноутбуков для этого решения.
Предпосылки
In Студия Amazon SageMaker, убедитесь, что вы используете PyTorch 1.10 Python 3.8 CPU Optimized
image/kernel, чтобы открыть блокноты. Для обучения используются пять экземпляров ml.g4dn.2xlarge, поэтому вам следует запрос на увеличение лимита услуг если ваша учетная запись требует повышенных лимитов для этого типа.
Классификация текста
Классификация текста относится к классификации входного предложения по одной из меток класса обучающего набора данных. В этом блокноте показано, как использовать API-интерфейс JumpStart для классификации текста.
Развертывание и выполнение логического вывода на предварительно обученной модели
Модель классификации текста, которую мы выбрали для использования, основана на встраивании текста (tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2
) модель из Концентратор TensorFlow, который предварительно обучен на наборах данных Wikipedia и BookCorpus.
Модель, доступная для развертывания, создается путем присоединения слоя двоичной классификации к выходным данным модели встраивания текста, а затем точной настройки всей модели на SST-2 набор данных, состоящий из положительных и отрицательных отзывов о фильмах.
Чтобы выполнить вывод для этой модели, нам сначала нужно загрузить контейнер вывода (deploy_image_uri
), сценарий вывода (deploy_source_uri
) и предварительно обученная модель (base_model_uri
). Затем мы передаем их в качестве параметров для создания экземпляра объекта модели SageMaker, который затем можно развернуть:
Следующий код показывает наши ответы:
Точная настройка предварительно обученной модели на пользовательском наборе данных
Мы только что рассмотрели выполнение логического вывода на предварительно обученной модели BERT, которая была точно настроена на SST-2
набор данных.
Далее мы обсудим, как точно настроить модель для пользовательского набора данных с любым количеством классов. Набор данных, который мы используем для тонкой настройки, по-прежнему SST-2
набор данных. Вы можете заменить этот набор данных любым интересующим вас набором данных.
Мы получаем обучающий контейнер Docker, исходный код обучающего алгоритма и предварительно обученную модель:
Для специфичных для алгоритма гиперпараметров мы начинаем с извлечения словаря Python обучающих гиперпараметров, которые алгоритм принимает со значениями по умолчанию. Вы можете переопределить их с помощью пользовательских значений, как показано в следующем коде:
Набор данных (SST-2
) разделен на обучающий, проверочный и тестовый наборы, где обучающий набор используется для подбора модели, проверочный набор используется для вычисления показателей оценки, которые можно использовать для HPO, а тестовый набор используется в качестве удерживаемых данных. для оценки производительности модели. Затем набор данных для обучения и проверки загружается в Amazon S3 и используется для запуска задания тонкой настройки обучения:
После завершения работы по тонкой настройке мы развертываем модель, запускаем логический вывод на наборе тестовых данных и вычисляем метрики оценки. Поскольку это задача бинарной классификации, мы используем показатель точности и Счет F1 в качестве показателей оценки. Большее значение указывает на лучшую производительность. На следующем снимке экрана показаны наши результаты.
Дальнейшее повышение производительности тонкой настройки с помощью автоматической настройки модели SageMaker.
На этом шаге мы покажем, как можно еще больше повысить производительность модели путем точной настройки модели с помощью автоматической настройки модели SageMaker. Автоматическая настройка модели, также известная как оптимизация гиперпараметров (HPO), находит наилучшую версию модели, выполняя несколько заданий обучения в наборе данных с указанным диапазоном гиперпараметров. Затем он выбирает значения гиперпараметров, которые приводят к модели, которая работает лучше всего, согласно выбранной вами метрике, в наборе данных проверки.
Во-первых, мы устанавливаем цель как оценку точности данных проверки (val_accuracy
) и определить метрики для задания настройки, указав имя целевого показателя и регулярное выражение (регулярное выражение). Регулярное выражение используется для сопоставления выходных данных журнала алгоритма и захвата числовых значений метрик. Затем мы указываем диапазоны гиперпараметров, из которых нужно выбрать наилучшие значения гиперпараметров. Мы устанавливаем общее количество заданий по настройке равным шести и распределяем эти задания по трем разным Эластичное вычислительное облако Amazon (Amazon EC2) для выполнения параллельных заданий по настройке. См. следующий код:
Мы передаем эти значения для создания экземпляра объекта SageMaker Estimator, аналогично тому, что мы делали на предыдущем шаге тонкой настройки. Вместо того, чтобы позвонить в fit
функции Estimator
объект, мы передаем Estimator
объект в качестве параметра для Гиперпараметртюнер конструктор и вызвать fit
его функция для запуска заданий настройки:
После завершения заданий по настройке мы развертываем модель, которая дает наилучший показатель метрики оценки в наборе данных проверки, выполняем вывод на том же наборе данных проверки удержания, который мы сделали в предыдущем разделе, и вычисляем метрики оценки.
Результаты показывают, что модель, выбранная с помощью автоматической настройки модели, значительно превосходит модель, точно настроенную в предыдущем разделе, на наборе данных тестовой задержки.
Распознавание именованных объектов
Распознавание именованных сущностей (NER) — это процесс обнаружения и классификации именованных сущностей по предопределенным категориям, таким как имена людей, организаций, местоположения и количества. Существует множество реальных вариантов использования NER, таких как механизмы рекомендаций, категоризация и назначение заявок в службу поддержки в нужный отдел, извлечение важной информации из отчетов пациентов в здравоохранении и классификация контента из новостей и блогов.
Развертывание и выполнение логического вывода на предварительно обученной модели
Мы разворачиваем En_core_web_md модель из ошалевший библиотека. spaCy — это библиотека NLP с открытым исходным кодом, которую можно использовать для различных задач и которая имеет встроенные методы для NER. Мы используем контейнер глубокого обучения (DLC) AWS PyTorch с режимом сценария и устанавливаем библиотеку spaCy в качестве зависимости поверх контейнера.
Далее точка входа для скрипта (аргумент entry_point.py
), содержащий весь код для загрузки и загрузки En_core_web_md
моделировать и выполнять логические выводы по данным, отправляемым в конечную точку. Наконец, нам все еще нужно предоставить model_data
как предварительно обученная модель для вывода. Потому что предварительно обученный En_core_web_md
Модель скачивается на лету, что указано в скрипте входа, мы предоставляем пустой файл архива. После развертывания конечной точки вы можете вызывать конечную точку непосредственно из записной книжки с помощью SageMaker Python SDK. Predictor
, Смотрите следующий код:
Входными данными для модели является текстовый документ. Модель именованных объектов извлекает фрагменты существительных и именованные объекты в текстовом документе и классифицирует их по ряду различных типов (таких как люди, места и организации). Пример ввода и вывода показан в следующем коде. start_char
параметр указывает смещение символа для начала диапазона, и end_char
указывает на конец промежутка.
Точная настройка предварительно обученной модели на пользовательском наборе данных
На этом этапе мы демонстрируем, как точно настроить предварительно обученные языковые модели для NER в вашем собственном наборе данных. Шаг тонкой настройки обновляет параметры модели, чтобы зафиксировать характеристики ваших собственных данных и повысить точность. Мы используем ВикиЭНН (PAN-X) для точной настройки DistilBERT-база-без корпуса Модель-трансформер от Hugging Face.
Набор данных разделен на наборы для обучения, проверки и тестирования.
Далее мы указываем гиперпараметры модели и используем DLC AWS Hugging Face с режимом скрипта (аргумент entry_point
) для запуска задания тонкой настройки:
После завершения тонкой настройки мы развертываем конечную точку и запрашиваем эту конечную точку с тестовыми данными удержания. Чтобы запросить конечную точку, каждую текстовую строку необходимо преобразовать в один или несколько маркеров и отправить в модель преобразователя. Каждый токен получает предсказанный именованный тег сущности. Поскольку каждая текстовая строка может быть разделена на один или несколько токенов, нам нужно продублировать именованный тег сущности строки для всех токенов, которые с ней связаны. Предоставленный блокнот проведет вас через шаги, чтобы достичь этого.
Наконец, мы используем встроенные метрики оценки Hugging Face. последовательный вычислить оценочные баллы по данным теста задержки. Используемые метрики оценки: общая точность, общий отзыв, общий F1 и точность. На следующем снимке экрана показаны наши результаты.
Дальнейшее повышение производительности тонкой настройки с помощью автоматической настройки модели SageMaker.
Как и в случае с текстовой классификацией, мы демонстрируем, как можно еще больше повысить производительность модели путем точной настройки модели с помощью автоматической настройки модели SageMaker. Чтобы запустить задание по настройке, нам нужно определить объективную метрику, которую мы хотим использовать для оценки производительности модели в наборе данных проверки (в данном случае оценка F1), диапазоны гиперпараметров для выбора лучших значений гиперпараметров, а также конфигурации задания настройки, такие как максимальное количество заданий по настройке и количество параллельных заданий, запускаемых одновременно:
После завершения заданий по настройке мы развертываем модель, которая дает наилучший показатель метрики оценки в наборе данных проверки, выполняем вывод на том же наборе данных проверки удержания, который мы сделали в предыдущем разделе, и вычисляем метрики оценки.
Мы видим, что модель с HPO обеспечивает значительно лучшую производительность по всем показателям.
Ответ на вопрос
Ответы на вопросы полезны, когда вы хотите запросить большой объем текста для получения конкретной информации. Это позволяет пользователю задать вопрос на естественном языке и получить немедленный и краткий ответ. Системы ответов на вопросы, основанные на НЛП, могут использоваться в поисковых системах и телефонных разговорных интерфейсах.
Развертывание и выполнение логического вывода на предварительно обученной модели
Наша предварительно обученная модель представляет собой модель ответов на извлекающие вопросы (EQA). Берт-большой-необработанный-целое-слово-маскирующий-тонкая-отряд построен на модели Трансформера от Hugging Face. Мы используем DLC AWS PyTorch в режиме сценария и устанавливаем трансформеры библиотека как зависимость поверх контейнера. Как и в задаче NER, мы предоставляем пустой файл архива в аргументе model_data
потому что предварительно обученная модель загружается на лету. После развертывания конечной точки вы можете вызывать конечную точку непосредственно из записной книжки с помощью SageMaker Python SDK. Predictor
, Смотрите следующий код:
Все, что нам нужно сделать, это создать объект словаря с двумя ключами. context
это текст, из которого мы хотим получить информацию. question
— это запрос на естественном языке, указывающий, какую информацию мы хотим извлечь. Мы называем predict
на наш предиктор, и мы должны получить ответ от конечной точки, который содержит наиболее вероятные ответы:
У нас есть ответ, и мы можем распечатать наиболее вероятные ответы, извлеченные из предыдущего текста. Каждый ответ имеет показатель достоверности, используемый для ранжирования (но этот показатель не следует интерпретировать как истинную вероятность). В дополнение к дословному ответу вы также получаете индексы начального и конечного символов ответа из исходного контекста:
Теперь мы настраиваем эту модель с помощью нашего собственного пользовательского набора данных, чтобы получить лучшие результаты.
Точная настройка предварительно обученной модели на пользовательском наборе данных
На этом этапе мы демонстрируем, как точно настроить предварительно обученные языковые модели для EQA в вашем собственном наборе данных. Шаг тонкой настройки обновляет параметры модели, чтобы зафиксировать характеристики ваших собственных данных и повысить точность. Мы используем SQUAD2.0 набор данных для точной настройки модели встраивания текста bert-base-без кожуха от обнимающего лица. Модель, доступная для тонкой настройки, прикрепляет слой извлечения ответов к модели встраивания текста и инициализирует параметры слоя случайными значениями. На этапе точной настройки настраиваются все параметры модели, чтобы свести к минимуму ошибку прогнозирования входных данных, и возвращается настроенная модель.
Подобно задаче классификации текста, набор данных (SQuAD2.0) разделен на обучающий, проверочный и тестовый наборы.
Далее мы указываем гиперпараметры модели и используем API-интерфейс JumpStart для запуска задания тонкой настройки:
После завершения работы по тонкой настройке мы развертываем модель, запускаем логический вывод на наборе тестовых данных и вычисляем метрики оценки. В качестве показателей оценки используются средний балл точного совпадения и средний балл F1. На следующем снимке экрана показаны результаты.
Дальнейшее повышение производительности тонкой настройки с помощью автоматической настройки модели SageMaker.
Как и в предыдущих разделах, мы используем HyperparameterTuner
объект для запуска заданий настройки:
После завершения заданий по настройке мы развертываем модель, которая дает наилучший показатель метрики оценки в наборе данных проверки, выполняем вывод на том же наборе данных проверки удержания, который мы сделали в предыдущем разделе, и вычисляем метрики оценки.
Мы видим, что модель с HPO показывает значительно лучшую производительность на тестовых данных удержания.
Извлечение отношений
Извлечение отношений — это задача извлечения семантических отношений из текста, которые обычно возникают между двумя или более объектами. Извлечение отношений играет важную роль в извлечении структурированной информации из неструктурированных источников, таких как необработанный текст. В этой записной книжке мы демонстрируем два варианта использования извлечения отношений.
Точная настройка предварительно обученной модели на пользовательском наборе данных
Мы используем модель извлечения отношений, построенную на BERT-база-без корпуса модель с использованием трансформаторов от Трансформеры «Обнимающее лицо» библиотека. Модель для тонкой настройки присоединяется к линейному классификационному слою, который принимает пару вложений токенов, выведенных моделью встраивания текста, и инициализирует параметры слоя случайными значениями. На этапе точной настройки настраиваются все параметры модели, чтобы свести к минимуму ошибку прогнозирования входных данных, и возвращается настроенная модель.
Набор данных, который мы настраиваем для модели, СемЭвал-2010 Задание 8. Модель, возвращенная тонкой настройкой, может быть дополнительно развернута для логического вывода.
Набор данных содержит обучающие, проверочные и тестовые наборы.
Мы используем AWS PyTorch DLC с режимом сценария из SageMaker Python SDK, где transformers
библиотека устанавливается как зависимость поверх контейнера. Мы определяем SageMaker PyTorch
оценщик и набор гиперпараметров, таких как предварительно обученная модель, скорость обучения и номера эпох, для выполнения точной настройки. Код для тонкой настройки модели извлечения отношений определен в entry_point.py
, Смотрите следующий код:
Дальнейшее повышение производительности тонкой настройки с помощью автоматической настройки модели SageMaker.
Как и в предыдущих разделах, мы используем HyperparameterTuner
объект для взаимодействия с API настройки гиперпараметров SageMaker. Мы можем начать работу по настройке гиперпараметров, вызвав метод fit
Метод:
Когда работа по настройке гиперпараметров завершена, мы делаем вывод и проверяем оценку.
Мы видим, что модель с HPO показывает лучшую производительность на тестовых данных удержания.
Резюме документа
Резюме документа или текста — это задача объединения больших объемов текстовых данных в меньшее подмножество осмысленных предложений, представляющих наиболее важную или релевантную информацию в исходном содержании. Резюме документа — это полезная техника для извлечения важной информации из больших объемов текстовых данных в несколько предложений. Обобщение текста используется во многих случаях, таких как обработка документов и извлечение информации из блогов, статей и новостей.
В этой записной книжке показано развертывание модели суммирования документов. T5-база из Трансформеры «Обнимающее лицо» библиотека. Мы также тестируем развернутые конечные точки с помощью текстовой статьи и оцениваем результаты с помощью встроенной метрики оценки Hugging Face. RED.
Как и в тетрадях для ответов на вопросы и NER, мы используем PyTorchModel
из SageMaker Python SDK вместе с entry_point.py
сценарий для загрузки базовой модели T5 в конечную точку HTTPS. После успешного развертывания конечной точки мы можем отправить текстовую статью в конечную точку, чтобы получить прогнозный ответ:
Далее мы оцениваем и сравниваем текстовую статью и результат обобщения с помощью метрики ROUGE. Рассчитываются три оценочных показателя: rougeN
, rougeL
и rougeLsum
. rougeN
измеряет количество совпадений n-grams
между сгенерированным моделью текстом (результатом суммирования) и reference
(введите текст). Метрики rougeL
и rougeLsum
измерить самые длинные совпадающие последовательности слов, ища самые длинные общие подстроки в сгенерированных и справочных сводках. Для каждой метрики рассчитываются доверительные интервалы для точности, полноты и оценки F1. См. следующий код:
Убирать
Ресурсы, созданные для этого решения, можно удалить с помощью Удалить все ресурсы кнопку из SageMaker Studio IDE. Каждая записная книжка также содержит раздел очистки с кодом для удаления конечных точек.
Заключение
В этом посте мы продемонстрировали, как использовать современные методы машинного обучения для решения пяти различных задач НЛП: обобщение документов, классификация текста, вопросы и ответы, распознавание именованных сущностей и извлечение отношений с помощью Jumpstart. Начните работу с Jumpstart прямо сейчас!
Об авторах
Доктор Синь Хуан — научный сотрудник Amazon SageMaker JumpStart и встроенных алгоритмов Amazon SageMaker. Он занимается разработкой масштабируемых алгоритмов машинного обучения. Его исследовательские интересы лежат в области обработки естественного языка, объяснимого глубокого обучения на табличных данных и надежного анализа непараметрической пространственно-временной кластеризации. Он опубликовал множество статей на конференциях ACL, ICDM, KDD и в журнале Royal Statistical Society: Series A.
Вивек Гангасани является старшим архитектором решений для машинного обучения в Amazon Web Services. Он помогает стартапам создавать и внедрять приложения AI/ML. В настоящее время он сосредоточен на объединении своего опыта работы с контейнерами и машинным обучением для предоставления решений для MLOps, ML Inference и low-code ML. В свободное время он любит посещать новые рестораны и изучать новые тенденции в области искусственного интеллекта и глубокого обучения.
Джереми Коэн является архитектором решений в AWS, где он помогает клиентам создавать передовые облачные решения. В свободное время он любит короткие прогулки по пляжу, исследует залив со своей семьей, ремонтирует вещи в доме, ломает вещи в доме и готовит барбекю.
Нилам Кошия является архитектором корпоративных решений в AWS. В настоящее время она сосредоточена на том, чтобы помочь корпоративным клиентам в принятии ими облачных решений для достижения стратегических результатов в бизнесе. В свободное время она любит читать и гулять на свежем воздухе.
- Продвинутый (300)
- AI
- ай искусство
- генератор искусств ай
- искусственный интеллект
- Создатель мудреца Амазонки
- Amazon SageMaker JumpStart
- искусственный интеллект
- сертификация искусственного интеллекта
- искусственный интеллект в банковском деле
- робот с искусственным интеллектом
- роботы с искусственным интеллектом
- программное обеспечение искусственного интеллекта
- Машинное обучение AWS
- блокчейн
- конференция по блокчейну
- Coingenius
- разговорный искусственный интеллект
- криптоконференция ИИ
- дал-и
- глубокое обучение
- Эксперт (400)
- google ai
- обучение с помощью машины
- Платон
- Платон Ай
- Платон Интеллектуальные данные
- Платон игра
- ПлатонДанные
- платогейминг
- масштаб ай
- синтаксис
- зефирнет