ゼファーネットのロゴ

Amazon Kendra および大規模言語モデルを備えた Amazon Lex を利用した QnABot on AWS ソリューションを使用して、セルフサービスの質問応答をデプロイします。 アマゾン ウェブ サービス

日付:

Powered by Amazon Lex AWS 上の QnABot ソリューションは、オープンソース、マルチチャネル、多言語の会話型チャットボットです。 QnABot を使用すると、セルフサービスの会話型 AI をコンタクト センター、Web サイト、ソーシャル メディア チャネルに迅速に導入して、コストを削減し、保留時間を短縮し、顧客エクスペリエンスとブランド感情を向上させることができます。 顧客は現在、大規模言語モデル (LLM) の力を適用して、生成 AI 機能による顧客エクスペリエンスをさらに向上させたいと考えています。 これには、既存の企業ドキュメントや知識ベースから正確な回答を自動的に生成することや、セルフサービス チャットボットをより会話型にすることが含まれます。

最新の QnABot リリース v5.4.0 以降では、LLM を使用して、会話のコンテキストを考慮して顧客の質問を明確にし、関連する FAQ から回答を動的に生成できるようになりました。 アマゾンケンドラ 検索結果と文書の一節。 また、LLM が回答を作成するために使用した参照ドキュメントとコンテキストの一節へのリンクを表示することで、帰属と透明性も提供します。

