Amazon Comprehend カスタム分類子 PlatoBlockchain Data Intelligence を使用して IT サービスリクエストの分類を自動化します。垂直検索。あい。

Amazon Comprehend カスタム分類子を使用して IT サービスリクエストの分類を自動化する

企業は、多くの場合、大量の IT サービス要求を処理します。 伝統的に、すべての問題に対して正しいカテゴリを選択するという負担は、依頼者に課せられます。 通常、手作業によるエラーやチケットの誤分類は、IT サービス要求の解決が遅れることを意味します。 これにより、生産性の低下、顧客満足度の低下、サービス レベル アグリーメント (SLA) への影響、および運用への広範な影響が生じる可能性があります。 企業が成長するにつれて、適切なサービス要求を適切なチームに届けるという問題がさらに重要になります。 機械学習 (ML) と人工知能に基づくアプローチを使用すると、進化し続ける企業のニーズに対応できます。

教師あり ML は、ラベル付けされたデータセットと出力を使用して、データの分類方法や結果の予測方法について学習アルゴリズムをトレーニングするプロセスです。 Amazon Comprehend は、ML を使用してテキスト内の貴重な洞察とつながりを明らかにする自然言語処理 (NLP) サービスです。 キー フレーズ、エンティティ、感情分析などを抽出するための ML を利用した API を提供します。

この投稿では、教師あり ML モデルを実装する方法を紹介します。このモデルは、IT サービス リクエストを自動的に分類するのに役立ちます。 Amazon Comprehendカスタム分類. Amazon Comprehend カスタム分類を使用すると、ML ベースの NLP ソリューションを構築するために必要なスキルセットがなくても、特定の要件に合わせて Amazon Comprehend をカスタマイズできます。 自動 ML (AutoML) を使用して、Amazon Comprehend カスタム分類は、提供されたトレーニング データを使用して、カスタマイズされた NLP モデルを構築します。

ソリューションの概要

IT サービス リクエストの分類を説明するために、このソリューションでは、 SEOSS データセット. このデータセットは、33 のオープンソース ソフトウェア プロジェクトで構成される体系的に取得されたデータセットであり、多数の型指定された成果物とそれらの間のリンクを追跡します。 このソリューションでは、エンドユーザーから報告された 33 のオープンソース プロジェクト、概要、および説明からの問題データを使用して、Amazon Comprehend を使用してカスタム分類モデルを構築します。

この投稿では、 AWSクラウド開発キット (AWS CDK) 分離された アマゾン バーチャル プライベート クラウド プライベートサブネットのみで構成される (Amazon VPC) 環境。 また、コードを使用して、AWS CDK の使用方法を示します プロバイダー フレームワーク、プロバイダーを実装するためのミニフレームワーク AWS CloudFormation Amazon Comprehend エンドポイントなどのカスタム リソースを作成、更新、または削除するためのカスタム リソース。 Amazon Comprehend エンドポイントには、カスタム モデルをクライアント マシンまたはサードパーティ アプリケーションへのリアルタイム推論に利用できるようにするマネージド リソースが含まれています。 の このソリューションのコード は Github で入手できます。

AWS CDK を使用して、ソリューションのインフラストラクチャ、アプリケーション コード、および構成をデプロイします。 AWS アカウントと、AWS リソースを作成する機能も必要です。 AWS CDK を使用して、プライベートサブネットを持つ VPC などの AWS リソースを作成します。 Amazon VPC エンドポイント, AmazonElasticファイルシステム (Amazon EFS)、 Amazon シンプル通知サービス (Amazon SNS) トピック、 Amazon シンプル ストレージ サービス (Amazon S3) バケット、 Amazon S3 イベント通知, AWSラムダ 機能。 これらの AWS リソースは集合的にトレーニング スタックを構成し、カスタム分類子モデルの構築とトレーニングに使用します。

これらの AWS リソースを作成したら、SEOSS データセットをダウンロードし、ソリューションによって作成された S3 バケットにデータセットをアップロードします。 このソリューションを AWS リージョン us-east-2 にデプロイする場合、S3 バケット名の形式は次のとおりです。 comprehendcustom--us-east-2-s3stack. このソリューションは、Amazon S3 マルチパート アップロード トリガーを使用して、入力データの前処理を開始する Lambda 関数を呼び出し、前処理されたデータを使用して Amazon Comprehend カスタム分類子をトレーニングし、カスタム分類子モデルを作成します。 次に、カスタム分類子モデルの Amazon リソースネーム (ARN) を使用して推論スタックを作成します。これにより、AWS CDK を使用して Amazon Comprehend エンドポイントが作成されます。 プロバイダー フレームワークこれは、サードパーティのアプリケーションまたはクライアント マシンからの推論に使用できます。

