本文へスキップ
ひもとくAI

言語モデルと文章の生成:次の単語の予測・パープレキシティ・温度

レッスン 6/7

言語モデル:次の単語を予測する

言語モデルとは

「わたし は パン を ___」の空欄に入る単語を当てるとき、私たちは「かう」「たべる」を思い浮かべ、「ねる」「えき」はまず思い浮かべません。前の単語から、次の単語の確率 を予測するモデルを 言語モデル と呼びます。

P(次の単語∣それまでの単語)P(\text{次の単語} \mid \text{それまでの単語})

(第10章の条件付き確率です)。文全体の確率は、この条件付き確率を先頭から順に掛けたものになります。

一番単純な言語モデル:直前の1語だけを見る

レッスン1と同じ自作の文(250文で学習)で、「直前の単語が A のとき、次が B だった回数」を数え、その割合を確率にしました。直前の1語だけを見るモデルを バイグラム モデルと呼びます(一度も出てこなかった組み合わせの確率が0にならないように、すべての回数に1を足しています)。

直前の単語次の単語の確率(上位)
をかう 0.455、たべる 0.410、ほかはどれも0.01未満
ねこが 0.593、ほかはどれも0.02未満

「を」の次は「かう」か「たべる」、「ねこ」の次は「が」と、文の形をつかんでいます。

文章を生成する

言語モデルで文章を作るには、次の手順を繰り返します。

  1. それまでの単語から、次の単語の確率を計算する
  2. その確率に従って、次の単語を1つ選ぶ
  3. 選んだ単語を後ろに付け足して、1に戻る(「文の終わり」を選んだら止める)

大規模言語モデルも、基本はこの繰り返しです。違いは、直前の1語ではなく、それまでの すべての単語(数千〜数十万語)を Transformer で読んで、次の単語の確率を計算することです。

学習の罰は、交差エントロピー

言語モデルの学習は、「次の単語」をクラスとする分類です。単語の種類が5万種類なら、5万クラスの分類になります。罰は、第5〜10章と同じ 交差エントロピー(実際に出てきた次の単語に付けた確率の −log⁡-\log)で、それを小さくすることは、第10章で見たとおり、文章の 最尤推定 です。正解のラベルを人が付けなくても、文章そのものから「次の単語」という正解が作れるので、大量の文章で学習できます(自己教師あり学習)。

パープレキシティと、温度

パープレキシティ:平均して何択で迷っているか

言語モデルのよさは、テスト用の文章に、どれだけ高い確率を付けられるかで測ります。よく使われるのが パープレキシティ で、テストの文章の「1語あたりの負の対数尤度(交差エントロピー)」を、ee の何乗かに戻したものです。

パープレキシティ=e1語あたりの交差エントロピー\text{パープレキシティ} = e^{\text{1語あたりの交差エントロピー}}

意味は、「モデルが、次の単語を平均して何択で迷っているか」です。例えば、次の単語にいつも 14\frac{1}{4} の確率を付けているなら、交差エントロピーは −log⁡14=log⁡4-\log \frac{1}{4} = \log 4、パープレキシティは elog⁡4=4e^{\log 4} = 4 で、「4択で迷っている」ことになります。小さいほどよいモデルです。

自作の文(テスト用の50文)で、3つのモデルを比べました。

モデルパープレキシティ
どの単語も同じ確率(22種類の単語と「文の終わり」の23択から当て推量)23.0
単語の出やすさだけを使う(前の単語を見ない)18.71
バイグラム(直前の1語を見る)2.71

直前の1語を見るだけで、23択の迷いが、約2.7択まで減りました。この自作の文は、形が決まっている(「〜 が 〜 を たべる」など)ので、とても予測しやすいのです。実際の文章では、もっと長い前の文脈を見るほど、パープレキシティは下がります。

温度:生成のばらつきを調節する