QnABot を展開するときに、最先端のオープンソース LLM モデルを自動的に展開することを選択できます (Falcon-40B-命令アマゾンセージメーカー 終点。 LLM の状況は常に進化しており、新しいモデルが頻繁にリリースされており、お客様はさまざまなモデルやプロバイダーを試して、自分のユースケースに最適なものを確認したいと考えています。 これが、QnABot が、 AWSラムダ あなたが提供する機能。 開始しやすいように、ワンクリックでデプロイ可能なサンプル Lambda 関数のセットもリリースしました (プラグイン) QnABot を、弊社独自の LLM プロバイダーを含む、お客様が選択した主要な LLM プロバイダーと統合します。 アマゾンの岩盤 サードパーティプロバイダー、Anthropic および AI21 のサービスと API。

この投稿では、QnABot の新しい Generative AI 機能を紹介し、これらの機能を使用するために QnABot を作成、展開、カスタマイズするためのチュートリアルを順を追って説明します。 関連するユースケースについても説明します。

新しい生成 AI 機能

LLM を使用することで、QnABot には XNUMX つの新しい重要な機能が追加されました。これらについては、このセクションで説明します。

Amazon Kendra の検索結果またはテキストの一節から質問に対する回答を生成します

QnABot は、Amazon Kendra 検索によって提供される文書抽出、または直接作成またはインポートされたテキストの一節から、質問に対する簡潔な回答を生成できるようになりました。 これにより、次のような利点が得られます。

  • 既存のドキュメントからその場で簡潔な回答を合成できるため、維持して QnABot にインポートする必要がある FAQ の数が減ります。
  • 生成された回答は、目的のチャネルに最適なエクスペリエンスを作成するために変更できます。 たとえば、回答を短く、簡潔で、音声チャネルのコンタクト センター ボットに適したものに設定でき、Web サイトまたはテキスト ボットはより詳細な情報を提供できる可能性があります。
  • 生成された回答は QnABot の多言語サポートと完全に互換性があり、ユーザーは選択した言語で対話し、同じ言語で生成された回答を受け取ることができます。
  • 生成された回答には、LLM がどのように回答を構築したかについての帰属と透明性を提供するために、使用された参照ドキュメントとコンテキストの一節へのリンクを含めることができます。

たとえば、「Amazon Lex とは何ですか?」と尋ねられた場合、QnABot は Amazon Kendra インデックス (AWS ドキュメントを含む) から関連する文章を取得できます。 次に、QnABot は、パッセージのコンテキスト (オプションで Web クライアントで表示することもできます) に基づいて、LLM に質問に答えるように要求 (プロンプト) します。 次のスクリーンショットは例を示しています。

前の会話のコンテキストに依存するフォローアップの質問の曖昧さをなくす

進化し続ける会話の方向性とコンテキストを理解することは、自然で人間のような会話インターフェイスを構築するための鍵となります。 ユーザーのクエリでは、多くの場合、ボットが会話の記憶とコンテキストに基づいてリクエストを解釈する必要があります。 ここで、QnABot は、会話履歴に基づいて明確な質問を生成するように LLM に要求します。 これを検索クエリとして使用して、FAQ、文章、または Amazon Kendra の結果を取得してユーザーの質問に答えることができます。 以下はチャット履歴の例です。

Human: What is Amazon Lex?
AI: "Amazon Lex is an AWS service for building conversational interfaces for applications using voice and text..."
Human: Can it integrate with my CRM?

QnABot は LLM を使用して、「Amazon Lex を CRM システムと統合できますか?」など、「それ」を明確にするためにフォローアップの質問を書き換えます。 これにより、ユーザーは人間の会話と同じように対話できるようになり、QnABot は明確な検索クエリを生成して、ユーザーの質問に答えるための情報を含む関連する FAQ や文書の一節を見つけます。

これらの新機能により、QnABot はより会話的になり、ナレッジ ベースに基づいて応答を動的に生成する機能が提供されます。 これはまだ実験的な機能であり、大きな可能性を秘めています。 ユーザーには、使用する最適な LLM と対応するプロンプトおよびモデル パラメーターを見つけるために実験することを強くお勧めします。 QnABot を使用すると、実験が簡単になります。

チュートリアル

試してみましょう! 最新の QnABot (v5.4.0 以降) をデプロイし、新しい Generative AI 機能を有効にしてみましょう。 大まかな手順は次のとおりです。

  1. Amazon Kendra インデックスを作成して設定します。
  2. LLM プラグインを選択してデプロイします (オプション)。
  3. QnABot をデプロイします。
  4. Lambda プラグイン用に QnABot を構成します (プラグインを使用している場合)。
  5. QnABot Web クライアントにアクセスして実験を開始します。
  6. QnABot 設定を使用して動作をカスタマイズします。
  7. 厳選された Q&A とテキストの一節をナレッジ ベースに追加します。

Amazon Kendra インデックスを作成して設定する

以下をダウンロードして使用してください AWS CloudFormation テンプレート 新しい Amazon Kendra インデックスを作成します。

このテンプレートには、Amazon Kendra、Amazon Lex、および SageMaker の AWS オンラインドキュメントを含むサンプルデータが含まれています。 スタックのデプロイには約 30 分がかかり、その後、スタックを同期してインデックスにデータを取り込むのに約 15 分かかります。

Amazon Kendra インデックス スタックが正常にデプロイされたら、スタックの 出力 タブをクリックして、 Index Idこれは、後で QnABot を展開するときに使用します。

あるいは、独自のコンテンツを含む Amazon Kendra インデックスがすでにある場合は、代わりにチュートリアル用の独自の質問例でそれを使用できます。

LLM プラグインを選択してデプロイします (オプション)

QnABot は、組み込み LLM (SageMaker 上の Falcon-40B 命令) をデプロイするか、Lambda 関数を使用して選択した他の LLM を呼び出すことができます。 このセクションでは、事前に構築されたサンプル Lambda 関数で Lambda オプションを使用する方法を示します。 代わりに組み込み LLM を使用する場合は、次のステップに進んでください。

まず、使用するプラグイン LLM を選択します。 のオプションを確認してください。 qnabot-on-aws-plugin-samples 倉庫 README。 この記事の執筆時点では、プラグインは Amazon Bedrock (プレビュー段階)、AI21 および Anthropic サードパーティ API で利用できます。 今後さらにサンプル プラグインを追加していく予定です。

選択して選択したプラグインをデプロイします。 発射スタック セクションに 新しいプラグイン スタックをデプロイする セクションに展開されます。 us-east-1 デフォルトのリージョン (他のリージョンにデプロイするには、を参照してください) QnABot プラグイン CloudFormation アーティファクトの構築と公開).

プラグイン スタックが正常にデプロイされたら、スタックの 出力 タブ (次のスクリーンショットを参照) を開き、その内容を調べます。これは、次の手順で QnABot を展開および構成するために使用します。 ブラウザでこのタブを開いたままにしてください。

QnABot をデプロイする

選択する ソリューションの起動 QnABot から 実装ガイド AWS CloudFormation 経由で最新の QnABot テンプレートをデプロイします。 次のパラメータを指定します。

  • DefaultKendraIndexId、前に収集した Amazon Kendra インデックス ID (GUID) を使用します。
  • EmbeddingsApi (参照してください テキスト埋め込みを使用したセマンティック検索)、次のいずれかを選択します。
    • SAGEMAKER (デフォルトの組み込み埋め込みモデル)
    • LAMBDA (Amazon Bedrock 埋め込み API を使用するには BEDROCK-EMBEDDINGS-AND-LLM Plugin)
      • EmbeddingsLambdaArnには、Live モジュールで提供された EmbeddingsLambdaArn からの出力値 BEDROCK-EMBEDDINGS-AND-LLM プラグインスタック。
  • LLMApi (参照してください 会話型検索および生成的質問応答のためのクエリの曖昧さの解消)、次のいずれかを選択します。
    • SAGEMAKER (デフォルトの組み込み LLM モデル)
    • LAMBDA (以前にデプロイした LLM プラグインを使用するため)
      • LLMLambdaArnには、Live モジュールで提供された LLMLambdaArn プラグインスタックからの出力値

