AIは書き終えたと判断して止まるのではなく、終わりの記号を一語として選んでいる

上限まで余裕があるのに、AIはなぜそこで書くのをやめるのでしょうか。AIが、もう十分だと判断した、という説明は、サイコロの出目をサイコロの決断と呼ぶのと同じ種類の作文です。実際には、終わりの記号がほかの語と同じく確率で一語として選ばれているだけで、だから止まる位置は毎回揺れます。この記事では、生成を止める三つの仕組みを確かめたうえで、揺れの正体と、揺れを小さくする頼み方を説明します。

止める仕組みは三つあり、決める主体が違います

GPTは自己回帰型のモデルで、次のトークンを一つずつ生成しては列に足していきます。このループを止める仕組みは三つです。

  • 最大生成長(max_tokens): 生成するトークン数の上限。ここに達すると強制的に終わる
  • 停止条件(stop): 指定したトークンや文字列が生成されたら終わる
  • 終了のトークン(EOS): モデルが学習で身につけた、終わりを表す特別なトークンを生成したら終わる

前の二つは使う側が外から決める区切りです。2024年時点のOpenAI APIでは、max_tokens を150にすれば150トークンで、stop に句点を指定すれば句点が出た時点で止まると説明されていました。stop には複数の条件を並べられます。三つはどれが優先というものではなく、生成の途中で先に当たった条件で止まります。

EOSは、ほかの語と同じく確率で選ばれる一語です

上限の手前で止まるとき、引き金になっているのはEOSです。仕組みは学習で作られます。

  1. 訓練データで、文章の終わりに終了を表す特別なトークンを置く
  2. モデルは、どんな文脈の後にこのトークンが来るかを、他の語と同じように学ぶ
  3. 生成時、内容がひと区切りついた文脈では、EOSの確率が高くなる
  4. EOSが選ばれると、実装側が検知して以降の生成を止める

「AIの未来について考察してください」と頼めば、考察が一通りそろった文脈でEOSの確率が上がり、どこかで選ばれます。利用者にはEOSそのものは見えず、文章が自然に終わったように見えます。判断に見えるものの正体は、この確率の分布です。

句点で止まって見える場合も同じです。停止条件を何も設定していなくても、答えが句点で終わることは多くあります。句点が合図になったのではなく、句点の次にEOSが選ばれた結果です。句点そのもので止めたいなら、stop に句点を指定します。

止まる位置は分布から引かれるので、毎回揺れます

i番目で止まる確率は、i番目でEOSが出る確率と、それより前のすべてのステップで出なかった確率の積です。出力の長さの期待値は、ステップの番号にそこで止まる確率を掛けて、最大生成長まで足し合わせたものです。分布から引いている以上、温度が0より大きい設定では、同じ質問でも止まる位置は毎回変わり得ます。

同じ質問で答えの長さが毎回違うことを品質のばらつきと呼んで、原因究明の報告書を書くのは、サイコロの出目の差を担当者の責任にするのに近いことです。揺れは不具合ではなく、確率で選ぶという設計の性質だからです。揺れを小さくしたければ、温度を下げるか、次に述べるように終わりの形を文脈で示します。

切れたのか書き終えたのかは、文面ではなく終了理由で確かめます

答えの最後が中途半端に見えても、文面だけでは、EOSで終わったのか上限で切れたのかを確実には判別できません。OpenAI APIなどでは、応答に終了理由(finish_reason)が付きます。stop ならEOSか停止条件で止まった、length なら最大トークン数で切れた、という意味です。

  • length が多い: max_tokens が小さすぎる。上限を上げるか、答えの範囲を狭めて頼む
  • stop なのに続きが欲しい: モデルが早めに区切りをつけている。必要な項目を指定する
  • 停止の文字列が早く当たる: 文の終わりや出力形式に合った文字列を選び直す

生成中の文脈に応じて止める条件を動的に変える方法や、マルチモーダルの生成での停止の設計も、研究や実装の対象になっています。

完了の形を先に示すと、揺れは小さくなります

EOSが選ばれやすいのは、終わりにふさわしい文脈がそろったときです。結論だけ欲しいのか、手順を全部欲しいのか、表一つで足りるのか。完了の形をプロンプトで示しておけば、その形がそろった時点でEOSの確率が上がるので、止まる位置が寄ります。

ただし、揺れを小さくすることが常に正解とは限りません。企画のたたき台を何案も出させたいときや、言い回しの幅を見たいときは、長さや形の揺れが選択肢の幅になります。決まった形で毎回同じ処理に渡すのか、人が読み比べて選ぶのかで、揺れは欠点にも材料にもなります。また、完了の形を示すと揺れがどれだけ小さくなるかはモデルと作業で違い、確かめるには自分の作業で何度か試すしかありません。

あなたがAIの答えの長さに不満を持ったとき、それは上限で切れていたのでしょうか、モデルが早めに終えていたのでしょうか。完了の形を、頼む時点で言葉にできていたでしょうか。

この記事の背景にある考え方は、拙著『ChatGPT はじめてのプロンプトエンジニアリング』の3章4節「事実回答のばらつきを抑える秘訣」に書きました。返答が極端に短かったり長かったり、同じ質問への答えが変わりやすかったりするのは、プロンプトに長さや形式が書かれていないことと、AIが確率的に答えを作っていることが主な理由だ、と原因を二つに分け、文字数、出力形式、文体を指定し、期待と違えば再指示する、という対策を示した節です。そこには「これにより、回答のばらつきを減らせます。」とあります。この節を読むと、答えの長さが揺れたとき、それが頼み方で寄せられる揺れなのか、確率で選ぶ仕組みから来る揺れなのかを、自分で切り分けて考えられるようになります。

AIの答えが物足りないとき、疑うべきはAIか、自分の言葉か。

ChatGPT はじめてのプロンプトエンジニアリング 表紙

『ChatGPT はじめてのプロンプトエンジニアリング』

AIは言葉でしか動かない。プロンプトを暗記するのをやめ、構成要素に分解して、自分の言葉で意図を込める力を鍛える本です。

読み終えたとき、手元に残るもの

  • 必須、任意、形式の三つに分けたプロンプトの構造
  • 回答の質を変える、意図を込めた生きたプロンプト
  • 発注と検収は人が担う、AIとの役割分担
  • 章末の演習プロンプト26題

4刷重版。全国の大学図書館65館が所蔵しています(2026年10月時点)。

Amazonで見る

著者プロフィール・お問い合わせ