Автоматизируйте классификацию запросов на ИТ-услуги с помощью специального классификатора Amazon Comprehend PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Автоматизируйте классификацию запросов на ИТ-услуги с помощью пользовательского классификатора Amazon Comprehend.

Предприятия часто имеют дело с большими объемами запросов на ИТ-услуги. Традиционно бремя выбора правильной категории для каждой проблемы ложится на отправителя запроса. Ручная ошибка или неправильная классификация заявки обычно означает задержку в решении запроса на ИТ-услугу. Это может привести к снижению производительности, снижению удовлетворенности клиентов, влиянию на соглашения об уровне обслуживания (SLA) и более широкому влиянию на операционную деятельность. По мере роста вашего предприятия проблема доставки правильного запроса на обслуживание нужной команде становится еще более важной. Использование подхода, основанного на машинном обучении (ML) и искусственном интеллекте, может помочь в удовлетворении постоянно меняющихся потребностей вашего предприятия.

Контролируемое машинное обучение — это процесс, который использует помеченные наборы данных и выходные данные для обучения алгоритмов обучения тому, как классифицировать данные или прогнозировать результат. Amazon Comprehend — это служба обработки естественного языка (NLP), которая использует машинное обучение для выявления ценных идей и связей в тексте. Он предоставляет API-интерфейсы на основе машинного обучения для извлечения ключевых фраз, сущностей, анализа настроений и многого другого.

В этом посте мы покажем вам, как реализовать модель контролируемого машинного обучения, которая может помочь автоматически классифицировать запросы на ИТ-услуги с помощью Amazon понимает пользовательскую классификацию. Пользовательская классификация Amazon Comprehend помогает настроить Amazon Comprehend в соответствии с вашими конкретными требованиями, не обладая набором навыков, необходимых для создания решений NLP на основе машинного обучения. Благодаря автоматическому машинному обучению или AutoML настраиваемая классификация Amazon Comprehend строит настраиваемые модели НЛП от вашего имени, используя предоставленные вами обучающие данные.

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

Чтобы проиллюстрировать классификацию запросов на ИТ-услуги, в этом решении используется Набор данных SEOSS. Этот набор данных представляет собой систематически извлекаемый набор данных, состоящий из 33 программных проектов с открытым исходным кодом, который содержит большое количество типизированных артефактов и трассировочных связей между ними. Это решение использует данные о проблемах из этих 33 проектов с открытым исходным кодом, сводки и описания, предоставленные конечными пользователями, для создания пользовательской модели классификатора с помощью Amazon Comprehend.

В этом посте показано, как реализовать и развернуть решение с помощью Комплект для разработки облачных сервисов AWS (AWS CDK) в изолированном Виртуальное частное облако Amazon (Amazon VPC), состоящая только из частных подсетей. Мы также используем код, чтобы продемонстрировать, как вы можете использовать AWS CDK. структура провайдера, мини-фреймворк для реализации провайдера для AWS CloudFormation настраиваемые ресурсы для создания, обновления или удаления настраиваемых ресурсов, таких как конечная точка Amazon Comprehend. Конечная точка Amazon Comprehend включает управляемые ресурсы, которые делают вашу пользовательскую модель доступной для логического вывода в реальном времени на клиентском компьютере или в сторонних приложениях. код для этого решения доступен на Github.

Вы используете AWS CDK для развертывания инфраструктуры, кода приложения и конфигурации решения. Вам также потребуется учетная запись AWS и возможность создавать ресурсы AWS. Вы используете AWS CDK для создания ресурсов AWS, таких как VPC с частными подсетями, Конечные точки Amazon VPC, Эластичная файловая система Amazon (Amazon EFS), Amazon Простая служба уведомлений (Amazon SNS), тема Простой сервис хранения Amazon (Amazon S3) ведро, Уведомления о событиях Amazon S3качества AWS Lambda функции. В совокупности эти ресурсы AWS составляют обучающий стек, который вы используете для создания и обучения пользовательской модели классификатора.

После создания этих ресурсов AWS вы загружаете набор данных SEOSS и загружаете набор данных в корзину S3, созданную решением. Если вы развертываете это решение в регионе AWS us-east-2, имя корзины S3 будет иметь следующий формат: comprehendcustom--us-east-2-s3stack. Решение использует многокомпонентный триггер загрузки Amazon S3 для вызова функции Lambda, которая запускает предварительную обработку входных данных и использует предварительно обработанные данные для обучения пользовательского классификатора Amazon Comprehend созданию пользовательской модели классификатора. Затем вы используете имя ресурса Amazon (ARN) пользовательской модели классификатора для создания стека логических выводов, который создает конечную точку Amazon Comprehend с помощью AWS CDK. структура провайдера, которые затем можно использовать для выводов из стороннего приложения или клиентского компьютера.

