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

Azure AI SearchとPromptFlowではじめるRAG

Azure AI SearchとPromptFlowではじめるRAG

20240226 Azure AI Hub #2の登壇資料です。

takuya kikuchi

February 26, 2024
Tweet

More Decks by takuya kikuchi

Other Decks in Technology

Transcript

  1. RAGとは • 外部のデータベースや知識をもとにした回答を⼤規模⾔語モデルに⽣成させ る技術 © 2024 Algomatic Inc. 6 Algomatic

    社内 ドキュメント 経費申請 どうしたらいい? ⼀般的にはこうだよ! 経費申請 どうしたらいい? このフォームから必要事 項を記⼊して送ってね! 検索 検索結果 RAGなし RAGあり
  2. RAGとは - RAGの頑張りどころ • RAGの営みをざっくり整理すると ◦ ユーザーの発話から「何を知りたいのか」を認識し ◦ 答えるために必要な情報を検索し ◦

    検索結果を踏まえ、正しくわかりやすい回答を⽣成する © 2024 Algomatic Inc. 7 Algomatic 社内 ドキュメント 引っ越しました! このフォームから住所変 更してね! 検索 検索結果
  3. RAGとは - RAGの頑張りどころ • RAGの営みをざっくり整理すると ◦ ユーザーの発話から「何を知りたいのか」を認識し ◦ 答えるために必要な情報を検索し ◦

    検索結果を踏まえ、正しくわかりやすい回答を⽣成する © 2024 Algomatic Inc. 8 AI Searchが便利 Algomatic 社内 ドキュメント 引っ越しました! このフォームから住所変 更してね! 検索 検索結果 検索 検索結果
  4. RAGとは - RAGの頑張りどころ • RAGの営みをざっくり整理すると ◦ ユーザーの発話から「何を知りたいのか」を認識し ◦ 答えるために必要な情報を検索し ◦

    検索結果を踏まえ、正しくわかりやすい回答を⽣成する © 2024 Algomatic Inc. 9 Prompt Flowが便利 Algomatic 社内 ドキュメント 引っ越しました! このフォームから住所変 更してね! 検索 検索結果 検索 検索結果
  5. Azure AI Search - 概要 • Azure上で提供されている検索エンジン ◦ ベクタ検索、セマンティックランキングなどの⾼度な検索機能を、 アプリケーションから⼿軽に利⽤できる

    ◦ Azure Storageに格納したドキュメントを⾃動でインデックスしてくれる機能などもある • 名前がよく変わるので注意 ◦ Azure Search → Cognitive Search → Azure AI Search ◦ 困った時には「AI Search」ではなく「Cognitive Search」で検索すると ⾊々⾒つかったりする... © 2024 Algomatic Inc. 11
  6. Azure AI Search - なぜ使うか? • 検索精度が⾼い ◦ セマンティックランキング ▪

    ハイブリッドサーチの検索結果上位50件を、 ⽂脈や意味を考慮し、新たに関連度を計算する機能 ▪ ↑これがかなり⾼精度 ◦ Azure Portal上でぽちぽち構成を作っていくだけで⾼精度な検索機能が利⽤可能 © 2024 Algomatic Inc. 12
  7. Azure AI Search - 検索精度評価 • 検索対象: Algomaticの社内ドキュメント65ファイル ◦ 就業規則、各種規定

    ◦ 社内ルール ◦ バックオフィス業務⼿順書 ◦ などなど、Google DriveやNotion上に存在するドキュメント類 • 格納⽅法: テキスト情報を500トークンごとに分割 • 以下の条件で検索を実⾏ • ベクタ検索 • ハイブリッド検索(ベクタ+テキスト) • ハイブリッド検索+セマンティックランキング © 2024 Algomatic Inc. 14
  8. Azure AI Search - 検索精度評価 • クエリ:「裁判員になったんだけど休暇とれる?」 ※Embeddingはtext-embedding-ada-02を利⽤ © 2024

    Algomatic Inc. 15 Vector Hybrid Semantic 1 就業規則.pdf 第43条 (介護休業) 介護が必要な従業員から請求があっ た場合は(略) 就業規則.pdf 第43条 (介護休業) 介護が必要な従業員から請求があった 場合は(略) 就業規則.pdf 3. 裁判員休暇の付与日数は、裁判員候 補者や裁判員として(略) 2 就業規則.pdf 第9章 退職 金..................................................... .................... 24 就業規則.pdf 3. 裁判員休暇の付与日数は、裁判員候補 者や裁判員として(略) 就業規則.pdf 第43条 (介護休業) 介護が必要な従業員から請求があっ た場合は(略) 3 就業規則.pdf 3. 裁判員休暇の付与日数は、裁判員 候補者や裁判員として(略) 就業規則.pdf (3) 出勤停止 始末書を提出させるほか、 5日間を限度 として出勤停止し、(略) 就業規則.pdf (3) 出勤停止 始末書を提出させるほか、 5日間を限 度として出勤停止し、(略)
  9. Azure AI Search - 検索精度評価 • クエリ:「引っ越したんだけどどうしたらいい?」 ※Embeddingはtext-embedding-ada-02を利⽤ © 2024

    Algomatic Inc. 16 Vector Hybrid Semantic 1 交通費申請 .pdf …申請タイトルは「 ⼒名mm⼒交通費」 としてください。 部⼒は xxx を選択(略) ... 業務委託手続き .pdf 1.住所 2.契約者名フルネーム(漢字と読み仮 名) ※法⼒契約希望の場合は(略) 住宅手当.pdf 対象者:正社員 制度概要:住宅 ⼒当は、所属事業所 (THE CROSS⼒本橋⼒形町)を起点と して...(略) 2 結婚祝い金申請 .pdf 配偶者を扶養に ⼒れる場合、被扶養 者の異動の ⼒続きが必要となります。 以下のドキュメントをご確認ください。 (略) 業務委託手続き .pdf 締結後に各種アカウント、オンボーディ ング資料を送付(略) 住宅手当.pdf 住宅への居住開始 ⼒が確定しました ら、フォームから申請をお願いします。 (略) 3 業務委託手続き .pdf 1.住所 2.契約者名フルネーム(漢字と読み 仮名) ※法⼒契約希望の場合は(略) 立替経費申請 .pdf 経費精算の作成 申請者 申請タイトル ※※ (略) 住所変更.pdf 住宅への居住開始 ⼒が確定しました ら、フォームから申請をお願いします。 フォーム⼒⼒(略)
  10. Azure AI Search - 検索精度評価 • Embeddingベクトルの類似度はあくまで「意味的な近さ」であり、質問の回答に必要 な⽂書ばかりが類似度が⾼くなるわけではない ◦ 「引っ越しました」というテキストと、「住所」という⾔葉を含むテキストの類似度はどう

    しても⾼くなる • そこにセマンティックランキングを⾏うことによって、「引っ越し」という⽂脈に関連 性の⾼いドキュメントが上位にランクされる ◦ 住宅⼿当 ◦ 住所変更⼿続き © 2024 Algomatic Inc. 17
  11. それはそれとして、Embedding v3はすごい • クエリ:「引っ越したんだけどどうしたらいい?」 © 2024 Algomatic Inc. 18 text-embedding-ada-02

    text-embedding-3-large 1 交通費申請 .pdf …申請タイトルは「 ⼒名mm⼒交通費」としてく ださい。 部⼒は xxx を選択(略) ... 被扶養者の移動.pdf 情報登録完了後、SlackのグループDM にて、 @backoffice宛にご連絡ください。 出⼒時の個⼒番号通知書...(略) 2 結婚祝い金申請 .pdf 配偶者を扶養に ⼒れる場合、被扶養者の異 動の⼒続きが必要となります。以下のドキュメ ントをご確認ください。 (略) 住宅手当.pdf 住宅への居住開始 ⼒が確定しましたら、 フォームから申請をお願いします。(略) 3 業務委託手続き .pdf (略) 住所変更.pdf 住宅への居住開始 ⼒が確定しましたら、 フォームから申請をお願いします。 フォーム⼒⼒(略)
  12. PromptFlow - どう使うか © 2024 Algomatic Inc. 21 RAGフロー 評価フロー

    質問 リスト 評価 結果 AI Search Index ドキュメ ント ドキュメ ント ドキュメ ント • Algomaticでは、「RAGフロー」と「評価フロー」をPromptFlowで実装している • 質問リストと模範回答を⽤意することで、⾃動で評価結果が得られる仕組みを構築中 模範 回答
  13. PromptFlow - フローの実装 RAGフロー Input: 質問⽂ Output: 回答⽂ プリセットで⽤意されているRAGのフローがあり、 それをベースにアレコレ⼯夫をしている

    Pythonコードで中間処理を記述したり、LLMの呼び出しを ⾏ったりできる AOAIおよびAI SearchとのIntegrationなども容易! © 2024 Algomatic Inc. 23
  14. PromptFlow - フローの実装 評価⽤フロー Input: 質問⽂、回答⽂、模範回答 Output: 正確性、網羅性 RAGの回答と模範回答を 以下の観点で⽐較するフローを実装。

    (テンプレなどはないので創意⼯夫して実装) 観点: ‧ドキュメントの内容に基づいて  正しい情報を回答しているか(Precision) ‧模範回答に含まれる情報が  不⾜なく含まれているか(Recall) © 2024 Algomatic Inc. 24
  15. PromptFlow - フローの実⾏および評価 評価が完了すると、各インプットの結果およびメトリクスが確認可能 28 © 2024 Algomatic Inc. 出⼒

    1⾏ごとにインプットとアウトプットが確認できる メトリック バッチ実⾏の結果をAggregateして指標を出⼒できる ⼊⼒: 質問、模範回答、RAGの回答 出⼒: 網羅性、正確性 出⼒: - 全実⾏結果のうち、網羅できた回答の割合 - 全実⾏結果のうち、正確な回答の割合
  16. PromptFlow - 感想 • フローの実装から評価まで、LLMを使った実験を効率的に実施できる機能が 揃っていて便利 • ⼀⽅で、ドキュメントの前処理などは守備範囲外 ◦ ここについては⾃前でアプリケーションコード書いた⽅が早いかも、という印象

    ◦ あるいは、Azure AI SearchのIndexer / Skillsetを使うべきということか? • 「デプロイ」機能は試せてないので、ぜひどなたか使⽤感教えてください © 2024 Algomatic Inc. 29
  17. まとめ • Azure上には、RAGを実現するにあたって有⽤なツールが揃っていてありがたい ◦ AOAI ◦ AI Search ◦ Prompt

    Flow • PromptFlowとAI Searchを使うことで、Azure Poral上でRAGの構築、評価、精度向上が全て ⾏える ◦ ほぼノーコードでいけるのでは • 「とりあえず動かす」ことが難しいのが難点(個⼈の感想です) ◦ みなさまの解説記事に助けられています。ありがとうございます。 © 2024 Algomatic Inc. 30