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
Deep Dive into Momento with LangChain
Search
Kazuki Maeda
June 22, 2023
Technology
1
360
Deep Dive into Momento with LangChain
もめんと Meet-up in June #2
Kazuki Maeda
June 22, 2023
Tweet
Share
More Decks by Kazuki Maeda
See All by Kazuki Maeda
モノリスの認知負荷に立ち向かう、コードの所有者という思想と現実
kzkmaeda
0
110
エンジニアリング価値を黒字化する バリューベース戦略を用いた 技術戦略策定の道のり
kzkmaeda
9
4.6k
現場の種を事業の芽にする - エンジニア主導のイノベーションを事業戦略に装着する方法 -
kzkmaeda
2
3.6k
生成AIを用いた 新しい学びの体験を 提供するまでの道のり
kzkmaeda
0
240
生成AIによって変わる世界 -可能性とリスクについて考える-
kzkmaeda
2
250
新しいことを組織ではじめる、そしてつづける
kzkmaeda
5
900
20240824_JAWS_PANKRATION_2024
kzkmaeda
0
81
20240416_devopsdaystokyo
kzkmaeda
1
470
20240321_生成AI時代のDevOps
kzkmaeda
2
1.1k
Other Decks in Technology
See All in Technology
パスキー導入の課題と ベストプラクティス、今後の展望
ritou
7
1.2k
銀行でDevOpsを進める理由と実践例 / 20250317 Masaki Iwama
shift_evolve
1
100
OPENLOGI Company Profile for engineer
hr01
1
22k
AI・LLM事業部のSREとタスクの自動運転
shinyorke
PRO
0
300
日本MySQLユーザ会ができるまで / making MyNA
tmtms
1
350
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
20k
移行できそうでやりきれなかった 10年超えのシステムを葬るための戦略 / phper-kaigi-2025-ryu
carta_engineering
0
680
3/26 クラウド食堂LT #2 GenU案件を通して学んだ教訓 登壇資料
ymae
1
200
17年のQA経験が導いたスクラムマスターへの道 / 17 Years in QA to Scrum Master
toma_sm
0
380
製造業の会計システムをDDDで開発した話
caddi_eng
3
930
Tirez profit de Messenger pour améliorer votre architecture
tucksaun
1
130
BCMathを高速化した一部始終をC言語でガチ目に解説する / BCMath performance improvement explanation
sakitakamachi
2
1.2k
Featured
See All Featured
Designing for humans not robots
tammielis
250
25k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.8k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
11
610
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
31
4.7k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.3k
Agile that works and the tools we love
rasmusluckow
328
21k
Documentation Writing (for coders)
carmenintech
69
4.7k
Typedesign – Prime Four
hannesfritz
41
2.6k
Code Review Best Practice
trishagee
67
18k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
490
A Philosophy of Restraint
colly
203
16k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.5k
Transcript
Deep Dive into Momento with LangChain もめんと Meet-up in June
#2 kzk_maeda
Kazuki Maeda @kzk_maeda SRE @atama plus AWS Community Builders AWS
Startup Community Core Member 7+ years of experience of AWS Like: Lambda / Step Functions / Glue / MWAA / Athena 最近はGoogle CloudとLLM系を勉強中 自己紹介
agenda Momento with LangChainを触ってみる Momento with LangChainのコードを追ってみる 今後の期待
agenda Momento with LangChainを触ってみる Momento with LangChainのコードを追ってみる 今後の期待
Momento Cacheとは • Serverless Cache Service • Web上でセットアップして、SDKを埋め込むだけで クラスターセットアップなど不要で利用開始できる •
キャパシティの管理、プロビジョニング、パフォーマンスモニタリングなど オペレーション業務からの解放
LangChainとは • LLM(大規模言語モデル)を利用したアプリケーション開発に利用できる ライブラリ • 各種LLM APIの抽象化、独自データのLoader、ツール群の組み合わせなどの 様々な機能が提供されている • バージョンアップ頻度が異常
なぜLangChainとMomento? https://twitter.com/LangChainAI/status/1662138670332395520?s=20
なぜLangChainとMomento? https://python.langchain.com/docs/ecosystem/integrations/momento
なぜLangChainとMomento? https://www.gomomento.com/blog/momento-is-now-fully-integrated-into-the-langchain-ecosystem
LangChainでMomentoが使える場所 • LLM Cache • Conversation Memory
LLM Cache 通常LangChainでは、都度OpenAIなどのLLMサービスとやりとりをしますが
LLM Cache Cacheが効いていると、InterceptしてCacheからResponseを返します
LLM Cache 実装 数行のコードで実装可能
LLM Cache クエリ時間比較 同一のPromptであれば実行時間を90%以上低減
LLM Cache Token消費量比較 CacheがAnswerを返すのでOpenAIのToken消費量は0
LLM Cache 時間もコストも削減が見込める!!
Conversation Memory 通常、LangChainからLLMへのRequestは状態を持たないので独立実行 →以前の会話内容をLangChainは記憶しない
Conversation Memory ConversationChainのMemoryとしてMomentoを活用し、会話の流れを作れる
Conversation Memory 実装 こちらもシンプルなコードで実装可能
agenda Momento with LangChainを触ってみる Momento with LangChainのコードを追ってみる 今後の期待
注 ここからLangChainのコードを眺めていきますが、 冒頭で紹介したように、LangChainの更新頻度は異常です。 以降のコードは version 0.0.207 のものとなっております。 また、説明の都合でコードの一部のみ抜粋して表示します。
LLM Cache 中で何が行われているのか追ってみましょう
LLM Cache llm_cache が有効であるとcacheに問い合わせる機構が LLMの基底クラスに定義されている
LLM Cache PromptとLLMのparameterをhash化して str castしたtextをKeyにして、Momentoに格納
LLM Cache こんな感じでCacheが衝突しないようになっている
Conversation Memory 中で何か行われているのか追ってみましょう
Conversation Memory ConversationChainの中でmemoryをセットできる
Conversation Memory デフォルトで message_store: 文字列をprefixに付与して session_id を追加したtextをKeyにしている
Conversation Memory plain textをKeyのprefixに追加することで、 CacheのKey(hash化された文字列)との衝突を 抑制している??という推測(中の人教えてください)
ここまで追ってみて • ライブラリを利用する側はシンプルに使えるようにいろんな処理が抽象化されてい る一方、実装側では衝突を防ぐための仕組みが入っていたりと工夫されていること がわかった • 実際にデバッグしてCache Keyを特定してコンソールから確認することができ、楽し かった
agenda Momento with LangChainを触ってみる Momento with LangChainのコードを追ってみる 今後の期待
今後の期待 • Cache機構の拡大 ◦ (LangChainの対応が必要かもしれませんが) Embeddingの生成など、他にもTokenを利用し、時 間がかかる処理があるので、そこでも Cacheが効かせられると嬉しいなと思った • Vector
Storeとしての利用 ◦ 時限式で消えるVector Storeという用途がLLMアプリケーションの中ではそこそこ求められるケース がありそう ◦ Vector Storeが消えていたら新規に Embedding生成してStoreすることでデータ鮮度を高く保つとか ◦ Momentoでそれが実現できると管理が楽で嬉しいなと思った
今後の期待 • 特にVector Storeとして使えると、こういう仕組みを作る時に使い勝手が 非常にいい(気がします)
Thank you