Amazon Web Services ブログ

AWS の機械学習サービスを使用してエンタープライズクラスの安定したスマートボットを構築する

Abbott Laboratories は、現場チームが他のクライアントと現場で解読できる以上のデータを持っています。  彼らのソリューションですか? スマートボットと連携して、Amazon LexAWS LambdaAmazon ComprehendAmazon SageMaker などの AWS の機械学習サービスを利用した、Maya と呼ばれるエンタープライズクラスの信頼性の高い安定したチャットボットを構築します。

背景としては、Abbott Laboratories は多国籍の医療会社であり、インドで AI をデプロイしている先駆者です。  Maya は、インドで Abbottの 3,000 人以上の現地従業員に対応し、営業活動をサポートして、従業員が手元で状況に応じた情報へアクセスできるようにします。

チャットボットは、従業員が現場で医師と打ち合わせをしている際に特に役立ちます。Maya がエンタープライズアプリケーションからの情報の照会や取得の非常に重要な部分を処理できるため、従業員は高レベルの作業に集中できます。

Maya は、Abbott の CRM (顧客関係管理) システムと統合されています。それぞれの照会で、ボットがユーザーに代わって認証を受け、必要な情報を取得します。

Amazon Lex が言語モデルを有効にする

Amazon Lex は、Maya ソリューションの中核であり、バックエンドシステムからの会話の流れやデータアクセスプロトコルに関する長い議論の末に選ばれました。

チームは、会話の流れからインテントを特定しました。現在の Maya は、50 以上のインテントを備えています – ボットをより人間的にするための「ちょっとした世間話」のインテントを含めて、250 スロット近くになります。大半のインテントは、データ関連のアクション (たとえば、フィルター処理、計算など) を中心にしています。ちょっとした世間話のインテントは、「あなたの助けに感謝します」のようなフレーズを扱います。

Lambda が応答を決定する

50 のインテントのすべてが、単一の Lambda 関数にリンクされています。以下の手順は、関数を呼び出すすべてのリクエストに対して実行されます。

  • ビジネスルールに基づいてスロットを検証します。
  • 新しく処理されたスロットに関連するすべての登録済みメソッドを呼び出します。
  • 次の状態を確認します。
  • レスポンスオブジェクトを作成します。

Lambda は、上記の検証および状態フローロジックを実装するための適切な役割を果たしました。

セッション属性がコンテキストを処理

チームはインテントチェーニングを使用して会話フローを強化しました。これにより、ボットがよりスマートになり、ボット管理が合理化されたために賞賛されました。この概念にあまり馴染みがない人のために、インテントチェーニングはコンテキストを失うことなく複数のインテント間の移動を容易にします。Maya では、コンテキストはセッション属性に JSON として保存されます。Context オブジェクトは次のように構成されています。

sessionAttributes: {
  "context": {
    "previous-context": {
        "primary-context": true,
        "intent-name":"intent-A",
        "slots": {
          "slot-name": "slot-value",
          ...
        },
        "context-variable-1": "value",
        "context-variable-2": "value"
    },
    "current-context": {
        "intent-name":"intent-B",
      "context-variable-3": "value",
      "context-variable-4": "value"
    }
  }
}

* セッション属性の値は文字列のみであるため、Context JSON オブジェクトは文字列化してから割り当てる必要があります。

上記の例では、フローはインテント A からインテント B にシフトされました (インテント A は処理待ちのままです)。現在のインテント (インテント B) が処理された後、対話状態はインテント A に戻り、前の状態を維持します。

現実的には、この例は、ユーザーが大規模データセットの分析と個々の患者の健康記録との間で切り替えたい場合に、医療分野で適用可能です。たとえば、ユーザーは、さまざまな疾患の原因、症状、および可能性についての分析を見たいと考えるかもしれません。

結果と次のステップ

Maya チャットボットがこの分野でデプロイされているので、医療担当者が提起する質問の約 3 分の 1 は、人間ではなく Maya によって回答されています。

今後数か月のうちに、チームはチャットボットの利用を促進し、さらに賢くすることを目指しています。特に、Amazon SageMaker Reinforcement Learning を Gym インターフェイスで使用して、ユーザーを引き込みながら継続的なトレーニングを促進することを検討しています。考え方としては、次の一連の有用なインタラクションであると期待しているものでユーザーを促し、その推奨の関連性に基づいてボットに報酬を与えるか、ペナルティを科します。

Amazon SageMaker は、現在テスト中のマザーボットアーキテクチャーアプローチの中核でもあります。このマザーボットは実質的に、正しいチャイルドボットに照会してユーザーへの答えを得ることができる調整ポイントです。ボットのこのアンサンブルは、すべてのインテントを処理する単一のボットよりもさらに優れたパフォーマンスを発揮することが期待されています。技術的な観点から見ると、マザーボットは Amazon SageMaker に実装されている分類アルゴリズムです。AmazonSageMaker が可能にする合理化されたワークフローのおかげで比較的簡単な作業ですになります。


著者について

Marisa Messina は、AWS AI マーケティングチームに所属しています。彼女は、最も革新的な AWS を使用している顧客を特定し、示唆に富んだストーリーを紹介することを仕事にしています。AWS に入社する前は、Microsoft で消費者向けハードウェア、次に大学向けクラウド製品を担当していました。仕事以外では、太平洋岸北西部のハイキングコースを探索したり、レシピなしで料理をしたり、雨の中で踊ったりして楽しんでいます。