次の図は、トレーニング スタックのアーキテクチャを示しています。

ワークフローの手順は次のとおりです。

  1. トレーニング スタックの展開プロセスの一部として作成された S3 バケットに SEOSS データセットをアップロードします。 これにより、 etl_lambda 機能。
  2.   etl_lambda 関数は、生データセットを Amazon S3 から Amazon EFS にダウンロードします。
  3.   etl_lambda 関数は、SEOSS データセットのデータ前処理タスクを実行します。
  4. 関数の実行が完了すると、変換されたデータがアップロードされます prepped_data S3 バケットのプレフィックス。
  5. 変換されたデータのアップロードが完了すると、ETL の正常な完了メッセージが Amazon SNS に送信されます。
  6. Amazon Comprehend では、マルチクラスまたはマルチラベルの XNUMX つのモードを使用してドキュメントを分類できます。 マルチクラス モードでは、ドキュメントごとに XNUMX つだけのクラスが識別され、マルチラベル モードでは、ドキュメントごとに XNUMX つ以上のラベルが識別されます。 ドキュメントごとに XNUMX つのクラスを識別したいので、カスタム分類子モデルをマルチクラス モードでトレーニングします。 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. この関数は、S3 イベント ペイロードと の応答からカスタム分類子モデル ARN を抽出します。 list-document-classifiers コール。
  12. この関数は、カスタム分類子モデル ARN を、トレーニング スタック作成プロセスの一環として以前にサブスクライブしたメール アドレスに送信します。 次に、この ARN を使用して推論スタックをデプロイします。

このデプロイにより、次の図に示すように、推論スタックが作成されます。 推論スタックは、 AWS IDおよびアクセス管理 (IAM) オーソライザー。これを使用して、サードパーティ アプリケーションまたはクライアント マシンから提供された入力テキストに基づいて、ラベルの信頼スコアを生成できます。

推論スタック アーキテクチャ

前提条件

このデモでは、次の前提条件が必要です。

  • An AWSアカウント.
  • Python3.7以降, Node.js, Gitの 開発マシンで。 AWS CDK は Node.js の特定のバージョン (>=10.13.0、バージョン 13.0.0 – 13.6.0 を除く) を使用します。 アクティブな長期サポート (LTS) のバージョンをお勧めします。
    Node.js のアクティブな LTS バージョンをインストールするには、次を使用できます。 インストールスクリプト for nvm 使用する nvm 〜へ install Node.js LTS バージョン。 選択したオペレーティング システムに応じて、パッケージ マネージャーを介して現在アクティブな LTS Node.js をインストールすることもできます。

    macOS の場合、次を使用してパッケージ マネージャー経由で Node.js をインストールできます。 説明書.

    Windows の場合、次を使用してパッケージ マネージャー経由で Node.js をインストールできます。 説明書.

  • を使用している場合、AWS CDK v2 はプリインストールされています。 AWS クラウド9 IDE。 AWS Cloud9 IDE を使用している場合は、このステップをスキップできます。開発マシンに AWS CDK がインストールされていない場合は、Node Package Manager コマンドを使用して AWS CDK v2 をグローバルにインストールします。 npm install -g aws-cdk. この手順では、Node.js を開発マシンにインストールする必要があります。
  • AWS CDK を使用して AWS リソースにアクセスし、作成するための AWS 資格情報を設定します。 手順については、を参照してください。 認証情報とリージョンの指定.
  • ダウンロード 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 仮想環境を初期化し、pip を使用して requirements.txt をインストールします。
$ python3 -m venv .venv
$ source .venv/bin/activate
$ pip install -r requirements.txt

  1. 特定の AWS アカウントとリージョンで AWS CDK を初めて使用する場合は、次の手順を参照してください。 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. 入力します y スタック作成プロンプトごとに、cdk deploy ステップでこれらのスタックが作成されます。 提供された電子メール アドレスを、cdk デプロイの一部として作成された SNS トピックにサブスクライブします。
  2. cdk deploy が正常に完了したら、次のフォルダーを作成します。 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 カスタム分類子モデル ARN を抽出し、以前に購読したメールアドレスに送信する S3 イベントトリガーを使用して機能します。 次に、このカスタム分類子モデル ARN を使用して、推論スタックを作成します。 モデルのトレーニングが完了したら、Amazon Comprehend コンソール (次のスクリーンショットを参照) のバージョンの詳細セクションに移動するか、Amazon Comprehend を使用して、カスタム分類子モデルのパフォーマンス メトリクスを表示できます。 Boto3 SDK.

