llama.cpp 詳解 ― 推論エンジンの内部を読む

llama.cpp 詳解 ― 推論エンジンの内部を読む

艶雨 / 2026年7月

【C++ は読めるが llama.cpp の中身は知らない人のための、推論エンジン読解ガイド】

「llama.cpp は動かせる。でも、その中で何が起きているかは説明できない」──そんなあなたのための一冊です。

本書は、ローカル LLM 推論エンジン llama.cpp のソースコードを読み解き、「入力したプロンプトの文字列が、次の 1 トークンになって返ってくるまで」に何が起きているのかを、順を追って解説する技術書です。

■ 本書で手に入るもの ・プロンプト → トークン化 → 埋め込み → 計算グラフ → バックエンド実行 → サンプリング という推論の骨格を、自分の言葉で説明できるようになります ・テンソル計算ライブラリ ggml と、その上に乗る llama.cpp 本体の役割分担を区別できるようになります ・量子化・KV キャッシュ・バックエンドの選択が、速度やメモリにどう効いてくるのかを、仕組みから理解できます ・トラブルや性能問題に出会ったとき、当て推量ではなく仕組みから原因を切り分けられるようになります

■ 扱う範囲 ・ggml(テンソルと計算グラフ)、メモリアロケータ、バックエンド抽象 ・CPU / Metal / CUDA / Vulkan の各バックエンドと量子化カーネル ・GGUF フォーマットの読み込み、モデルローダ、トークナイザ ・計算グラフの構築、llama_context とデコード、KV キャッシュ ・サンプリング、GBNF による文法制約、チャットテンプレート ・量子化ツール、サーバ、LoRA・埋め込み・投機的デコード

■ 本書の進め方 ① まず全体像を図で俯瞰し、そこから各ブロックを段階的に詳細化していきます ② 中核となるファイルは、逐行に近い精度で精読します ③ 理解を助ける図解を豊富に収録しています ④ 解説対象は llama.cpp の特定コミット(build b9503 付近)にピン留めし、コードの場所はファイルパスと関数・構造体の名前で示します

■ こんな方におすすめ ・llama.cpp を動かせるが、内部で何が起きているかは説明できない方 ・量子化・GGUF・KV キャッシュといった言葉を、自分の言葉で語れるようになりたい方 ・ドキュメントではなく、ソースそのものから理解したい C++ の読める方

■ 必要な前提知識 C++ の基本文法(関数・構造体・ポインタ・テンプレートが読めるレベル)。LLM や Transformer の知識は前提としません。トークンや埋め込み、Attention、KV キャッシュといった概念は、ソースを読むのに必要な範囲でゼロから積み上げます。LLM の学習や数学的導出には踏み込まず、「学習済みモデルを読み込んで推論する」という一本の道筋に集中します。

全 7 部・全 26 章に加え、付録として「型と対応表」「環境構築」「用語集」を収録。表面的な API は変わっても、「トークン化 → 埋め込み → 計算グラフ → 実行 → サンプリング」という推論の骨格は大きくは変わりません。本書が手渡す「推論パイプラインの地図」は、llama.cpp のバージョンが上がっても、別の推論エンジンに触れても、確かな足場になります。

有償章を読むには

有償章の閲覧には書籍のご購入が必要です。

Amazon で購入する

目次

  • 1 第1章 本書の対象読者とゴール 無料
  • 2 第2章 LLM 推論の最小概念 無料
  • 3 第3章 llama.cpp の全体像 無料
  • 4 第4章 `examples/simple` を読む 有料
  • 5 第5章 `llama-cli` の起動から対話ループ 有料
  • 6 第6章 ggml の中核:`ggml_tensor` と計算グラフ 有料
  • 7 第7章 メモリーアロケーターとグラフ実行 有料
  • 8 第8章 バックエンド抽象とスケジューラー 有料
  • 9 第9章 CPU バックエンド:演算カーネルと SIMD 有料
  • 10 第10章 量子化:フォーマットとカーネル 有料
  • 11 第11章 GPU バックエンド① Metal:全体像とホスト側 有料
  • 12 第12章 GPU バックエンド② Metal のカーネル(MSL) 有料
  • 13 第13章 GPU バックエンド③ CUDA:多ベンダー、多世代の実行系 有料
  • 14 第14章 GPU バックエンド④ Vulkan:ベンダー非依存の実行系 有料
  • 15 第15章 GGUF:1 ファイルで推論に必要なすべてを渡す 有料
  • 16 第16章 モデルローダー:llama_model_loader と mmap 有料
  • 17 第17章 トークナイザーと語彙 有料
  • 18 第18章 計算グラフ構築:Transformer の設計図を組み上げる 有料
  • 19 第19章 llama_context と batch、decode が担う推論の司令塔 有料
  • 20 第20章 KV キャッシュとメモリー管理 有料
  • 21 第21章 サンプリング 有料
  • 22 第22章 文法制約 GBNF 有料
  • 23 第23章 チャットテンプレート 有料
  • 24 第24章 量子化ツール 有料
  • 25 第25章 サーバー 有料
  • 26 第26章 LoRA、埋め込み、投機的デコード 有料
  • 27 付録 A 対応表 有料
  • 28 付録 B 環境構築 有料
  • 29 付録 C 用語集 有料