テキスト生成Text Generation

前を見て次の断片をつなぎ文章を作ること

  • 入門
  • 6分で読める
  • 図 3点

ポイント

  • テキスト生成は文章を丸ごと思い浮かべるのではなく、次の一断片ずつ選んでつなぐことです。
  • どこかにある文章を探してくるのではなく、断片をつないでその場で新しく作ります。
  • 断片を選ぶとき、ふつう少しの無作為さが入るので、同じ頼み方でもたいてい違う文章が出てきます。
  • 一度出した断片は取り消しません。序盤でずれると、その後が引きずられます。
  • 前に何を置くかが結果を決めます。頼み方の言葉がそのまま最初の溝です。

たとえで理解する

鍵屋に錠前を持っていくと、店主が何も刻まれていない鍵を一つはさみ、溝を削り始めます。最初の一段を削り、錠前に入れてかかる位置を見て次の段の深さを決め、また入れてみてその次の段を決めます。できあがった鍵は引き出しから取り出したものではなく、その場で作られたものです。

この方式には決まりが一つあります。一度削り出した溝は元に戻せないということです。三段目を深く削りすぎたら、そのあとの段をどれだけうまく削っても鍵は空回りします。残る方法は新しい未加工の鍵をはさんで最初から削り直すことだけです。

同じ錠前を二度持っていっても、まったく同じ鍵が出てくるとは限りません。手の動きが毎回わずかに違うからです。

くわしく

前を見て次の一段を決めます

AIは答えを頭の中で完成させてから書き写すのではありません。今までに置かれた断片を全部見て次に来る断片を一つ選び、その断片をつないでからまた全体を見て次の断片を選びます。この作業を終わるまで繰り返します。

画面に文字がずらずらと流れ出るように見えるのは、断片が一つずつ作られている最中だからです。答えが長いほど時間がかかるのも同じ理由です。断片一つごとに計算が一回入ります。

選ぶときは候補ごとにそれらしさが点数付けされます。「今日は天気が」の後には「いいですね」が高い位置にあり、「冷蔵庫」はほぼ底です。この順位は学習した文章で、どんな文脈の後にどんな言葉が来るか、そのパターンを覚えた結果です。

探してくるのではなく作ります

生成された文章がどこかに保存された文を取り出したものだと誤解しやすいです。モデルの中に文章の倉庫はありません。あるのは次の断片を選ぶために使われる数字のかたまりだけです。

だから世界で一度も使われたことのない文が出てくることがあります。自分の名前と自分の家の犬の名前が一緒に入った詩を頼んでも作り出します。どこにもその組み合わせを見たことがないのに作り出すという点が、この技術の力であり危うさでもあります。

同じ理由で、存在しない事実もそれらしく作られます。 断片を選ぶ基準は「事実か」ではなく「この場所に来てもよさそうか」だからです。存在しない論文の題名や存在しない条項番号がなめらかに出てくるのはこのためです。

ただし、学習のときによく見た文章は数字のかたまりにほぼ覚え込まれているので、既存の文がそのまま再び出てくることもあります。

毎回同じには出てきません

最もそれらしい断片だけを選び続けると文章は安全になりますが硬くなり、同じ表現が繰り返されます。そのためふつうは上位候補の中から少し揺らして選びます。 同じ質問でも答えがたいてい変わる理由です。

この揺らしの幅は調節できます。幅を狭めると答えが安定し、事実を扱う仕事に向きます。広げると表現は多様になりますが、見当違いの断片が紛れ込む確率も一緒に上がります。

同じ答えをもう一度受け取りたいなら、会話をやり直すより、その答えをそのまま貼り付けて直してほしいと頼むほうがよいです。二回目の試みが一回目より良い保証はありません。

一度出した断片は取り消しません

文章を書いていて前の文が気に入らなければ、人は消して書き直します。生成はそうしません。すでに出た断片は次の断片を選ぶときそのまま根拠として使われます。

だから序盤でずれた断片一つが文章全体を引きずります。最初の文で存在しない人物を作り出したら、その後の段落はその人物がいるという前提の上で続きます。すでに書いた断片は消せないので、前の間違いを直すには、後ろで「さっきの言葉は間違いだった」と付け加えるしかありません。それすらできずに引きずられることも多いです。

答えが変な方向に流れたら、続けて直してほしいと頼むより、最初からやり直させるほうがだいたい良い結果になります。店主が新しい未加工の鍵をはさむのと同じです。

前に何を置くかが結果を決めます

生成は常に前に置かれた文章から続きます。頼む言葉、それまでの会話、貼り付けた資料がすべて最初の溝になります。同じモデルでも前に何を置いたかによって結果が大きく変わる理由です。

望む形式を見本として一つ付けてあげると、その形式に沿います。話し方を決めてあげると、その話し方で続きます。反対に何も決めてあげなければ最も無難な方向へ流れて、どこかで見たような文章が出てきます。

長さも前もって指定できます。ただし断片数で決まる上限が別にあるので、上限に達すると文の途中で急に切れます。

もう少し正確に

テキスト生成は次に来る断片の候補それぞれに点数を付け、その点数を確率に変えたあと一つを選ぶ過程を繰り返す作業です。前の結果をもう一度入力として入れて続けるこの方式を自己回帰と呼びます。選び方には最も高いものだけを選ぶ方式から上位候補の中で確率に従って選ぶ方式まで何通りもあり、揺らしの幅を決める値を温度と呼びます。今の言語モデルの大半がこの方式を使っています。文章全体を粗く一度に置いて何度も整えていく拡散方式のように、別の生成方法も研究され、使われ始めています。

たとえがずれる点もあります。鍵屋の店主は錠前という正解を手に持って合わせていきますが、生成には合わせるべき錠前がありません。合っているか確かめる代わりに、それらしいほうへ進むだけです。また鍵は合うか合わないかのどちらかですが、文章は半分だけ合っている状態がいくらでもあって、間違った箇所があっても全体はそれらしく読めます。もう一つ、店主は一段ずつ削りますが、モデルは断片を選ぶたびにこれまでの文章全体をもう一度見渡します。

やってみる

よくある誤解

  • AIが答えを全部決めてから書き写すと思われがちですが、実際には文章を先に完成させておくのではなく、断片を一つ選ぶたびに次が決まります。内部で数歩先をおおまかに見積もることはありますが、完成した答えを写しているわけではありません。

  • どこかにある文章を探して貼り付けていると考えられがちですが、実際には文章の倉庫がないので、世界になかった文もその場で作られます。検索機能が付いたサービスは文章を探してきて前に置くこともありますが、その文章を見て答えを書く段階は、やはり断片を一つずつつないで作る作業です。

  • 同じ質問には同じ答えが出るはずだと思われがちですが、実際には選ぶ過程に揺らしがあるので、たいてい少しずつ変わります。

ひとこと要約

つまり

テキスト生成は前に置かれた文章を見て次の一断片を選んでつなぐことを繰り返し、その場で新しい文章を削り出す作業です。

誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新 2026-10-17