Slide 1

Slide 1 text

takuya kikuchi @ Algomatic シゴラクAIカンパニーCTO 2024-02-26 Azure AI Hub #2 AI Search と PromptFlow ではじめるRAG

Slide 2

Slide 2 text

フィンテックスタートアップにおいて開発リー ドやVPoEとして開発組織構築を担当したほか、 モバイルオーダープラットフォームを⼿がける Showcase GigではVPoTとして技術領域全般を 管掌。2024年、AlgomaticにカンパニーCTOと して参画。ソフトウェア開発、設計、ドット絵 が好き X: @_pochi Algomatic シゴラクAIカンパニー CTO 菊池 琢弥 / Takuya Kikuchi 2 © 2024 Algomatic Inc.

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

4 © 2024 Algomatic Inc. 「社内ナレッジチャット」機能でRAGやってます

Slide 5

Slide 5 text

5 ❶ RAGとは ❷ Azure AI Searchをなぜ使うか ❸ Prompt Flowをどう使うか ❹ まとめ アジェンダ

Slide 6

Slide 6 text

RAGとは ● 外部のデータベースや知識をもとにした回答を⼤規模⾔語モデルに⽣成させ る技術 © 2024 Algomatic Inc. 6 Algomatic 社内 ドキュメント 経費申請 どうしたらいい? ⼀般的にはこうだよ! 経費申請 どうしたらいい? このフォームから必要事 項を記⼊して送ってね! 検索 検索結果 RAGなし RAGあり

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

10 © 2024 Algomatic Inc. Azure AI Searchをなぜ使うか

Slide 11

Slide 11 text

Azure AI Search - 概要 ● Azure上で提供されている検索エンジン ○ ベクタ検索、セマンティックランキングなどの⾼度な検索機能を、 アプリケーションから⼿軽に利⽤できる ○ Azure Storageに格納したドキュメントを⾃動でインデックスしてくれる機能などもある ● 名前がよく変わるので注意 ○ Azure Search → Cognitive Search → Azure AI Search ○ 困った時には「AI Search」ではなく「Cognitive Search」で検索すると ⾊々⾒つかったりする... © 2024 Algomatic Inc. 11

Slide 12

Slide 12 text

Azure AI Search - なぜ使うか? ● 検索精度が⾼い ○ セマンティックランキング ■ ハイブリッドサーチの検索結果上位50件を、 ⽂脈や意味を考慮し、新たに関連度を計算する機能 ■ ↑これがかなり⾼精度 ○ Azure Portal上でぽちぽち構成を作っていくだけで⾼精度な検索機能が利⽤可能 © 2024 Algomatic Inc. 12

Slide 13

Slide 13 text

13 © 2024 Algomatic Inc. Azure AI Searchの検索精度評価 わかりやすい例をお届けします

Slide 14

Slide 14 text

Azure AI Search - 検索精度評価 ● 検索対象: Algomaticの社内ドキュメント65ファイル ○ 就業規則、各種規定 ○ 社内ルール ○ バックオフィス業務⼿順書 ○ などなど、Google DriveやNotion上に存在するドキュメント類 ● 格納⽅法: テキスト情報を500トークンごとに分割 ● 以下の条件で検索を実⾏ ● ベクタ検索 ● ハイブリッド検索(ベクタ+テキスト) ● ハイブリッド検索+セマンティックランキング © 2024 Algomatic Inc. 14

Slide 15

Slide 15 text

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日間を限 度として出勤停止し、(略)

Slide 16

Slide 16 text

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 住宅への居住開始 ⼒が確定しました ら、フォームから申請をお願いします。 フォーム⼒⼒(略)

Slide 17

Slide 17 text

Azure AI Search - 検索精度評価 ● Embeddingベクトルの類似度はあくまで「意味的な近さ」であり、質問の回答に必要 な⽂書ばかりが類似度が⾼くなるわけではない ○ 「引っ越しました」というテキストと、「住所」という⾔葉を含むテキストの類似度はどう しても⾼くなる ● そこにセマンティックランキングを⾏うことによって、「引っ越し」という⽂脈に関連 性の⾼いドキュメントが上位にランクされる ○ 住宅⼿当 ○ 住所変更⼿続き © 2024 Algomatic Inc. 17

