実開発でClaude、GPT-4o、Geminiをベンチマークして学んだ3つのこと

Dev.to / 2026/4/21

💬 オピニオンSignals & Early TrendsTools & Practical UsageModels & Research

要点

  • この記事では、PromptFuelの実開発タスク5件を同一入力でClaude 3.5 Sonnet、GPT-4o、Gemini 2.0 Flashに実行し、トークン使用量・コスト・主観的な品質を比較するベンチマークを行っています。
  • JSONスキーマ検証では3モデルとも正確に対応でき、Claudeは説明が最も明快で、GPT-4oは過剰に詳しくなりがちで、Geminiはコスト効率が最良だったと述べています。
  • 複数ファイルのTypeScriptコードレビューでは、Claudeがより重視すべき微妙な問題を見つけ、GPT-4oは丁寧だが冗長で、Geminiは最安コストだがフィードバックは表面的になりやすいという結果でした。
  • リファクタリング提案では、Claudeが本番投入できる水準の改善を出し、GPT-4oは有用な案の一方で構文の問題があり、Geminiは最安だが完成度はやや低いとされています。
  • 著者は全体として、直感ではなく「トークン/コスト+トークン当たりの品質」でプロバイダー選定をデータ駆動すべきだと主張しています。

まだLLMプロバイダを勘に頼って選んでいるなら、損をしています。PromptFuelを使ってプロンプトのトークン使用量とコストを計測するために、Claude 3.5 Sonnet、GPT-4o、Gemini 2.0 Flashに対して開発者向けの5つのユースケースを通しました。結果は?「最速が勝つ」よりずっと面白かったです。私が見つけた内容を紹介します。

セットアップ

私はPromptFuelの開発で実際に行っている5つのタスクを選びました:

  1. JSONスキーマ検証プロンプト — 形式が崩れたAPIレスポンスを検出
  2. コードレビューのフィードバック — 文脈付きのマルチファイル分析
  3. リファクタリング提案 — かさばったユーティリティ関数を最適化
  4. バグ診断 — ログ付きでスタックトレースを追跡
  5. ドキュメント生成 — コードコメントからAPIドキュメントを書く

それぞれを、同一の入力で3つのモデルすべてに実行しました。手作業だとカオスになるため、PromptFuelのCLIでトークン数を数え、コストを計算しました。出力品質は私が評価しました(主観的ですが、正直に)。

ユースケース別の内訳

1. JSONスキーマ検証

入力: スキーマ定義 + 形式が崩れたJSONサンプル + 期待するエラーメッセージ形式

トークン使用量(入力 → 出力):

  • Claude Sonnet: 1,847 → 512(コスト: $0.0043)
  • GPT-4o: 2,156 → 487(コスト: $0.0082)
  • Gemini Flash: 1,923 → 501(コスト: $0.0001)

品質: 3つとも完璧でした。Claudeは説明が最も簡潔でした。GPT-4oは説明し過ぎでした。Geminiはキレがよく、役に立つ内容でした。

トークン効率の勝ち: Geminiはコスト面で、Claudeはトークンあたりの明瞭さで勝ち。

2. コードレビュー(3ファイル、約200 LOC)

入力: 3つのTypeScriptモジュール + レビュー指示 + 良いフィードバックの例

トークン使用量:

  • Claude Sonnet: 4,231 → 891(コスト: $0.0147)
  • GPT-4o: 4,782 → 856(コスト: $0.0208)
  • Gemini Flash: 4,456 → 823(コスト: $0.0003)

品質: Claudeは、私が本当に気にしている微妙な問題を見つけました。GPT-4oは丁寧でしたが冗長でした。Geminiは表面的なフィードバックにとどまりました。

トークン効率の勝ち: Geminiが最安。Claudeが最良の出力/トークン。

3. リファクタリング提案

入力: 80行のユーティリティ関数 + パフォーマンス要件 + 現在のボトルネックの説明

トークン使用量:

  • Claude Sonnet: 2,134 → 618(コスト: $0.0054)
  • GPT-4o: 2,445 → 602(コスト: $0.0110)
  • Gemini Flash: 2,287 → 587(コスト: $0.0002)

品質: Claudeのリファクタリング提案は本番投入レベルでした。GPT-4oは良いアイデアを出しましたが文法上の問題がありました。Geminiの提案は機能しましたが、洗練されてはいませんでした。

トークン効率の勝ち: Geminiがコスト、Claudeが品質。

4. バグ診断

入力: スタックトレース(15行) + エラーログ(20行) + コードスニペット(40行) + 試した修正案

トークン使用量:

  • Claude Sonnet: 2,856 → 445(コスト: $0.0071)
  • GPT-4o: 3,102 → 421(コスト: $0.0127)
  • Gemini Flash: 2,934 → 438(コスト: $0.0002)

品質: Claudeは即座に見事に当てました。GPT-4oは問題をめぐっていました。Geminiは正しいファイルを指摘しましたが、根本原因は見抜けませんでした。

