Предприятия часто имеют дело с большими объемами запросов на ИТ-услуги. Традиционно бремя выбора правильной категории для каждой проблемы ложится на отправителя запроса. Ручная ошибка или неправильная классификация заявки обычно означает задержку в решении запроса на ИТ-услугу. Это может привести к снижению производительности, снижению удовлетворенности клиентов, влиянию на соглашения об уровне обслуживания (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. структура провайдера, которые затем можно использовать для выводов из стороннего приложения или клиентского компьютера.
Следующая диаграмма иллюстрирует архитектуру обучающего стека.
Этапы рабочего процесса следующие:
- Загрузите набор данных SEOSS в корзину S3, созданную в рамках процесса развертывания учебного стека. Это создает триггер события, который вызывает
etl_lambda
функции. - Ассоциация
etl_lambda
Функция загружает необработанный набор данных из Amazon S3 в Amazon EFS. - Ассоциация
etl_lambda
Функция выполняет задачу предварительной обработки данных набора данных SEOSS. - Когда выполнение функции завершается, она загружает преобразованные данные с
prepped_data
префикс корзины S3. - После завершения загрузки преобразованных данных в Amazon SNS отправляется сообщение об успешном завершении ETL.
- В Amazon Comprehend вы можете классифицировать свои документы, используя два режима: многоклассовый или многоуровневый. Режим нескольких классов определяет один и только один класс для каждого документа, а режим нескольких меток определяет одну или несколько меток для каждого документа. Поскольку мы хотим идентифицировать один класс для каждого документа, мы обучаем пользовательскую модель классификатора в многоклассовом режиме. Amazon SNS запускает
train_classifier_lambda
функция, которая инициирует обучение классификатора Amazon Comprehend в многоклассовом режиме. - Ассоциация
train_classifier_lambda
Функция инициирует обучение пользовательского классификатора Amazon Comprehend. - Amazon Comprehend загружает преобразованные данные из
prepped_data
префикс в Amazon S3 для обучения пользовательской модели классификатора. - По завершении обучения модели Amazon Comprehend загружает
model.tar.gz
подать вoutput_data
префикс корзины S3. Среднее время завершения обучения этой пользовательской модели классификатора составляет примерно 10 часов. - Триггер загрузки Amazon S3 вызывает
extract_comprehend_model_name_lambda
функция, которая извлекает пользовательскую модель классификатора ARN. - Функция извлекает пользовательскую модель классификатора ARN из полезной нагрузки события S3 и ответа
list-document-classifiers
вызов. - Функция отправляет 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
на вашей локальной машине.
Разверните учебный стек AWS CDK
Для развертывания AWS CDK мы начинаем с обучающего стека. Выполните следующие шаги:
- Клонируйте репозиторий GitHub:
- Перейдите в
amazon-comprehend-custom-automate-classification-it-service-request
Папка:
Все следующие команды выполняются внутри amazon-comprehend-custom-automate-classification-it-service-request
каталог.
- В каталоге amazon-comprehend-custom-automate-classification-it-service-request инициализируйте виртуальную среду Python и установите файл requirements.txt с помощью pip:
- Если вы впервые используете AWS CDK в определенной учетной записи AWS и регионе, см. инструкции по начальная загрузка среды AWS CDK:
- Синтезируйте шаблоны CloudFormation для этого решения, используя
cdk synth
И использоватьcdk deploy
для создания упомянутых ранее ресурсов AWS:
После того, как вы войдете cdk deploy
, AWS CDK запрашивает, хотите ли вы развернуть изменения для каждого из стеков, вызванных командой cdk deploy.
- Enter
y
для каждого запроса на создание стека, затем на этапе развертывания cdk эти стеки создаются. Подпишите предоставленный вами адрес электронной почты на тему SNS, созданную как часть развертывания cdk. - После успешного завершения развертывания cdk создайте папку с именем
raw_data
в ведре S3comprehendcustom---s3stack
. - Загрузите набор данных 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
Теперь вы готовы развернуть стек логического вывода.
- Скопируйте модель пользовательского классификатора 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.ComprehendCustomClassfierInvokeAPI
значение из вывода консоли и использовать этот REST API для создания выводов с клиентского компьютера или стороннего приложения, котороеexecute-api:Invoke
IAM-привилегия. Если вы используете это решение в us-east-2, формат этого REST APIhttps://.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
inapiclientinvoke.py
если ваш REST API развернут в us-east-2. - Вы назначили
raw_data
переменная с текстом, по которому вы хотите сделать прогноз класса или запрос классификации:
- Вы назначили
restapi
переменная с REST API, скопированная ранее:
restapi="https://.execute-api.us-east-2.amazonaws.com/prod/invokecomprehendV1"
- Запустите
apiclientinvoke.py
после предыдущих обновлений:
Вы получаете следующий ответ от пользовательской модели классификатора:
Amazon Comprehend возвращает показатели достоверности для каждой метки, которая была правильно присвоена. Если сервис полностью уверен в метке, оценка будет ближе к 1. Таким образом, для пользовательской модели классификатора Amazon Comprehend, обученной с использованием набора данных SEOSS, модель пользовательского классификатора предсказывает, что текст принадлежит к классу SPARK. Эту классификацию, возвращенную пользовательской моделью классификатора Amazon Comprehend, можно затем использовать для классификации запросов на ИТ-услуги или прогнозирования правильной категории запросов на ИТ-услуги, тем самым уменьшая число ошибок, совершаемых вручную, или неправильную классификацию запросов на услуги.
Убирать
Чтобы очистить все ресурсы, созданные в этом посте, которые были созданы как часть стека обучения и стека логического вывода, используйте следующую команду. Эта команда удаляет все ресурсы AWS, созданные как часть предыдущих команд развертывания cdk:
Заключение
В этом посте мы показали, как предприятия могут внедрить контролируемую модель машинного обучения с помощью пользовательской классификации Amazon Comprehend для прогнозирования категории запросов на ИТ-услуги на основе темы или описания запроса, отправленного конечным пользователем. После создания и обучения пользовательской модели классификатора вы можете запустить анализ в реальном времени для пользовательской классификации, создав конечную точку. После развертывания этой модели на конечной точке Amazon Comprehend ее можно использовать для выполнения логических выводов в реальном времени сторонними приложениями или другими клиентскими компьютерами, включая инструменты управления ИТ-услугами. Затем вы можете использовать этот вывод, чтобы предсказать категорию дефекта и уменьшить количество ручных ошибок или неверных классификаций заявок. Это помогает сократить задержки при разрешении заявок и повышает точность решения и производительность клиентов, что в конечном итоге приводит к повышению удовлетворенности клиентов.
Вы можете расширить концепции, изложенные в этом посте, на другие варианты использования, такие как маршрутизация деловых или ИТ-заявок различным внутренним группам, таким как бизнес-отделы, агенты по обслуживанию клиентов и ИТ-поддержка уровня 2/3, созданные либо конечными пользователями, либо с помощью автоматизированных средств. означает.
Рекомендации
- Рат, Майкл; Мэдер, Патрик, 2019 г., «Набор данных SEOSS — требования, отчеты об ошибках, история кода и ссылки на трассировку для целых проектов», https://doi.org/10.7910/DVN/PDDZ4Q, Гарвардский Dataverse, V1
Об авторах
Арнаб Чакраборти является старшим архитектором решений в AWS из Цинциннати, штат Огайо. Он увлечен темами в области архитектуры предприятий и решений, анализа данных, бессерверных технологий и машинного обучения. В свободное время он любит смотреть фильмы, шоу о путешествиях и заниматься спортом.
Вирусный Десаи является главным архитектором решений в AWS. Обладая более чем 25-летним опытом работы в области информационных технологий, он помогает клиентам внедрять AWS и модернизировать свои архитектуры. Он любит пешие прогулки и с удовольствием погружается с клиентами во все, что связано с AWS.
- Продвинутый (300)
- AI
- ай искусство
- генератор искусств ай
- искусственный интеллект
- Amazon Comprehend
- искусственный интеллект
- сертификация искусственного интеллекта
- искусственный интеллект в банковском деле
- робот с искусственным интеллектом
- роботы с искусственным интеллектом
- программное обеспечение искусственного интеллекта
- Машинное обучение AWS
- блокчейн
- конференция по блокчейну
- Coingenius
- разговорный искусственный интеллект
- криптоконференция ИИ
- дал-и
- глубокое обучение
- google ai
- Средний (200)
- обучение с помощью машины
- Платон
- Платон Ай
- Платон Интеллектуальные данные
- Платон игра
- ПлатонДанные
- платогейминг
- масштаб ай
- синтаксис
- Технические инструкции
- зефирнет