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.8k
RAGをテーマに考える、LLMの認知アーキテクチャとソフトウェア設計
tkikuchi1002
3
1.1k
生成AIの不確実性と向き合うためのオブジェクト指向設計
tkikuchi1002
3
6.5k
法人向けChatGPTにおける Azure OpenAI Serviceの課題解決の過程と現在
tkikuchi1002
2
1.9k
LLMエンジニアリングを加速させるソフトウェアアーキテクチャ
tkikuchi1002
2
5.2k
WebAPIのバリデーションを、型の力でいい感じにする
tkikuchi1002
0
68
GoとDDDでモバイルオーダープラットフォームを 型安全に作り直した話
tkikuchi1002
0
83
Kotlinのcoroutine、async/awaitと同じでしょ?って思ってたけど意外と洗練されててすごいなぁって思った話をさせてほしい
tkikuchi1002
0
89
使いやすいインターフェースについて考える
tkikuchi1002
0
28
Other Decks in Technology
See All in Technology
CysharpのOSS群から見るModern C#の現在地
neuecc
2
3.4k
Adopting Jetpack Compose in Your Existing Project - GDG DevFest Bangkok 2024
akexorcist
0
110
Terraform CI/CD パイプラインにおける AWS CodeCommit の代替手段
hiyanger
1
240
Can We Measure Developer Productivity?
ewolff
1
150
iOS/Androidで同じUI体験をネ イティブで作成する際に気をつ けたい落とし穴
fumiyasac0921
1
110
SRE×AIOpsを始めよう!GuardDutyによるお手軽脅威検出
amixedcolor
0
130
Lexical Analysis
shigashiyama
1
150
強いチームと開発生産性
onk
PRO
35
11k
iOSチームとAndroidチームでブランチ運用が違ったので整理してます
sansantech
PRO
0
140
エンジニア人生の拡張性を高める 「探索型キャリア設計」の提案
tenshoku_draft
1
130
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
680
飲食店データの分析事例とそれを支えるデータ基盤
kimujun
0
110
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
10 Git Anti Patterns You Should be Aware of
lemiorhan
655
59k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
16
2.1k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
370
Gamification - CAS2011
davidbonilla
80
5k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
How to Ace a Technical Interview
jacobian
276
23k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
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