LLMの仕組みを「なんとなく」で終わらせたくない人向けに、Outcome Schoolが公開した学習教材が話題になっています。

この記事では、GitHubで無料公開されている「LLM Internals」シリーズの全体像と、実務者が押さえるべき学習順序を整理します。

この記事でわかること

  • LLM Internalsがカバーするトピックの全体像
  • tokenizationから推論最適化までの推奨学習順序
  • KV CacheやSpeculative Decodingなど実務で効く最適化技術の要点
  • 他の教材との違いと、どんな人に向いているか

https://github.com/amitshekhariitbhu/llm-internals

LLM Internalsとは何か

LLM Internalsは、Outcome Schoolの創設者であるAmit Shekhar氏が公開しているオープンソースの学習教材です。Apache License 2.0で配布され、GitHubリポジトリにはブログ記事と動画へのリンクがまとめられています。

シリーズのスローガンは「Learn LLM internals step by step – from tokenization to attention to inference optimization」です。LLM(大規模言語モデル)がテキストをどう数値に変換し、どう推論し、どう高速化するのかを、部品ごとに分解して学べる構成になっています。

なぜ今、内部構造の理解が必要か

ChatGPTやClaudeなどのLLMを業務で使う場面は増えています。一方で、多くの解説は「プロンプトの書き方」か「数式の証明」のどちらかに偏りがちです。

プロンプトだけでは、コンテキスト長の制限やレイテンシの原因を説明できません。数式だけでは、なぜ本番環境でKV Cacheやバッチングが必要なのかが腹落ちしにくいです。

LLM Internalsは、この中間を狙った教材です。各ブログは独立して読めますが、推奨順に進めると「トークン化→アテンション→学習→アーキテクチャ→推論最適化」という一本の線で理解がつながります。

学習パスの全体像

Outcome Schoolのニュースレターが示す推奨順序は、大きく5つのパートに分かれます。

パート1:Tokenization(テキストの数値化)

LLMは単語を直接理解しません。まずテキストをトークンと呼ばれる小片に分割し、それぞれを数値に変換します。この分割処理をtokenization(トークン化)と呼びます。

教材の出発点はBPE(Byte Pair Encoding)です。BPEは文字と単語の中間サイズのサブワードを作るアルゴリズムで、GPT系やLLaMA系など多くの現行LLMが採用しています。語彙サイズは通常32,000〜256,000トークンで、LLaMA 3は約128K、Gemmaは約256Kと公式ブログで説明されています。未知語もサブワードに分解できるため、語彙爆発を避けつつ意味を保てる点が強みです。

パート2:Attention(トークン間の関係づけ)

トークン化の次はアテンション機構です。Query(問い合わせ)、Key(索引)、Value(実データ)の3要素を使い、各トークンが過去のどのトークンを参照すべきかを計算します。

教材では数値例つきでQ・K・Vの計算を解説し、続けて√dₖによるスケーリングの理由、因果マスク(未来のトークンを見せない仕組み)まで踏み込みます。デコーダのみのLLMが文章生成に使われる理由も、ここで腹落ちしやすくなります。

パート3:学習の仕組み

順伝播だけではモデルは賢くなりません。逆伝播(backpropagation)とクロスエントロピー損失を通じて、予測誤差が各パラメータにどう伝わるかを学びます。GPTやBERTの学習でも使われる損失関数の意味が、ここで具体化されます。

パート4:Transformerアーキテクチャ

個別部品を理解したうえで、Transformer全体のデータフローを読み解きます。埋め込み、位置エンコーディング、マルチヘッドアテンション、フィードフォワードネットワーク、残差接続、レイヤー正規化がどう組み合わさるかを追います。エンコーダのみ、デコーダのみ、エンコーダ・デコーダの3バリアントの違いも解説されています。

パート5:推論最適化

学習済みモデルをユーザーに返す段階では、速度とメモリがボトルネックになります。教材はここを厚く扱っており、実務との接続が強いパートです。

推論最適化で押さえる5つの技術

https://outcomeschool.com/blog/llm-inference-optimization

KV Cache

LLMは1トークンずつ順番に生成します。各ステップで過去トークンのKeyとValueを再計算すると、シーケンスが長くなるほど無駄が増えます。KV Cacheは一度計算したKeyとValueを保存し、新トークン分だけ計算する手法です。

公式ブログの数値例では、100トークン生成時にKV CacheなしだとKey/Valueの再計算が合計5,049回、ありだと101回に抑えられると説明されています。約50倍の計算削減です。代わりにメモリ消費が増えるトレードオフがあります。

Paged Attention

KV Cacheは高速化に有効ですが、リクエストごとに大きな連続メモリを確保すると空き領域が無駄になります。Paged AttentionはOSの仮想メモリの考え方を借り、KV Cacheを固定サイズの非連続ブロックに分割して管理します。vLLMの中核技術として知られ、同時接続ユーザー数の増加に直結します。

Flash Attention

標準的なアテンションはN×Nの巨大行列を作るため、GPUの高帯域メモリ(HBM)への読み書きがボトルネックになります。Flash Attentionはタイル分割とオンラインソフトマックスで、同じ結果をより少ないメモリ転送で計算します。現行の多くのLLMが採用する理由が、ここで説明されます。

Speculative Decoding

デコードフェーズはメモリ帯域に律速され、GPUの計算能力が余りがちです。Speculative Decodingは小さなドラフトモデルが数トークンを先に生成し、大きなターゲットモデルが一括検証する手法です。公式ブログでは品質を落とさず2〜3倍の高速化が得られるケースがあると説明されています。

Continuous Batching

静的バッチングは、バッチ内の最長シーケンスが終わるまでGPUが待たされます。Continuous Batchingは、あるリクエストの生成が終わった瞬間に新しいリクエストをバッチへ差し込み、GPUを常に稼働させます。本番推論のスループット改善に欠かせない考え方です。

発展トピック

基本パートの先には、Mixture of Experts(MoE)、Grouped Query Attention(GQA)、RoPE(回転位置エンコーディング)、LoRA(低ランク適応)、RLHF(人間フィードバックからの強化学習)、DeepSeek-V4の解説なども追加されています。シリーズは「継続的に拡張中」とREADMEに明記されており、新トピックが順次リンクされます。

料金と利用条件

リポジトリ本体とリンク先の多くのブログ記事は無料で読めます。Outcome Schoolの有料プログラム(AI and Machine Learning Program)への導線はありますが、GitHub上の教材目次だけでも相当な範囲を学べます。商用利用はApache 2.0の範囲内で可能です。

他の教材との違い

論文やハンドブックは正確ですが、初学者には急勾配になりがちです。逆に入門動画は直感は得やすいものの、Paged AttentionやSpeculative Decodingまで一気通貫では届きにくいです。

LLM Internalsの強みは、数値例つきのブログと動画を組み合わせ、内部構造と推論最適化を同じ学習パスで扱う点です。AIエンジニアとしてRAGやエージェントを組む前に、モデルが何をしているかを説明できる状態を目指す人に向いています。

学び始めるなら

まずリポジトリのREADMEで目次を確認し、BPEのブログから読み始めるのがおすすめです。すでにTransformerの概要を知っている人は、KV CacheとPaged Attentionの章から入り、自分の業務で使っている推論フレームワーク(vLLMなど)のドキュメントと照らし合わせると理解が定着しやすくなります。

LLMの黒箱感を減らし、プロンプト設計やコスト見積もりの判断材料を増やしたいなら、Outcome Schoolが公開したこの教材は有力な選択肢です。