生成のときに、いつも一番確率の高い単語を選ぶと(貪欲法)、同じ入力からは毎回同じ文章になり、単調な繰り返しになりがちです。そこで、確率に従ってでたらめに選びます(サンプリング)。このとき、ばらつきを調節するのが 温度 TT です。ソフトマックスに入れる前の点数を TT で割ります。

Pi=ezi/T∑jezj/TP_i = \frac{e^{z_i / T}}{\sum_{j} e^{z_j / T}}

もとの確率が (0.5, 0.3, 0.15, 0.05) の4つの単語で、温度を変えました。

温度 TT単語1単語2単語3単語4
0.5(低い)0.6850.2470.0620.007
1(もとのまま)0.50.30.150.05
2(高い)0.3790.2940.2080.120
  • 温度が低い: 確率の高い単語に、さらに集中する。無難で、決まった答えに近くなる
  • 温度が高い: 確率がならされ、めずらしい単語も選ばれやすくなる。多様だが、おかしな文も出やすい

レッスン5の Attention の d\sqrt{d} で割る工夫と、同じ「ソフトマックスの前に割ると、偏り方が変わる」性質です。このほか、確率の高い候補をいくつか残しながら文全体の確率が高い文を探す ビームサーチ も、翻訳などでよく使われます。

大規模言語モデルと、使うときの注意、振り返り

大規模言語モデル

Transformer のデコーダ(GPT の形)を、何十億〜何千億個もの重みと、非常に大量の文章で学習させた言語モデルを、大規模言語モデル(LLM)と呼びます。仕組みの中心は、このレッスンの「次の単語の予測」です。多くのモデルは、事前学習の後に、次のような追加の学習をしています。

  • 指示に従う学習: 「質問と、よい回答」の例で学習し直し、質問に答える形で文章を生成するようにする
  • 人の評価を使う学習: 人が「どちらの回答がよいか」を比べた結果を使って、好まれる回答を出しやすくする(RLHF などと呼ばれる方法)

使うときの注意

大規模言語モデルは、「もっともらしい次の単語」を選び続けているだけなので、次のことに注意が必要です。

  • もっともらしい誤り: 事実と違う内容を、自信のある文で生成することがあります(ハルシネーション と呼ばれます)。存在しない本の題名や、間違った数字を書くこともあります。大事なことは、元の資料で確かめます
  • 学習データの偏り: 学習した文章の偏り(レッスン1の埋め込みと同じ)が、回答に表れることがあります(第9章の公平性)
  • 入力する情報: サービスによっては、入力した文章が保存されたり、学習に使われたりすることがあります。個人情報や秘密の情報は入力しません
  • 指示の乗っ取り: 読み込ませた文章の中に「前の指示を無視して…」のような文が紛れていると、モデルがそれに従ってしまうことがあります(プロンプトインジェクション)

大規模言語モデルは便利な道具ですが、第9章で学んだ「精度だけでなく、偏り・再現性・説明性も確かめる」考え方が、ここでも大切です。

よくある誤解

  • 「パープレキシティが低いモデルは、正しいことを言う」: パープレキシティは、テストの文章をどれだけ予想できたかで、内容が事実として正しいかどうかとは別です
  • 「温度を0に近づければ、誤りがなくなる」: 温度を下げると、一番確率の高い単語を選びやすくなるだけで、その単語が正しいとは限りません
  • 「大規模言語モデルは、文章の意味を人と同じように理解している」: 仕組みは、次の単語の確率の予測です。どこまで「理解」と呼べるかは、研究者の間でも議論が続いています

振り返り

  • 言語モデルは、それまでの単語から次の単語の確率を予測する。学習は、次の単語を正解とする分類(交差エントロピー、最尤推定)
  • パープレキシティは「平均して何択で迷っているか」。e交差エントロピーe^{\text{交差エントロピー}} で、小さいほどよい
  • 温度は、生成のばらつきを調節する。低いと無難、高いと多様
  • 大規模言語モデルは、もっともらしい誤りや偏りに注意し、大事なことは確かめて使う

演習

演習を読み込んでいます…