Upgrade to Pro — share decks privately, control downloads, hide ads and more …

20240825_bedrock_helpdesk_jp.pdf

KoheiGamo
August 25, 2024

 20240825_bedrock_helpdesk_jp.pdf

KoheiGamo

August 25, 2024
Tweet

More Decks by KoheiGamo

Other Decks in Technology

Transcript

  1. 自己紹介 蒲 晃平 Nomura Research Institute, Ltd. ガモウ コウヘイ Career

    Private - 2017年 ~ 自社プライベートクラウドの開発・運用 ✓ IaaS・PaaS基盤の維持管理 ✓ インフラ自動構築、運用自動化 - 2021年 ~ #キャンプ #漫画大人買い AWSの社内CCoEのヘルプデスク業務 ✓ ヘルプデスク運営 ✓ AWS環境提供/セキュリティ対策サービスの開発・運用 ✓ AWS案件の技術支援 2
  2. 問い合わせ対応は、新人にとってもベテランにとっても多くの労力と時間がかかる ベテラン(経験が長いメンバー) 特徴: • 単純なQA※が割り当てられることが多い • 回答根拠の探索と不慣れな文章作成に時間がかかる ※単純なQA:仕様書に回答が記載されているような問い 合わせ 特徴:

    • 複雑なQA※が割り当てられることが多い • 多角的な情報収集と詳細な回答作成に時間がかかる ※複雑なQA:複数のサービスに関連したり、仕様書に回答 の記載が無いような問い合わせ 新人(経験が浅いメンバー) 開発した背景 – ヘルプデスク業務の難しさ 5
  3. ベテラン(経験が長いメンバー) 特徴: • 単純なQA※が割り当てられることが多い • 回答根拠の探索と不慣れな文章作成に時間がかかる ※単純なQA:仕様書に回答が記載されているような問い 合わせ 特徴: •

    複雑なQA※が割り当てられることが多い • 多角的な情報収集と詳細な回答作成に時間がかかる ※複雑なQA:複数のサービスに関連したり、仕様書に回答 の記載が無いような問い合わせ 新人(経験が浅いメンバー) 開発した背景 – ヘルプデスク業務の難しさ 課題解決に必要な機能: • 検索機能:仕様書や過去のQA応対履歴から回答根拠を見つけられる • 回答作成:検索した結果から自動的に回答を作成してくれる RAGの生成AIチャットボット 6
  4. 開発したRAGチャットボット (画面イメージ) 質問 回答 引用元 (検索結果) 過去のチャット履歴 質問フォーム 回答作成を補助: 単純なQAなら一発でユーザへ回答

    可能なレベルの文章が出力 仕様書やFAQ、QAチケットなどに 点在した情報の集約・検索: - 新人が自ら業務知識を獲得 - ベテランも過去対応や類件対応を 簡単に調査できる 検索対象のドキュメント: - サービス仕様書 - QA応対履歴データ - FAQ - クラウド関連の社内規定 - AWSドキュメント(ユーザガイドなど) 8
  5. アーキテクチャ 概要: - 一般的なシングルページアプリケー ション - RAG機能として Amazon Bedrockの Knowledge

    Baseを採用した - Bedrockを活用することで全て AWS内だけで完結 3つのポイント 1. 会話履歴管理 2. Bedrockのリージョン選定 3. PII除去のデータパイプライン 9
  6. ①良質な評価用データセットを作成する事から始める 「トップダウン型のアプローチ」から始める (ドメインエキスパートからフィードバックを得る) 「ボトムアップ型のアプローチ」へ移行する (エンドユーザからフィードバックを得る) • 想定質問と理想的な模範回答のペア(評価用データ)を用意 • 模範回答に近い内容を生成できるように初期プロトタイプを開発 •

    ヘルプデスクのメンバーやテストユーザにアプリケーションを積極的に利用してもらい、 AIの回答やアプリケーションへのフィードバックを収集する • ユーザのフィードバックから機能改修し、模範回答に対する回答精度を継続的に改善し続ける プロトタイプのリリース後 プロトタイプ開発の初期段階からドメインエキスパート(=現行業務に精通した者)を巻き込み、 想定質問と模範解答のデータセットを作る。どのような質問と答えを想定するかがソリューションの方向性を決める 15
  7. ②KPI駆動の設計と利用促進 • RAGチャットボットを開発したただけでは、ヘルプデスクのメンバーが積極的に活用する状態にはならない。 利用促進は必要不可欠 • 利用促進にはチャットボットの品質向上(回答精度やレスポンス向上)が重要になる • 業務効率化の効果測定も同じくらい重要 # 目的

    KPI項目 測定方法 1 利用促進 ユーザ平均利用率 会話履歴管理TBLからユーザごとの利用回数を取得する 2 利用促進 RAGの回答精度(定量評価) SageMakerノートブックインスタンスでRAGAS(後述)を使って RAGの検索結果と回答精度を定量的に評価する 3 業務効率化 AIの回答を使って問い合わせ回答できた 問い合わせの割合 Goodボタン/BadボタンをチャットボットのWEB画面に設置することで AIの回答が役立ったかどうか簡単に入力できるようにする ▪KPIの例 18
  8. ②KPI駆動の設計と利用促進 # 目的 KPI項目 測定方法 1 利用促進 ユーザ平均利用率 会話履歴管理TBLからユーザごとの利用回数を取得する 2

    利用促進 RAGの回答精度(定量評価) SageMakerノートブックインスタンスでRAGAS(後述)を使って RAGの検索結果と回答精度を定量的に評価する 3 業務効率化 AIの回答を使って問い合わせ回答できた 問い合わせの割合 Goodボタン/BadボタンをチャットボットのWEB画面に設置することで AIの回答が役立ったかどうか簡単に入力できるようにする 「KPI駆動の設計」:KPIをシステム設計時から定め、測定に必要なデータや取得機能を事前に決定 • RAGチャットボットを開発したただけでは、ヘルプデスクのメンバーが積極的に活用する状態にはならない。 利用促進は必要不可欠 • 利用促進にはチャットボットの品質向上(回答精度やレスポンス向上)が重要になる • 業務効率化の効果測定も同じくらい重要 19
  9. ③データパイプラインの整備 Glueジョブキック用 Lambda PIIマスキング用Glueジョブ (ETLジョブ) ①PIIが含まれているファイル ①以外のファイル 管理者 検索ドキュメント 1.

    アップロード Bedrock Knowledge Base OpenSearch Service RAG機能 検索ドキュメント ベクトル化 検索処理 2. Knowledge Baseで同期 (ドキュメントをOpenSearchに取り込み) S3 S3トリガー ファイルPUTでLambdaキック ◼ PII Detection & Masking 「GiNZA」:日本語NLPのOSSライブラリで 日本人の姓名をマスキング PIIが含まれている PIIがマスキング済み データパイプライン 22
  10. RAGの定量評価 on AWS • RAGの評価には、最終的な回答の精度の他に検索の精度も含めて評価する必要がある • RAGの精度評価ツールとして、RAGAS※などのOSSのフレームワークが有名 • 正解データとして想定質問と模範解答のデータセットを使う(データセットの自動作成もRAGASで可能) •

    具体的な方法(一例):SageMakerノートブックインスタンスで評価用Notebookを作成し精度評価 ※RAGAS:https://docs.ragas.io/en/stable/ Amazon API Gateway AWS Lambda Bedrock Bedrock Knowledge Base AmazonS3 OpenSearch Service バックエンド RAG機能 DynamoDB 検索 ドキュメント (会話履歴管理テーブル) 回答精度評価用 Notebook SageMaker RAGの精度評価 開発者 SageMakerのノートブックを使うことで やりたいときにいつでも回答精度を測定できる 想定質問と 模範回答集 LambdaをinvokeしてRAGの 検索結果と回答結果を取得 24
  11. ボトルネックの特定と対策 ボトルネックの特定:以下の情報を使って、入力から出力のどの工程で問題があるのかを把握 • 定量評価の結果:RAGASで得られた検索精度と回答精度 • 会話履歴管理TBLに記録された利用データ:ユーザの実際の質問文とLLMの回答内容 ボトルネックの工程に応じた対策を講じる。Knowledge Baseのオプションを使いこなす 2 #

    工程 原因 対策の例 1 質問文 質問文に検索に必要な情報やキー ワードが含まれていない • ユーザに利用ガイドラインやサンプルプロンプトを公開する • 検索クエリを見直す(検索に必要な情報をシステム側で付与する) 2 質問文 一つの質問文に複数の質問が含まれ ている • Knowledge Baseのクエリ拡張を有効化(質問ごとに検索クエリを裏 で作成) 3 検索処理 ドキュメントの図表が読み取れていない • Knowledge Baseの解析オプションを有効化(ベクトル化する前に図 表をClaudeに自然言語として出力させる) 4 検索処理 検索精度が悪い • 検索アルゴリズムを変更(OpenSearchのハイブリッド検索を活用等) • チャンキング戦略を見直す(Knowledge Baseのカスタマイズチャン キングを活用等) 5 回答処理 検索されたドキュメントの意図をくみ 取った回答ができない • プロンプトチューニング • ドキュメントの構造を見直す 2 1 25