Home Машинное обучение Повышайте качество прогнозирования в пользовательских моделях классификации с помощью Amazon Comprehend | DeepTech

Повышайте качество прогнозирования в пользовательских моделях классификации с помощью Amazon Comprehend | DeepTech

0
Повышайте качество прогнозирования в пользовательских моделях классификации с помощью Amazon Comprehend
 | DeepTech

Искусственный интеллект (ИИ) и машинное обучение (МО) получили широкое распространение на предприятиях и в государственных организациях. Обработка неструктурированных данных стала проще благодаря достижениям в области обработки естественного языка (NLP) и удобным для пользователя сервисам искусственного интеллекта и машинного обучения, таким как Amazon Textract, Amazon Transcribe и Amazon Comprehend. Организации начали использовать сервисы искусственного интеллекта и машинного обучения, такие как Amazon Comprehend, для создания моделей классификации на основе неструктурированных данных и получения глубокой информации, которой у них раньше не было. Хотя вы можете использовать предварительно обученные модели с минимальными усилиями, без надлежащего управления данными и настройки модели вы не сможете реализовать все преимущества моделей AI/ML.

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

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

Это решение представляет собой подход к созданию оптимизированной пользовательской модели классификации с использованием Amazon Comprehend. Мы проходим несколько этапов, включая подготовку данных, создание модели, анализ показателей производительности модели и оптимизацию выводов на основе нашего анализа. Для выполнения некоторых из этих шагов мы используем блокнот Amazon SageMaker и консоль управления AWS.

Мы также применяем лучшие практики и методы оптимизации при подготовке данных, построении и настройке модели.

Предварительные условия

Если у вас нет экземпляра блокнота SageMaker, вы можете его создать. Инструкции см. в разделе Создание экземпляра Amazon SageMaker Notebook.

Подготовьте данные

Для этого анализа мы используем набор данных классификации токсичных комментариев из Каггл. Этот набор данных содержит 6 меток с 158 571 точкой данных. Однако каждая метка содержит только менее 10% от общего числа данных в качестве положительных примеров, а две метки содержат менее 1%.

Мы преобразуем существующий набор данных Kaggle в двухколоночный формат CSV Amazon Comprehend с разделением меток с помощью разделителя вертикальной черты (|). Amazon Comprehend ожидает как минимум одну метку для каждой точки данных. В этом наборе данных мы встречаем несколько точек данных, которые не подпадают ни под один из предоставленных ярлыков. Мы создаем новую метку под названием «чистая» и присваиваем этой метке любые точки данных, которые не являются токсичными, положительными. Наконец, мы разделили курируемые наборы данных на обучающие и тестовые наборы данных, используя соотношение 80/20 для каждой метки.

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

  1. На консоли SageMaker выберите Экземпляры ноутбуков в панели навигации.
  2. Выберите экземпляр записной книжки, который вы настроили, и выберите Открыть Юпитер.
  3. На Новый меню, выбирай Терминал.

  1. Выполните следующие команды в терминале, чтобы загрузить необходимые артефакты для этого поста:
cd SageMaker
wget https://aws-ml-blog.s3.amazonaws.com/artifacts/amazon-comprehend-improve-prediction-quality/comprehend-blog-artifacts.zip
unzip comprehend-blog-artifacts.zip
rm comprehend-blog-artifacts.zip
mkdir assets

  1. Закройте окно терминала.

Вы должны увидеть три тетради и поезд.csv файлы.

  1. Выберите блокнот Подготовка данных.ipynb.
  2. Выполните все шаги в блокноте.

Эти шаги подготавливают необработанный набор данных Kaggle для использования в качестве тщательно подобранных наборов данных для обучения и тестирования. Отобранные наборы данных будут храниться в блокноте и Amazon Simple Storage Service (Amazon S3).

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

  • Наборы данных должны содержать не менее 10 образцов на этикетку.
  • Amazon Comprehend принимает максимум 100 этикеток. Это мягкий лимит, который можно увеличить.
  • Убедитесь, что файл набора данных имеет правильный формат и правильный разделитель. Неправильные разделители могут привести к появлению пустых меток.
  • Все точки данных должны иметь метки.
  • Наборы обучающих и тестовых данных должны иметь сбалансированное распределение данных по каждой метке. Не используйте случайное распределение, поскольку это может привести к смещению в наборах обучающих и тестовых данных.

Создайте собственную модель классификации

Для построения нашей модели мы используем тщательно подобранные наборы обучающих и тестовых данных, созданные на этапе подготовки данных. Следующие шаги создают пользовательскую модель классификации Amazon Comprehend с несколькими метками:

  1. В консоли Amazon Comprehend выберите Пользовательская классификация в панели навигации.
  2. Выбирать Создать новую модель.
  3. Для Название моделивведите модель классификации токсичных веществ.
  4. Для Название версиивведите 1.
  5. Для Аннотация и формат данныхвыбирать Использование режима нескольких меток.
  6. Для Набор обучающих данныхвведите местоположение тщательно подобранного набора обучающих данных на Amazon S3.
  7. Выбирать Набор тестовых данных, предоставленный клиентом и введите местоположение тщательно отобранных тестовых данных на Amazon S3.
  8. Для Выходные данныевведите местоположение Amazon S3.
  9. Для Роль IAMвыбирать Создайте роль IAM, укажите суффикс имени как «comprehend-blog».
  10. Выбирать Создавать чтобы начать обучение пользовательской модели классификации и создание модели.