Следующая диаграмма иллюстрирует архитектуру обучающего стека.

Этапы рабочего процесса следующие:

  1. Загрузите набор данных SEOSS в корзину S3, созданную в рамках процесса развертывания учебного стека. Это создает триггер события, который вызывает etl_lambda функции.
  2. Ассоциация etl_lambda Функция загружает необработанный набор данных из Amazon S3 в Amazon EFS.
  3. Ассоциация etl_lambda Функция выполняет задачу предварительной обработки данных набора данных SEOSS.
  4. Когда выполнение функции завершается, она загружает преобразованные данные с prepped_data префикс корзины S3.
  5. После завершения загрузки преобразованных данных в Amazon SNS отправляется сообщение об успешном завершении ETL.
  6. В Amazon Comprehend вы можете классифицировать свои документы, используя два режима: многоклассовый или многоуровневый. Режим нескольких классов определяет один и только один класс для каждого документа, а режим нескольких меток определяет одну или несколько меток для каждого документа. Поскольку мы хотим идентифицировать один класс для каждого документа, мы обучаем пользовательскую модель классификатора в многоклассовом режиме. Amazon SNS запускает train_classifier_lambda функция, которая инициирует обучение классификатора Amazon Comprehend в многоклассовом режиме.
  7. Ассоциация train_classifier_lambda Функция инициирует обучение пользовательского классификатора Amazon Comprehend.
  8. Amazon Comprehend загружает преобразованные данные из prepped_data префикс в Amazon S3 для обучения пользовательской модели классификатора.
  9. По завершении обучения модели Amazon Comprehend загружает model.tar.gz подать в output_data префикс корзины S3. Среднее время завершения обучения этой пользовательской модели классификатора составляет примерно 10 часов.
  10. Триггер загрузки Amazon S3 вызывает extract_comprehend_model_name_lambda функция, которая извлекает пользовательскую модель классификатора ARN.
  11. Функция извлекает пользовательскую модель классификатора ARN из полезной нагрузки события S3 и ответа list-document-classifiers вызов.
  12. Функция отправляет ARN пользовательской модели классификатора на адрес электронной почты, на который вы подписались ранее в рамках процесса создания обучающего стека. Затем вы используете этот ARN для развертывания стека логического вывода.

Это развертывание создает стек логического вывода, как показано на следующем рисунке. Стек вывода предоставляет вам REST API, защищенный Управление идентификацией и доступом AWS (IAM), который затем можно использовать для создания оценок достоверности меток на основе входного текста, предоставленного сторонним приложением или клиентским компьютером.

Архитектура стека логического вывода

Предпосылки

Для этой демонстрации у вас должны быть следующие предпосылки:

  • An Аккаунт AWS.
  • Python 3.7 или новее, Node.jsкачества идти в машине развития. AWS CDK использует определенные версии Node.js (>=10.13.0, кроме версий 13.0.0–13.6.0). Рекомендуется версия с активной долгосрочной поддержкой (LTS).
    Чтобы установить активную LTS-версию Node.js, вы можете использовать следующее установить скрипт для nvm И использовать nvm в устанавливать версия Node.js LTS. Вы также можете установить текущий активный LTS Node.js через диспетчер пакетов в зависимости от выбранной вами операционной системы.

    Для macOS вы можете установить Node.js через диспетчер пакетов, используя следующие инструкции.

    Для Windows вы можете установить Node.js через диспетчер пакетов, используя следующие инструкции.

  • AWS CDK v2 предустановлен, если вы используете Облако AWS9 ИДЕ. Если вы используете AWS Cloud9 IDE, этот шаг можно пропустить. Если на компьютере для разработки не установлен AWS CDK, глобально установите AWS CDK v2 с помощью команды Node Package Manager. npm install -g aws-cdk. Для этого шага требуется, чтобы Node.js был установлен на компьютере для разработки.
  • Настройте свои учетные данные AWS для доступа и создания ресурсов AWS с помощью AWS CDK. Инструкции см. Указание учетных данных и региона.
  • Скачать Набор данных SEOSS состоящий из требований, отчетов об ошибках, истории кода и ссылок трассировки 33 проектов программного обеспечения с открытым исходным кодом. Сохраните файл dataverse_files.zip на вашей локальной машине.

Набор данных SEOSS

Разверните учебный стек AWS CDK

