Gemini 3.5とOpenAI o1 — APIの思考時間制御でコストを節約する方法

Haram

@haram

最近、OpenAI o1/o3やGemini 3.5といった推論型モデルをよく利用されるのではないでしょうか。複雑なコーディングや論理的な問題解決には非常に強力ですが、APIコストや速度(レイテンシ)が負担になることも多いですよね。幸い、現在どちらのプラットフォームも、モデルの「思考時間」を開発者が直接制御できるオプションを提供しています。少し意識するだけで、無駄なコストを大幅に削減できます。

まずOpenAIですが、reasoning_effortパラメータを使用して、思考の深さをlow、medium、highの3段階で調整します。コストパフォーマンスに優れたo3モデルを使用する際、この値をlowに下げると、待機時間とコストを大幅に節約できます。ちなみにo3は100万入力トークンあたり2ドル、出力トークンあたり8ドルとo1よりはるかに安価なため、実務用として人気です。ただし、ここで注意すべき落とし穴があります。それはmax_completion_tokensの設定です。この制限値には、モデルが内部で行う「推論トークン」もすべて含まれます。これを小さく設定しすぎると、モデルが一生懸命考えたにもかかわらず、肝心の回答は一行も出力されずに途切れてしまうという大惨事が起こり得ます。回答が得られなかった場合でも、思考に使用したコストは請求されるため、十分に注意してください。

Google Gemini 3.5系(最近リリースされたGemini 3.5 Flashを含む)では、thinking_levelパラメータを使用します。段階はminimal、low、medium、highに分かれており、Flashモデルはminimalまで対応しているため、非常に軽量に利用できます。ここで移行時によくあるミスとして、Gemini 2.5時代に使用していたthinking_budgetオプションを新しいthinking_levelと混同したり、そのまま放置したりすると、400エラー(Bad Request)が発生して動作しなくなります。また、Gemini 3 Proや3.1 Proのようなモデルは思考を完全にオフにすることができないため、コストとレイテンシを最小化するには、少なくともlowに設定しておくのがコツです。

API呼び出し時は、以下のようにパラメータを指定すればOKです。意外と簡単ですよね。

json
// OpenAI o1/o3 호출 예시
{
  "model": "o3-mini",
  "reasoning_effort": "low",
  "max_completion_tokens": 4000
}

単純な要約や軽いタスクは推論段階を最小に下げ、詳細なコードデバッグや企画書の確認を行う時だけ段階を上げるのが、実務でコストを抑える確実な方法のようです。もし普段APIコストが想定よりも高くついているなら、この機会にパラメータ設定を見直してみることをおすすめします。