Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Azure AI SearchとPromptFlowではじめるRAG
Search
takuya kikuchi
February 26, 2024
Technology
2
960
Azure AI SearchとPromptFlowではじめるRAG
20240226 Azure AI Hub #2の登壇資料です。
takuya kikuchi
February 26, 2024
Tweet
Share
More Decks by takuya kikuchi
See All by takuya kikuchi
生成AI時代のソフトウェアエンジニアが持つべきケイパビリティを考える
tkikuchi1002
7
1.2k
RAGをテーマに考える、LLMの認知アーキテクチャとソフトウェア設計
tkikuchi1002
2
680
生成AIの不確実性と向き合うためのオブジェクト指向設計
tkikuchi1002
3
5.9k
法人向けChatGPTにおける Azure OpenAI Serviceの課題解決の過程と現在
tkikuchi1002
1
1.7k
LLMエンジニアリングを加速させるソフトウェアアーキテクチャ
tkikuchi1002
2
4.7k
WebAPIのバリデーションを、型の力でいい感じにする
tkikuchi1002
0
53
GoとDDDでモバイルオーダープラットフォームを 型安全に作り直した話
tkikuchi1002
0
60
Kotlinのcoroutine、async/awaitと同じでしょ?って思ってたけど意外と洗練されててすごいなぁって思った話をさせてほしい
tkikuchi1002
0
51
使いやすいインターフェースについて考える
tkikuchi1002
0
12
Other Decks in Technology
See All in Technology
CEL(Common Expression Language)で書いた条件にマッチしたIAM Policyを見つける / iam-policy-finder
fujiwara3
0
710
エンジニア向け会社紹介資料
caddi_eng
14
220k
目標設定は好きですか? アジャイルとともに目標と向き合い続ける方法 / Do you like target Management?
kakehashi
10
3k
Classmethod流のPlatform Engineering / classmethod-platform-engineering-devio2024
tomoki10
0
470
Azure OpenAI Service Dev Day / LLMでできる!使える!生成AIエージェント
masahiro_nishimi
3
750
DevIO2024_レガシー運用からの脱却 -クラウド活用の実践事例とベストプラクティス-
jun2882
0
210
運用改善、不都合な真実 / 20240722-ssmjp-kaizen
opelab
17
8k
簡単に始めるSnowflakeの機械学習
nayuts
1
190
AIエージェントを現場に導入する目線とは
masahiro_nishimi
1
1.5k
大規模ドラレコデータ収集・機械学習基盤を支える AWS CDK 〜導入・運用事例紹介〜
pemugi
0
110
ゆめみのアクセシビリティの現在地と今後
ryokatsuse
3
290
20240717_イケコパ代表Copilot_in_Teams会社でこう使ってます
ponponmikankan
2
430
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
399
65k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
35
6.3k
GitHub's CSS Performance
jonrohan
1026
450k
Rails Girls Zürich Keynote
gr2m
93
13k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
360
22k
Producing Creativity
orderedlist
PRO
340
39k
What’s in a name? Adding method to the madness
productmarketing
PRO
21
2.9k
YesSQL, Process and Tooling at Scale
rocio
166
14k
Faster Mobile Websites
deanohume
303
30k
Optimizing for Happiness
mojombo
373
69k
Principles of Awesome APIs and How to Build Them.
keavy
124
16k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
19k
Transcript
takuya kikuchi @ Algomatic シゴラクAIカンパニーCTO 2024-02-26 Azure AI Hub #2
AI Search と PromptFlow ではじめるRAG
フィンテックスタートアップにおいて開発リー ドやVPoEとして開発組織構築を担当したほか、 モバイルオーダープラットフォームを⼿がける Showcase GigではVPoTとして技術領域全般を 管掌。2024年、AlgomaticにカンパニーCTOと して参画。ソフトウェア開発、設計、ドット絵 が好き X: @_pochi
Algomatic シゴラクAIカンパニー CTO 菊池 琢弥 / Takuya Kikuchi 2 © 2024 Algomatic Inc.
None
4 © 2024 Algomatic Inc. 「社内ナレッジチャット」機能でRAGやってます
5 ❶ RAGとは ❷ Azure AI Searchをなぜ使うか ❸ Prompt Flowをどう使うか
❹ まとめ アジェンダ
RAGとは • 外部のデータベースや知識をもとにした回答を⼤規模⾔語モデルに⽣成させ る技術 © 2024 Algomatic Inc. 6 Algomatic
社内 ドキュメント 経費申請 どうしたらいい? ⼀般的にはこうだよ! 経費申請 どうしたらいい? このフォームから必要事 項を記⼊して送ってね! 検索 検索結果 RAGなし RAGあり
RAGとは - RAGの頑張りどころ • RAGの営みをざっくり整理すると ◦ ユーザーの発話から「何を知りたいのか」を認識し ◦ 答えるために必要な情報を検索し ◦
検索結果を踏まえ、正しくわかりやすい回答を⽣成する © 2024 Algomatic Inc. 7 Algomatic 社内 ドキュメント 引っ越しました! このフォームから住所変 更してね! 検索 検索結果
RAGとは - RAGの頑張りどころ • RAGの営みをざっくり整理すると ◦ ユーザーの発話から「何を知りたいのか」を認識し ◦ 答えるために必要な情報を検索し ◦
検索結果を踏まえ、正しくわかりやすい回答を⽣成する © 2024 Algomatic Inc. 8 AI Searchが便利 Algomatic 社内 ドキュメント 引っ越しました! このフォームから住所変 更してね! 検索 検索結果 検索 検索結果
RAGとは - RAGの頑張りどころ • RAGの営みをざっくり整理すると ◦ ユーザーの発話から「何を知りたいのか」を認識し ◦ 答えるために必要な情報を検索し ◦
検索結果を踏まえ、正しくわかりやすい回答を⽣成する © 2024 Algomatic Inc. 9 Prompt Flowが便利 Algomatic 社内 ドキュメント 引っ越しました! このフォームから住所変 更してね! 検索 検索結果 検索 検索結果
10 © 2024 Algomatic Inc. Azure AI Searchをなぜ使うか
Azure AI Search - 概要 • Azure上で提供されている検索エンジン ◦ ベクタ検索、セマンティックランキングなどの⾼度な検索機能を、 アプリケーションから⼿軽に利⽤できる
◦ Azure Storageに格納したドキュメントを⾃動でインデックスしてくれる機能などもある • 名前がよく変わるので注意 ◦ Azure Search → Cognitive Search → Azure AI Search ◦ 困った時には「AI Search」ではなく「Cognitive Search」で検索すると ⾊々⾒つかったりする... © 2024 Algomatic Inc. 11
Azure AI Search - なぜ使うか? • 検索精度が⾼い ◦ セマンティックランキング ▪
ハイブリッドサーチの検索結果上位50件を、 ⽂脈や意味を考慮し、新たに関連度を計算する機能 ▪ ↑これがかなり⾼精度 ◦ Azure Portal上でぽちぽち構成を作っていくだけで⾼精度な検索機能が利⽤可能 © 2024 Algomatic Inc. 12
13 © 2024 Algomatic Inc. Azure AI Searchの検索精度評価 わかりやすい例をお届けします
Azure AI Search - 検索精度評価 • 検索対象: Algomaticの社内ドキュメント65ファイル ◦ 就業規則、各種規定
◦ 社内ルール ◦ バックオフィス業務⼿順書 ◦ などなど、Google DriveやNotion上に存在するドキュメント類 • 格納⽅法: テキスト情報を500トークンごとに分割 • 以下の条件で検索を実⾏ • ベクタ検索 • ハイブリッド検索(ベクタ+テキスト) • ハイブリッド検索+セマンティックランキング © 2024 Algomatic Inc. 14
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日間を限 度として出勤停止し、(略)
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 住宅への居住開始 ⼒が確定しました ら、フォームから申請をお願いします。 フォーム⼒⼒(略)
Azure AI Search - 検索精度評価 • Embeddingベクトルの類似度はあくまで「意味的な近さ」であり、質問の回答に必要 な⽂書ばかりが類似度が⾼くなるわけではない ◦ 「引っ越しました」というテキストと、「住所」という⾔葉を含むテキストの類似度はどう
しても⾼くなる • そこにセマンティックランキングを⾏うことによって、「引っ越し」という⽂脈に関連 性の⾼いドキュメントが上位にランクされる ◦ 住宅⼿当 ◦ 住所変更⼿続き © 2024 Algomatic Inc. 17
それはそれとして、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 住宅への居住開始 ⼒が確定しましたら、 フォームから申請をお願いします。 フォーム⼒⼒(略)
19 © 2024 Algomatic Inc. PromptFlowの話
PromptFlow - 概要 • LLMの呼び出しを伴う処理(=フロー)を、グラフィカルなUIで実装できる • 実装したフローのバッチ実⾏、評価、デプロイが可能 © 2024 Algomatic
Inc. 20
PromptFlow - どう使うか © 2024 Algomatic Inc. 21 RAGフロー 評価フロー
質問 リスト 評価 結果 AI Search Index ドキュメ ント ドキュメ ント ドキュメ ント • Algomaticでは、「RAGフロー」と「評価フロー」をPromptFlowで実装している • 質問リストと模範回答を⽤意することで、⾃動で評価結果が得られる仕組みを構築中 模範 回答
22 © 2024 Algomatic Inc. フローの実装
PromptFlow - フローの実装 RAGフロー Input: 質問⽂ Output: 回答⽂ プリセットで⽤意されているRAGのフローがあり、 それをベースにアレコレ⼯夫をしている
Pythonコードで中間処理を記述したり、LLMの呼び出しを ⾏ったりできる AOAIおよびAI SearchとのIntegrationなども容易! © 2024 Algomatic Inc. 23
PromptFlow - フローの実装 評価⽤フロー Input: 質問⽂、回答⽂、模範回答 Output: 正確性、網羅性 RAGの回答と模範回答を 以下の観点で⽐較するフローを実装。
(テンプレなどはないので創意⼯夫して実装) 観点: ‧ドキュメントの内容に基づいて 正しい情報を回答しているか(Precision) ‧模範回答に含まれる情報が 不⾜なく含まれているか(Recall) © 2024 Algomatic Inc. 24
25 © 2024 Algomatic Inc. フローの実⾏および評価 少し具体的にお話しします
PromptFlow - フローの実⾏および評価 • RAGフローをバッチ実⾏ ◦ あらかじめRAG評価⽤の質問リストをCSVファイルで⽤意しておく © 2024 Algomatic
Inc. 26 バッチ実⾏設定 バッチ実⾏結果⼀覧
PromptFlow - フローの実⾏および評価 • バッチ実⾏結果画⾯から、さらに「評価」を選択し「カスタマイズされた評価」から ⾃作の評価フローを実⾏ 27 © 2024 Algomatic
Inc. バッチ実⾏結果画⾯
PromptFlow - フローの実⾏および評価 評価が完了すると、各インプットの結果およびメトリクスが確認可能 28 © 2024 Algomatic Inc. 出⼒
1⾏ごとにインプットとアウトプットが確認できる メトリック バッチ実⾏の結果をAggregateして指標を出⼒できる ⼊⼒: 質問、模範回答、RAGの回答 出⼒: 網羅性、正確性 出⼒: - 全実⾏結果のうち、網羅できた回答の割合 - 全実⾏結果のうち、正確な回答の割合
PromptFlow - 感想 • フローの実装から評価まで、LLMを使った実験を効率的に実施できる機能が 揃っていて便利 • ⼀⽅で、ドキュメントの前処理などは守備範囲外 ◦ ここについては⾃前でアプリケーションコード書いた⽅が早いかも、という印象
◦ あるいは、Azure AI SearchのIndexer / Skillsetを使うべきということか? • 「デプロイ」機能は試せてないので、ぜひどなたか使⽤感教えてください © 2024 Algomatic Inc. 29
まとめ • Azure上には、RAGを実現するにあたって有⽤なツールが揃っていてありがたい ◦ AOAI ◦ AI Search ◦ Prompt
Flow • PromptFlowとAI Searchを使うことで、Azure Poral上でRAGの構築、評価、精度向上が全て ⾏える ◦ ほぼノーコードでいけるのでは • 「とりあえず動かす」ことが難しいのが難点(個⼈の感想です) ◦ みなさまの解説記事に助けられています。ありがとうございます。 © 2024 Algomatic Inc. 30