Для развертывания AWS CDK мы начинаем с обучающего стека. Выполните следующие шаги:

  1. Клонируйте репозиторий GitHub:
$ git clone https://github.com/aws-samples/amazon-comprehend-custom-automate-classification-it-service-request.git

  1. Перейдите в amazon-comprehend-custom-automate-classification-it-service-request Папка:
$ cd amazon-comprehend-custom-automate-classification-it-service-request/

Все следующие команды выполняются внутри amazon-comprehend-custom-automate-classification-it-service-request каталог.

  1. В каталоге amazon-comprehend-custom-automate-classification-it-service-request инициализируйте виртуальную среду Python и установите файл requirements.txt с помощью pip:
$ python3 -m venv .venv
$ source .venv/bin/activate
$ pip install -r requirements.txt

  1. Если вы впервые используете AWS CDK в определенной учетной записи AWS и регионе, см. инструкции по начальная загрузка среды AWS CDK:
$ cdk bootstrap aws:///

  1. Синтезируйте шаблоны CloudFormation для этого решения, используя cdk synth И использовать cdk deploy для создания упомянутых ранее ресурсов AWS:
$ cdk synth
$ cdk deploy VPCStack EFSStack S3Stack SNSStack ExtractLoadTransformEndPointCreateStack --parameters SNSStack:emailaddressarnnotification=

После того, как вы войдете cdk deploy, AWS CDK запрашивает, хотите ли вы развернуть изменения для каждого из стеков, вызванных командой cdk deploy.

  1. Enter y для каждого запроса на создание стека, затем на этапе развертывания cdk эти стеки создаются. Подпишите предоставленный вами адрес электронной почты на тему SNS, созданную как часть развертывания cdk.
  2. После успешного завершения развертывания cdk создайте папку с именем raw_data в ведре S3 comprehendcustom---s3stack.
  3. Загрузите набор данных SEOSS dataverse_files.zip который вы скачали ранее в эту папку.

После завершения загрузки решение вызывает etl_lambda использовать триггер события Amazon S3 для запуска процесса извлечения, преобразования и загрузки (ETL). После успешного завершения процесса ETL в тему SNS отправляется сообщение, которое вызывает train_classifier_lambda функция. Эта функция запускает обучение пользовательской модели классификатора Amazon Comprehend. В зависимости от того, обучаете ли вы свою модель на полном наборе данных SEOSS, обучение может занять до 10 часов. По завершении процесса обучения Amazon Comprehend загружает model.tar.gz подать в output_data префикс в сегменте S3.

Эта загрузка вызывает extract_comprehend_model_name_lambda с помощью триггера события S3, который извлекает пользовательскую модель классификатора ARN и отправляет ее на адрес электронной почты, на который вы подписались ранее. Эта пользовательская модель классификатора ARN затем используется для создания стека логического вывода. Когда обучение модели завершено, вы можете просмотреть показатели производительности пользовательской модели классификатора, перейдя в раздел сведений о версии в консоли Amazon Comprehend (см. следующий снимок экрана) или с помощью Amazon Comprehend. Бото3 SDK.

Показатели производительности

Развертывание стека логического вывода AWS CDK

Теперь вы готовы развернуть стек логического вывода.

  1. Скопируйте модель пользовательского классификатора ARN из полученного вами электронного письма и используйте следующее: cdk deploy Команда для создания стека вывода.

Эта команда развертывает REST API шлюза API, защищенный авторизатором IAM, который вы используете для логического вывода с идентификатором пользователя AWS или ролью IAM, у которой есть только привилегия execute-api:Invoke IAM. Следующая команда cdk deploy развертывает стек логического вывода. Этот стек использует AWS CDK структура провайдера для создания конечной точки Amazon Comprehend в качестве пользовательского ресурса, чтобы создание, удаление и обновление конечной точки Amazon Comprehend можно было выполнять в рамках жизненного цикла стека логических выводов с помощью команд cdk deploy и cdk destroy.

Поскольку вам нужно выполнить следующую команду после завершения обучения модели, что может занять до 10 часов, убедитесь, что вы находитесь в виртуальной среде Python, которую вы инициализировали на предыдущем шаге, и в amazon-comprehend-custom-automate-classification-it-service-request каталог:

$ cdk deploy APIGWInferenceStack --parameters APIGWInferenceStack:documentclassifierarn=

Например:

