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
670
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
3
5.1k
法人向けChatGPTにおける Azure OpenAI Serviceの課題解決の過程と現在
tkikuchi1002
1
1.5k
LLMエンジニアリングを加速させるソフトウェアアーキテクチャ
tkikuchi1002
2
4k
WebAPIのバリデーションを、型の力でいい感じにする
tkikuchi1002
0
41
GoとDDDでモバイルオーダープラットフォームを 型安全に作り直した話
tkikuchi1002
0
53
Kotlinのcoroutine、async/awaitと同じでしょ?って思ってたけど意外と洗練されててすごいなぁって思った話をさせてほしい
tkikuchi1002
0
31
使いやすいインターフェースについて考える
tkikuchi1002
0
7
つくってわかるStratum protocol
tkikuchi1002
0
51
Other Decks in Technology
See All in Technology
Cloudflare WorkersがPythonに対応したので試してみた
miura55
0
100
家族アルバム みてねにおけるGrafana活用術 / Grafana Meetup Japan Vol.1 LT
isaoshimizu
1
1.1k
障害対応をちょっとずつよくしていくための 演習の作りかた
heleeen
1
1.9k
さらばあのボタンとは言わせない SORACOM LTE-M Button powerd by AWSをまだ使えるようにした(前編?)
miura55
0
110
NewSQL Landscape
oracle4engineer
PRO
2
2.7k
高専で制御を、大学でセンシングを学び、次は脳みそ
satoshirobatofujimoto
0
120
【NW X Security JAWS#3】L3-4:AWS環境のIPv6移行に向けて知っておきたいこと
shotashiratori
1
730
Babylon.js JAPAN活動紹介 (2024/4)
limes2018
1
130
Cloud Service Mesh に触れ合う
phaya72
1
310
エンジニア候補者向け資料2024.04.24.pdf
macloud
0
3.4k
コードファーストの考え方。 Amplify Gen2から学ぶAWS次世代のWeb開発体験
yoshiitaka
2
540
Kaggleで学ぶ系列データのための深層学習モデリング
yu4u
7
1k
Featured
See All Featured
Happy Clients
brianwarren
92
6.4k
Building Effective Engineering Teams - LeadDev
addyosmani
32
1.9k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
66
14k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
21
1.9k
Large-scale JavaScript Application Architecture
addyosmani
504
110k
Music & Morning Musume
bryan
41
5.6k
Building Flexible Design Systems
yeseniaperezcruz
320
37k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
34
8.9k
Documentation Writing (for coders)
carmenintech
60
4k
Building an army of robots
kneath
300
41k
Infographics Made Easy
chrislema
238
18k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
22
1.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