パフォーマンス指標

AWS CDK 推論スタックをデプロイする

これで、推論スタックをデプロイする準備が整いました。

  1. 受信したメールからカスタム分類子モデルの ARN をコピーし、次を使用します。 cdk deploy 推論スタックを作成するコマンド。

このコマンドは、IAM オーソライザーによって保護された API Gateway REST API をデプロイします。これは、execute-api:Invoke IAM 権限だけを持つ AWS ユーザー ID または IAM ロールでの推論に使用します。 次の cdk deploy コマンドは、推論スタックをデプロイします。 このスタックは AWS CDK を使用します プロバイダー フレームワーク cdk deploy および cdk destroy コマンドを使用して、Amazon Comprehend エンドポイントの作成、削除、および更新を推論スタックのライフサイクルの一部として実行できるように、Amazon Comprehend エンドポイントをカスタム リソースとして作成します。

モデルのトレーニングが完了してから次のコマンドを実行する必要があるため、これには最大 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 クライアント マシンに pip を使用してインストールされた Python パッケージ。
  • Boto3 資格情報を構成しました。 デフォルトでは、テスト クライアントは、default という名前のプロファイルが存在し、 execute-api:Invoke REST API に対する IAM 権限。
  • 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 に近くなります。したがって、SEOSS データセットを使用してトレーニングされた Amazon Comprehend カスタム分類モデルの場合、カスタム分類モデルはテキストがクラス SPARK に属すると予測します。 Amazon Comprehend カスタム分類子モデルによって返されたこの分類を使用して、IT サービス リクエストを分類したり、IT サービス リクエストの正しいカテゴリを予測したりして、手作業によるエラーやサービス リクエストの誤分類を減らすことができます。

クリーンアップ

トレーニング スタックと推論スタックの一部として作成された、この投稿で作成されたすべてのリソースをクリーンアップするには、次のコマンドを使用します。 このコマンドは、前の cdk deploy コマンドの一部として作成されたすべての AWS リソースを削除します。

$ cdk destroy --all

まとめ

この投稿では、企業が Amazon Comprehend カスタム分類を使用して教師あり ML モデルを実装し、エンドユーザーによって送信されたリクエストの件名または説明に基づいて IT サービスリクエストのカテゴリを予測する方法を示しました。 カスタム分類子モデルを構築してトレーニングしたら、エンドポイントを作成することで、カスタム分類のリアルタイム分析を実行できます。 このモデルを Amazon Comprehend エンドポイントにデプロイした後、IT サービス管理ツールを含むサードパーティ アプリケーションまたは他のクライアント マシンによるリアルタイムの推論を実行するために使用できます。 次に、この推論を使用して欠陥カテゴリを予測し、手作業によるエラーやチケットの誤分類を減らすことができます。 これにより、チケット解決の遅延が短縮され、解決の精度と顧客の生産性が向上し、最終的に顧客満足度が向上します。

この投稿の概念を他のユース ケースに拡張することもできます。たとえば、ビジネス部門やカスタマー サービス エージェント、Tier 2/3 IT サポートなどのさまざまな内部チームにビジネス チケットや IT チケットをルーティングし、エンド ユーザーまたは自動化によって作成することができます。意味。

参考文献

  • ラス、マイケル; Mäder、Patrick、2019 年、「SEOSS データセット – プロジェクト全体の要件、バグ レポート、コード履歴、およびトレース リンク」、 https://doi.org/10.7910/DVN/PDDZ4Q、ハーバード データバース、V1

著者について

Amazon Comprehend カスタム分類子 PlatoBlockchain Data Intelligence を使用して IT サービスリクエストの分類を自動化します。垂直検索。あい。アーナブ・チャクラボルティ オハイオ州シンシナティを拠点とする AWS のシニア ソリューション アーキテクトです。 彼は、エンタープライズおよびソリューション アーキテクチャ、データ分析、サーバーレス、機械学習のトピックに情熱を注いでいます。 余暇には、映画鑑賞、旅行番組、スポーツを楽しんでいます。

ウイルスのAmazon Comprehend カスタム分類子 PlatoBlockchain Data Intelligence を使用して IT サービスリクエストの分類を自動化します。垂直検索。あい。 デサイ AWS のプリンシパル ソリューション アーキテクトです。 情報技術で 25 年以上の経験を持つ彼は、顧客が AWS を採用し、アーキテクチャをモダナイズするのを支援してきました。 彼はハイキングが好きで、AWS のあらゆることについてお客様と深く掘り下げることを楽しんでいます。

タイムスタンプ:

より多くの AWS機械学習