На следующем снимке экрана показаны сведения о пользовательской модели классификации в консоли Amazon Comprehend.

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

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

После обучения и создания модели она сгенерирует файл output.tar.gz, который содержит метки из набора данных, а также матрицу путаницы для каждой из меток. Чтобы дополнительно настроить эффективность прогнозирования модели, вам необходимо понять свою модель с вероятностями прогнозирования для каждого класса. Для этого вам необходимо создать задание анализа для определения оценок Amazon Comprehend, присвоенных каждой точке данных.

Выполните следующие шаги, чтобы создать задание анализа:

  1. В консоли Amazon Comprehend выберите Вакансии по анализу в панели навигации.
  2. Выбирать Создать задание.
  3. Для Имявходить toxic_train_data_analysis_job.
  4. Для Тип анализавыбирать Пользовательская классификация.
  5. Для Классификация моделей и маховиковуказать toxic-classification-model.
  6. Для Версияукажите 1.
  7. Для Входные данные Местоположение S3введите расположение файла данных обучения.
  8. Для Формат вводавыбирать Один документ в строке.
  9. Для Расположение выходных данных S3введите местоположение.
  10. Для Разрешения на доступвыбирать Использовать существующую роль IAM и выберите роль, созданную ранее.
  11. Выбирать Создать работу чтобы начать работу по анализу.
  12. Выберите Вакансии по анализу чтобы просмотреть подробную информацию о вакансии. Пожалуйста, запишите идентификатор вакансии в разделе «Информация о вакансии». На следующем шаге мы будем использовать идентификатор задания.

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

Мы используем Модель-Порог-Анализ.ipynb блокнот для проверки результатов на всех возможных пороговых значениях и оценки результатов на основе вероятности прогнозирования с использованием scikit-learn. precision_recall_curve функция. Кроме того, мы можем вычислить оценку F1 для каждого порога.

Нам понадобятся идентификаторы заданий анализа Amazon Comprehend в качестве входных данных для Модель-Пороговый Анализ блокнот. Вы можете получить идентификаторы заданий из консоли Amazon Comprehend. Выполните все шаги в Модель-Пороговый Анализ тетрадь для соблюдения порогов по всем классам.

Обратите внимание, как точность возрастает с увеличением порога, тогда как с отзывом происходит обратная ситуация. Чтобы найти баланс между ними, мы используем показатель F1, на кривой которого имеются видимые пики. Пики оценки F1 соответствуют определенному порогу, который может улучшить производительность модели. Обратите внимание, что большинство меток имеют пороговое значение около 0,5, за исключением метки угрозы, пороговое значение которой составляет около 0,04.

Затем мы можем использовать этот порог для конкретных ярлыков, которые неэффективны, используя только пороговое значение по умолчанию 0,5. Благодаря использованию оптимизированных пороговых значений результаты модели на тестовых данных улучшаются для угрозы метки с 0,00 до 0,24. Мы используем максимальную оценку F1 на пороге в качестве эталона для определения положительного или отрицательного значения для этой метки вместо общего контрольного показателя (стандартное значение, например > 0,7) для всех меток.

Обработка недостаточно представленных классов

Другой подход, эффективный для несбалансированного набора данных: передискретизация. Путем избыточной выборки недостаточно представленного класса модель чаще видит недостаточно представленный класс и подчеркивает важность этих выборок. Мы используем Передискретизация-недостаточно представлена.ipynb блокнот для оптимизации наборов данных.

Для этого набора данных мы протестировали, как меняется производительность модели в наборе оценочных данных по мере предоставления большего количества образцов. Мы используем технику передискретизации, чтобы увеличить количество недопредставленных классов и повысить производительность.

В данном конкретном случае мы протестировали 10, 25, 50, 100, 200 и 500 положительных примеров. Обратите внимание: хотя мы повторяем точки данных, мы по сути улучшаем производительность модели, подчеркивая важность недостаточно представленного класса.

Расходы

При использовании Amazon Comprehend вы платите по мере использования в зависимости от количества обработанных текстовых символов. Фактические затраты см. в разделе «Цены Amazon Comprehend».

Очистить

Закончив экспериментировать с этим решением, очистите свои ресурсы, чтобы удалить все ресурсы, развернутые в этом примере. Это поможет вам избежать продолжающихся расходов в вашем аккаунте.

Заключение

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

Для получения дополнительной информации об Amazon Comprehend посетите ресурсы для разработчиков Amazon Comprehend, где вы найдете видеоресурсы и публикации в блогах, а также ознакомьтесь с часто задаваемыми вопросами по AWS Comprehend.


Об авторах

Сатья Балакришнан — старший архитектор по работе с клиентами в команде профессиональных услуг AWS, специализирующийся на данных и решениях машинного обучения. Он работает с федеральными финансовыми клиентами США. Он увлечен созданием прагматичных решений для решения бизнес-проблем клиентов. В свободное время он любит смотреть фильмы и ходить в походы со своей семьей.

Принц Маллари является специалистом по данным NLP в группе профессиональных услуг AWS и специализируется на приложениях NLP для клиентов из государственного сектора. Он увлечен использованием машинного обучения как инструмента, позволяющего клиентам работать более продуктивно. В свободное время он любит играть в видеоигры и разрабатывать их вместе со своими друзьями.

LEAVE A REPLY

Please enter your comment!
Please enter your name here