LLMとは — 消された実験ノートを繋ぎ合わせる確率機械
このトピックを終えると
ChatGPT・Claude・Geminiがどのように答えを作り出すのかの根本原理を理解できるようになります。次のトークン予測という単純な規則が、事前学習・自己回帰生成・人間フィードバックによる整合の道のりを経て今日の人工アシスタントとして完成される流れ、なぜ時々でたらめ(幻覚)を言うのか、そしてバイオ研究者の実務にどう活用できるのかを、一つの物語としてつなぎ合わせられるようになります。
本編はこのトラック(AI Native)の第一編であり、地図(map)の役割を果たします。ここに登場する概念は今後14編にわたって詳細に掘り下げていく予定なので、今は大きな絵を描くことに集中しても構いません。
消された実験ノートがあると想像してみましょう
あなたが大学院生だとしましょう。ちょうど留学した先輩が残していった古い実験ノートを引き継ぎました。ところがノートを開いた瞬間、がっかりします。コーヒーを何度もこぼしたのか、各ページの右半分がシミと滲みで消えています。左には実験手順・材料・条件が残っていて、右にあるべき観察・結果・解釈は判読できません。
あなたはこのノートを復元しなければなりません。ちょうど手元に魔法のような機械が一台あります。どんな実験記録でも前半をこの機械に入力として入れれば、その次に続く一単語を最も尤もらしく予測してくれる機械です。この機械があれば何ができるでしょうか?
手順は簡単です。残っている左半分を丸ごと機械に入れます。機械が次に来る最初の単語を予測します。その単語をノートに貼り付けます。今度は新しく貼り付けた文章全体を再び機械に入力として入れます。次の単語をまた予測します。この過程を繰り返すと、消された右半分が自然に復元されます。復元された文章が元々先輩が書いたものと完全に同じにはなりませんが、実験の論理の流れを自然につなぎ合わせた尤もらしい結果が出てきます。
まさにこれが、あなたが毎日使うChatGPT・Claude・Geminiの根本作動原理です。私たちがこの機械と交わす対話は実はこのように行われています。ユーザーの質問の後にAIが何と答えるかを、一単語(正確には一トークン)ずつ予測してつなぎ合わせているだけなのです。
この観点は私たちを認知的錯覚から救ってくれます。LLMは「質問を理解して答えを知っている賢い魂」ではありません。 統計的に最も尤もらしい次の単語を選んで繋げる精緻な機械にすぎません。この真実を掴んでおけば、これから登場するすべての概念が自然に繋がります。
検索と何が違うのか
ここで、よくある混同を一つ整理しておきましょう。Google検索とChatGPTは完全に別物です。
Google検索はインターネットのどこかに既に保存された文書を探し、リンクで教えてくれます。答え自体はそのリンクの中にあり、Googleはうまく探してくれる役割だけを担います。データベースから照会するのに近い。実験ノートの比喩で言えば、他の人が残した似たような実験ノートの原本を探して丸ごと渡すこと。
LLMはデータベースではありません。保存された文書を探すのではなく、答えを毎回新しく作り出します。同じ質問を二度しても少しずつ違う答えが出得る理由がこれです。実験ノートの比喩で言えば、LLMは原本を探して渡すのではなく、消された部分に相応しそうな文章をその場で作り出します。
この違いが決定的です。検索は検索語と文書の間のマッチングが全てですが、LLMは学習したテキストのパターンを利用して、初めて見る組み合わせの文章も作り出せます。この性質が創造性の源泉であり、同時に後で見る幻覚の源泉でもあります。
正確な定義 — 次のトークンの確率を予測する関数
もう少し精密に定義してみましょう。
LLM(大規模言語モデル、Large Language Model) は、あるテキストが与えられたときに、その後ろに続く単語を予測する非常に精緻な数学的関数です。
ここで微妙な点を一つ。たった一つの単語を確定的に予測するのではなく、次に来得るすべての単語に対する確率を計算する関数です。
例えば、実験ノートに「PCR反応の結果、バンドが」という文をLLMに入れると、次のような確率分布が出てきます。
「現れた」 確率: 0.42
「観察された」 確率: 0.18
「なかった」 確率: 0.11
「かすかに」 確率: 0.08
「二つ」 確率: 0.05
...
「猫」 確率: 0.0000001ここで最も高い確率の単語を一つ選んで貼り付けます。その次は? 新しく貼り付けた文章全体を再び入力として入れ、また次の単語の確率分布を計算します。この過程を繰り返しながら、一単語ずつ文章を作っていきます。
これをCSと統計学の用語で自己回帰(autoregressive)モデルと呼びます。自分が吐き出したものを再び自分の入力に入れるという意味。GPTの「GT」がまさにGenerative Pre-trained TransformerのGT、すなわち自己回帰生成器です。
なぜ毎回答えが少しずつ違うのか
ここに興味深い点があります。LLMは決定論的(deterministic)モデルです。つまり同じパラメータ・同じ入力なら確率分布は正確に同じように出ます。それでも私たちは同じ質問に毎回少しずつ違う答えを受け取ります。なぜでしょうか?
確率が最も高い単語だけを選ばず、時には少し低い確率の単語もランダムに選択するようにしたからです。このランダムさの度合いを調節する値を温度(temperature) と呼びます。
- 温度が低ければ、最も確率の高い単語だけを選び、答えは常に似通っていて安全です。ただし答えが平板で反復的になり得ます。温度0は完全に決定論的。
- 温度が高ければ、確率の低い単語も頻繁に選ばれ、創造的で多様な答えが出てきます。ただしおかしな答えが出るリスクも大きくなります。
決定論的モデルに人為的な無作為性を注入する — これが同じ質問に毎回異なる答えが出る本当の理由です。関数自体は常に同じ確率を計算しますが、その確率に従ってサイコロを振る段階で無作為性が生じます。
CSの感覚で表現すると、自己回帰生成ループは以下のpseudocodeで要約されます。
context = ユーザープロンプトwhile 終了条件でない: 確率分布 = モデル.次のトークン確率(context) 次のトークン = サンプリング(確率分布, temperature=1.0) context = context + 次のトークン yield 次のトークンバイオ実務のヒント。論文アブストラクトの要約や実験計画のブレインストーミングのように、正確性より多様な観点が必要な時は温度を少し上げます(0.7〜1.0)。正確な遺伝子名・化学式・数値を扱う時は温度を下げます(0.0〜0.3)。Cursor・Claude Codeのようなツールがほとんど低い温度をデフォルト値として使う理由がここにあります — コードは無作為性がすなわちバグだからです。
トークンとは正確に何か
これまで「単語」と気楽に言ってきましたが、正確にはトークン(token) です。トークンは単語より小さな単位である場合が多いです。
例えば英単語 unbelievable は大抵 un, believe, able の三つのトークンに分割されて処理されます。日本語は頻繁に使われる形態素単位で分割されますが、稀な単語は音節単位、あるいはそれより小さく分割されることもあります。例えば プロスタグランジン は プロス, タグ, ランジン のように複数の断片に分けられ得ます。
なぜわざわざこう分割するのでしょうか? 辞書(vocabulary)にすべての単語を収められないからです。世の中のすべての単語を辞書に入れると辞書サイズが爆発します。一方、頻繁に使われる断片だけを辞書に入れておけば、稀な単語もこれら断片の組み合わせで表現できます。この方式をサブワード・トークン化(subword tokenization) と呼びます。BPE(Byte-Pair Encoding)、WordPiece、SentencePieceなどのアルゴリズムがこの役割を果たします。
トークンの実用的意味。GPT・Claude・Geminiの料金は大抵入力トークン数 + 出力トークン数で計算されます。日本語は英語よりトークン数がおよそ1.5〜2倍多く出る傾向があります。同じ意味の文章でも日本語で書けば料金が余計にかかり得るという意味です。
バイオ観点の特異事項。DNA・タンパク質配列をLLMに入れる時はトークン化が特異に作動します。ATGCTA のような配列は辞書に正確な断片があるはずがないので大抵個別文字単位で分割されます。これは長い配列を処理するにはトークン数が爆発するという意味です。配列専用モデル(例: ESM、ProGen)は別途のトークン化方式を使います。
どうしてこんなにうまく予測するのか — 事前学習(Pre-training)の規模
ここから本当に驚くべき部分が始まります。LLMはインターネットから収集した膨大な量のテキストデータで学習します。どのくらい多い量でしょうか?
GPT-3の学習データはおよそ4,000億個のトークン(約3,000億個の単語)と知られています。この規模の感覚を掴むための思考実験を一つ。国内四年制大学図書館に所蔵された書籍100万冊をすべて読むと仮定しましょう。平均書籍を300ページ・ページあたり300単語とすると、図書館全体でおよそ900億単語。すると、GPT-3学習データはこの大学図書館3〜4個分です。
ここで止まりません。最近出たGPT-4・Claude・Geminiのような最新フロンティアモデルは、これよりはるかに多い量で訓練されました。想像してみましょう。国内すべての四年制大学図書館の書籍 + Wikipedia全体 + オープンソース・コードリポジトリ(GitHub)のアクティブなリポジトリ + 学術論文データベース(arXiv、PubMedなど)のかなりの部分 — この程度が事前学習データの実体です。
これをどうやって学習するのでしょうか? モデルの中にある多数のダイヤル(dial)を調整する方式で学習します。これらダイヤル、すなわちパラメータ(parameter)または重み(weight) と呼ぶ値が言語モデルの結果を決定します。これらダイヤルを変えると、モデルが次の単語をどのように予測するかも変わります。
大規模言語モデル(Large Language Model) という名前の「Large」は、このパラメータ数を指します。数百億(billion)から数千億(hundreds of billion) 個のパラメータを持つニューラルネットワークです。GPT-3は約1,750億個、最新フロンティアモデルはそれをはるかに超える。
これほど多いパラメータ値を人が直接決めることはできません。最初はランダムに設定されたパラメータ値が、訓練を繰り返しながら、次第に尤もらしい予測ができる値へと調整されていきます。
訓練方式は以下の通りです。
- 学習データから短くは数単語、長くは数千単語からなるテキスト断片を用意します。
- そのテキストから最後の単語を除いた残りをモデルの入力として入れ、モデルが最後の単語をどう予測するかを確認します。
- その予測が正解に近づくよう、モデルのパラメータをごく僅かに調整します。
- この時逆伝播(backpropagation) というアルゴリズムを使い、次第に正解に近づくようにします。
この過程を数え切れないほど繰り返すと、モデルは学習データの次の単語だけをうまく予測するのではなく、初めて見る文章に対しても尤もらしい予測ができるようになります。これを一般化(generalization) と呼びます。
必要な計算量はどれくらいか? — 生物学の実験でスケールを推測する
膨大な数のパラメータとデータポイントを処理するには、想像を絶するほどの計算量が必要です。生物学の研究者にとって馴染みのあるもので、そのスケールを把握してみましょう。
哺乳類の細胞の細胞周期は約24時間です。 つまり、1つの細胞が分裂するのに1日かかります。GPT-3のトレーニングに必要な総計算量は、約3 × 10^23 FLOPS(浮動小数点演算)です。**1回の細胞分裂を1回の計算とみなすと、**GPT-3のトレーニングに必要な計算量は、3 × 10^23回の細胞分裂に相当します。
これは非常に大きな数であり、理解するのは困難です。成人の人間の体に含まれる細胞の数は、約30兆(3 × 10^13)です。 つまり、体のすべての細胞が同時に1回分裂したとしても、それは3 × 10^13回の計算に過ぎません。GPT-3のトレーニングには、それよりも100億倍多くの計算が必要です。これは、体全体が1日に1回、100億日間分裂するイベントを経た場合に達成されるスケールです。100億日 = 約2700万年です。
この計算を実際に処理するには、並列処理と専用のコンピュータチップ、つまりGPUが必要です。 現在、最も高度なモデルのトレーニングには、数千から数万個のGPUが数ヶ月間並行して実行されます。NVIDIA H100のような最先端のAIアクセラレータは、約4,000兆回の演算を1秒間(4 × 10^15 FLOPS)実行できます。これらのGPUを10,000個、3ヶ月間実行すると、約3 × 10^25 FLOPSとなり、これはGPT-4のトレーニングスケールに近い値です。
このように、このインフラストラクチャを持っている企業は世界にほんの一握りしかありません。OpenAI、Anthropic、Google、Metaなどです。トレーニングにかかるコストだけでも、数百億ウォンに達すると推定されています。
事前学習だけでは不十分 — ファインチューニングと指向性進化
事前学習だけを行ったモデルは、本質的にはインターネット上のテキストを繋ぎ合わせただけのものです。まだ質問に答えられる会話相手ではありません。たとえば、「猫の飼い方について教えて」と質問すると、生の、事前学習されたモデルは、質問を単純に付け加えるだけです。例えば、「猫の飼い方について教えて。そして犬と鳥についても。」 これは、会話相手というよりも、テキストの自動補完エンジンに近いです。
ChatGPTやClaudeのような、私たちが知っている会話型アシスタントに変えるためには、次の2つのステップが必要です。
ステップ1:ファインチューニング: モデルは、人間が作成した会話のサンプルデータ(質問と回答のペア)でさらにトレーニングされます。このステップで、モデルは「質問が来たら、それに対応する回答が続く」という会話形式を学習します。
ステップ2:RLHF(人間のフィードバックからの強化学習): 人間の評価者が、モデルからの複数の回答を比較し、どちらの回答が優れているかを評価します。この評価データを使用して、強化学習によってモデルを調整します。その結果、モデルは、ユーザーが好むような方法で、次の単語を予測するように調整されます。
これらの2つのステップは、まとめてアライメントと呼ばれます。これは、モデルを人間の期待と安全基準に適合させるプロセスです。
このプロセスを生物学の実験の言葉に翻訳すると、驚くほど馴染みのあるものになります。 ファージディスプレイや抗体ライブラリーを使用した指向性進化スクリーニングを考えてみましょう。試験管内で多数の変異抗体を作成し、次に、ターゲット抗原に結合するものを選択し、増幅し、次に、さらに結合するものを選択し、それを再度増幅します。このサイクルを繰り返して、非常に高いターゲット結合親和性を持つ抗体を作成します。
アライメント(RLHF)は、概念的にはこのサイクルとまったく同じです。
- 生のモデル = 最初の抗体ライブラリー(あらゆる方向に確率的に発言)
- 人間の評価者の優先度による選択 = 「ターゲットにうまく結合するものを選択するスクリーニング」
- その方向にモデルを再トレーニングする = 「選択されたクローンを増幅する」
- このサイクルを繰り返す = 「複数のラウンドの指向性進化」
その結果、人間の常識、安全基準、期待に沿った応答を確率的に優先するモデルが作成されます。「事前学習」と「アライメント」は、完全に独立したエンジニアリングのステップです。 モデルがより賢くなるプロセス(抗体を作成する遺伝子ライブラリーの構築)と、それを人にとって安全になるように調整するプロセスは、異なるステップです。
この区別は、最高のアライメントであっても、常に多次元パラメータ空間のどこかに、スクリーニングされていない確率のゾーンが存在するということを意味するため、重要です。指向性進化がほんの数ラウンドで完璧を達成するわけではないのと同じです。この残りのゾーンを突破しようとする試みは、プロンプトインジェクションやジェイルブレイク攻撃です。
Transformer — 並列処理を可能にしたアーキテクチャ
これらすべての基盤には、Transformerというニューラルネットワークアーキテクチャがあります。
2017年以前は、ほとんどの言語モデルがテキストを逐次的に、つまり一度に1つの単語ずつ処理していました。RNN(リカレントニューラルネットワーク)やLSTMなどがその例です。このアプローチは、1つの単語の処理を終えてから次の単語に進む必要があるため、並列処理には適していませんでした。複数のGPUを使用しても、この逐次的な流れを断ち切ることはできませんでした。
2017年、Googleの研究チームは「Attention Is All You Need」という論文を発表し、Transformerと呼ばれる新しいアーキテクチャを紹介しました。このアーキテクチャは、テキストを逐次的に読むのではなく、文全体を最初から最後まで並行して処理します。この単一の論文は、その後の8年間にわたってAIの状況を根本的に変えました。
Transformer内部では、まず各単語が数値ベクトルに変換されます。この変換は**埋め込み(embedding)**と呼ばれます。AIのトレーニングは連続的な数値データで行うことができるため、言語を数値にエンコードします。
各数値ベクトルには、その単語の意味と文脈が含まれています。ベクトル空間では、意味が類似している単語が互いに近くに配置されます。この観点から見ると、「細胞」と「ミトコンドリア」のベクトルは近くに、一方「細胞」と「行列演算」のベクトルは遠く離れています。
Transformerの中核はアテンションという操作です。アテンションは、ベクトルが互いに情報を交換することを可能にし、各単語が周囲の文脈に応じて適切に意味を調整できるようにします。
たとえば、生物学の論文に頻繁に登場する曖昧な略語「PC」を考えてみましょう。
- 「PC12細胞を培養した」という文では、PCはフェオクロモサイトーマ細胞を意味します。
- 「クラスターは主成分分析(PC1、PC2)で明確になった」という文では、PCは主成分を意味します。
- また、「陽性コントロール」としても使用されます。
同じ「PC」であっても、周囲の文脈によってベクトルの位置が変化します。これがアテンションの力です。それは、人間が行うように文脈を理解する能力であり、モデルはパラメータを通じてこの能力を学習します。
アテンションに加えて、Transformerにはフィードフォワードネットワークと呼ばれる操作も含まれています。この部分は、モデルの知識リポジトリとして機能することが知られています。たとえば、「SARS-CoV-2ウイルスのスパイクタンパク質がACE2受容体に結合する」のような事実は、この部分に特定のパラメータの組み合わせとして圧縮および保存されます。
複数の層でアテンションとフィードフォワードの操作を繰り返すと、各単語ベクトルは文脈をより意識するようになります。必要な情報を圧縮し、圧縮し、正確に次の単語を予測できるようにし、それを最終段階に伝えます。
最終段階では、全体の文脈を反映したベクトルを使用して、次の単語の確率分布を予測します。これは、モデルが次に続く可能性のあるすべての単語について確率を予測していると考えることができます。
モデルの構造は研究者が設計しますが、モデルが実際にどのような出力を生成するかは、トレーニングを通じて自動的に調整される数十億のパラメータによって決定されます。そのため、モデルが特定の答えを導き出した理由を事後に正確に説明することは困難です。これが、後で議論する解釈可能性の問題につながります。
創発的な能力 — 大規模化によって突然現れる能力
ここで興味深い観察を紹介します。100万、1000万、10億、100億のパラメータでモデルをトレーニングします。ほとんどの能力は、スケールに比例して徐々に向上します。
しかし、特定のスケールを超えると、新しい能力が突然現れます。論理的推論、コーディング、多段階計算、指示の実行、さらには他の言語への翻訳など、これらの能力が特定のスケールを超えると統計的に有意になります。これは創発的な能力と呼ばれます。
生物学の研究者は、クオラムセンシングという類似性について知っているでしょう。個々の細菌は特別な行動を示しませんが、密度が特定の閾値を超えると、突然バイオフィルムの形成や発光などの集団的行動を示すようになります。個々の細菌の能力は同じですが、システム全体が特定の閾値を超える密度になると、相転移を起こします。
LLMの創発は、概念的にこれと似ています。パラメータのスケールが特定の閾値を超えると、以前には存在しなかった能力が現れます。ただし、この魔法に惑わされてはいけない真実が1つあります。それは、最終的に、これらの能力のすべては、バックグラウンドで学習している数十兆回の行列演算と加算に基づいているということです。神秘的なことは何もありません。それは単に高度で巨大な確率的予測マシンであり、そのスケールが私たちの理解を超えているため、結果は魔法のように見えるだけです。
なぜ、あれほど「もっともらしい嘘」をつくのか?
LLM(大規模言語モデル)は、時として完全に誤った情報を、まるで「事実である」かのように提示します。
- 存在しない論文を、もっともらしい著者名と発表年付きで引用する。
- 存在しないPythonの関数やRのパッケージを作成する。
- 存在しない遺伝子名や薬の名前をでっちあげる。
- 実験プロトコルを提示するが、それは実際の実験結果とは全く異なるものである。
これは**「ハルシネーション(幻覚)」**と呼ばれます。
その根底にある原理を理解すれば、なぜこのような現象が起こるのかが明確になります。LLMには、「これは正しいのか」を検証するステップは存在しません。LLMは、学習した確率に基づいて次のトークンを生成するだけです。訓練データに含まれていない情報に対しても、それらしい組み合わせを生成します。
「わからない」と答えるよりも、もっともらしい誤った情報を生成する方が、LLMにとっては容易である。これがハルシネーションの根本的な原因です。
ハルシネーションは、以下の状況でより頻繁に発生します。
- 希少な知識: 訓練データにあまり含まれていないトピック(例:特定の希少な腫瘍の亜型)
- 最新の情報: 訓練データが収集された後に発生した出来事(訓練データが2024年までであれば、2026年に発表された論文)
- 正確な引用: 特定の論文、ページ、または数値
- 複雑な推論: 複数の段階を含む論理的なステップ
- 曖昧な質問: 複数の解釈が可能なプロンプト
ハルシネーションを完全に排除することは不可能です。それは、LLMが確率的な予測に基づいているという事実から必然的に生じるものです。しかし、ハルシネーションを軽減するためのいくつかの方法があります。
- RAG(Retrieval-Augmented Generation): 回答する前に信頼できるドキュメントを検索し、そのドキュメントをコンテキストとして含める → #9を参照
- 低い温度設定: 確率の低い単語の選択を抑制する
- 不確実性に対する明示的な要求: プロンプト内で、LLMが「わからない」と答えるべき状況を明示的に指示する。
- 必須の引用: 「引用元を必ず含めること」
- ファクトチェックパイプライン: 別の検証ステップ
人間からのフィードバックを用いた強化学習(RLHF)も、ハルシネーションの軽減に貢献します。目標指向の反復的な進化のサイクルにおいて、人間の評価者が「わからない」と回答する応答に高い評価を与えると、モデルはその方向に徐々に偏ります。しかし、前述の通り、多次元空間のどこかに、スクリーニングを通過しなかった確率の領域が必然的に存在するため、完全な防御は不可能です。
生物学の研究者にとっての実践的な応用:3つのシナリオ
これまでに議論した理論を、生物学の研究室でどのように活用できるでしょうか?以下に、3つの現実的なシナリオを示します。
シナリオ1:論文の要約とブレインストーミング
PubMedから関連する10件の論文のアブストラクトを選択し、プロンプトに貼り付けて、次のように質問します。
「私の実験は、特定の腫瘍抑制遺伝子がCRISPR-Cas9を用いてノックアウトされた細胞株における代謝変化を観察するものです。上記の論文と私の実験との関連性を3つ特定し、その上で、今後の実験のアイデアを5つ提案してください。」
このタスクは、通常、調査と整理に数十分から数時間かかりますが、数分で完了できます。ただし、必ず引用を元の情報源で再確認することが重要です。LLMがハルシネーションによって存在しない論文を引用したり、既存の論文の結論を歪曲したりする可能性があるためです。
この場合、わずかに高い温度設定(約0.7)を設定するのが最適です。目的は、さまざまな視点からブレインストーミングすることであるため、より創造的な応答が役立ちます。
シナリオ2:Biopythonコードのレビューとデバッグ
FASTAファイルを解析し、GC含有量を計算するスクリプトを作成しましたが、結果は常に0になります。スクリプト全体を貼り付けて、次のように質問します。
「このコードでGC含有量が常に0になる理由を特定してください。また、数GBの大きなファイルに対してもメモリ効率の良いバージョンに改善してください。」
LLMは通常、正確な診断(例:大文字と小文字を区別していない、'G'のみをカウントして'C'をカウントしていない、文字列のスライスがO(n^2)の複雑さになっているなど)を提供します。また、改善されたコードも提案します。ユーザーは、テストデータを使用してコードを検証する必要があります。
この場合、低い温度設定(約0.2)を設定します。コードにおけるランダム性はバグです。
シナリオ3:データ整理の自動化
協力している病院から、マージされたセル、色分け、数式エラー、およびタイポが多数含まれているExcelファイルが送られてきました。LLMにいくつかの行を見せて、次のように質問します。
「このデータをpandas DataFrameに整理するPythonコードを作成してください。マージされたセルを最も高い値で埋め、色情報を別の列に抽出し、頻繁に発生するタイポを正規表現を使用して正規化してください。」
通常、数時間かかるこのタスクを、5分で完了できます。
上記の3つのシナリオはすべて、LLMの「回答を生成する」能力を効果的に活用しています。これらは、検索だけでは実行できないタスクです。このシリーズの次のパートでは、プロンプトエンジニアリングとツールワークフローを学び、各シナリオからより高度な結果を引き出す方法を解説します。
ゴール指向型進化の視点から改めて見てみる
以前、RLHF(強化学習による人間のフィードバック)をゴール指向型進化スクリーニングと比較しました。この視点を広げると、LLM(大規模言語モデル)のトレーニングプロセス全体が、生物学の研究者にとって馴染みのある概念になります。
事前学習 = 自然の遺伝的多様性を収集すること. インターネットから大量のテキストを収集するプロセスは、構造的に自然界のすべての種の遺伝子配列を収集し、大規模なデータベースを作成することと類似しています。目標は、個々の文の特定の起源に興味を持つことではなく、全体の分布の統計的パターンを理解することです。
ファインチューニング = 特定の抗体ライブラリーに絞り込むこと. 事前学習済みのモデルを特定の会話形式に改良するファインチューニングは、概念的に一般的な抗体ライブラリーを絞り込み、関心のある特定の領域のみを含む後続のライブラリーを作成することと類似しています。
RLHF = 複数回のゴール指向型進化スクリーニング. 複数の回答から最適な回答を選択することで、人間が好む方向にモデルを強化するRLHFは、試験管内で複数の変異抗体を作成し、最も強い標的結合を持つものを選択して増幅するゴール指向型進化と全く同じ概念です。
この対応関係を理解することで、興味深い洞察が得られます。生物学の研究者にとって馴染みのある「選択→増幅」のサイクルが、LLMトレーニングの調整段階でも機能しているのです。この視点は、後続のパート、特に#4(バックプロパゲーション)と#11(調整と幻覚)でさらに詳しく説明します。
主要なポイント
要点をまとめましょう。
- LLMは、次のトークンの確率分布を予測する自己回帰モデルです。
- LLMは検索エンジンではなく、毎回新しいコンテンツを生成するものであり、これがLLMを創造的にする一方で、幻覚を起こしやすい原因にもなります。
- **事前学習(3〜4つの大学図書館に相当する知識パターンを圧縮する)、およびファインチューニングとRLHF(ゴール指向型進化)**により、会話形式と安全基準に合わせて調整されます。
- 底層には、Transformer + アテンション + フィードフォワードの並列処理アーキテクチャがあります。
- ある程度の規模を超えると、創発的な能力が突然現れます(「臨界質量」の検出に類似)が、その本質は依然として確率的な予測です。
- 常に、「本当にそれを知っているかどうか」を判断する能力がないという事実を覚えておく必要があります。
📐 付録 — 専門家向け数学的公式
難易度: 非常に難しい 対象読者: 確率、微積分、線形代数について大学院レベルの理解を持つ読者。
このセクションでは、直感と図解に焦点を当てた本文で議論された概念の、厳密な数学的要約を示します。これらの概念に慣れていない場合は、この付録をスキップしても構いません。これは、論文を読んだり、モデルを実装したりする際に参照できる資料として役立ちます。
A.1 自己回帰的因数分解
LLMは、テキスト全体に対する結合確率を、条件付き確率の積に分解することでモデル化します。
P(w_1, w_2, ..., w_n)
= P(w_1) · P(w_2 | w_1) · P(w_3 | w_1, w_2) · ... · P(w_n | w_1, ..., w_{n-1})
= ∏_{t=1}^{n} P(w_t | w_{<t})ここで、w_t は時刻 t のトークンであり、w_{<t} = (w_1, ..., w_{t-1}) はその時点までのすべてのトークンを表します。モデルは、この条件付き確率 P(w_t | w_{<t}; θ) を、パラメータ θ(数十億から数兆)を持つニューラルネットワークを使用して近似します。
A.2 温度付きソフトマックス
モデルの最後の層の出力は、語彙内の各トークンに対する実数値のスコア(ロジット)のセットです。これらのスコアを確率分布に変換するために、温度付きソフトマックスを使用します。
P(w_t = i | context) = exp(z_i / T) / Σ_j exp(z_j / T)z_iは、トークンiのロジットです。Tは温度です。T → 0: 最も高いロジットの確率が 1 に収束します(argmax と同等、決定論的)。T → ∞: 分布は一様分布に収束します(完全にランダム)。T = 1: 標準的なソフトマックスです。
数値的安定性のヒント: オーバーフローを防ぐために、exp(z_i / T - max(z) / T) のように、最大値を引いてください。
A.3 クロスエントロピー損失 — 事前学習の目的関数
1つのステップにおいて、正しいトークンが y ∈ {1, ..., V}(語彙サイズ V)である場合、モデルの予測分布 p̂ = softmax(z) を使用したクロスエントロピー損失は次のようになります。
L(θ) = -log p̂_y = -log( exp(z_y) / Σ_j exp(z_j) )これは、正しいトークンに割り当てられた確率の負の対数です。モデルが正しい答えに確率 1 を割り当てると、損失は 0 になり、確率が減少すると増加します。
データセット全体の総損失は、この値をすべてのタイムステップとドキュメントにわたって平均したものです。
L_total(θ) = -1/N · Σ_{document} Σ_{time step t} log P(w_t | w_{<t}; θ)パラメータ θ に関してこの損失を最小化することが、事前学習の数学的な目標です。最適化は、確率的勾配降下法(SGD)またはそのバリアント(Adam、AdamW など)を使用して実行されます。
A.4 情報理論的な解釈 — 困惑度
クロスエントロピー損失の指数は、困惑度と呼ばれます。
Perplexity = exp(L_total)これは、「モデルが、平均して、次のトークンに対して候補となるトークンを何個に絞り込んでいるか」の尺度です。困惑度が低いほど、モデルはより自信を持って予測していることを示します。ランダムな予測子(語彙サイズ V にわたる一様分布)の困惑度は正確に V であり、十分に学習された大規模モデルの困惑度は、自然言語で約 10〜30 です。
A.5 RLHF 優先度最適化 — ブラッドリー・テリーモデル
RLHF において、人間の評価者が 2 つの応答 y_w(勝者、優先される)と y_l(敗者、優先度が低い)を比較した場合、報酬モデル r_φ(x, y) をトレーニングして、次の確率をうまく予測できるようにします。
P(y_w ≻ y_l | x) = σ( r_φ(x, y_w) - r_φ(x, y_l) )ここで、σ(z) = 1 / (1 + exp(-z)) はシグモイド関数です。これは、ブラッドリー・テリーモデルの形であり、対数尤度の最大化が優先度学習の目標です。
L_reward(φ) = -E_{(x, y_w, y_l) ~ D} [ log σ( r_φ(x, y_w) - r_φ(x, y_l) ) ]その後、ポリシーモデル(つまり、LLM)は、強化学習(例:PPO)を使用して、報酬モデル r_φ を最大化するように微調整されます。このとき、元の事前学習モデルからの KL ダイバージェンスがペナルティとして追加され、そこから大きく逸脱しないようにします。
J(π_θ) = E_{x~D, y~π_θ(·|x)} [ r_φ(x, y) - β · KL( π_θ(·|x) || π_ref(·|x) ) ]π_θ: トレーニング中のポリシーモデル。π_ref: 参照モデル(事前学習済みモデルまたは SFT モデル)。β: KL ペナルティ係数(通常は 0.01〜0.1)。
この項のバランスが適切でない場合、2 つの失敗モードがあります。β が大きすぎると、モデルは事前学習の状態から抜け出すことができず、適切に調整されません。β が小さすぎると、報酬のハッキングやモデルの崩壊が発生する可能性があります。
これを生物学的なアナロジーで再考すると、β が大きすぎると、初期ライブラリから抜け出すことができず、スクリーニング効果がなくなります。β が小さすぎると、スクリーニング圧力が強すぎ、多様性が完全に失われ、わずかなクローンに収束する—多様性の崩壊です。
A.6 最近の代替手段 — DPO(直接優先度最適化)
2023 年以降、DPO が登場し、これは個別の報酬モデルを使用せず、優先度データからポリシーモデルを直接最適化します。
L_DPO(θ) = -E_{(x, y_w, y_l) ~ D} [ log σ( β · log(π_θ(y_w|x) / π_ref(y_w|x))
- β · log(π_θ(y_l|x) / π_ref(y_l|x)) ) ]この定式化は安定しており、計算効率が高いため、DPO は PPO を使用せずに、いくつかのオープンソースモデルで採用されています。
A.7 Transformer アテンションの公式(スケーリングされたドット積アテンション)
Transformer の自己注意は、次の式で定義されます。
Attention(Q, K, V) = softmax( Q · K^T / sqrt(d_k) ) · VQ ∈ R^{n×d_k}: クエリ行列。K ∈ R^{n×d_k}: キー行列。V ∈ R^{n×d_v}: 値行列。d_k: キーとクエリの次元(通常は 64 または 128)。sqrt(d_k): スケーリング定数(内積が発散するのを防ぎます)。
各位置について、クエリはすべての位置のキーとのドット積を計算し、ソフトマックスで正規化し、次に値行列の加重和を取ります。この操作により、どの位置がどの程度関連しているかをデータから自動的に学習できます。
マルチヘッドアテンションは、この操作を複数の (Q, K, V) 投影ペアで並行して実行し、次に結果を連結します。
MultiHead(X) = Concat(head_1, ..., head_h) · W_O
where head_i = Attention(X · W_Q^i, X · W_K^i, X · W_V^i)この構造は、Transformer の並行処理機能の鍵であり、今日の LLM の力の源です。この部分に関する詳細な視覚的な直感は、エピソード #6 attention-mechanism にあります。
A.8 参考文献 — トレーニング損失の規模感
大規模な事前学習データセット(例:数テラバイトの Web テキスト)では、モデルは各バッチで数千〜数万のトークンを並行して計算します。単一のステップの損失は、このバッチにわたる平均クロスエントロピーであり、モデルが収束するまで、数百万ステップ(数か月)にわたって繰り返されます。最先端のモデルをトレーニングするための総計算コストは、約 3 × 10^24〜3 × 10^25 FLOPS です。
以前に見た「体内のすべての細胞の分割の 100 億倍」という値と比較すると、実際のトレーニングが、並行処理インフラストラクチャの観点からどれほど極端であるかを理解できます。
参考文献
このエピソードで紹介したすべてのコンテンツ、シナリオ、たとえ話、および図は、BioPlaygroundのオリジナルであり、以下の外部リソースは、これらの概念を学習するのに役立つ可能性があります。
- Transformerの原論文: Vaswani et al., "Attention Is All You Need" (NeurIPS 2017)
- GPT-3論文: Brown et al., "Language Models are Few-Shot Learners" (NeurIPS 2020)
- RLHFの原則: Christiano et al., "Deep Reinforcement Learning from Human Preferences" (NeurIPS 2017)
- DPO論文: Rafailov et al., "Direct Preference Optimization" (NeurIPS 2023)
- 深層学習の可視化教育: 3Blue1Brown "Deep Learning" シリーズ (YouTube) — 教授法における参考資料として。
- 自然言語処理の標準的な教科書: Jurafsky & Martin, "Speech and Language Processing" (オンラインで公開されています)。
このエピソードは、ガイドおよび出発点です。次の14エピソードでは、各概念を一つずつ掘り下げていき、最終エピソードでこのガイドに戻ってきます。
次の概念
この最初のエピソードは、マップの役割についてです。次のエピソードで、それぞれを詳しく見ていきます。
フェーズ1 — 原理
- エピソード#2
neural-network-basics— ニューラルネットワークとは? ダイヤルとスイッチで構成された静的な構造。 - エピソード#3
how-nn-learns— どのように学習するのか? 自由エネルギー最小化の観点からの勾配降下法。 - エピソード#4
backpropagation-intuition— エラーの民主的な綱引き。逆伝播の直感。 - エピソード#5
transformer-and-embedding— トークンが意味空間に配置される瞬間。 - エピソード#6
attention-mechanism— "PC" のさまざまな意味をどのように区別するか。
フェーズ2 — 応用
- エピソード#7
prompt-engineering-basics— 確率を目的の方向に導く。 - エピソード#8
structured-output— JSONモードで関数のように使用する。 - エピソード#9
context-window-and-rag— どれくらいの情報を保持できるか、およびRAG。 - エピソード#10
embedding-and-vector-db— ベクトルで検索する。 - エピソード#11
hallucination-and-alignment— 幻覚の数学的な必然性と対策。
フェーズ3 — ツールとワークフロー
- エピソード#12
cursor-and-claude-code— 実際のコーディングにおけるVibeコーディング。 - エピソード#13
mcp-and-agent— MCPとAIエージェント。 - エピソード#14
local-llm— Ollamaを使用して、個人のモデルをローカルで実行する。
フェーズ4 — 生物学的統合
- エピソード#15
bio-ai-integration— 実際のDevBenchへの橋。