トークン効率の勝ち: Geminiがコスト、Claudeが正確さ。

5. ドキュメント生成

入力: JSDocコメント付きの12関数 + 期待するMarkdown形式 + 例

トークン使用量:

  • Claude Sonnet: 3,445 → 734(コスト: $0.0118)
  • GPT-4o: 3,821 → 689(コスト: $0.0182)
  • Gemini Flash: 3,567 → 712(コスト: $0.0004)

品質: Claudeのドキュメントは網羅的で構造もしっかりしていました。GPT-4oは良かったものの、最小限の手直しが必要でした。Geminiのドキュメントは実用にはなりましたが、詳細が欠けていました。

トークン効率の勝ち: Geminiがコスト、Claudeが完成度。

私が学んだ3つのこと

1. コスト/タスクは必ずしも最良の価値ではない。 Gemini Flashはバカみたいに安い(GPT-4oより約90%安い)ですが、支払った分だけのものを受け取っているだけです。私が高リスクの作業をする必要があったとき(コードレビュー、バグ診断)、反復しなくて済むのでClaudeの追加の数セントの価値がありました。捨てる前提のタスク(例の生成、フォーマット)なら、Geminiの安さがその「中途半端さ」を許容できるものにしてくれました。

2. トークン数は品質の予測にならない。 3つのモデルは同じ入力に対してほぼ同じトークン数を出しましたが、出力品質は大きくブレました。GPT-4oは一貫してより多くのトークンを使いましたが、それに比例して良くなるわけではありませんでした。Claudeは、より少ないトークンに有益な信号を詰め込んでいました。ここが重要です。コストだけを最適化すると、間違ったモデルを選びがちです。

3. ベンチマークより実運用テスト。 モデルの順位は、実際に何をしているかでひっくり返ります。ドキュメントならClaudeが勝ち。使い捨てのチェックのための予算検証ならGeminiが勝ち。一般的な「最速モデル」系の記事では、この差は捉えられません。だから、あなたの実タスクで試す必要があります。

あなたの計測方法

要するに、これは「データ」であって「法則」ではありません。あなたのタスクは重み付けが違うかもしれません。PromptFuelを使って私がどうテストしたかを示します。

# PromptFuelをインストール(まだなら)
npm install -g promptfuel

# プロンプトでテストファイルを作成
cat > test-prompt.txt << 'EOF'\
[your prompt here]
EOF

# モデルごとにトークン数をカウント
pf count test-prompt.txt --model claude-3-5-sonnet
pf count test-prompt.txt --model gpt-4o
pf count test-prompt.txt --model gemini-2.0-flash

# コストを比較
pf count test-prompt.txt --compare

この --compare オプションはコスト行列を表示してくれます。30秒で終わります。当てずっぽうよりはるかにましです。

本当の洞察は、あなたの具体的なユースケースでこれを回すことです。ドキュメント要約はClaudeを好むかもしれません。大量処理の分類パイプラインはGeminiを好むかもしれません。確かめる唯一の方法はテストです。

真の最適化

モデルを選んだ後でも、まだ節約できる余地はあります。以下は実際のPromptFuelコードからの「ビフォー/アフター」です:

Before(最適化されていないプロンプト):

あなたは熟練のコードレビュアーです。以下のコードについて品質、安全性、 
およびパフォーマンス上の問題をレビューしてください。一般的なバグを確認し、改善案を提案し、 
コードを1〜10で評価してください。エッジケース、エラーハンドリング、およびベストプラクティスを考慮してください。 
フィードバックは徹底的かつ詳細に行ってください。

[400 tokens of instructions]
[200 tokens of examples]
[150 tokens of code to review]
Total: ~750 input tokens

After(PromptFuelで最適化):

品質、安全性、パフォーマンスの観点でコードをレビュー。1〜10で評価する。

[冗長な指示を削除]
[例を3つではなく1つの代表例に削減]
[不要な空白を削除するためにコードを整形]
Total: ~420 input tokens

節約できたコスト:Claudeでレビュー1回あたり約$0.0012。これを1日に100回回せば、$0.12/日、$36/年の節約です。小さい?はい。でも社内ツールが50個あるなら、話は本当の金額になります。

正直な所感

返却形式: {"translated": "翻訳されたHTML"}

必要な出力を得られるモデルを選び、次にプロンプトを最適化します。間違った指標に最適化するのはやめましょう。ベンチマークは楽しいですが、本番の請求は現実のものです。

この分析を自分の用途のために行うなら、PromptFuelを使えばばかみたいに簡単です。無料で、APIキーは不要で、ローカルで動きます。あとは npm install -g promptfuel を実行して比較するだけ。プロンプトから得られる実際の数値が欲しいならテストを実行してください。私のデータをそのまま引き継がないでください——自分のものを作りましょう。

あなたのLLMで最も処理量が多いタスクは何ですか?試してみてください。どのモデルが勝つか、意外に感じるかもしれません。

Tags: #ai #tutorial #javascript #optimization