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
1.2k
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
8
4.7k
RAGをテーマに考える、LLMの認知アーキテクチャとソフトウェア設計
tkikuchi1002
3
1.1k
生成AIの不確実性と向き合うためのオブジェクト指向設計
tkikuchi1002
3
6.4k
法人向けChatGPTにおける Azure OpenAI Serviceの課題解決の過程と現在
tkikuchi1002
2
1.9k
LLMエンジニアリングを加速させるソフトウェアアーキテクチャ
tkikuchi1002
2
5.1k
WebAPIのバリデーションを、型の力でいい感じにする
tkikuchi1002
0
65
GoとDDDでモバイルオーダープラットフォームを 型安全に作り直した話
tkikuchi1002
0
82
Kotlinのcoroutine、async/awaitと同じでしょ?って思ってたけど意外と洗練されててすごいなぁって思った話をさせてほしい
tkikuchi1002
0
79
使いやすいインターフェースについて考える
tkikuchi1002
0
27
Other Decks in Technology
See All in Technology
なんで、私がAWS Heroに!? 〜社外の広い世界に一歩踏み出そう〜
minorun365
PRO
1
540
独自ツール開発でスタジオ撮影をDX!「VLS(Virtual LED Studio)」 / dx-studio-vls
cyberagentdevelopers
PRO
0
110
【LT】ソフトウェア産業は進化しているのか? -Javaの想い出とともに- #jjug_ccc
takabow
0
150
SwiftSyntaxでUIKitとSwiftUIの使用率を完璧に計測できちゃう件について
ldf_tech
0
160
小規模に始めるデータメッシュとデータガバナンスの実践
kimujun
2
260
LLMアプリをRagasで評価して、Langfuseで可視化しよう!
minorun365
PRO
2
230
AWS re:Inventを徹底的に楽しむためのTips / Tips for thoroughly enjoying AWS re:Invent
yuj1osm
0
180
Figma Dev Modeで進化するデザインとエンジニアリングの協働 / figma-with-engineering
cyberagentdevelopers
PRO
1
340
生成AIの強みと弱みを理解して、生成AIがもたらすパワーをプロダクトの価値へ繋げるために実践したこと / advance-ai-generating
cyberagentdevelopers
PRO
0
120
2024-10-30-reInventStandby_StudyGroup_Intro
shinichirokawano
1
230
30万人が利用するチャットをFirebase Realtime DatabaseからActionCableへ移行する方法
ryosk7
2
300
ガチ勢によるPipeCD運用大全〜滑らかなCI/CDを添えて〜 / ai-pipecd-encyclopedia
cyberagentdevelopers
PRO
2
140
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
280
Why Our Code Smells
bkeepers
PRO
334
57k
Adopting Sorbet at Scale
ufuk
73
9k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
43
6.6k
Unsuck your backbone
ammeep
668
57k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Into the Great Unknown - MozCon
thekraken
31
1.5k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
27
1.9k
Statistics for Hackers
jakevdp
796
220k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
3
360
YesSQL, Process and Tooling at Scale
rocio
167
14k
Six Lessons from altMBA
skipperchong
26
3.4k
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