他のすべてのパラメータについては、デフォルトを受け入れます(「 実装ガイド パラメータ定義の場合)、QnABot スタックの起動に進みます。

Lambda プラグイン用に QnABot を構成する (プラグインを使用している場合)

別の LLM にアクセスするためにサンプル LLM Lambda プラグインを使用して QnABot をデプロイした場合は、選択したプラグインの推奨に従って QnABot モデル パラメーターとプロンプト テンプレート設定を更新します。 詳細については、を参照してください。 QnABot 設定を更新する。 SageMaker (組み込み) LLM オプションを使用した場合は、設定がすでに構成されているため、次のステップに進みます。

QnABot Web クライアントにアクセスして実験を開始する

AWS CloudFormation コンソールで、 出力 QnABot CloudFormation スタックのタブで、 ClientURL リンク。 または、次を選択してクライアントを起動します。 AWS クライアント上の QnABot コンテンツ デザイナーのツール メニューから。

次に、AWS のサービスに関連する質問をしてみます。例:

  • アマゾンレックスとは何ですか?
  • SageMaker は推論ワークロードをどのようにスケールアップしますか?
  • Kendra は検索サービスですか?

その後、前述のサービスやコンテキストを指定せずに、たとえば次のようにフォローアップの質問をすることができます。

  • 安全ですか?
  • スケールはありますか?

QnABot 設定を使用して動作をカスタマイズする

