Amazon Lexのチャットボット開発ライフサイクルをテストベンチで加速化する
Accelerating the Amazon Lex chatbot development lifecycle with a test bench.
Amazon Lexは、ボットテストプロセスを簡素化し、自動化するためのツールを提供する新しいボットテストソリューションであるテストワークベンチを発表しました。ボット開発中、テストは、開発者がシステムのエラー、欠陥、またはバグを特定し、スケールする前に特定の要件、ニーズ、および期待に合致するかどうかを確認するフェーズです。テストは、会話の流れ(ユーザーのクエリを理解して正確に応答する)、意図の重複処理、およびモダリティ全体の一貫性など、いくつかの側面でボットのパフォーマンスを検証するのに役立ちます。しかし、テストはしばしば手作業でエラーが発生しやすく、標準化されていません。テストワークベンチでは、チャットボット開発チームが一貫した方法論でテストセットを生成、維持、実行し、カスタムスクリプトやアドホックな統合を回避することで、自動化されたテスト管理を標準化します。この記事では、テストワークベンチがボットの音声およびテキストモダリティの自動化テストを簡素化し、正確性とパフォーマンスの測定値を提供する方法について学びます。これにより、ボットの改善領域を迅速に特定し、正確性を時間の経過に応じて測定するための一貫したベースラインを維持し、ボットの更新による正確性の低下を観察することができます。
Amazon Lexは、会話型音声およびテキストインターフェースを構築するための完全にマネージドされたサービスです。 Amazon Lexは、ウェブサイト、コンタクトセンターサービス、およびメッセージングチャネル上でチャットボットおよび仮想アシスタントを構築および展開するのに役立ちます。 Amazon Lexボットは、対話型音声応答(IVR)の生産性を向上させ、簡単なタスクを自動化し、組織全体の業務効率を向上させるのに役立ちます。 Amazon Lexのテストワークベンチは、ボットの設計を改善するために重要なボットテストライフサイクルを標準化し、簡素化します。
Test Workbenchの機能
Amazon Lexのテストワークベンチには、以下の機能が含まれます。
- ボットの会話ログからテストデータセットを自動生成
- 手動で構築されたテストセットベースラインをアップロード
- 単一入力またはマルチターン会話のエンドツーエンドテストを実行
- ボットの音声およびテキストモダリティをテスト
- ボットの次元に対する集約およびドリルダウンメトリックのレビュー:
- 音声転写
- 意図認識
- スロット解決(複数値スロットまたは合成スロットを含む)
- コンテキストタグ
- セッション属性
- リクエスト属性
- ランタイムヒント
- 秒単位の待機時間
事前条件
この機能をテストするには、以下が必要です。
- Amazon Lex、Langchain、およびSageMaker Jumpstartを使用した会話型エクスペリエンスにおける生成AIの探求:イントロダクション
- オープンソースのAmazon SageMaker Distributionで始めましょう
- Amazon SageMakerでTritonを使用してMLモデルをホストする:ONNXモデル
- 管理者アクセス権限を持つAWSアカウント
- Amazon Lexコンソールを介してインポートされたサンプル小売りボット(詳細については、ボットのインポートを参照してください)
- 以下のいずれかからのテストセットソース:
- ボットのインタラクションを保存するために有効にされた会話ログ
- この記事で提供される手順に従ってインポートできるサンプル小売テストセット
さらに、以下のサービスと機能に関する知識と理解が必要です。
- Amazon Lex
- Amazon CloudWatch
- AWS Identity and Access Management(IAM)
テストセットの作成
テストセットを作成するには、以下の手順を完了します。
- Amazon Lexコンソールで、ナビゲーションペインのTest workbenchの下にあるTest setsを選択します。
名前、説明、テスト入力数、モダリティ、ステータスなどの基本情報を含む既存のテストセットのリストを確認できます。次の手順では、ボットに関連する会話ログからテストセットを生成するか、CSVファイル形式で手動で構築された既存のテストセットをアップロードするかを選択できます。
- テストセットの作成を選択します。
- 会話ログからテストセットを生成することで、次のことができます。
- クラウドウォッチのボットのログにリアルなマルチターンの会話を含める
- 音声ログを含め、実際の音声ニュアンス、背景ノイズ、およびアクセントを考慮したテストを実施する
- テストセットの作成を迅速に行う
- 手動で構築されたテストセットをアップロードすることで、次のことができます。
- プロダクションデータがない新しいボットをテストする
- 新しいまたは修正された意図、スロット、および会話フローに対する回帰テストを実行する
- セッション属性およびリクエスト属性を指定する細かいシナリオをテストする
テストセットを生成するには、以下の手順を完了してください。手動で構築したテストセットをアップロードする場合は、ステップ7にスキップしてください。
- ベースラインテストセットを生成を選択します。
- Bot名、Bot別名、および言語のオプションを選択します。
- タイムレンジで、ログの時間範囲を設定します。
- 既存のIAMロールで、ロールを選択します。
IAMロールが会話ログから情報を取得するためのアクセス権を付与できるようにしてください。適切なポリシーを持つIAMロールを作成するには、「IAMロールの作成」を参照してください。
- 手動で作成したテストセットを使用する場合は、このテストセットにファイルをアップロードを選択します。
- このテストセットにファイルをアップロードのオプションから、以下のオプションを選択します:
- Amazon Simple Storage Service (Amazon S3) バケットからCSVファイルをアップロードするには、S3バケットからアップロードを選択します。
- コンピュータからCSVファイルをアップロードするには、このテストセットにファイルをアップロードを選択します。
この投稿で提供されるサンプルテストセットを使用することができます。テンプレートに関する詳細については、ページ上のCSVテンプレートリンクを選択してください。
- モダリティで、テストセットのモダリティをテキストまたはオーディオのどちらかを選択します。
Test Workbenchは、オーディオおよびテキスト入力形式に対するテストサポートを提供します。
- S3ロケーションに、結果を保存するS3バケットの場所を入力します。
- オプションで、出力トランスクリプトを暗号化するためのAWS Key Management Service (AWS KMS)キーを選択します。
- 作成を選択します。
新しく作成されたテストセットは、以下のいずれかのステータスでテストセットページにリストされます:
- 注釈の準備ができました – Amazon Lexボットの会話ログから生成されたテストセットの場合、注釈ステップは、品質の高いテスト入力を確保するための手動ゲート機構として機能します。各テストライン項目の期待されるインテントと期待されるスロットの値を注釈化することで、「グラウンドトゥルース」を示します。ボットの実行からのテスト結果は、グラウンドトゥルースと比較して収集され、テスト結果をパスまたはフォールにマークします。このラインレベルの比較により、集計測定を作成できます。
- テストの準備ができました – これは、テストセットがAmazon Lexボットに対して実行される準備ができていることを示しています。
- 検証エラー – アップロードされたテストファイルは、最大サポートされる長さを超えたり、インテント名に無効な文字が含まれたり、オーディオファイルを含む無効なAmazon S3リンクが含まれたりするエラーがチェックされます。テストセットが検証エラーの状態にある場合は、検証の詳細を示すファイルをダウンロードして、1行ずつテスト入力の問題やエラーを確認してください。問題が解決されたら、修正されたテストセットCSVを手動でアップロードできます。
テストセットを実行する
テストセットはボットから切り離されています。将来的には、ビジネスユースケースが進化するにつれて、同じテストセットを別のボットまたはボットエイリアスに対して実行できます。ボットのパフォーマンスメトリックをベースラインテストデータに対して報告するには、以下の手順を完了します。
- サンプルボットの定義をインポートして、ボットをビルドします(インポートするにはImporting a botを参照してください)。
- Amazon Lexコンソールで、ナビゲーションペインでTest setsを選択します。
- 検証済みのテストセットを選択してください。
ここで、テストセットとインポートされたテストデータに関する基本情報を確認できます。
- Execute testを選択してください。
- Bot name、Bot alias、およびLanguageに適切なオプションを選択してください。
- Test typeには、AudioまたはTextを選択してください。
- Endpoint selectionには、StreamingまたはNon-streamingを選択してください。
- Validate discrepancyを選択して、テストデータセットを検証してください。
テストセットを実行する前に、テストカバレッジを検証し、ボットに存在しないテストセット内のインテントとスロットを特定することができます。この早期警告は、予期しないテストの失敗に対するテスターの期待を設定するために役立ちます。テストデータセットとボットの間の不一致が検出された場合、Execute testページがView detailsボタンで更新されます。
ボットエイリアスに存在しないインテントとスロットは、以下のスクリーンショットに示すようにリストされます。
- 不一致を検証した後、Executeを選択してテストを実行します。
結果を確認する
テストセットを実行した後に生成されたパフォーマンスメジャーは、ボット設計の改善が必要な領域を特定するのに役立ち、お客様のサポートを迅速に行うためにボットの開発と配信を促進するのに役立ちます。 Test Workbenchは、エンドツーエンドの会話とシングルライン入力レベルのインテント分類およびスロット解決に関する洞察を提供します。完了したテスト実行は、S3バケットにタイムスタンプで保存され、将来の比較レビューに使用できます。
- Amazon Lexコンソールで、ナビゲーションペインでTest resultsを選択します。
- 確認したい結果のテスト結果IDを選択してください。
次のページでは、テスト結果が4つのメインタブに分類された結果の分解が含まれます。オーバールール結果、会話結果、意図およびスロットの結果、詳細な結果。
オーバールール結果
オーバールール結果タブには、3つのメインセクションが含まれています。
- テストセット入力の分解 — テストセット内のエンドツーエンド会話とシングルインプット発話の総数を示すグラフ。
- シングルインプットの分解 — パスまたは失敗したシングルインプットの数を示すグラフ。
- 会話の分解 — パスまたは失敗したマルチターンインプットの数を示すグラフ。
オーディオモダリティで実行されたテストセットの場合、シングルインプットおよび会話タイプのパスまたは失敗した音声転写の数を示す音声転写グラフが提供されます。オーディオモダリティでは、単一の入力またはマルチターンの会話が音声転写テストに合格する場合でも、エンドツーエンドの全体的なテストに失敗することがあります。これは、スロットの解決または意図認識の問題による場合があります。
会話の結果
Test Workbenchを使用すると、特定の意図またはスロットに帰属できる会話の失敗を掘り下げることができます。会話の結果タブは、テストセットで使用されるすべての意図とスロットをカバーする3つのメインエリアに分類されます。
- 会話の合格率 — 可能な会話の失敗の原因となる意図およびスロットを可視化するために使用される表。
- 意図失敗メトリクス — テストセットで最も悪いパフォーマンスを示す上位5つの意図を示す棒グラフ(あれば)。
- スロット失敗メトリクス — テストセットで最も悪いパフォーマンスを示す上位5つのスロットを示す棒グラフ(あれば)。
意図およびスロットの結果
意図およびスロットの結果タブは、意図認識やスロットの解決などのボットの次元に関するドリルダウンメトリクスを提供します。
- 意図認識メトリクス — 意図認識の成功率を示す表。
- スロット解決メトリクス — 各意図ごとにスロット解決の成功率を示す表。
詳細な結果
詳細な結果タブで実行されたテストランの詳細なレポートにアクセスできます。テストセット内の実際の転写、出力意図、およびスロットの値を示す表が表示されます。このレポートは、さらなる分析のためにCSVとしてダウンロードできます。
ラインレベルの出力は、ボットの設計を改善し、精度を向上させるための洞察を提供します。たとえば、意図のカスタム語彙または意図の下に発話として追加できるブランド語の誤認識または逃した音声入力などがあります。
会話設計をさらに改善するために、このポストを参照して、MLを使用して顧客を正確に理解するボットを作成するためのベストプラクティスについて説明します。
結論
この投稿では、Amazon LexのTest Workbenchを紹介しました。これは、チャットボットの自動テストプロセスを標準化し、開発者や会話デザイナーがボットの設計と開発を迅速に進めることができるネイティブ機能です。
Amazon Lexのこの新しい機能をどのように使用するか、およびフィードバックを歓迎します!質問、バグ、または機能リクエストについては、AWS re:Post for Amazon LexまたはAWSサポート連絡先までお問い合わせください。
詳細については、Amazon Lex の FAQ と Amazon Lex V2 開発者ガイドを参照してください。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Amazon SageMakerのHugging Face推定器とモデルパラレルライブラリを使用してGPT-Jを微調整する
- Amazon SageMakerを使用してOpenChatkitモデルを利用したカスタムチャットボットアプリケーションを構築する
- Amazon SageMaker で大規模なモデル推論 DLC を使用して Falcon-40B をデプロイする
- Amazon SageMakerを使用した生成型AIモデルにおいて、Forethoughtがコストを66%以上削減する方法
- BrainPadがAmazon Kendraを使用して内部の知識共有を促進する方法
- Amazon TranslateのActive Custom Translationを使用して、マルチリンガル自動翻訳パイプラインを構築します