言語モデルLanguage Model

前の言葉から次の言葉を確率で選ぶモデル

ポイント
  • 言語モデルは前に出てきた文章を見て次に来る言葉を確率で採点するプログラムです。
  • 文法規則を人が書き込んだわけではありません。膨大な量の文章から次の言葉当てを繰り返して自分で感覚をつかみました。
  • 答えを一つに決めていません。いくつもの候補に**確率をつけておいてその中から選びます。**同じ質問でも毎回少しずつ違う答えが出る理由です。
  • 前をどれだけ遠くまで見るかが性能を大きく分けます。二、三語しか見なかった方式から文書全体を見る方式へと発展してきました。
  • 翻訳、要約、質問への回答も結局は次の言葉のつなぎ足しで処理します。大規模言語モデルはこの言語モデルをうんと大きくしたものです。
目次

1たとえで理解する

スマホで「今日の夜」まで打つと、キーボードの上に次に打ちそうな言葉がずらりと並びます。「何食べる」「約束」「雨だって」といった言葉です。この予測はどこから来るのでしょうか。前に打った文字を見て、その後にどんな言葉がどれくらいの頻度で来るかを計算して順位をつけた結果です。言語モデルがしていることはまさにこれです。

予測される言葉は一つだけ出るのではありません。何個も順番に出ます。一番上のものが最も有力な候補で、下に行くほど可能性が下がります。言語モデルも候補ごとに可能性の大きさを一緒に持っています。

一つを選んで押すと文が一マス長くなり、その長くなった文をまた見て新しい予測が出ます。この繰り返しが果てしなく続いたものが、私たちが目にする長い答えです。

2くわしく

一つではなく候補全部に点数をつけます

言語モデルが出すのは単語一つではありません。知っているすべての断片について「これが次に来る可能性」を一斉に採点した点数表です。断片の一覧が数万個あれば点数も数万個出ます。

この点数表は全部足すと1になるように整えられています。だから「この候補が40パーセント、あの候補が15パーセント」というふうに読めます。スマホの予測が三つしか見せないのは画面が狭いからにすぎず、内部ではずっと多くの候補に順位がついています。

点数が均等に散らばっていれば、どんな言葉が来ても自然な位置だという意味です。逆に一つの候補に点数が集まっていれば、そこにはその言葉しか来られないという意味です。よく知られたことわざの後半がそういう位置です。

規則を書き込んだ人はいません

文法書を入れてもらったわけではありません。学習方法は驚くほど単純です。文章を持ってきて後半を隠し、モデルに次の言葉を当てさせたあと、実際の正解とどれだけずれていたかを見て内部の数値をほんの少し直します。この過程を数十億回繰り返します。

正解を人が別途つけてやる必要がない点が重要です。文章そのものにすでに正解が入っているからです。おかげでインターネット上の膨大な文章をそのまま教材として使うことができ、これが言語モデルが急に大きくなれた理由です。

こうやって学ぶうちに、文法だけでなくその文章に含まれる事実関係や言い回しまで一緒についてきます。次の言葉をうまく当てるには、世の中についての情報もある程度知っている必要があるからです。

いつも1位を選ぶわけではありません

点数が一番高い候補だけを選び続けるとどうなるでしょうか。文がすぐに硬くなり、同じ表現を繰り返すようになります。そこで実際には点数を確率のように扱い、高い候補が多く選ばれつつ、たまに2位や3位も選ばれるようにします。

このランダムさの強さを調節するつまみが別に用意されています。強く設定すると表現は多彩になる代わりに変な言葉が混ざり、弱く設定すると安定する代わりに単調になります。同じ質問を二回入れたときに答えが違って出るのもこのためです。

どれだけ遠くを見るかが実力を分けます

初期の方式はすぐ前の二、三単語しか見ませんでした。だから「昨日図書館で借りたあの本」のように離れた言葉を受け継げませんでした。文の頭に出てきた主語を文の終わりで忘れてしまうようなものです。

その後、一語ずつ順に受け渡しながら記憶をつなぐ方式が出て、今では前にあるすべての断片を一度に置いて互いの関連度を計算する方式が定着しました。一度に見渡せる範囲が文数行分から本一冊分にまで広がったのが、ここ数年の一番大きな変化です。

翻訳も要約も結局はつなぎ書きです

言語モデルが翻訳機能を別に持っているわけではありません。「次の文を日本語に訳すと」という文章の後に続く言葉を確率で選んでいるうちに訳文ができるのです。要約も、質問に答えることも同じ方式です。

だから前にどんな言葉をどう付け加えるかが結果を大きく変えます。キーボードの予測が前に打った文字によってまったく変わるのと同じ原理です。

3もう少し正確に

言語モデルは前のトークンが与えられたとき、次のトークンが何であるかについての確率分布を計算する関数です。モデルは断片ごとに点数を出し、その点数を合計が1になる確率に変えたあとその中から一つを選びます。どれだけよく当てるかはパープレキシティという値で測り、この値が低いほど次の言葉に迷わなかったという意味です。

前から後ろへつなぎ書きする方式だけがあるわけではありません。文の真ん中を空けておいて前後を両方見ながらその場所を当てる方式も言語モデルです。検索や分類に使われるモデルはこの方式で学習します。つなぎ書きする方は文章を作り出すことに強く、真ん中を当てる方は文の意味を把握することに強いです。

たとえがずれる点もあります。キーボードの予測は大抵自分が前に打った文章と短い前文しか参考にしませんが、言語モデルは自分のものではない膨大な文章から得た感覚で、はるかに長い前の部分を一度に見て判断します。

4やってみる

5よくある誤解

  • 言語モデルが文法規則を学んで文を作ると思われがちですが、実際には規則を受け取ったことはなく、次の言葉当てを繰り返すうちに文法に合うほうの確率が高くなっただけです。

  • 確率が一番高い言葉をいつも選ぶと見なされがちですが、実際にはわざと少しずつ揺らして選ぶので、同じ質問でも答えが毎回変わります。

  • 言語モデルと大規模言語モデルが別物だと思われがちですが、実際には同じ原理を規模だけ大きくしたものです。

7ひとこと要約

つまり言語モデルはキーボードの言葉予測のように前の言葉を見て次に来る言葉に確率をつけるモデルで、この一つのことで翻訳も要約もこなします。

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