Andrej Karpathyによる「ChatGPTのようなLLMの徹底解説」動画まとめ
(anfalmushtaq.com)- Andrej Karpathyによる3時間31分のLLM徹底解説動画を手短に追いながら、動作原理・ファインチューニング用語・プロンプト・ハルシネーション・DeepSeek-R1までを一度に把握したい読者向けの要約
- LLMは大規模なWebテキストを整備してトークン化した後、コンテキストウィンドウ内で次のトークンを予測するよう学習され、長いコンテキストはより多くの情報を反映できる一方で計算コストを押し上げる
- 事前学習済みのbase modelはインターネット風の文章を続けて書く確率的オートコンプリートに近く、対話型アシスタントになるにはSFTやアラインメントといった事後学習が必要
- ハルシネーションを減らすには、分からない質問を拒否させるか、ツール利用・RAGで最新情報を参照させる必要があり、数学・論理問題では段階的生成と外部ツールのほうが適している
- 強化学習は複数の回答を試し、成功した解法を学習させるが、RLHFでは報酬モデルが人間の選好の近似にすぎないため、過最適化や報酬モデル悪用のリスクが残る
この要約が想定する読者
- Andrej Karpathyの"Deep dive into LLMs like ChatGPT"は3時間31分の動画で、長時間視聴せずに要点だけを得たい読者向けのTL;DR
- 特に次のような読者に向いている
- LLMが表面的ではなく実際にどう動いているのか知りたい人
chat_template、ChatMLのようなファインチューニング用語を理解したい人- なぜプロンプトがうまく機能したり失敗したりするのかを理解し、プロンプトエンジニアリングを改善したい人
- LLMのハルシネーションを減らしたい人
- DeepSeek-R1がなぜ注目されているのか理解したい人
- 動画で使われたExcalidrawダイアグラムは、CDNで別途ホストされているダウンロードリンクから入手できる
事前学習データとトークン化
- LLMはインターネットをクロールして大規模テキストデータセットを作るが、元データには重複コンテンツ、低品質なテキスト、無関係な情報が多いため、学習前に強いフィルタリングが必要
- 英語専用モデルを作る場合は、英語である確率が高いテキストだけを残すヒューリスティックが必要
- 例示データセットのFineWebは12億ページ以上のWebページを含む
- 整備されたテキストは、そのままモデルに入るのではなく、反復パターンを表すIDであるトークンへ変換される
- 代表的手法はByte Pair Encoding (BPE)
- GPT-4は100,277個のトークンを使い、トークン数はモデル開発者の設計次第
- Tiktokenizerでトークン化過程を可視化できる
ニューラルネットワークの入出力と内部動作
- トークン化されたデータはニューラルネットワークに入力され、モデルは定められたコンテキストウィンドウの中で次のトークンを予測する
- 一部のモデルは8,000トークン、GPT-4は最大128kコンテキストを使う
- モデルは学習済みパターンに基づいて次のトークンを予測し、逆伝播で誤差を減らすよう重みを調整する
- 長いコンテキストウィンドウは入力のより多くの内容を反映できるが、計算コストを増やす
- モデル内部では数十億のパラメータが入力トークンと相互作用し、次トークンの確率分布を生成する
- この過程は効率のため最適化された複雑な数式で定義される
- アーキテクチャは速度、精度、並列化のバランスを取るよう設計されている
- プロダクションレベルのLLMアーキテクチャの例はbbycroft.net/llmで見られる
- LLMの推論結果は決定論的ではなく確率的
- 同じモデルを実行しても出力は少しずつ異なる
- 多くの場合は学習データに似たパターンに従う新しいテキストを生成するが、場合によっては学習データの一部と正確に一致することもある
- このランダム性は創造的な出力の源でもある一方、誤情報を作り出すハルシネーションにもつながる
GPT-2と学習コストの変化
- OpenAIが2019年に公開したGPT-2は、初期のTransformerベースLLMの例
-
16億パラメータ
-
1024トークンのコンテキスト長
- 約1,000億トークンで学習
- 当初の学習コストは4万ドル
- その後、効率は大きく改善された
- Andrej Karpathyはllm.cを使ってGPT-2を672ドルで再現
- 最適化されたパイプラインを使えば学習コストは約100ドルまでさらに下げられる
- コスト低下は、よりクリーンなデータとより良い実行環境によるもの
- より優れた事前学習データ抽出手法によってデータセットが洗練され、モデルはより速く学習できる
- より強力なハードウェアと最適化されたソフトウェアにより、同じ結果に必要な計算量が減る
-
Open base modelとbase modelの限界
- ここでいうopen base modelとは、OSIのオープンソースAI定義を厳密に満たすモデルではなく、重みは公開されていても学習データや完全な再現可能性までは提供されない可能性があるモデルを指す
- OpenAIのGPT-2はopen-weightかつsource-availableなモデルだが、学習データが公開されていないため、OSI定義の完全なオープンソースではない
- MetaのLlama 3.1 405Bはopen-weightモデルだがオープンソースモデルではない
- base modelは事前学習済みの生の言語モデルであり、実用的に使うにはファインチューニングやアラインメントが必要
- インターネット規模のフィルタリングされていないデータで学習されるため、生の続き文章を生成する
- 人間の意図に合わせたアラインメントが不足している
- base modelを公開するには通常、次の2つが必要
- base modelの動作特性は次のとおり
- トークン単位でインターネット風のテキストを生成する
- 実行のたびに出力が少し変わる
- 学習データの一部をそのまま再現できる
- パラメータはインターネット知識の損失圧縮されたzipファイルのように見なせる
- インコンテキスト例を使った翻訳や、構造化されたプロンプトに基づく基本的なアシスタントに利用できる
- Llama 3 405B base modelを直接試せるが、本質的にbase modelは高価なオートコンプリートに近い
事前学習から事後学習へ
- base modelは事前学習済みのテキスト生成器にすぎず、実用的なアシスタントを作るには事後学習が必要
- テキストは生成できても、常に有用な答えを返すわけではなく、ハルシネーションも多い
- 事後学習は、モデルがより良い応答を返すようにファインチューニングする工程
- 事前学習は数か月かかることもあるが、事後学習は数時間で終わるほどはるかに低コスト
教師ありファインチューニングと対話データ
- 事前学習後は、インターネットのデータセットではなく人間/アシスタント対話データでモデルを事後学習し、より対話的で有用にする
- モデルアルゴリズム自体は変えず、既存パラメータをファインチューニングする
- 初期の事後学習データセットは人手で選別されていたが、UltraChatのようなモデルは合成対話を生成できる
- 対話構造を教えるためにchat templateを使う
- ユーザー入力とアシスタント応答を区別する構造を定義する
- Hugging Faceのchat templatingドキュメントで関連内容を確認できる
- 例のテンプレートは次のとおり
<|im_start|>system<|im_sep|>You are a helpful assistant<|im_end|>
<|im_start|>user<|im_sep|>What is 4 + 4?<|im_end|>
<|im_start|>assistant<|im_sep|>4 + 4 = 8<|im_end|>
<|im_start|>,<|im_end|>は対話構造を助ける特殊トークン- モデルは事前学習中にこれらの新しいトークンを見ておらず、事後学習で導入される
- OpenAIのInstructGPT論文は対話向けLLMのファインチューニングを扱っている
- 事後学習データセットの例としてOASST1があり、合成データセットはNomic Atlasで可視化できる
ハルシネーション、ツール利用、記憶
- LLMの主な問題の1つは、自信ありげに間違ったり作り話の情報を生成したりするハルシネーション
- 事後学習の過程で、モデルは常に答えなければならないと学習してしまうことがある
- 質問が意味をなさなくても、「分からない」と言う代わりに応答を生成しようとする
- MetaのLlama 3論文は、事実性を改善するために次の手順を使う
- 学習データの一部を抽出する
- Llama 3でそのデータに関する事実質問を生成する
- Llama 3が回答を生成する
- 元データと比較して応答を採点する
- 間違っていれば、誤った応答を認識して拒否するようモデルを学習させる
- ハルシネーションを減らす1つの方法は、モデルが答えを知らないときにツールを使うよう学習させること
<|im_start|>user<|im_sep|>Who is Orson Kovacs?<|im_end|>
<|im_start|>assistant<|im_sep|><SEARCH_START>Who is Orson Kovacs?<SEARCH_END><|im_end|>
[...search results...]
<|im_start|>assistant<|im_sep|>Orson Kovacs is ....<|im_end|>
- 反復学習を通じて、モデルは知らない内容を作り上げるより検索するようになる
- モデルパラメータは1か月前の出来事をぼんやり覚えているようなあいまいな記憶を保存し、コンテキストトークンは最新情報を保持する作業記憶のように機能する
- RAGがうまく機能するのは、モデルが関連文書に直接アクセスできると推測する必要が減るから
モデルの自己認識と推論トークン
- チューニングされていないbase modelに「あなたは誰か」と尋ねると、ハルシネーションを起こす可能性がある
- OpenAI製ではないのに、インターネットデータではAIモデルとOpenAIの結びつきが強いため、OpenAIが作ったと答えることがある
- これを修正する方法は2つある
- 自己同一性を学習データにハードコードする
- 対話開始ごとにsystem messageで正体を伝える
- 別途学習がなければ、LLMは自分自身に関する実知識を持たないまま、一般的なAI応答に戻る
- LLMは人間のように推論するのではなくトークンを逐次生成するため、きちんと考えさせるには構造化された生成が必要
- いきなり答えに飛ぶと推測に近くなることがある
- 解法を段階的に展開するとより信頼しやすい
- モデルのレイヤー数は有限なので、1トークンの出力に無限の処理はできず、問題を小さな段階に分けるほうが正解にたどり着く可能性が高い
- 数学や論理の作業では、モデル自身の推論だけに頼るより外部ツールを使わせるほうがよい
強化学習とDeepSeek
- 事前学習済みモデルは知識を持っていても、その知識を効果的に使う方法はまだ分かっていない
- 教師ありファインチューニングは人間の応答を模倣するよう教える
- 強化学習は試行錯誤を通じてより良い解決策を見つけさせる
- 強化学習手順の例は次のとおり
- 同じ問題に対して15個の解答を生成する
- そのうち4個だけが正解なら、正しくて短い上位の解答を選ぶ
- 選ばれた解答で学習し、この過程を何度も繰り返す
- この過程に人間は直接入らず、モデルは同じ問題に対して多くの解答を作り、正解に到達した解答を選んで学習する
- 事前学習と事後学習はかなり定式化されているが、強化学習の工程は今なお活発に研究されている
- OpenAIのような企業も多くの研究をしているが、非公開部分がある
- DeepSeekの論文は、LLM向けのRLとFTを公開ベースで扱い、推論能力を引き出す方法を説明している
- DeepSeek論文の例では、時間が経つにつれてモデルはより多くのトークンを使って推論を改善する
- いわゆる「aha」瞬間は、単なるデータセット学習だけでは明示的に教えにくく、強化学習を通じてモデル自身が見つける必要がある性質のもの
- 利点は推論が向上すること、欠点はより多くのトークンを消費すること
AlphaGoと強化学習の可能性
- Goを極めた研究では、強化学習によりモデルは人間を模倣するだけでなく、試行錯誤で独自の戦略を見つける
- AlphaGo対局で現れたMove 37は、学習データにあった手ではなく、勝つためにモデルが生み出した戦略として紹介されている
- 研究者はこの一手が人間から出る確率を1万分の1と予測した
- 強化学習にはまだ未開拓の領域が多く、研究が続いている
- LLMが思考やアイデアを表現する最善の方法だと判断すれば、独自言語を作り出す可能性もある
検証できない領域とRLHF
- 検証可能な領域では、人間を強化学習のループから外しやすく、LLMが自ら性能の判定者のように働ける
- ジョーク作成や要約のような検証できない領域では、人間をループに含める必要がある
Write a joke about pelicansのようなプロンプトでは、ジョークの質を自動判定するのが難しい- LLMはジョークを生成できても、その質を大規模に判定するのは難しい
- 大量の人手を投入するのも難しいため、RLHF論文で扱われる方法が必要になる
- RLHFでは別個の報酬モデルを学習し、大規模な応答品質判定に使う
- 人間が応答の順位を評価する
- その評価で報酬モデルを望ましい水準まで学習する
- その後は報酬モデルがLLM応答品質を大規模に判定する
RLHFの利点と限界
- RLHFの利点は次のとおり
- ジョーク作成や要約のような検証できない領域でも強化学習を可能にする
- ハルシネーションを減らし、応答をより人間らしくしてモデルを改善する場合が多い
- 人間は答えを生成するより評価するほうが簡単というdiscriminator-generator gapを活用する
- 例: 「詩を書け」より「この5つの詩の中でどれが最も良いか」を選ぶほうが簡単
- RLHFの限界も明確
- 報酬モデルは実際の人間ではなく、人間の選好のシミュレーションにすぎない
- 強化学習は報酬モデルの弱点を悪用する敵対的な例を作り出せる
- 例えば1,000回更新した後に、「ペリカンについての最高のジョーク」が
the the the the the the the theのような無意味な結果になることがある
- こうした問題はAdversarial Machine Learningとして知られている
- システムを悪用する方法は無数にあるため、悪い応答をふるい落とすのは単純ではない
- 過最適化や性能低下を防ぐため、報酬モデル学習は数百回の反復程度に制限される
今後のLLMの方向性
- 今後、LLMは複数の方向へ拡張していく可能性がある
- マルチモーダル能力: テキストだけでなく画像、音声、動画を理解・生成する
- エージェント型モデル: 単一タスクを超え、長期記憶、推論、ミス修正へ進む
- 日常的で見えないAI: ワークフローに自然に統合される
- コンピュータ利用AI: テキスト生成だけでなく、ソフトウェアと相互作用し、行動を実行する
- テスト時学習: 精度をその場で高めるためリアルタイムに適応する
LLMを追いかけ、試せる場所
- LLMの進化を追跡できるリソース
- LM Arena: 新しい言語モデルのベンチマーク
- AI News: AI研究を扱うニュースレター
- X (Twitter): 多くの研究者が更新情報を共有している
- さまざまなLLMを試せる場所
- Proprietary Models: OpenAI GPT-4、Google Gemini、Anthropic Claudeなど
- Open-Weight Models: DeepSeek、Meta Llamaなどで、Together.aiから利用可能
- ローカル実行: OllamaまたはLM Studioを利用
- Base Models: Hyperbolicで探索可能
まだコメントはありません。