Slide 18

Slide 18 text

それはそれとして、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 住宅への居住開始 ⼒が確定しましたら、 フォームから申請をお願いします。 フォーム⼒⼒(略)

Slide 19

Slide 19 text

19 © 2024 Algomatic Inc. PromptFlowの話

Slide 20

Slide 20 text

PromptFlow - 概要 ● LLMの呼び出しを伴う処理(=フロー)を、グラフィカルなUIで実装できる ● 実装したフローのバッチ実⾏、評価、デプロイが可能 © 2024 Algomatic Inc. 20

Slide 21

Slide 21 text

PromptFlow - どう使うか © 2024 Algomatic Inc. 21 RAGフロー 評価フロー 質問 リスト 評価 結果 AI Search Index ドキュメ ント ドキュメ ント ドキュメ ント ● Algomaticでは、「RAGフロー」と「評価フロー」をPromptFlowで実装している ● 質問リストと模範回答を⽤意することで、⾃動で評価結果が得られる仕組みを構築中 模範 回答

Slide 22

Slide 22 text

22 © 2024 Algomatic Inc. フローの実装

Slide 23

Slide 23 text

PromptFlow - フローの実装 RAGフロー Input: 質問⽂ Output: 回答⽂ プリセットで⽤意されているRAGのフローがあり、 それをベースにアレコレ⼯夫をしている Pythonコードで中間処理を記述したり、LLMの呼び出しを ⾏ったりできる AOAIおよびAI SearchとのIntegrationなども容易! © 2024 Algomatic Inc. 23

Slide 24

Slide 24 text

PromptFlow - フローの実装 評価⽤フロー Input: 質問⽂、回答⽂、模範回答 Output: 正確性、網羅性 RAGの回答と模範回答を 以下の観点で⽐較するフローを実装。 (テンプレなどはないので創意⼯夫して実装) 観点: ‧ドキュメントの内容に基づいて  正しい情報を回答しているか(Precision) ‧模範回答に含まれる情報が  不⾜なく含まれているか(Recall) © 2024 Algomatic Inc. 24

Slide 25

Slide 25 text

25 © 2024 Algomatic Inc. フローの実⾏および評価 少し具体的にお話しします

Slide 26

Slide 26 text

PromptFlow - フローの実⾏および評価 ● RAGフローをバッチ実⾏ ○ あらかじめRAG評価⽤の質問リストをCSVファイルで⽤意しておく © 2024 Algomatic Inc. 26 バッチ実⾏設定 バッチ実⾏結果⼀覧

Slide 27

Slide 27 text

PromptFlow - フローの実⾏および評価 ● バッチ実⾏結果画⾯から、さらに「評価」を選択し「カスタマイズされた評価」から ⾃作の評価フローを実⾏ 27 © 2024 Algomatic Inc. バッチ実⾏結果画⾯

Slide 28

Slide 28 text

PromptFlow - フローの実⾏および評価 評価が完了すると、各インプットの結果およびメトリクスが確認可能 28 © 2024 Algomatic Inc. 出⼒ 1⾏ごとにインプットとアウトプットが確認できる メトリック バッチ実⾏の結果をAggregateして指標を出⼒できる ⼊⼒: 質問、模範回答、RAGの回答 出⼒: 網羅性、正確性 出⼒: - 全実⾏結果のうち、網羅できた回答の割合 - 全実⾏結果のうち、正確な回答の割合

Slide 29

Slide 29 text

PromptFlow - 感想 ● フローの実装から評価まで、LLMを使った実験を効率的に実施できる機能が 揃っていて便利 ● ⼀⽅で、ドキュメントの前処理などは守備範囲外 ○ ここについては⾃前でアプリケーションコード書いた⽅が早いかも、という印象 ○ あるいは、Azure AI SearchのIndexer / Skillsetを使うべきということか? ● 「デプロイ」機能は試せてないので、ぜひどなたか使⽤感教えてください © 2024 Algomatic Inc. 29

Slide 30

Slide 30 text

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