QnABot の多くの設定をカスタマイズできます コンテンツデザイナーの設定 ページ - を参照 README – LLM 設定 関連する設定の完全なリストについては、こちらをご覧ください。 たとえば、次のことを試してください。

  • 作成セッションプロセスで ENABLE_DEBUG_RESPONSES 〜へ TRUE、設定を保存し、前の質問をもう一度試してください。 各応答の上部に追加のデバッグ出力が表示され、LLM がチャット履歴に基づいて Amazon Kendra 検索クエリを生成する方法、LLM 推論の実行にかかった時間などを示します。 例えば:
    [User Input: "Is it fast?", LLM generated query (1207 ms): "Does Amazon Kendra provide search results quickly?", Search string: "Is it fast? / Does Amazon Kendra provide search results quickly?"["LLM: LAMBDA"], Source: KENDRA RETRIEVE API

  • 作成セッションプロセスで ENABLE_DEBUG_RESPONSES バックに FALSE、セット LLM_QA_SHOW_CONTEXT_TEXT & LLM_QA_SHOW_SOURCE_LINKS 〜へ FALSE、例をもう一度試してください。 現在、コンテキストとソースのリンクは表示されず、出力には LLM によって生成された応答のみが含まれます。
  • 冒険してみたい場合は、LLM プロンプト テンプレート設定も試してみてください。LLM_GENERATE_QUERY_PROMPT_TEMPLATE & LLM_QA_PROMPT_TEMPLATE。 参照する README – LLM 設定 チャット履歴、コンテキスト、ユーザー入力、クエリなどの実行時の値にプレースホルダーを使用する方法を確認します。 デフォルトのプロンプトは、ユースケースに合わせて改善およびカスタマイズできる可能性が高いため、実験することを恐れないでください。 何かを壊した場合は、いつでもデフォルト設定に戻すことができます。 既定値にリセット 設定ページのオプション。

精選された Q&A とテキストの一節をナレッジ ベースに追加します

もちろん、QnABot は厳選された Q&A に基づいて質問に回答し続けることができます。 Amazon Kendra インデックスの使用に加えて、LLM を使用して、QnABot に直接作成またはインポートされたテキストパッセージから回答を生成することもできます。

QnABot は、明確なユーザーの質問に対する適切な回答を次の順序で見つけようとします。

  1. Q&A項目
  2. テキストパッセージ項目
  3. アマゾンケンドラインデックス

いくつかの例を試してみましょう。

QnABot コンテンツ デザイナーのツール メニューで、[ インポート、次に XNUMX つのサンプル パッケージをロードします。

  • TextPassages-NurseryRhymeExamples
  • blog-samples-final

QnABot が使用できるのは テキストの埋め込み セマンティック検索機能 (QnABot の組み込み OpenSearch インデックスをベクトル ストアとして使用) を提供します。これにより、標準の OpenSearch キーワード ベースのマッチングと比較して精度が向上し、質問の調整が軽減されます。 これを説明するには、次のような質問を試してください。

  • 「画面付きのAlexaデバイスについて教えてください」
  • 「Amazon のビデオ ストリーミング デバイスについて教えてください。」

これらは、質問に使用された単語が構成された QnA 項目とキーワードの一致が不十分 (ただし、セマンティックの一致は良好) であっても、インポートしたサンプル QNA と理想的に一致する必要があります。 Alexa.001 (Amazon Echo Showとは) FireTV.001 (Amazon Fire TVとは何ですか)。

Amazon Kendra を (まだ) 使用していない場合でも (そうすべきです!)、QnABot は、Content Designer に作成またはインポートされたパッセージに基づいて質問に答えることもできます。 次の質問 (および追加の質問) はすべて、童謡を含むインポートされたテキストの一節アイテムから回答されます。 0.HumptyDumpty:

  • 「ハンプティ・ダンプティは倒れる前にどこに座っていましたか?」
  • 「彼が倒れた後、何が起こったのですか? 彼は大丈夫でしたか?」

埋め込みを使用する場合、適切な回答とは、対応するしきい値設定で定義されたしきい値を超える類似性スコアを返す回答です。 見る 大規模言語モデルのテキスト埋め込みを使用した意味論的な質問のマッチング しきい値設定をテストおよび調整する方法の詳細については、こちらを参照してください。

適切な応答がない場合、または LLM の応答がで定義された正規表現と一致する場合 LLM_QA_NO_HITS_REGEX、その後、QnABot は構成可能な カスタムはわからない (no_hits) の動作で、デフォルトでは「あなたは私を困惑させました」というメッセージを返します。

QnABot で Q&A またはテキストパッセージ項目を作成したり、フォールバック生成回答に Amazon Kendra インデックスを使用したりして、いくつかの実験を試してください。 実験( テスト デザイナーのタブ) を使用して、必要な動作を得るために埋め込みしきい値設定に使用する最適な値を見つけます。 完璧なバランスを得るのは難しいですが、ほとんどの場合有用な答えが得られる十分なバランスを見つけることができるかどうかを確認してください。

クリーンアップ

もちろん、QnABot を実行したままにして実験したり、同僚に見せたりすることもできます。 ただし、ある程度のコストがかかります。を参照してください。 導入の計画 - コスト 詳細については。 リソースを削除してコストを回避するには、次の CloudFormation スタックを削除します。

  • QnABot スタック
  • LLM プラグイン スタック (該当する場合)
  • Amazon Kendra インデックススタック

ユースケースの例

これらの新機能により、QnABot は、セルフサービスのカスタマー サービスやサポート ボット、自動化された Web ベースの Q&A ボットなど、多くの顧客のユースケースに関連するようになります。 このセクションでは、そのような XNUMX つの使用例について説明します。

コンタクトセンターとの統合

QnABot の自動質問応答機能は、コンタクト センターの着信音声通話に効果的なセルフサービスを提供し、魅力的な結果をもたらします。 たとえば、次の方法を参照してください。 Kentucky Transportation Cabinet は、Amazon Connect と Amazon Lex を使用したセルフサービス仮想エージェントにより通話保留時間を短縮し、顧客エクスペリエンスを向上させました。。 新しい生成 AI 機能を統合すると、ドキュメント、ナレッジ ベース、Web サイトなどの既存のコンテンツから信頼できる回答が動的に生成されるため、この価値提案がさらに強化されます。 これにより、ボット設計者は、ユーザーが尋ねる可能性のあるすべての質問に対する回答を予測して手動で厳選する必要がなくなります。 QnABot を統合するには アマゾンコネクトを参照してください AWS 上の QnABot を Amazon Connect コールセンターに接続する。 他のコンタクト センターと統合するには、方法を参照してください。 Amazon Chime SDK を使用して Amazon Lex 音声ボットに接続できる 3でrd SIPREC を介したパーティー コンタクト センターと QnABot と Amazon Lex を使用して Genesys Cloud 用の AI を活用した仮想エージェントを構築する.

LLM を利用した QnABot は、自動化されたリアルタイム エージェント アシスタントとしても重要な役割を果たします。 このソリューションでは、QnABot が受動的に会話をリッスンし、LLM を使用して、特定の合図に基づいて人間のエージェントに対するリアルタイムの提案を生成します。 セットアップして試すのは簡単です。ぜひ試してみてください。 このソリューションは、Amazon Connect と他のオンプレミスおよびクラウドの両方のコンタクトセンターで利用できます。 詳細については、を参照してください。 Amazon 言語 AI サービスによるライブ通話分析とコンタクト センターのエージェント支援.

ウェブサイトとの統合

QnABot を Web サイトやアプリケーションに埋め込むと、ユーザーは自然な対話による自動化された支援を受けることができます。 詳細については、を参照してください。 チャットボットのWeb UIをデプロイする。 厳選された Q&A コンテンツの場合は、マークダウン構文と UI ボタン​​を使用し、ユーザーに情報を提供して喜ばせるリンク、画像、ビデオ、その他の動的な要素を組み込みます。 QnABot Amazon Lex ウェブ UI を Amazon Connect ライブチャットと統合すると、自動アシスタントが単独でユーザーの問い合わせに完全に対応できない場合に、人間のエージェントへの迅速なエスカレーションが容易になります。

AWS プラグインのサンプル リポジトリ上の QnABot

この投稿で示したように、QnABot v5.4.0 以降は、SageMaker でホストされている埋め込みと LLM モデルの組み込みサポートを提供するだけでなく、Lambda 関数を使用して他の LLM と簡単に統合する機能も提供します。 独自のカスタム Lambda 関数を作成することも、新しいバージョンで提供されているサンプルの XNUMX つを使用して迅速に開始することもできます。 qnabot-on-aws-plugin-samples リポジトリ。

このリポジトリには、埋め込みとテキスト生成リクエストの両方をサポートする、すぐにデプロイできる Amazon Bedrock 用のプラグインが含まれています。 この記事の執筆時点では、Amazon Bedrock はプライベートプレビューを通じて利用できます。 プレビュー アクセスをリクエストする。 Amazon Bedrock が一般提供されたら、QnABot と直接統合される予定ですが、待つ必要はありません。 プレビュー アクセスを申請し、サンプル プラグインを使用して実験を開始してください。

今日の LLM イノベーション サイクルにより、新モデルのリリースが猛烈なペースで行われており、それぞれが前回のモデルを超えることを目指しています。 このリポジトリは、時間の経過とともに追加の QnABot プラグイン サンプルを含むように拡張されます。 この記事の執筆時点では、Anthropic と AI21 という XNUMX つのサードパーティ モデル プロバイダーがサポートされています。 私たちは、より多くの LLM、埋め込み、および Lambda フックとナレッジベースを含む一般的な使用例の統合を追加する予定です。 これらのプラグインは便宜上、保証なしで現状のまま提供されます。導入後のサポートとメンテナンスはユーザーの責任となります。

私たちは、QnABot プラグイン リポジトリが、成長するオープンソース コミュニティ プロジェクトに成長することを願っています。 見てください qnabot-on-aws-plugin-samples GitHub リポジトリ 新しいプラグインや機能に関する更新を受け取るには、 問題 問題を報告したりフィードバックを提供したり、改善に貢献したりするためのフォーラム プルリクエスト。 貢献は大歓迎です!

まとめ

この投稿では、QnABot の新しい生成 AI 機能を紹介し、これらの機能を使用するために QnABot を作成、展開、カスタマイズするためのソリューションについて説明しました。 関連するユースケースについても説明しました。 反復的な問い合わせを自動化することで、人間の作業員が解放され、生産性が向上します。 豊富な応答が魅力的なエクスペリエンスを生み出します。 LLM を利用した QnABot を導入すると、顧客と従業員のセルフサービス エクスペリエンスを向上させることができます。

この機会をお見逃しなく。今すぐ始めて、QnABot 導入におけるユーザー エクスペリエンスに革命をもたらしましょう。


著者について

クレベスター・テオ AWS のシニア パートナー ソリューション アーキテクトで、公共部門のパートナー エコシステムに重点を置いています。 彼はプロトタイプを作成したり、アウトドアでアクティブに過ごしたり、新しい料理を体験したりすることを楽しんでいます。 Clevester は、新しいテクノロジーを実験し、AWS パートナーが革新し、公共部門の顧客により良いサービスを提供できるよう支援することに情熱を注いでいます。

ウィンドリッチ は、AW​​S のソリューションアーキテクトであり、金融​​や運輸などの業界の顧客と連携して、クラウド導入の加速を支援しています。 彼は特にサーバーレス テクノロジーと、顧客がそれを活用してビジネスに価値をもたらす方法に興味を持っています。 ウィンドリッチは仕事以外では、スポーツをしたり観戦したり、世界中のさまざまな料理を探索したりすることを楽しんでいます。

ボブ・ストラハン ボブ・ストラハン AWS Language AIServicesチームのプリンシパルソリューションアーキテクトです。

スポット画像

最新のインテリジェンス

スポット画像