「LLMのAPI代、高すぎない?」
Claude Opus 4.6をエージェントに組み込んで業務を回し始めた瞬間、毎月のAPI請求書を見て血の気が引いた経験はありませんか。入力100万Tokenあたり$5.00、出力に至っては$25.00。Claude Codeのようなエージェントをガンガン回していると、一晩で数万円が消えていくのは日常茶飯事です。
そんな中、DeepSeekが2026年4月にリリースしたDeepSeek V4シリーズの価格設定が、控えめに言って狂っています。入力100万Tokenあたり**$0.14**。Claude Opus 4.6の約36分の1です。しかも「キャッシュヒット」を活用すると、さらにそこから50分の1の$0.0028まで下がる。Claude Opusの入力単価と比べると、1786分の1。もはやバグです。
この記事では、DeepSeek V4の具体的な料金体系を主要モデルと横並びで比較し、さらに「キャッシュヒット」の仕組みと、実際にキャッシュを命中させるためのテクニックまで、一気に解説します。
DeepSeek V4シリーズの料金体系
まずは公式の料金表を整理します。価格はすべて**100万Tokenあたり(USD)**です。
| モデル | 入力(キャッシュミス) | 入力(キャッシュヒット) | 出力(思考Token含む) |
|---|---|---|---|
| DeepSeek V4 Flash | $0.14 | $0.0028 | $0.28 |
| DeepSeek V4 Pro(75%OFF中) | $0.435 | $0.003625 | $0.87 |
V4 Proの75%割引は2026年5月31日 15:59 UTCまで延長されています。割引前の定価は入力$1.74、出力$3.48です。
また、旧モデル名 deepseek-chat と deepseek-reasoner は今後廃止予定で、現在はそれぞれ deepseek-v4-flash の非思考モードと思考モードに対応しています。
両モデルともコンテキスト長100万Token、最大出力38.4万Tokenをサポート。思考(Chain-of-Thought)トークンは reasoning_content フィールドで返され、出力トークンと同じレートで課金されます。
主要モデルとの価格比較:どれだけ安いのか
言葉で「安い」と言っても実感が湧きにくいので、2026年5月時点の主要モデルと横並びで比較してみましょう。
| モデル | 入力 | 出力 | キャッシュヒット時の入力 | コンテキスト長 |
|---|---|---|---|---|
| DeepSeek V4 Flash | $0.14 | $0.28 | $0.0028 | 1M |
| DeepSeek V4 Pro(75%OFF) | $0.435 | $0.87 | $0.003625 | 1M |
| Gemini 2.5 Flash | $0.30 | $2.50 | — | 1M |
| Gemini 2.5 Pro | $1.25 | $10.00 | — | 1M |
| GPT-4o | $2.50 | $10.00 | $1.25 | 128K |
| Claude Sonnet 4.6 | $3.00 | $15.00 | — | 1M |
| Claude Opus 4.6 | $5.00 | $25.00 | — | 1M |
この表を眺めると、いくつかのことが浮き彫りになります。
入力コスト:Claude Opusの36倍安い
DeepSeek V4 Flashの入力$0.14は、Claude Opus 4.6の$5.00と比べて約36倍安い。GPT-4oの$2.50と比べても約18倍安い。同じFlashクラスのGemini 2.5 Flashの$0.30と比べても半額以下です。
出力コスト:桁が違う
出力はさらに差が開きます。V4 Flashの$0.28に対して、Claude Opus 4.6は$25.00(約89倍)、GPT-4oは$10.00(約36倍)。Claude Codeのようなエージェントで大量の出力を生成するユースケースでは、この差はもはや致命的です。
キャッシュヒット時:もはや誤差レベル
そしてキャッシュヒット時の$0.0028。これはClaude Opus 4.6の通常入力$5.00と比べると約1786倍安いという、もはや比較する意味があるのか疑問になるレベルです。GPT-4oの$2.50と比べても約893倍安い。
実際の利用シナリオで計算してみる
たとえば、10万Tokenのシステムプロンプト(社内文書やコードベースの埋め込み)を使って、1日100回のAPIコールをするケースを考えてみましょう。
Claude Opus 4.6の場合:
- 入力コスト:10万Token × 100回 × $5.00/1M = $50.00/日
- 月額(30日):約$1,500
DeepSeek V4 Flash(キャッシュヒット時)の場合:
- 入力コスト:10万Token × 100回 × $0.0028/1M = $0.028/日
- 月額(30日):約$0.84
同じ使い方で、月$1,500 vs 月$0.84。これは誤植ではありません。
「キャッシュヒット」とは何か
ここまで何度も登場した「キャッシュヒット」について、きちんと説明しておきます。
DeepSeekのContext Caching(コンテキストキャッシュ)は、ディスク上にKVキャッシュを保存する技術です。これは全ユーザーにデフォルトで有効化されており、コードの変更は一切不要です。
仕組みはシンプルです:
- あなたがAPIリクエストを送ると、そのリクエストの入力内容がディスクキャッシュに書き込まれる(永続化)
- 次のリクエストで、前回と同じプレフィックス(先頭部分)が含まれている場合、重複部分はキャッシュから読み込まれる
- キャッシュから読み込まれた部分は「キャッシュヒット」として、通常の入力単価の1/50の料金で課金される
つまり、「毎回同じシステムプロンプトや長大な参考文書を送っている」ような使い方をしていると、2回目以降の共通部分は激安で処理されるわけです。
キャッシュの永続化タイミング
DeepSeekのキャッシュは、以下の3つのタイミングで永続化(ディスクへの書き込み)されます。
① リクエスト境界での永続化
各リクエストの完了時に、ユーザー入力の末尾位置とモデル出力の末尾位置の2箇所にキャッシュプレフィックスユニットが作られます。次のリクエストがこのプレフィックスを完全に含んでいれば、キャッシュヒットします。
② 共通プレフィックスの自動検出
システムが複数のリクエスト間で共通のプレフィックスを検出すると、その共通部分を独立したキャッシュユニットとして永続化します。
③ 固定トークン間隔での永続化
非常に長い入力や出力に対して、固定のトークン間隔でキャッシュユニットを区切ります。これにより、末尾まで到達しない長大なプレフィックスでもキャッシュ可能になります。
具体例で理解する
例1:マルチターン会話
// 1回目のリクエスト
messages: [
{"role": "system", "content": "You are a helpful assistant"},
{"role": "user", "content": "中国の首都は?"}
]
// 2回目のリクエスト(1回目の内容を含んでいる → キャッシュヒット!)
messages: [
{"role": "system", "content": "You are a helpful assistant"},
{"role": "user", "content": "中国の首都は?"},
{"role": "assistant", "content": "中国の首都は北京です。"},
{"role": "user", "content": "アメリカの首都は?"}
]
2回目のリクエストは1回目の全内容をプレフィックスとして含んでいるため、1回目の部分が丸ごとキャッシュヒットします。
例2:同じ文書に対する複数の質問
// 1回目:財務レポートの要約を依頼
messages: [
{"role": "system", "content": "あなたは経験豊富な財務アナリストです"},
{"role": "user", "content": "<財務レポート全文>\n\nこのレポートの要点をまとめてください"}
]
// 2回目:同じレポートの収益性を分析(プレフィックスが変わる → キャッシュミス)
messages: [
{"role": "system", "content": "あなたは経験豊富な財務アナリストです"},
{"role": "user", "content": "<財務レポート全文>\n\nこのレポートの収益性を分析してください"}
]
// → システムが共通プレフィックス(system + レポート全文)を検出し、キャッシュユニットとして永続化
// 3回目:同じレポートの収支比率を分析(共通プレフィックスがキャッシュヒット!)
messages: [
{"role": "system", "content": "あなたは経験豊富な財務アナリストです"},
{"role": "user", "content": "<財務レポート全文>\n\nこの会社の収支比率を分析してください"}
]
1回目と2回目は末尾の質問文が異なるためキャッシュミスしますが、システムが共通プレフィックスを自動検出して永続化します。3回目以降は、レポート全文の部分がキャッシュヒットして激安になるわけです。
キャッシュヒット率を最大化するテクニック
キャッシュは自動で有効化されますが、プロンプトの設計次第でヒット率は大きく変わります。以下の実践テクニックを押さえておきましょう。
✅ やるべきこと
1. 静的コンテンツをプロンプトの先頭に配置する
キャッシュは「プレフィックス(先頭からの一致)」で判定されます。変更されないコンテンツ(システムプロンプト、Few-shot例、参考文書)は必ず先頭に配置し、変動する部分(ユーザーの質問)を末尾に置いてください。
[固定] システムプロンプト
[固定] 参考文書・コードベース
[固定] Few-shot例
[変動] ユーザーの今回の質問 ← ここだけ毎回変わる
2. マルチターン会話ではメッセージ履歴をそのまま送る
会話履歴を毎回丸ごとリクエストに含めるのは、キャッシュの観点では実は最適解です。前回までの会話がすべてプレフィックスとしてキャッシュヒットするからです。
3. 同じコンテキストに対して繰り返しリクエストする
同じドキュメントに対して異なる質問を投げるユースケース(RAG、文書分析など)は、DeepSeekのキャッシュと相性抜群です。2回目以降はドキュメント部分がキャッシュヒットします。
❌ やってはいけないこと
1. プレフィックスに動的な情報を混ぜない
// ❌ NG:タイムスタンプが毎回変わるのでキャッシュミスする
{"role": "system", "content": "現在時刻は2026-05-01 20:00です。あなたは..."}
// ✅ OK:タイムスタンプはユーザーメッセージ側に入れる
{"role": "system", "content": "あなたは..."}
{"role": "user", "content": "現在時刻:2026-05-01 20:00\n質問:..."}
2. 毎回微妙にシステムプロンプトを変えない
1文字でもプレフィックスが変わるとキャッシュミスします。システムプロンプトは固定し、変動要素はメッセージの末尾で渡しましょう。
キャッシュヒット状況の確認方法
DeepSeekのAPIレスポンスの usage セクションに、以下の2つのフィールドが含まれています:
{
"usage": {
"prompt_cache_hit_tokens": 8192,
"prompt_cache_miss_tokens": 156,
"prompt_tokens": 8348,
"completion_tokens": 512
}
}
-
prompt_cache_hit_tokens:キャッシュヒットしたトークン数 -
prompt_cache_miss_tokens:キャッシュミスしたトークン数
このフィールドを監視すれば、自分のプロンプト設計がキャッシュに効いているかどうかを定量的に確認できます。
注意点:キャッシュは万能ではない
最後に、いくつかの注意点を正直にまとめておきます。
- 「ベストエフォート」方式:キャッシュヒット率100%は保証されません。システムの負荷状況によっては、キャッシュが利用できないこともあります
- キャッシュの寿命:使われなくなったキャッシュは、通常数時間〜数日で自動的にクリアされます。散発的なリクエストでは恩恵を受けにくいです
-
出力のランダム性に影響しない:キャッシュはあくまで入力のプレフィックス部分にのみ適用され、出力は通常通り推論で生成されます。
temperature等のパラメータも通常通り機能します
まとめ:DeepSeek V4は「コスト革命」
DeepSeek V4 Flashの価格設定は、率直に言って異常です。
- 通常入力:Claude Opus 4.6の36倍安い、GPT-4oの18倍安い
- キャッシュヒット時:Claude Opus 4.6の通常入力と比べて1786倍安い
- 出力:Claude Opus 4.6の89倍安い、GPT-4oの36倍安い
もちろん、モデルの性能や品質は単純にトークン単価だけで語れるものではありません。タスクによってはGPT-4oやClaudeのほうが明らかに優れた結果を出す場面もあるでしょう。
しかし、「大量のトークンを消費するエージェントやRAGシステム」を運用する場合、コスト面でDeepSeek V4を検討しない理由はないと言っていいレベルです。特にキャッシュヒットを意識したプロンプト設計を行えば、ほぼタダ同然でAPIを叩けるようになります。
💬 議論テーマ
DeepSeek V4を実際に使ってみた方、体感の品質はいかがでしょうか?「安いけど精度がイマイチ」なのか「この価格でこの品質はヤバい」なのか、コメント欄で実体験をシェアしてもらえると嬉しいです!
