OpenAI Decisions APIとJevを精度・コスト・処理速度で比較する

Page content

OpenAI Decisions APIとJevを精度・コスト・処理速度で比較する

前回の記事では、Jevを使ってナレッジグラフの関係を選択する処理を評価しました。今回は同じデータを使い、OpenAI Decisions APIと精度・コスト・処理速度を比較してみました。

対象は日本語1,418件、英語1,418件です。文章から36種類の関係候補を1つ選ぶ処理で、結果は以下のとおりでした。表の精度・処理速度は日本語 / 英語の順です。

比較項目 Jev Decisions API
精度(Accuracy) 92.95% / 93.51% 86.04% / 86.32%
精度(F1) 0.748 / 0.730 0.683 / 0.655
コスト 日英2,836件: 約0.46米ドル(参考推計)、入力100万トークン: 0.042米ドル 日英2,836件: 約1.13米ドル(API報告トークンから換算)、入力100万トークン: 0.10米ドル
処理速度 p50: 232ms / 247ms、p95: 311ms / 324ms(過去の参考値) p50: 248ms / 233ms、p95: 349ms / 358ms

今回のデータでは、精度はJevが上回りました。Jevの費用は現行単価と代替tokenizerによる推計、処理時間は前回の測定値なので、これらは参考値として比較します。

精度の比較

Accuracyは、Jevが日本語で6.91ポイント、英語で7.19ポイント高い結果となりました。関係ごとのF1を平均したMacro F1でもJevが上回っています。Decisionsの拒否回答は不正解として分母に含めました。

コストの比較

入力単価はJevが低く、どちらも出力トークンは無料です。今回の入力をo200k_baseで数えたJevの参考費用は約0.46米ドル、cl100k_baseでは約0.58米ドルでした。DecisionsはAPIが報告した使用トークン数から約1.13米ドルと換算できます。

この推計ではJevの方が低コストですが、Jevの実際の課金トークン数は未記録です。実費で何倍の差があるかまでは、この結果から判断できません。

処理速度の比較

p50は中央値、p95は95%の呼び出しがその時間以内に終わる目安です。両APIともp50は約0.2秒台でした。記録上、p50は日本語でJev、英語でDecisionsが短く、p95は日英ともJevが短い結果となっています。

ただし、Jevは2026年9月の測定値で、実行環境も揃っていません。速度を理由に選ぶ場合は、同じ環境で測定する必要があります。

Decisions APIの拒否回答

Decisionsでは、日本語4件(0.28%)、英語27件(1.90%)がrefusalでした。候補を選ぶ回答の代わりに、質問への回答を断ったことを示す型が返ります。応答の形は以下のとおりです(説明用の例)。

{"type": "refusal", "name": "relation"}

拒否応答には選択結果・確率・信頼度・理由のフィールドがありません。このため、今回の拒否の原因は分かりません。

Jevの正常なChoice応答は、最高確率の候補と確率・信頼度を返す仕様で、公開された回答型に同等のrefusal型はありません。低い信頼度でも選択結果は返るため、APIによる拒否と、利用側で回答を保留する処理は分けて扱う必要があります。HTTP 429などのAPIエラーも拒否とは別です。

拒否を除いたDecisionsのAccuracyは、日本語86.28%、英語87.99%でした。拒否だけがJevとの精度差の原因ではありません。

評価条件

入力データとプロンプト

主語と目的語が分かっている状態で、(主語, ?, 目的語)の関係を選ぶ処理としました。

項目 条件
データ CoDEx-S test由来の日英共通1,418件
本文 前回保存した日本語記事抜粋・英語extract
関係候補 対象データの正解関係から定義した36種類
プロンプト 本文、主語・目的語を含む指示文、候補名・説明・順序を共通化
各問題の正解 入力には含めず、評価に使用
モデル Decisionsはgpt-6-luna。Jevの当時のバージョンは未記録

日本語・英語の指示文は、両APIでそれぞれ以下の形式を使いました。

