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
第137回 雲勉 Google Cloud Vertex AIとLangGraphを味方につけ...
Search
iret.kumoben
June 20, 2024
Technology
0
190
第137回 雲勉 Google Cloud Vertex AIとLangGraphを味方につけてRAGを改善したひ
下記、勉強会での資料です。
https://youtu.be/a2Kr7SMtFxs
iret.kumoben
June 20, 2024
Tweet
Share
More Decks by iret.kumoben
See All by iret.kumoben
第148回 雲勉 Web アプリケーションセキュリティ
iret
0
26
第147回 雲勉 Amazon CloudWatchをウォッチ!
iret
0
47
第146回 雲勉 BLEAを眺めてCDKの書き方について学ぶ
iret
1
50
第145回 雲勉 Amazon ECSでサービス間通信する方法を調べてみよう
iret
0
47
第144回 雲勉 Amazon Aurora Serverless v2の基礎とアーキの裏側を覗いてみる
iret
0
94
第143回 雲勉 [New Relic]インフラストラクチャ監視と気をつけたいポイント
iret
0
44
第142回 雲勉 AWS Backupの復元テストで自動化できること・できないこと
iret
0
100
第141回 雲勉 Amazon Inspectorによる脆弱性管理~ECR コンテナイメージ編~
iret
0
290
第2回 雲勉LT大会 パブリッククラウドのサーバレスサービスの違いを調べてみた
iret
0
26
Other Decks in Technology
See All in Technology
あの日俺達が夢見たサーバレスアーキテクチャ/the-serverless-architecture-we-dreamed-of
tomoki10
0
430
PHPからGoへのマイグレーション for DMMアフィリエイト
yabakokobayashi
1
160
AI時代のデータセンターネットワーク
lycorptech_jp
PRO
1
280
サイボウズフロントエンドエキスパートチームについて / FrontendExpert Team
cybozuinsideout
PRO
5
38k
新機能VPCリソースエンドポイント機能検証から得られた考察
duelist2020jp
0
210
第3回Snowflake女子会_LT登壇資料(合成データ)_Taro_CCCMK
tarotaro0129
0
180
オプトインカメラ:UWB測位を応用したオプトイン型のカメラ計測
matthewlujp
0
170
.NET 9 のパフォーマンス改善
nenonaninu
0
730
Wvlet: A New Flow-Style Query Language For Functional Data Modeling and Interactive Data Analysis - Trino Summit 2024
xerial
1
110
生成AIのガバナンスの全体像と現実解
fnifni
1
180
サービスでLLMを採用したばっかりに振り回され続けたこの一年のあれやこれや
segavvy
2
390
TSKaigi 2024 の登壇から広がったコミュニティ活動について
tsukuha
0
160
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Designing for humans not robots
tammielis
250
25k
A Philosophy of Restraint
colly
203
16k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
29
2k
Optimising Largest Contentful Paint
csswizardry
33
3k
Being A Developer After 40
akosma
87
590k
BBQ
matthewcrist
85
9.4k
Gamification - CAS2011
davidbonilla
80
5.1k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
A designer walks into a library…
pauljervisheath
204
24k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
170
The Language of Interfaces
destraynor
154
24k
Transcript
第137回 雲勉【オンライン】 Google Cloud Vertex AIと LangGraphを味⽅につけて RAGを改善したひ
自己紹介 2 メモ: • クラウドインテグレーション事業部CSMセクション • 長所は、寝たら忘れること。(記憶は消し炭) • Vertex AI、うれしい。たのしい。とてもしゅき。
小林千紘
アジェンダ 3 • ゴールとか一番伝えたいこととか • 最近のRAG精度改善いろいろ • DIY RAGについて(Vertex AI)
• LangGraphについて • デモ • さいごに
4 ゴールとか一番伝えたいこととか
ゴールとか一番伝えたいこととか 5 伝えたいこと...? え?RAGの精度改善とかむずくない?
ゴールとか一番伝えたいこととか 6 ゴォーーーール!!! RAGぅ。やっぱつれぇわ。 となっている同志の幸福度を少しでも上げたい という試みです めざせベンサム思考
ゴールとか一番伝えたいこととか 7 というわけで対象者 え?RAGの精度改善とかむずくない? となっている同志 届け。いま届け。
ゴールとか一番伝えたいこととか 8 伝えたいこと、アゲイン RAG改善手法の1つ選択肢を みなさんの短期記憶の中にでも残ればうれしい と、烏滸がましくも思ってます
ゴールとか一番伝えたいこととか 9 …まとめると • ゴール ◦ RAGカスタマイズに悩んでいる同志の幸福度の向上 • 伝えたいこと ◦
RAGをより制御する手法を共有したい ◦ RAG精度改善する方法を共有したい • 対象者 ◦ エンタープライズでのRAG使用を検討している方 ◦ RAG精度改善をはじめるのに悩んでいる方 ◦ 他みんな、全員
ゴールとか一番伝えたいこととか 10 ゴールを共有した上で、各章と全体像 • 最近のRAG精度改善いろいろ ◦ そもそも最近はどんなRAG改善手法があるのか。ざっくり • DIY RAGについて(Vertex
AI) ◦ DIY RAGは、RAG改善・カスタマイズのパーツ部分 • LangGraphについて ◦ LangGraphは、各パーツを素敵に制御できる部分 • デモ ◦ 実際にLangGraphでDIY RAGのパーツを制御してみよう
11 最近のRAG精度改善いろいろ
最近のRAG精度改善いろいろ 12 各章と全体像 • 最近のRAG精度改善いろいろ ◦ そもそも最近はどんなRAG改善手法があるのか。ざっくり • DIY RAGについて(Vertex
AI) ◦ DIY RAGは、RAG改善・カスタマイズのパーツ部分 • LangGraphについて ◦ LangGraphは、各パーツを素敵に制御できる部分 • デモ ◦ 実際にDIY RAGのパーツをLangGraphで制御してみよう いまここ
最近のRAG精度改善いろいろ 13 とりま前提、というやつです 絶賛、黎明期なので改善手法も確立されてません。 これからも、新しい手法がどんどんでてきます。 ぜひご自身の環境にあった方法で! the bestestでウルトラハッピー エンジニアライフですね
最近のRAG精度改善いろいろ 14 一旦見えやすくするために、3つに分類してみました もちろん、完全にどれか。に 切り離せるものではありません • データ • プロンプト •
検索
最近のRAG精度改善いろいろ 15 今はこんなに色々できることがあるみたいですね(歓喜) • データ ◦ クリーニング ▪ なによりも大前提に必要 ◦
構造をチェンジ ▪ QA型のデータにする、など ◦ チャンク設定 ▪ オーバラップ、サイズ、など ◦ メタデータをつける ◦ Embeddingモデルのファインチューニング 次ページにつづく
次ページにつづく 最近のRAG精度改善いろいろ 16 今はこんなに色々できることがあるみたいですね(歓喜) • プロンプト ◦ クエリ拡張 ▪ 分割・要約・似てる語とか、HyDEとか
◦ Few-shot、One-shot ◦ CoT ▪ ステップバイステップで考えてもらう ◦ ToT ◦ 自己整合性 プロンプトエンジニアリングガイドが 最つよってわけ Prompt Engineering Guide https://www.promptingguide.ai/jp
最近のRAG精度改善いろいろ 17 今はこんなに色々できることがあるみたいですね(歓喜) • 検索 ◦ ハイブリッド検索 ▪ いうまでもなく、セマンティック&キーワード ◦
リランク ▪ 処理コストは、通常検索より上がるため絞ってランクづけ ◦ 検索アルゴリズムの変更 ▪ Faissとかライブラリで実装してみるとか …など、無限大卍 リランクは、デモでやります
最近のRAG精度改善いろいろ 18 個人的に思う、おすすめ最初の進め方 データ -> プロンプト -> 検索 それってあなたの感想ですよね ローグライクゲームだと思って
楽しむのが一番
最近のRAG精度改善いろいろ 19 シメる ご自身の環境にあった手法で試してみてください!
20 DIY RAGについて(Vertex AI)
DIY RAGについて(Vertex AI) 21 各章と全体像 • 最近のRAG精度改善いろいろ ◦ そもそも最近はどんなRAG改善手法があるのか。ざっくり •
DIY RAGについて(Vertex AI) ◦ DIY RAGは、RAG改善・カスタマイズのパーツ部分 • LangGraphについて ◦ LangGraphは、各パーツを素敵に制御できる部分 • デモ ◦ 実際にDIY RAGのパーツをLangGraphで制御してみよう いまここ
DIY RAGについて(Vertex AI) 22 ちょっとまった、DIY RAGってなにさ? Vertex AI Searchを各部品にしたもの のイメージ
DIY RAGについて(Vertex AI) 23 Oops、Next’24でこんなお話しがありました(言いたいマン) この図はいつ見ても興奮しますね
DIY RAGについて(Vertex AI) 24 DIY RAG(RAG Pipeline)をがっとまとめてみた コンポーネント名 できることをひとことで 改善の影響範囲だなあポイント
Document Processing API 前処理 テキスト抽出・チャンク改善 Vertex Text Embeddings ベクトル変換 ベクトル品質改善 Vector Search ベクトル検索 ベクトル検索品質改善 Ranking API ランクづけ 検索品質改善 Grounded Generation API RAG生成部分の根幹? プロンプト・データなどを好き放題できる? Check Grounding API グラウンディングスコア ハルシネーション軽減(出力制御・ReAct制御) ※現時点でプレビューが多いので、使用の際は自身でご確認ください ※Grounded Generation APIは、プライベートプレビューのため公式ドキュメントを元に推測で書いてます
DIY RAGについて(Vertex AI) 25 Document Processing API • ドキュメント前処理をするよ!というサービス •
機能のうち、Layout ParserがRAGするときとても鬼便利 • 他にも通常の業務効率化に便利な機能がもりもり ◦ Form パーサーで、申込書などをkey-valueに変換したり ◦ 請求書パーサーで、請求書をkey-value変換、かつ請求書によくある項目を正規化す る https://cloud.google.com/document-ai/docs/extracting-overview
• レイアウト階層を考慮して解析・チャンク化してくれる • レイアウトとは、 ◦ ブロック、表のコンテンツ ◦ タイトル、見出し ◦ …など
• チャンク化!までしてくれる!(優勝) • 対応ファイル形式は、HTML・PDF DIY RAGについて(Vertex AI) 26 https://cloud.google.com/document-ai/docs/layout-parse-chunk 解析からチャンクまで、 1つのAPIでささっとやってくれる これが、とてもうれしい。 なんてものじゃない虜。 トリコロール Layout Parserができること
DIY RAGについて(Vertex AI) 27 Vertex Text Embeddings • ベクトル作るよ!というサービス •
マルチモーダル対応(not テキストおんりー) • geckoモデルが使える ◦ 非公開モデル。このAPI経由でのみ使用可能? ◦ 768次元。テキストのみ対応。日本語OK。 • ファインチューニングもできる(現在、geckoモデルおんりー) ◦ 教師あり。ラベル付きの学習用データセットが必要 • チャンク処理は、別途行う必要あり(自由にカスタマイズできるということ!) https://cloud.google.com/vertex-ai/generative-ai/docs/embeddings/get-text-embeddings デモで使います
DIY RAGについて(Vertex AI) 28 Vector Search • インデックス作って簡単に検索できるよ!というサービス • 現在、ベクトル保管はGCSのみ
• Google検索のScaNNアルゴリズム使用。検索速度めちゃはや • ベクトルのフィルタリング機能あり! • 距離計算のアルゴリズムいろいろ ◦ ユークリッド距離、マンハッタン距離など • スパースエンベディング・ハイブリッド検索もサポート(現在プレビュー) https://cloud.google.com/vertex-ai/docs/vector-search/overview デモで使います
DIY RAGについて(Vertex AI) 29 Ranking API • ランクづけするよ!というサービス • クエリとデータを渡すだけで、ランクづけしてくれる
◦ なんと、インデックス不要 ◦ なんと、Vertex AI Searchでデータストアの作成不要 https://cloud.google.com/generative-ai-app-builder/docs/ranking デモで使います
DIY RAGについて(Vertex AI) 30 Grounded Generation API • クエリに対してグラウンディングした回答を生成してくれる •
純粋に回答生成部分を担っているイメージ ◦ モデルとかクエリとかデータソースとかリクエストに指定するらしい ◦ 材料を自分で選べる。で、混ぜて料理するのがこのAPIのイメージ • 複数のデータソースからグラウンディングしてくれる ◦ Google検索、Vertex AI Search データストア、渡したテキスト ◦ 引用元もくっつけてくれる • マルチターンOK https://cloud.google.com/generative-ai-app-builder/docs/grounded-gen 現在、プライベートプレビューのため 、実際に触っていません。 公式ドキュメントからの推測です! パブリックプレビュー... まってます...(小声)
DIY RAGについて(Vertex AI) 31 Check Grounding API • グラウンディング具合を確認するよ •
レイテンシ鬼はや(500 ミリ秒未満) • 任意のメタデータをくっつけられる。 • 回答生成後、グラウンディング具合をチェックしてNGなら再推論という使い方とか ◦ よって、ReActとも相性がいい ◦ 単純に、レスポンス直前に弾くことにも使用可能 ◦ エンタープライズ利用に特におすすめな気持ち https://cloud.google.com/generative-ai-app-builder/docs/check-grounding デモで使います
DIY RAGについて(Vertex AI) 32 Vertex AI DIY RAGをまとめる • DIY
RAGとは、Vertex AI Searchを各部品にしたもの • エンタープライズはもちろん素早く試してみたい時にも便 利 • Google検索などで使用されているつよ機能・つよモデルを 手軽に使える
33 LangGraphについて
LangGraphについて 34 各章と全体像 • 最近のRAG精度改善いろいろ ◦ そもそも最近はどんなRAG改善手法があるのか。ざっくり • DIY RAGについて(Vertex
AI) ◦ DIY RAGは、RAG改善・カスタマイズのパーツ部分 • LangGraphについて ◦ LangGraphは、各パーツを素敵に制御できる部分 • デモ ◦ 実際にDIY RAGのパーツをLangGraphで制御してみよう いまここ
LangGraphについて 35 まちたまえ、LangGraphってなんだね? LangChain Agentsのいとこ。みたいなもの
LangGraphについて 36 …気を取り直して、LangGraphってなんだね? LangChain Agentsをより制御できるようにしたもの!
LangGraphについて 37 ん?そもそも、LangChain Agentsの動きは、どうだってばよ? ほぼ全ての意思決定と推論をLLMで行なってくれる 最高にクールなReAct手法!
LangGraphについて 38 最高にクールなLangChain Agentsを利用する上で困ってるポイントは何か? • 必ず叩いてほしいAPIあるんだけど...Agentsの外側で制御しないといけない... • トランザクションを確定する前に、ユーザの最終確認を得てから実行してほしい • そもそも、重要なAPIを呼び出すのに全てをAgentsに任せるのは怖い
• グラウンディングチェックがNGなら、もう一度推論しなおしてほしい 主にエンタープライズで使用する際に 全てをLLMに任せるのは、まだ不安がありすぎる問題 …など
LangGraphについて 39 そう、そんな願いを叶えるヒーローが LangGraphくん! ってわけですね
LangGraphについて 40 そして、フロー制御ができるってことは LangGraphくんは、RAGの精度改善にもうってつけ! うおおおおおおおお
LangGraphについて 41 • いわゆるDAGを実装できるもの(Airflowと同じ考え方) ◦ 循環実装がしやすい(通常のプログラミングだとややこしくなりがち…) ◦ 複雑なフロー制御がとても得意 • ステート管理がらくちん便利
• LangChainと親和性たかし LangGraphくんの特にすきポイント LangGraph公式 https://langchain-ai.github.io/langgraph/ …など
LangGraphについて 42 公式サイトの図が超絶ウルトラわかりやすいので貼る 引用元:https://langchain-ai.github.io/langgraph/tutorials/rag/langgraph_adaptive_rag/ デモでは、擬似的なこれやります
LangGraphについて 43 LangGraphをふりかえる • LangGraphは、Agentsをより制御できるようにしたもの ! • RAGのエンタープライズ利用に特におすすめ! • RAGの精度改善、カスタマイズにうってつけ!
44 デモ
デモ 45 各章と全体像 • 最近のRAG精度改善いろいろ ◦ そもそも最近はどんなRAG改善手法があるのか。ざっくり • DIY RAGについて(Vertex
AI) ◦ DIY RAGは、RAG改善・カスタマイズのパーツ部分 • LangGraphについて ◦ LangGraphは、各パーツを素敵に制御できる部分 • デモ ◦ 実際にDIY RAGのパーツをLangGraphで制御してみよう いまここ
デモ 46 早速ですが、ふたたびのやりたいことの図 引用元:https://langchain-ai.github.io/langgraph/tutorials/rag/langgraph_adaptive_rag/ デモでは、擬似的なこれやります
デモ 47 デモの機能とポイント • 機能 ◦ RAGを使用した回答生成 ▪ RAG精度改善(リランク・グラウンディングチェック) ▪
ハルシネーションし続ける場合は、その旨定型文で回答させる ◦ APIを使用したトランザクション処理 ▪ 本登録前にユーザの承認ステップを挟む ◦ 上記以外の質問については、明示的に弾く なんと、これらの機能を 一つのLangGraphで実装できちゃう! API部分は、ハリボテ実装 次ページにつづく
デモ 48 デモの機能とポイント • モデル部分 ◦ クエリ解析用モデルと生成用モデルの2つのモデルで処理する ▪ クエリ解析用モデルは、ユーザクエリのルーティングに使用 ▪
生成用モデルは、RAGに使用 ◦ ちなみに...モデル分離する背景は ▪ LangChainのVertex AI classでは、スキーマ型で出力できないため(GPT使用) ▪ デモの実装内容であれば、基本的にモデル分離はせずともOK! なんと、これらの機能を 一つのLangGraphで実装できちゃう! LangChainに出力整形Kitがあるので、 ぜひ、実装してみてください!
デモ 49 デモの処理の流れ
デモ 50 • 実行環境 ◦ Colab Enterprise ▪ ランタイムはデフォルト ◦
Python 3.10.12 • 主要ライブラリバージョン ライブラリ名 バージョン langgraph 0.0.64 langchain 0.2.2 langchain-google-vertexai 1.0.5 langchain-openai 0.1.8 google-cloud-discoveryengine 0.11.13
デモ 51 デモする いざ、NotebookへGo
デモ 52 デモまとめ • ささささっとコードを書くだけでRAG一式簡単にできる • DIY RAGという名の通りRAG機能をほぼAPIだけでできる • LangGraphで複雑なフロー、状態管理もやってくれる
53 さいごに
さいごに 54 まとめよう! • 最近のRAG精度改善いろいろ ◦ 手法は無限大にでてきます!ご自身の環境と相談!RAGもおっきく無限大! ◦ ゼロから進める時は、「データ ->
プロンプト -> 検索」順が個人的におすすめ • DIY RAGについて(Vertex AI) ◦ Vertex AI Searchを各部品にしたもの ◦ RAG機能をほぼAPIだけで処理できる ◦ しかも、Google検索などで使用されているつよ機能・つよモデルを手軽に使える • LangGraphについて ◦ LangChain Agentsをより制御できるようにしたもの ◦ 複雑なフロー、状態管理も簡単にできる
さいごに 55 さいごにのさいごに Let's エンジョイ RAG ライフ! いかがだったでしょうか? ぐぬぬ、RAGカスタマイズ...となっている同志にすこしでもパワーを与えられていたら... 幸甚の極み爆発です。
さいごに 56 ご視聴いただき、ありがとうございました!