はじめに
GPT-5 がリリースされた日に、API を試して書いた以下の記事の続きのような内容です。
●OpenAI公式の情報をもとに GPT-5 の API をさっそく試す【Node.js】 - Qiita
https://qiita.com/youtoy/items/a6a266b04ef929abc616
上記の記事での Node.js のコードでは、とりあえずストリーミングのオプションは試したものの、他のオプションなどは試していませんでした。
公式ドキュメントの「Using GPT-5」
今回、以下の公式ドキュメント「Using GPT-5」の内容を見て行きつつ、API のお試しの第二弾をやっていこうと思います。
●Using GPT-5 - OpenAI API
https://platform.openai.com/docs/guides/latest-model
「Using GPT-5」に書かれている情報をまずは見てみる
まずは上記の「Using GPT-5」に書かれている情報を見てみます。
モデルについて
前回の記事にも書きましたが、API で指定できるモデル名は 4つありつつ、実質は 3種類となるようです。それについて、「Using GPT-5」のページでは「Meet the models」という部分で以下のように書かれていました(一部抜粋です)。
The smaller mini and nano models trade off some general world knowledge for lower cost and lower latency. Small models will tend to perform better for more well defined tasks.
To help you pick the model that best fits your use case, consider these tradeoffs:Variant / Best for
gpt-5 Complex reasoning, broad world knowledge, and code-heavy or multi-step agentic tasks
gpt-5-mini Cost-optimized reasoning and chat; balances speed, cost, and capability
gpt-5-nano High-throughput tasks, especially simple instruction-following or classification
このあたりは、今までの他のモデルでもあったように、性能とコスト・処理スピードなどのトレードオフがあり、小さなモデルほど低コスト・低遅延ではあるものの、性能が大きなモデルよりは悪くなるというような感じになるようです。
「New API features in GPT-5」
さらにドキュメントを見ていきます。モデルの種類の記載の後には、「New API features in GPT-5」という部分があります。
次に、この部分を見ていきます。
「Minimal reasoning effort」
「New API features in GPT-5」の「Minimal reasoning effort」という部分を見てみます(上で掲載していた画像内に出てきている部分です)。
以前の推論モデルにもあった「reasoning.effort」パラメータの話になります。内容は、モデルが応答を生成する前にどれだけの「推論トークン」を利用するかという部分です。
o3 などの以前の推論モデルだと、以下が 3つがパラメータとしてあったものです。
- low(低)
- medium(中)
- high(高)
GPT-5 では、さらに「minimal」というものが追加されているようです。これは、可能な限り最速の応答を必要とする場合に、推論の部分を非常に小さくおさえるというもののようです。ちなみに、「reasoning.effort」パラメータのデフォルトは medium になります。
以下の 4種類の「reasoning.effort」パラメータを使えるということになりますが、minimal では、「特にコーディングや指示に従うシナリオで高い性能を発揮し、与えられた指示に忠実に従う」という性質があるものの、一方で「より積極的に行動させるにはプロンプトで促す必要がある場合がある」という記載もありました。
- minimal
- low
- medium
- high
そして、回答する前に「考える」または「手順を整理する」のを促すと効果的、という記載もありました。
サンプルコードでは、以下のように reasoning: { effort: "minimal" }
という書き方がされていました。
const response = await openai.responses.create({
model: "gpt-5",
input: "How much gold would it take to coat the Statue of Liberty in a 1mm layer?",
reasoning: {
effort: "minimal"
}
});
「Verbosity」
次は「Verbosity」の部分です。
Verbosity は、日本語だと冗長性などという意味になる単語かと思います。
これは、トークン数を減らすことで応答までの時間を短くできるもののようです。「内部処理的に、より簡潔に回答する方法を取るようになる」とのことで、その結果、ユースケースによっては回答品質が向上する場合もあれば、品質が低下する場合もある、と書いてあります。
さらに、verbosity の利用例として以下が示されています。
- 「高い verbosity」: 文書の詳細な説明が必要な場合や、大規模なコードリファクタリングを行う場合
-「低い verbosity」: 簡潔な回答やシンプルなコード生成(例:SQLクエリ)を求める場合
GPT-5 以前のモデルでは、「medium」の verbosity になっていたのが、GPT-5 では verbosity を以下の 3つから選べるようです。
- high
- medium
- low
これらの違いについて、コード生成を例に以下の内容が書かれていました。
- 「medium および high」: インライン解説付きの長く構造化されたコードが生成される
- 「low」: 最小限のコメントしかない短く簡潔なコード
サンプルコードでは、以下のように text: { verbosity: "low" }
という書き方がされていました。
const response = await openai.responses.create({
model: "gpt-5",
input: "What is the answer to the ultimate question of life, the universe, and everything?",
text: {
verbosity: "low"
}
});
上記 2つを試してみる
上記の「reasoning.effort」パラメータの minimal と「verbosity」のパラメータ low の組み合わせを軽く試してみます。
下準備などは、前回の記事と同じです。
モデルは「gpt-5」と「gpt-5-nano」でやってみようと思います。
試したコードと実行結果
試したコードは、以下のとおりです。
import OpenAI from "openai";
const client = new OpenAI();
const stream = await client.responses.create({
// model: "gpt-5",
model: "gpt-5-nano",
input: "空はなぜ青い?",
stream: true,
reasoning: { effort: "minimal" },
text: { verbosity: "low" },
});
for await (const event of stream) {
if (event.type === "response.output_text.delta") {
const chunk = event.delta;
if (chunk && chunk.trim() !== "") {
process.stdout.write(chunk);
}
}
}
処理の実行結果
上記を実行した結果は、以下の動画のとおりです。
前回の記事での、デフォルトパラメータでの処理よりは、レスポンスが良くなっていそうです。
今回、とりあえずのお試しでしたが、さらに他のプロンプトでとか、他の設定をまじえて試すというのをやってみられればと思います。
また、Using GPT-5 の verbosity以降の項目もいくつかあるので、そられも別途、見ていければと思います。
また今回扱った話題について、以下の公式クックブックも、具体的な話がいろいろ出ていて良さそうな感じでした。
●GPT-5 New Params and Tools
https://cookbook.openai.com/examples/gpt-5/gpt-5_new_params_and_tools
【追記】その後のお試し
別の GPT-5関連の話になりますが、以下は試してみて、記事も書いてみました。
●GPT-5 対応した Codex CLI を ChatGPT のアカウントに紐付けて試す(API を使わない形)【OpenAI】 - Qiita
https://qiita.com/youtoy/items/e8fb00909ab2e6857e44