日本語Wikipedia本文に基づき、主語「{主語の名称}」と目的語「{目的語の名称}」の間に成立する関係を候補から選んでください。

Using the English Wikipedia extract, choose the relation that holds between the subject “{subject label}” and object “{object label}”.

全2,836件について元のJevコードから入力を再構成し、Decisionsに渡した本文・指示文・候補が一致することを確認しました。Decisionsは保存した送信ハッシュとも一致しています。Jevの過去のHTTP本文は未保存なので、元コードと固定データから確認できる範囲での照合です。

この評価は既定の36候補から選ぶ課題であり、未知の関係の発見や候補集合の作成は含みません。また、正解はグラフ上の事実なので、本文抜粋だけに根拠があるかは全件について確認できていません。日英の本文も翻訳対ではありません。

精度の集計方法

本文 API 正解 / 全件 Accuracy 参考95%Wilson区間 Macro F1
日本語 Jev 1,318 / 1,418 92.95% 91.50〜94.17% 0.7478
日本語 Decisions 1,220 / 1,418 86.04% 84.14〜87.74% 0.6833
英語 Jev 1,326 / 1,418 93.51% 92.11〜94.68% 0.7295
英語 Decisions 1,224 / 1,418 86.32% 84.43〜88.01% 0.6546

Accuracyの分母は拒否を含む各1,418件、Macro F1は36関係の平均です。上位3関係が約62.3%を占める一方、10関係は各2件以下なので、少数関係のF1はわずかな正誤でも変動します。

エラーバーは、各設問を独立な二値試行と仮定した参考95%信頼区間(Wilson法、z = 1.95996398454)です。主語は810種類で記事に重複があるため、独立性は保証されません。再実行時のばらつきを示すものではなく、区間の重なりだけで両APIの差の有意性も判断できません。

コストの計算方法

Jevの使用トークン数が未記録のため、tiktoken 0.14.0の2種類のtokenizerで入力を数え、現行の入力単価0.042米ドル/100万トークンを掛けました。本文・指示文だけでなく、36候補の名前と説明を各リクエストに含めています。

算定方法 日本語のトークン数 英語のトークン数 日英合計の費用
Jev: o200k_base・compact JSON(基準の推計) 8,606,473 2,350,218 約0.46米ドル
Jev: o200k_base・各フィールドを個別に計数 8,473,378 2,220,863 約0.45米ドル
Jev: cl100k_base・compact JSON 11,506,900 2,348,299 約0.58米ドル
Jev: cl100k_base・各フィールドを個別に計数 11,375,049 2,227,720 約0.57米ドル
Decisions: API報告値 8,833,591 2,470,749 約1.13米ドル

JSON方式には、質問名relationなどの構造用キーや記号も含めています。個別計数は本文・指示文・候補名・説明だけを数えます。いずれもJevの内部形式や課金用tokenizerを再現したものではなく、4通りの値は実費の上下限や信頼区間ではありません。

Decisionsは合計11,304,340入力トークンに標準単価0.10米ドル/100万トークンを掛け、1.130434米ドルとしました。10%の地域追加料金を仮定すると約1.24米ドルですが、今回の適用と請求額は未確認です。Jevの内部の追加入力や当時の再試行も、この推計には含まれていません。

処理時間の計測方法

Decisionsは2026年10月8日にmacOS上のPythonから逐次実行しました。時間はHTTPSリクエスト開始から応答全体の読み取り・JSON解析までで、初回のTCP/TLS接続と拒否回答も含みます。p50/p95は前回と同じnearest-rank方式で求めました。

Jevの当時のSDK・実行地域・接続再利用の条件は未記録です。このため、API内部の処理速度だけを比較した値とはなっていません。

サンプルコード

同じ入力形式で評価するサンプルコードは以下から参照できます。2つのスクリプトは同じディレクトリに保存してください。引数は各スクリプトの--helpで確認できます。

入力データの形式は前回の評価スクリプトと共通です。費用推計にはtiktoken==0.14.0と、公表されているencodingファイルを使用します。

参考