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
Prompt Cachingは本当に効果的なのか検証してみた.pdf
Search
ttnyt8701
September 05, 2024
Programming
0
560
Prompt Cachingは本当に効果的なのか検証してみた.pdf
https://zenn.dev/eventhorizon/articles/2b37b48365a08f
ttnyt8701
September 05, 2024
Tweet
Share
Other Decks in Programming
See All in Programming
2024-10-02 dev2next - Application Observability like you've never heard before
jonatan_ivanov
0
140
5年分のツケを一気に払った話
soogie
3
1.1k
Cloud Adoption Frameworkにみる組織とクラウド導入戦略(縮小版)
tomokusaba
1
150
Cancel Next.js Page Navigation: Full Throttle
ypresto
1
110
XP2024 っていう国際会議に行ってきたよの記 / XP2024 Conference Report
bonotake
4
150
ファーストペンギンBot @Qiita Hackathon 2024 予選
dyson_web
0
210
Subclassing, Composition, Python, and You
hynek
3
100
"noncopyable types" の使いどころについて考えてみた
andpad
0
130
DjangoNinjaで高速なAPI開発を実現する
masaya00
0
420
推しの夫に恋のGPS「ときメーター」#M5Stack #IoT #M5JPTour2024
riyu
0
220
複数プロダクトの技術改善・クラウド移行に向き合うチームのフレキシブルなペア・モブプログラミングの実践 / Flexible Pair Programming And Mob Programming
honyanya
0
130
◯◯エンジニアになった理由
gessy0129
PRO
0
590
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
786
250k
Statistics for Hackers
jakevdp
796
220k
Fireside Chat
paigeccino
32
2.9k
Building Better People: How to give real-time feedback that sticks.
wjessup
360
19k
Art, The Web, and Tiny UX
lynnandtonic
295
20k
What's in a price? How to price your products and services
michaelherold
243
11k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Side Projects
sachag
452
42k
The Art of Programming - Codeland 2020
erikaheidi
50
13k
Documentation Writing (for coders)
carmenintech
65
4.3k
The Power of CSS Pseudo Elements
geoffreycrofte
71
5.3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
26
1.9k
Transcript
Prompt Cachingは本当に効果的なのか検証し てみた 2024.09.05
自己紹介 WEB系エンジニア - Go言語 - Google Cloud X: @egtayu
目次 - Prompt Cacingとは? - 基本的な使い方 - 料金 - 仕様
- 検証してみた - まとめ
Prompt Cachingとは? 2024.8.15 Anthropic APIに「Prompt Caching」機能が追加 コンテキストをキャッシュできるようになった コストを最大90%、応答遅延を最大85%削減(※ドキュメントより)
サポートモデル ※パブリックベータ版 Claude 3.5 Sonnet Claude 3 Haiku Claude 3 Opus
基本的な使い方 cache_controlブロックを追加する。 パラメータ先頭からcache_controlブロックまで キャッシュされる。 👆 キャッシュから読み込むとコストと応答 速度が改善される!
料金 キャッシュ書き込み:入力トークンの 125% キャッシュ読み込み: 入力トークンの10% 出力トークンは通常通り 👉 入力トークンに対するコストが改善される
仕様 - 最小トークン数 - キャッシュできるパラメータ - ブレークポイント - キャッシュの有効期限
仕様 最小トークン数 最小トークン数を超えないとキャッシュさ れません。
仕様 キャッシュできるパラメータ tools system messages 上記順番でキャッシュを参照
仕様 ブレークポイント cache_controlブロックは4つまで 4つを超えるとエラーになります🤦
仕様 キャッシュの有効期限 現在はephemeralパラメータのみがサポートされており、キャッシュの有効期限 は5分です。 キャッシュにアクセスが無いまま5分経過した場合に削除されます。 ※キャッシュにアクセスがあった場合、期限は更新されます。 将来的には、長時間の有効期限に対応する可能性があるかもしれません。
検証してみた - 応答遅延削減の検証 キャッシュの有無による応答速度を比較 - コスト削減効果の検証 キャッシュの有無によるトークンのコスト削減効果を検証
キャッシュの有無による応答速度を比較 - 使用するモデルは Claude 3 Haiku - システムプロンプトに187,336トークンの小説を入力し、小説のタイトルを答 えさせる ※Context
windowの最大値は200,000トークン 応答遅延削減の検証
応答遅延削減の検証
応答遅延削減の検証
応答遅延削減の検証 応答速度の有意差は確認できず、、、🤦 - Claude 3 Haikuは応答速度がmodelの中で一番速いため、キャッシュによる 差が顕著に現れなかった可能性 - 質問内容が本文全体を参照するようなケースでは、結果が異なった可能性
コスト削減効果の検証 キャッシュの有無によるトークンのコスト削減効果を検証 - 使用するモデルは Claude 3 Haiku - 5000トークンのシステムプロンプトを伴うマルチターンの会話で、トークン数を 追跡
- トークン数を料金比に直して、キャッシュの有無で何%コストを削減できるか検 証
コスト削減効果の検証
コスト削減効果の検証 キャッシュありの結果を料金表に基づき、入力トークンを基準にキャッシュ書き込みを1.25倍、 キャッシュ読み込みを0.1倍としてトークン数を料金比で計算
コスト削減効果の検証 入力トークンのコストを基準にしたトークン数で比較してコスト削減率を算出
コスト削減効果の検証
コスト削減効果の検証 1ターン目にはコストが増加するが、2ターン目以降はコスト削減が見られ、10ター ン目には77%のコストが削減された。 ターンが進むにつれてコスト削減効果は向上し、最終的には90%近いコスト削減に 達することが予測できる。
まとめ 応答遅延の削減 Claude 3 Haikuにおいて、応答速度の向上に関して有意な差は確認でき なかった コスト削減 入力トークンに対して、大幅なコスト削減効果が確認できた
まとめ 以下のようなケースでPrompt Cacingの効果を実感できることが期待でき ます。 1. 長文コンテンツの参照:ドキュメント、書籍や論文の内容をプロンプト に埋め込んでの参照 2. 会話エージェント: 詳細な指示セット、長時間の会話やツール使用で
の反復的なAPI呼び出しによるトークンコストを削減 3. コーディングアシスタント: 長いコードスニペットでのQ&A …etc
最後に 本スライドの内容をより詳しく記事にまとめました。 他のモデルでの検証なども更新予定です。 https://zenn.dev/eventhorizon/articles/2b37b48365a08f
参考 https://www.anthropic.com/news/prompt-caching https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching https://github.com/anthropics/anthropic-cookbook/blob/main/misc/prompt_caching. ipynb