カスタム質問応答とは

カスタム質問応答ではクラウドベースの自然言語処理 (NLP) が提供され、データに自然な会話レイヤーを作成できます。 これは、顧客の入力またはプロジェクトから適切な回答を見つけるために使用されます。

カスタム質問応答は、ソーシャル メディア アプリケーション、チャット ボット、音声対応デスクトップ アプリケーションなど、会話型クライアント アプリケーションの作成に使用されます。 このオファーには、ディープ ラーニング ランカーを使用した関連性の強化、正確な回答、エンドツーエンドのリージョン サポートなどの機能が含まれます。

カスタム質問応答は、次の 2 つの機能で構成されます。

  • カスタムの質問応答: この機能を使用すると、コンテンツ ソースから抽出された質問と回答のペアの編集、同意語とメタデータの定義、質問の提案の受け入れなど、さまざまな側面をカスタマイズできます。
  • QnA Maker: この機能を使用すると、ユーザーは、ナレッジ ベースを管理することなく、テキストの一節に対してクエリを実行して応答を取得できます。

このドキュメントには、次の種類の記事が含まれています。

  • クイックスタートは、サービスの呼び出しと結果の取得を短時間で行えるようにする、ステップバイステップの手順です。
  • 攻略ガイドには、より具体的またはカスタマイズした方法でサービスを使用するための手順が記載されています。
  • 概念の記事では、サービスの機能と特長について詳しく説明します。
  • チュートリアルはより長文のガイドであり、より広範なビジネス ソリューションの 1 コンポーネントとしてこのサービスを使用する方法を示すものです。

どのような場合にカスタム質問応答を使用するのか

  • 静的な情報がある場合 - プロジェクトに静的な情報がある場合、カスタム質問応答を使用します。 このプロジェクトはニーズに合わせてカスタマイズされており、PDF や URL などのドキュメントで作成します。
  • 要求、質問、またはコマンドに同じ回答を提供する場合 - 異なるユーザーが同じ質問を送信すると、同じ回答が返されます。
  • メタ情報に基づいて静的情報をフィルター処理する場合 - メタデータ タグを追加して、クライアント アプリケーションのユーザーと情報に関連する追加のフィルター オプションを提供します。 一般的なメタデータ情報には、chit-chat、コンテンツの種類または形式、コンテンツの目的、コンテンツの鮮度が含まれます。
  • 静的な情報を含むボットの会話を管理する場合 - ご利用のプロジェクトは、ユーザーの会話テキストまたはコマンドを取得して、それに応答します。 回答が、プロジェクトで複数ターンのコンテキストで表される、事前に決定された会話フローの一部である場合、ボットはこのフローを簡単に提供できます。

プロジェクトとは

カスタム質問応答では、質問と回答がペアになったプロジェクトにコンテンツをインポートします。 インポート プロセスでは、質問と回答のペア間のリレーションシップを意味する、構造化コンテンツと半構造化コンテンツのパーツ間のリレーションシップに関する情報を抽出します。 これらの質問と回答のペアを編集したり、新しいペアを追加したりできます。

質問と回答のペアのコンテンツには、次のものが含まれます。

  • 質問のすべての代替形式
  • 検索時に回答の選択肢をフィルター処理するために使用されるメタデータ タグ
  • 検索の絞り込みを続行するためのフォローアップ プロンプト

プロジェクトを公開すると、クライアント アプリケーションによってユーザーの質問がエンドポイントに送信されます。 カスタム質問応答サービスは質問を処理し、最適な回答で応答します。

チャット ボットをプログラムから作成する

カスタム質問応答のプロジェクトが公開されると、クライアント アプリケーションは、プロジェクトのエンドポイントに質問を送信し、結果を JSON 応答として受信します。 カスタム質問応答のクライアント アプリケーションとして一般的なのは、チャットボットです。

ボットに質問をして、プロジェクトのコンテンツから回答を得る

手順 アクション
1 クライアント アプリケーションは、ユーザーの質問 (自分の言葉で表現されたテキスト) "プログラムによってプロジェクトを更新するにはどうすればよいですか?" をプロジェクト エンドポイントに送信します。
2 カスタム質問応答は、トレーニング済みのプロジェクトを使用して、正しい回答と、最適な回答の検索を絞り込むために使用できる任意のフォローアップ プロンプトを提示します。 カスタム質問応答から、JSON 形式の応答が返されます。
3 クライアント アプリケーションは、JSON 応答を使用して、会話を継続する方法を判断します。 この判断には、上位の回答を表示することや、最適な回答を得るためにより多くの選択肢を提示することが挙げられます。

少量のコードでチャット ボットを作成する

Language Studio ポータルには、プロジェクトの作成エクスペリエンス一式が用意されています。 ドキュメントをそのままの形式でプロジェクトにインポートできます。 これらのドキュメント (FAQ、製品マニュアル、スプレッドシート、Web ページなど) は、質問と回答のペアに変換されます。 各ペアは、フォローアップ プロンプト用に分析され、他のペアに接続されます。 最終的な "マークダウン" 形式は、画像やリンクを含む豊富なプレゼンテーションをサポートします。

プロジェクトを編集したら、作業中の Azure Web アプリ ボットにそのプロジェクトを公開します。コードを記述する必要はありません。 Azure portal でボットをテストするか、ダウンロードして開発を続行します。

階層化されたランク付けによる質の高い回答

カスタム質問応答システムでは、階層化されたランク付け方法が使われます。 データは Azure Search に格納されます。これは、第 1 のランク付けレイヤーとしても機能します。 次に、Azure Cognitive Search からの上位の結果がカスタム質問応答の NLP 再ランク付けモデルを通じて渡され、最終的な結果と信頼度スコアが生成されます。

複数ターン会話

カスタム質問応答では、基本的な質問と回答のペアを改善するために、複数ターンのプロンプトとアクティブ ラーニングが提供されています。

複数ターンのプロンプトにより、質問と回答のペアを結び付ける機会が与えられます。 この結び付けにより、クライアント アプリケーションは上位の回答を提供し、最終的な回答の検索を絞り込むためにより多くの質問を提供することができます。

公開されたエンドポイントでプロジェクトにユーザーからの質問が届くと、カスタム質問応答は、この実際の質問にアクティブ ラーニングを適用し、品質を向上させるためにプロジェクトへの変更を提案します。

開発ライフサイクル

カスタム質問応答では、開発ライフサイクル全体に統合されるように、作成、トレーニング、発行、コラボレーションのアクセス許可が提供されます。

開発サイクルの概念図

クイックスタートに取り組む

ほとんどの一般的なプログラミング言語向けのクイックスタートが提供されています。それぞれ基本的な設計パターンを学び、いずれも 10 分もかからずにコードを実行できるように作られています。

次のステップ

カスタム質問応答には、カスタム プロジェクトのビルド、管理、デプロイに必要なすべてのものが用意されています。