本文へ移動

G検定(ジェネラリスト検定)

ぶんしょうせいせい

文章生成

Text Generation

文章生成とは、言語モデルが定める確率に従ってサンプリングを行い、新しい文や文章を作り出すタスクです。確率の高い文ほど生成されやすくなります。

詳しい説明

言語モデルからのサンプリングとしての文章生成

文章生成とは、言語モデルを使って新しい文や文章を作り出すタスクです。ここでいう言語モデルとは、文の並びに対する確率分布を表すモデルです。つまり、ある文がどのくらいありそうかを確率として与えるモデルです。

文章生成の中心にある操作はサンプリングです。ある分布からサンプリングするとは、その尤度、つまり確率の高さに応じてランダムに点を選ぶことをいいます。言語モデルは文に対する分布を表しているので、言語モデルからサンプリングするとは、モデルが定める確率に従って文を選び、生成することを意味します。このため、モデルが高い確率を与える文ほど生成されやすく、低い確率を与える文ほど生成されにくくなります。

サンプリングは、言語モデルがどのような知識を持っているかを目に見える形にする重要な方法の1つでもあります。生成された文を読むと、そのモデルがどのような文をありそうだと考えているかが分かるからです。

ユニグラムでのサンプリングの手順

最も単純なのは、ユニグラム、すなわち単語1つずつの確率だけを使うモデルの場合です。手順は次のとおりです。

1. 英語のすべての単語を0から1までの数直線上に並べ、各単語に、その単語の頻度に比例した長さの区間を割り当てます。
2. 0から1の間でランダムな値を1つ選び、その値が数直線上のどの区間に入るかを調べて、その区間に対応する単語を出力します。

3. 文の終わりを表すトークンがランダムに選ばれるまで、ランダムな値を選んで単語を出力することを繰り返します。

よく使われる単語ほど割り当てられる区間が長いので、ランダムな値がその区間に入りやすく、生成されやすくなります。確率の高いものほど選ばれやすいというサンプリングの性質が、数直線の区間の長さとして表れているわけです。

バイグラムなど高次のn-gramへの拡張

同じ考え方は、バイグラム(連続する2つの単語の組)のような、より高次のn-gramにも使えます。まず、文の始まりを表す記号から始まるバイグラムを、そのバイグラムの確率に従ってランダムに1つ選びます。選んだバイグラムの2番目の単語をwとすると、次はwから始まるバイグラムをランダムに選びます。これを繰り返すことで、直前の単語を手がかりにしながら単語を1つずつつなげ、文を組み立てていきます。ユニグラムでは単語を互いに無関係に選ぶのに対し、バイグラムでは直前の単語によって次に選ばれやすい単語が変わる点が違いです。

大規模な言語モデルによる到達点

言語モデルを大規模にすると、生成される文章の質も大きく変わります。その例がGPT-2です。GPT-2は15億パラメータのTransformerによる言語モデルで、試された8つの言語モデリングのデータセットのうち7つで、ゼロショット設定において最先端の結果を達成しました。それでも、学習に使ったデータセットであるWebTextに対しては、まだ学習しきれていない(underfit)状態だったと報告されています。そして、このモデルから生成されたサンプルにはこうした性能の向上が反映され、一貫したまとまりのある段落が含まれるようになりました。単語を1つずつ確率に従って選ぶという基本は同じでも、モデルの規模と性能が上がることで、段落単位でまとまった文章を生成できるところまで到達したのです。

試験で問われること

G検定

  • 言語モデルからサンプリングするとはどういう操作か、また、モデルが高い確率を与える文と低い確率を与える文とで生成されやすさがどう違うかを説明できますか。
  • ユニグラムの場合のサンプリングの手順、すなわち単語を頻度に比例した区間で0から1の数直線上に並べ、ランダムな値が入った区間の単語を文の終わりのトークンが出るまで出力し続ける流れを説明できますか。
  • バイグラムでのサンプリングで、文の始まりの記号から始めて、直前に選んだバイグラムの2番目の単語から始まる次のバイグラムを選んでいく手順を確認しておきましょう。
  • GPT-2のような大規模な言語モデルによって、生成されるサンプルの質がどのように変わったか(一貫したまとまりのある段落を含むようになったこと)を説明できますか。

最終更新日: 2026/09/23