■ 1. LLMの動作原理
- 唯一の仕事:
- それまでに書かれた文章全体を見て、次に来る確率が最も高い単語を一つだけ決める
- 決めた単語を文章の末尾に足し、返答が終わるまで同じことを繰り返す
- 仕掛けはこれで全部
- 単純な作業の反復から現れたもの:
- 途方もない量の文章に対して何十億回と繰り返した結果、コードを書き、量子物理を説明し、詩を翻訳する何かが現れた
- 人と話しているとしか思えない会話もこなす
- 学習量の規模:
- GPT-3の学習に使われた文章量は、人間が寝ずに休みなく24時間読み続けても2,600年以上かかる分量
- それ以降のモデルは、さらに大量の文章を読んでいる
- 規則を教えない学習:
- 誰も規則を書き下ろしておらず、文法も意味も文脈も説明していない
- 与えたのは「次に来るものを当てるのが上手くなれ」という一つの指示だけ
- 言語の知識、事実、推論、話し方の調子、性格めいたものは、すべてその一つの目標から浮かび上がった
■ 2. パラメータと学習
- モデルの中身:
- 振る舞いを決めているのはパラメータ(重み)と呼ばれる数千億個の数字
- あるモデルと別のモデルを違うものにしているのは、この数字だけ
- 学習の手順:
- 学習の最初、パラメータはすべてでたらめな値で、モデルは意味のない文字列しか出さない
- 文章の最後の単語を除いた部分をモデルに入れ、予測を実際の単語と比べ、どれだけ外れたかを測る
- 数千億個のパラメータのすべてを、その外れが小さくなる方向にほんの少しずつ動かす
- これを何兆もの例に対して繰り返す
- 計算量の桁外れさ:
- 1秒間に10億回の計算ができる人でも、最大級のモデルの学習に必要な計算の再現には1億年以上かかる
- 現実に可能なのは、大量の計算を同時並行でこなす専用チップであるGPUがあるため
- 学習後のパラメータが持つもの:
- 言語がどう働くのか、物事が何を意味するのか、概念どうしがどう関係するのかが符号化されている
- どんな場面でどんな返答が適切なのかも符号化されている
- その形は誰も完全には解読できていない
■ 3. 予測が会話になる仕組み
- 入力の組み立て:
- 会話の文脈全体にAIの役割や目的を書いた説明を足し、まとめてモデルに入れる
- モデルは文章の塊全体を見て次の単語を予測し、その単語が足されるとまた全体が最初から走る
- 確率的な単語選択:
- モデルは毎回いちばん確率の高い単語を選ぶわけではなく、確率の分布から抽選するように選ぶ
- 確率の高い単語がよく選ばれるが、ときどき確率の低い単語も選ばれる
- 同じ質問を二度しても違う答えが返るのはこのためで、返答が自然に感じられるのもこのため
- 常に最高確率を選ぶ場合の弊害:
- ぎこちなく、同じ表現を繰り返す文章になる
- 分布から抽選することで、人が書いたように読めるものになる
- temperature:
- この分布を調整する設定
- 低くすると、より決まりきった焦点の定まった答えになる
- 高くすると変化に富んだ創造的な答えになり、上げすぎると支離滅裂になる
■ 4. トランスフォーマーとアテンション
- 2017年以前の限界:
- 言語モデルは文章を先頭から一語ずつ順番に処理していた
- 冒頭の情報が末尾に影響するには間のすべての段階を通り抜ける必要があり、長い文章で根本的な問題を生む
- Attention Is All You Need:
- 2017年にGoogleのチームが発表した論文
- そこで示されたトランスフォーマーという構造が、すべてを変えた
- 並列処理への転換:
- トランスフォーマーは文章を順番には読まず、入力全体を一度に受け取り並列に処理する
- どの単語も、他のすべての単語を同時に直接参照できる
- 長い文章の冒頭が末尾に与える影響は、隣り合った単語どうしと同じくらい直接的になる
- アテンションの働き:
- 入力の各単語は、長い数字の並びとして表現される
- 各単語が他のすべての単語を調べ、周囲の文脈に応じて自分の表現を更新する
- 「bank」は「river bank」と「bank account」で意味が異なり、周囲を調べて数字の並びが表すものを調整して区別する
- 層の積み重ね:
- この処理が何層にもわたって繰り返され、各層が文脈に基づいて表現を洗練する
- 最後の層では、入力の長さによらず全体から引き出した予測に役立つ情報が各単語の表現に詰め込まれる
■ 5. ニューラルネットワークの構造
- 基本の仕組み:
- 脳の神経細胞の働きをゆるやかに参考にした、数学的な演算をつなぎ合わせた仕組み
- ニューロンの計算:
- 基本の単位はニューロンで、ニューロンは数字を一つ持つ
- 値は前の層のニューロンの値に重みを掛けて合計し、バイアスという定数を足し、出力を一定範囲に収める関数に通して決まる
- このつながりに掛けられている重みがパラメータであり、学習の過程で調整されていく
- 画像認識の例:
- 手書き数字を認識するように訓練されたネットワークは、まず一つひとつの画素の値を処理する
- 最初の隠れ層は輪郭を検出し、次の層は輪郭を組み合わせて形にし、最後の層は形を組み合わせて数字の識別にする
- 誰もこれをプログラムしておらず、学習から現れたもの
- 言語モデルとの共通原理:
- はるかに大きな規模とはるかに複雑な構造で動くが、原理は同じ
- 仕事に役立つ内部表現を、モデルが自分で学ぶ
- その表現は設計されたものではなく、現れたもの
■ 6. 助手になるための第二の学習
- 事前学習だけでは不十分:
- ネット上の文章による事前学習は、モデルに言語を予測することを教える
- ランダムな文章の続きを当てられることと、役に立つ助手であることは別
- 事前学習だけのモデルは、有害な内容も誤情報も流暢で無用な返答も、パターンの続きとしてそのまま書く
- 人間のフィードバックによる強化学習(RLHF):
- 人間の評価者が複数の返答を見比べ、どちらが良いかを示す
- そのフィードバックを使い、人間が好む返答を出しやすくなるようにパラメータをさらに調整する
- 第二段階がもたらすもの:
- 特定の要求を断ること、単に流暢なだけでなく役に立とうとすること、自動補完でなく助手のように振る舞うこと
- 事前学習は言語と世界についての知識を与え、第二段階はその知識をどう使うかを形づくった
■ 7. 作った人にも分からないこと
- 可視化しても解釈できない内部:
- 手書き数字のネットワークの各ニューロンがどんなパターンに反応するかを見ても、期待どおりのものが出るとは限らない
- 輪郭から形へという分かりやすい形にはならず、解釈のしようがないパターンを学んでいることが多い
- ちゃんと動くが、人が期待した動き方ではない
- 言語モデルでも同じ:
- 推論に見える何か、類推に見える何か、文脈の理解に見える何かをしていることは観察できる
- その振る舞いが背後の数式からどう現れているのかは、作った人たちにさえよく分かっていない
- 推論は現れたもの:
- モデルは推論するようにプログラムされたわけではなく、文章を予測するように訓練されただけ
- 推論と呼べるものがあるなら、それは学習が規模を得たときに現れたもの
- 予測しにくい信頼できなさ:
- 複雑な概念を見事に説明できるモデルが、まったく事実でないことを自信たっぷりに述べることもある
- モデルが学んだのは流暢で役に立つ文章とはどういうものかであり、中身が正確かどうかは別の問題
■ 8. 丸暗記ではなく構造の発見
- ラベルをでたらめにした実験:
- 正解ラベルをすべて入れ替えて学習させても、学習データに対しては完璧な正答率を出せる
- ただ丸暗記しているだけで、未知の問題には一般化しない
- 正しいラベルでの学習:
- モデルははるかに速く学び、一度も見たことのない例にも対応できるようになる
- データの中に構造があると、パターンが見つけやすくなるため
- 構造の正体は未解決:
- モデルは単に丸暗記しているのではなく、構造を見つけている
- その構造が理解のようなものなのか、理解に似ているだけの何かなのかは、まだ答えの出ていない問い
- 明示的にプログラムされていない能力:
- コードを書く
- 言語を翻訳する
- 文書を要約する
- 学習データのどこにも現れない話題についての質問に答える
■ 9. なぜこれが始まりなのか
- 自明ではなかった帰結:
- 2017年のトランスフォーマーが、文章を大規模に並列処理することを可能にした
- 最大級のモデルの学習に必要な計算量は、手作業なら何百万年もかかる規模になった
- 次の単語を予測するというだけのことから役に立つ能力が現れ、作った研究者たちさえ驚かせた
- 文章の予測がソフトウェアを書き科学を説明し会話を続ける何かを生むと、自信を持って予言していた人はいない
- 言語に含まれる世界の構造:
- 動いた理由は、言語そのものの中に世界についての膨大な構造が含まれているため
- 物理実験の説明文の次の単語を当てるには、物理について何かを分かっている必要がある
- コードの次の一語を当てるには、そのコードが何をしているのかを分かっている必要がある
- 教わらずに学んだこと:
- モデルは物理もプログラミングも直接教わっていない
- 文章の予測が上手くなるために必要なことを、必要なだけ学んだ
- 残された問い:
- 仕事は一つで、次の単語を当てること
- 数千億のパラメータと何兆もの例でやらせると、思考のように見える何かが反対側から出てくる
- なぜそうなるのかを完全に分かっている人は、まだ誰もいない