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
1
630
Prompt Cachingは本当に効果的なのか検証してみた.pdf
https://zenn.dev/eventhorizon/articles/2b37b48365a08f
ttnyt8701
September 05, 2024
Tweet
Share
More Decks by ttnyt8701
See All by ttnyt8701
Amazon Bedrock Custom model importを試してみる
ttnyt8701
2
43
Other Decks in Programming
See All in Programming
Ruby on cygwin 2025-02
fd0
0
140
Formの複雑さに立ち向かう
bmthd
1
850
Kubernetes History Inspector(KHI)を触ってみた
bells17
0
230
バックエンドのためのアプリ内課金入門 (サブスク編)
qnighy
8
1.8k
チームリードになって変わったこと
isaka1022
0
200
Spring gRPC について / About Spring gRPC
mackey0225
0
220
Amazon Q Developer Proで効率化するAPI開発入門
seike460
PRO
0
110
Software Architecture
hschwentner
6
2.1k
Amazon S3 TablesとAmazon S3 Metadataを触ってみた / 20250201-jawsug-tochigi-s3tables-s3metadata
kasacchiful
0
160
Conform を推す - Advocating for Conform
mizoguchicoji
3
690
PHPのバージョンアップ時にも役立ったAST
matsuo_atsushi
0
110
楽しく向き合う例外対応
okutsu
0
110
Featured
See All Featured
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.4k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
The Pragmatic Product Professional
lauravandoore
32
6.4k
We Have a Design System, Now What?
morganepeng
51
7.4k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Code Reviewing Like a Champion
maltzj
521
39k
Being A Developer After 40
akosma
89
590k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
GraphQLとの向き合い方2022年版
quramy
44
13k
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