自己回帰Autoregressive
書いた文を読み返し次の一片をつなぐ方式
- 自己回帰は自分がついさっき書いたものを読み返して次の一片を決める方式です。今日の対話型AIが文章を書く基本のやり方です。
- 一度に文をまるごと作るわけではありません。一片をつなぎ、最初から読み返し、また一片をつなぎます。
- 前が決まらないと後を決められないので、複数の一片を同時に作れません。 答えが長いほど時間がかかる理由です。
- 一度つないだ一片は元に戻しません。前でずれると、そのずれの上にさらに積み重なって間違った話がもっともらしく続いていきます。
- 質問を読むときは一片全部を一度に見られます。読むのは一度に、書くのは一つずつです。
目次
1たとえで理解する
LINEのグループトークでリレー物語をすることがあります。一人が一言ずつ付け足して物語を作っていく遊びです。ところがこのグループには参加者が一人しかいません。
一人でこうします。トークをさかのぼって、今まで積み上がった言葉を最初から最後まで読み返します。たった今自分が送った言葉までぜんぶです。それから次につなぐ言葉を一言だけ決めて送ります。送った瞬間からまた最初から読み、また一言送ります。
この繰り返しが自己回帰です。送った言葉は消せません。三行目で話がおかしな方向にそれると、その先はそのおかしな内容を前提として話が続いていきます。
2くわしく
一度に一片だけ決めます
モデルが答えを作るときにしていることは思ったより単純です。今までにある文章をすべて読み、次に来る一片として何がもっともらしいか候補ごとに点数をつけます。その中から一つを選んで後ろにつなぎます。ここまでが一歩です。
一歩が終わると文章が一片分長くなります。その伸びた文章をまた最初から読んで同じことをします。答えが百片なら、この歩みを百回踏みます。
文全体を先に計画して書き取っているわけではありません。文がどこで終わるかも、歩みを進めるうちに句点の一片や終わりを示す一片が選ばれた瞬間に決まります。
自分が書いたものが再び入力になります
この方式の名前が自己回帰である理由がここにあります。モデルの出力がそのままモデルの次の入力になります。人が新しく何かを入れるのではなく、自分が作ったものを自分がまた受け取ります。
だから最初の数片が答え全体の方向を大きく左右します。書き出しを「もちろんです」で開けば説明する調子が続きやすく、「申し訳ありませんが」で開けば断る方向に続きやすくなります。プロンプトに答えの書き出しを先に書いておく工夫がよく効くのも、この性質のためです。
同じ性質が問題も生みます。前の部分に事実と違う名前が一度入ると、後ろの文はその名前をすでに決まった事実として受け止め、自然に話をつなげていきます。間違った内容がだんだんもっともらしくなっていく様子です。
元に戻せないという点
人は文を書きながら前の文を直します。自己回帰の方式にはその段階がありません。一度つないだ一片はそのまま残り、モデルはその上でだけ次を考えます。
そこで候補を複数同時につないでおいて最後に一番よい流れを選ぶ方法を使うこともあります。答えを最後まで作った後、自分で見直してもう一度書かせる方法もあります。推論モデルが答えの前に長い思考の過程を先に書くのも、元に戻せないなら先に十分迷っておこうという発想に近いです。
書くときはなぜ遅いのか
質問を読む作業と答えを書く作業は速さがまったく違います。質問はすでに一片が全部そろっているので、一度に流し込んで同時に処理できます。一方、答えは前の一片が決まらないと次の一片を始められません。
だから一片ごとにモデル全体を一回ずつ通過させる必要があります。何十層、何十億もの重みを通り抜けて、ようやく一片を得ます。答えが二倍長くなれば待つ時間も二倍になります。画面に文字がずるずると流れ出るストリーミングは、この歩みを隠さずそのまま見せているだけです。
ほかの方式もあります
すべての生成方式がこうではありません。画像の分野で広く使われる拡散モデルは、絵全体を一度に少しずつ整えていきます。最初から最後まで画面全体が同時によくなっていくので順序がありません。文章でも同じように全体を同時に整える方式が研究されています。
それでも文章の分野では自己回帰が長く定着しています。学習が単純で、作られた文章の前後がよくかみ合うからです。
3もう少し正確に
自己回帰モデルは、これまでのトークン列を条件として次のトークンの確率分布を出し、その分布から一つを選んで列の後ろにつなぐことを繰り返します。温度やトップPといった設定は、この分布からどう選ぶかを決めるつまみです。学習するときは正解の文がすでにあるので、すべての位置を一度に学習させられ、先を見えないように隠す仕組みだけを入れます。
たとえがずれる点もあります。トークを読み返す人は毎回最初から目で追いますが、モデルは前の部分を計算しておいた結果を保存しておき、新しくつながった一片だけを計算します。だから実際には毎歩ごとに文章全体を読み直すほどには遅くなりません。また人は心の中で後ろの文をあらかじめ描いておきますが、自己回帰モデルには次の一片より先の計画が明示的には存在しません。小さなモデルに複数の一片をあらかじめ書かせておき、大きなモデルが一度に合っているか確かめる方法のように、歩数を減らそうとする試みも盛んです。
4やってみる
5よくある誤解
AIが答え全体を先に作っておいてゆっくり見せていると思われがちですが、実際には一片ずつその場で作って送り出しています。
間違った答えが出たら自分で前を直すと思われがちですが、実際にはすでに書いた一片を元に戻せず、その上に続けてつなぐだけです。
コンピューターの性能がよければ答えが一度に出ると思われがちですが、実際には前が決まらないと後を決められないので、歩数そのものは減りません。
7ひとこと要約
つまり自己回帰は自分が書いた文を読み返して次の一片だけを決めることを繰り返す方式で、AIの遅さともっともらしい間違いはどちらもここから生まれます。
誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新2026-09-02