$ cdk deploy APIGWInferenceStack --parameters APIGWInferenceStack:documentclassifierarn=arn:aws:comprehend:us-east-2:111122223333:document-classifier/ComprehendCustomClassifier-11111111-2222-3333-4444-abc5d67e891f/version/v1

  1. После cdk deploy команда выполнена успешно, скопируйте APIGWInferenceStack.ComprehendCustomClassfierInvokeAPI значение из вывода консоли и использовать этот REST API для создания выводов с клиентского компьютера или стороннего приложения, которое execute-api:Invoke IAM-привилегия. Если вы используете это решение в us-east-2, формат этого REST API https://.execute-api.us-east-2.amazonaws.com/prod/invokecomprehendV1.

Кроме того, вы можете использовать тестовый клиент apiclientinvoke.py из репозитория GitHub для отправки запроса к пользовательской модели классификатора. Перед использованием apiclientinvoke.py убедитесь, что выполнены следующие предварительные условия:

  • У тебя есть boto3 и requests Пакет Python, установленный с помощью pip на клиентской машине.
  • Вы настроили учетные данные Boto3. По умолчанию тестовый клиент предполагает, что профиль с именем default присутствует и имеет execute-api:Invoke Привилегия IAM в REST API.
  • SigV4Auth указывает на регион, в котором развернут REST API. Обновите значение для us-east-2 in apiclientinvoke.py если ваш REST API развернут в us-east-2.
  • Вы назначили raw_data переменная с текстом, по которому вы хотите сделать прогноз класса или запрос классификации:
raw_data="""Spark is a unified analytics engine for large-scale data processing. It provides high-level APIs in Scala, Java, Python, and R, and an optimized engine that supports general computation graphs for data analysis."""

  • Вы назначили restapi переменная с REST API, скопированная ранее:

restapi="https://.execute-api.us-east-2.amazonaws.com/prod/invokecomprehendV1"

  1. Запустите apiclientinvoke.py после предыдущих обновлений:
$ python3 apiclientinvoke.py

Вы получаете следующий ответ от пользовательской модели классификатора:

{
 "statusCode": 200,
 "body": [
	{
	 "Name": "SPARK",
	 "Score": 0.9999773502349854
	},
	{
	 "Name": "HIVE",
	 "Score": 1.1613215974648483e-05
	},
	{
	 "Name": "DROOLS",
	 "Score": 1.1110682862636168e-06
	}
   ]
}

Amazon Comprehend возвращает показатели достоверности для каждой метки, которая была правильно присвоена. Если сервис полностью уверен в метке, оценка будет ближе к 1. Таким образом, для пользовательской модели классификатора Amazon Comprehend, обученной с использованием набора данных SEOSS, модель пользовательского классификатора предсказывает, что текст принадлежит к классу SPARK. Эту классификацию, возвращенную пользовательской моделью классификатора Amazon Comprehend, можно затем использовать для классификации запросов на ИТ-услуги или прогнозирования правильной категории запросов на ИТ-услуги, тем самым уменьшая число ошибок, совершаемых вручную, или неправильную классификацию запросов на услуги.

Убирать

Чтобы очистить все ресурсы, созданные в этом посте, которые были созданы как часть стека обучения и стека логического вывода, используйте следующую команду. Эта команда удаляет все ресурсы AWS, созданные как часть предыдущих команд развертывания cdk:

$ cdk destroy --all

Заключение

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

Вы можете расширить концепции, изложенные в этом посте, на другие варианты использования, такие как маршрутизация деловых или ИТ-заявок различным внутренним группам, таким как бизнес-отделы, агенты по обслуживанию клиентов и ИТ-поддержка уровня 2/3, созданные либо конечными пользователями, либо с помощью автоматизированных средств. означает.

Рекомендации

  • Рат, Майкл; Мэдер, Патрик, 2019 г., «Набор данных SEOSS — требования, отчеты об ошибках, история кода и ссылки на трассировку для целых проектов», https://doi.org/10.7910/DVN/PDDZ4Q, Гарвардский Dataverse, V1

Об авторах

Автоматизируйте классификацию запросов на ИТ-услуги с помощью специального классификатора Amazon Comprehend PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Арнаб Чакраборти является старшим архитектором решений в AWS из Цинциннати, штат Огайо. Он увлечен темами в области архитектуры предприятий и решений, анализа данных, бессерверных технологий и машинного обучения. В свободное время он любит смотреть фильмы, шоу о путешествиях и заниматься спортом.

ВирусныйАвтоматизируйте классификацию запросов на ИТ-услуги с помощью специального классификатора Amazon Comprehend PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай. Десаи является главным архитектором решений в AWS. Обладая более чем 25-летним опытом работы в области информационных технологий, он помогает клиентам внедрять AWS и модернизировать свои архитектуры. Он любит пешие прогулки и с удовольствием погружается с клиентами во все, что связано с AWS.

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

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