Gemini 3.1 Proが登場!3 Proはもう不要?
結論
- 多くの場合ではGemini 3 ProをGemini 3.1 Proに移行した方が良い
- ただしTPS(Tokens Per Second)が重要な場合にはGemini 3 Proも選択肢となる
背景
昨年11月にGemini 3 Proが登場してから早3ヶ月、先日Gemini 3.1 Proがリリースされました。
Googleによると、Gemini 3.1 ProはあらゆるベンチマークでGemini 3 Proを上回っているようです。[1]
しかしモデルの選定には性能以外にもコスト、機能、速度などの考慮が必要です。
総合的に見てGemini 3.1 ProはGemini 3 Proに優っているのでしょうか?
まずコストについてですがGemini 3.1 ProとGemini 3 Proの価格は完全に同一です。[2]
また機能面についても同じものとなっています。[3][4]
速度については公式からは言及がないようなので計測してみましょう。
というわけで本記事の残りは速度の計測になります。
計測コード
TTFT(Time To First Token)とTPS(Tokens Per Second)を計測します。
TTFTは最初の出力トークンが返されるまでにかかった時間で、これが遅いといつまでも結果が返ってこないように見えてしまいます。
TPSは毎秒どれだけの出力を生成できるかで、これが少ないとなかなか出力が進まずもっさりした動作に見えてしまいます。
import time
from typing import TypedDict
from litellm import completion
class Result(TypedDict):
reasoning_tokens: int
ttft: float
output: str
output_tokens: int
generation_time: float
tps: float
def measure(model: str, input: str, thinking_level: str) -> Result:
response = completion(
model=model,
messages=[{"content": input, "role": "user"}],
temperature=0.0,
seed=42,
extra_body={
"generation_config": {"thinking_config": {"thinking_level": thinking_level}}
},
stream=True,
stream_options={"include_usage": True},
)
is_first = True
output = ""
start_time = time.perf_counter()
for chunk in response:
if chunk.choices[0].delta.content:
output += chunk.choices[0].delta.content
if is_first:
first_token_time = time.perf_counter()
is_first = False
if "usage" in chunk:
output_tokens = chunk.usage.completion_tokens_details.text_tokens
reasoning_tokens = chunk.usage.completion_tokens_details.reasoning_tokens
if chunk.choices[0].delta.provider_specific_fields:
end_time = time.perf_counter()
result: Result = {
"reasoning_tokens": reasoning_tokens,
"ttft": first_token_time - start_time,
"output": output,
"output_tokens": output_tokens,
"generation_time": end_time - start_time,
"tps": output_tokens / (end_time - start_time),
}
return result
TTFTの計測
TTFTは長い文字列を渡して計測します。
今回は『吾輩は猫である』の冒頭n文字を渡し、内容を要約させてみました。
TTFTはreasoning(thinking)の影響を受けるのでそれも確認します。
結果
参考:gemini-3-flash-preview
| 冒頭1000字 | 冒頭5000字 | 冒頭10000字 | |
|---|---|---|---|
| thinking_level: minimal | 2.333秒(reasoning_tokens: 0) | 2.114秒(reasoning_tokens: 0) | 2.066秒(reasoning_tokens: 0) |
| thinking_level: low | 8.821秒(reasoning_tokens: 546) | 7.967秒(reasoning_tokens: 711) | 8.742秒(reasoning_tokens: 837) |
| thinking_level: medium | 7.770秒(reasoning_tokens: 691) | 9.722秒(reasoning_tokens: 910) | 10.037秒(reasoning_tokens: 941) |
| thinking_level: high | 8.114秒(reasoning_tokens: 694) | 9.345秒(reasoning_tokens: 880) | 10.862秒(reasoning_tokens: 995) |
gemini-3-pro-preview
| 冒頭1000字 | 冒頭5000字 | 冒頭10000字 | |
|---|---|---|---|
| thinking_level: minimal | - | - | - |
| thinking_level: low | 4.488秒(reasoning_tokens: 117) | 17.074秒(reasoning_tokens: 1533) | 18.551秒(reasoning_tokens: 1254) |
| thinking_level: medium | - | - | - |
| thinking_level: high | 16.629秒(reasoning_tokens: 1426) | 18.681秒(reasoning_tokens: 1584) | 20.517秒(reasoning_tokens: 1605) |
gemini-3.1-pro-preview
| 冒頭1000字 | 冒頭5000字 | 冒頭10000字 | |
|---|---|---|---|
| thinking_level: minimal | - | - | - |
| thinking_level: low | 6.495秒(reasoning_tokens: 325) | 7.077秒(reasoning_tokens: 341) | 8.035秒(reasoning_tokens: 515) |
| thinking_level: medium | 9.111秒(reasoning_tokens: 458) | 10.304秒(reasoning_tokens: 587) | 8.600秒(reasoning_tokens: 558) |
| thinking_level: high | 10.162秒(reasoning_tokens: 742) | 11.567秒(reasoning_tokens: 845) | 15.271秒(reasoning_tokens: 1322) |
「-」はサポートされていないことを表します。
考察
まず全モデル共通の傾向として
- thinking_levelを上げるとTTFTが伸びる
- 入力長が伸びるとTTFTが伸びる
がわかります(当たり前ですが)。
3 Proと3.1 Proの比較では
- thinking_level: lowかつ1000字では3 Proの方がTTFTが短い
- それ以外の条件では3.1 Proの方がTTFTが短い
という結果になりました。もっと言えば
- 3.1 Proはthinking_levelの上昇や入力長増加に対してTTFTが「緩やか」に伸びる
- 逆に3 Proは、入力1000字でthinking_levelをlowからhighした時や、thinking_level: lowで入力を1000字から5000字にした時などで、劇的にTTFTが悪化する
ことがわかります。
まとめ
TTFTに関して言えば、3 Proの方が良い場合もあるものの、全体として高速で安定している3.1 Proの方が使い勝手は良さそうです。
TPSの計測
TPSは長い文字列を生成させて計測します。
今回は『吾輩は猫である』の冒頭100文字を渡し、続きをn文字執筆するよう指示しました。
TPSもreasoning(thinking)の影響を受ける可能性がありそうな気がしたため、それも確認します。
結果
参考:gemini-3-flash-preview
| 1000文字生成を指示 | 5000文字生成を指示 | 10000文字生成を指示 | |
|---|---|---|---|
| thinking_level: minimal | 83.683(output_tokens: 848) | 113.502(output_tokens: 2665) | 109.338(output_tokens: 3689) |
| thinking_level: low | 61.664(output_tokens: 1321) | 81.366(output_tokens: 2696) | 85.474(output_tokens: 4215) |
| thinking_level: medium | 50.333(output_tokens: 1206) | 78.667(output_tokens: 3313) | 100.812(output_tokens: 5421) |
| thinking_level: high | 46.382(output_tokens: 872) | 66.042(output_tokens: 2046) | 92.751(output_tokens: 4369) |
gemini-3-pro-preview
| 1000文字生成を指示 | 5000文字生成を指示 | 10000文字生成を指示 | |
|---|---|---|---|
| thinking_level: minimal | - | - | - |
| thinking_level: low | 70.569(output_tokens: 2320) | 67.453(output_tokens: 4181) | 75.351(output_tokens: 4399) |
| thinking_level: medium | - | - | - |
| thinking_level: high | 35.501(output_tokens: 1678) | 60.880(output_tokens: 4779) | 72.129(output_tokens: 8260) |
gemini-3.1-pro-preview
| 1000文字生成を指示 | 5000文字生成を指示 | 10000文字生成を指示 | |
|---|---|---|---|
| thinking_level: minimal | - | - | - |
| thinking_level: low | 35.824(output_tokens: 1138) | 46.296(output_tokens: 3449) | 77.347(output_tokens: 3478) |
| thinking_level: medium | 14.907(output_tokens: 985) | 27.361(output_tokens: 3100) | 35.355(output_tokens: 2775) |
| thinking_level: high | 20.871(output_tokens: 872) | 53.084(output_tokens: 4354) | 59.733(output_tokens: 4747) |
「-」はサポートされていないことを表します。
考察
まず全モデル共通の傾向として
- 出力トークン数が増えるとTPSは上がる
- thinking_levelが上がるとTPSは下がる
ようです。
3 Proと3.1 Proの比較では
- thinking_level: lowかつ10000文字生成指示では3.1 Proの方がTPSが少しだけ高い
- それ以外の条件では3 Proの方がTPSが高い
- 特にthinking_levelが高く、出力長が短い場合
という結果になりました。
まとめ
TPSの観点では3 Proの方が優れているようです。
結論
比較結果としては
- 性能はGemini 3.1 Proが上
- コスト、機能面はほとんど同等
- 今回見たようにthinking_levelの指定など細かい部分で違いはあり
- 速度について、TTFTはGemini 3.1 Proが上、TPSはGemini 3 Proが上
となります。
そもそも速度が必要な場合はGemini 3 Flashも候補になりますが、性能とTPSが必要な場面ではGemini 3 Proも引き続き選択肢になるでしょう。
余談:なぜProだけ3.1が出たのかの考察
Gemini 3 Flashは3 Proから1ヶ月遅れでリリースされましたが、一部のベンチマークでは3 Proを上回っていました。[5]
これに対しGoogle Deepmindの研究者が以下のように述べています。
要するに3 Flashには3 Proに間に合わなかった手法が適用されており、それによって性能が上がっているということです。
完全に推測ですが、3 Proにこの研究結果を入れたのが3.1 Proだと考えています。
なのでFlashの3.1は出ないんじゃないかな。
Discussion