Skip to content

llama2.c 學習索引 ​

Andrej Karpathy 的純 C Llama 2 推理實作 — 學習 LLM 底層推理的絕佳教材

學習目標摘要 ​

  • 理解 LLM 推理在 CPU 上的底層實作(純 C,無依賴)
  • 掌握 KV Cache、RoPE、RMSNorm、GQA 等推理關鍵技術
  • 學習如何將 Python 模型轉換為 C 語言可執行格式

前置知識 ​

  • C 語言基礎(指標、記憶體管理、結構體)
  • microgpt / nanochat 階段的 Transformer 知識
  • 二進位檔案與模型格式的基本概念

關鍵概念 ​

  • KV Cache:推理時緩存 Key/Value 避免重複計算
  • RoPE(Rotary Position Embedding):旋轉位置編碼
  • RMSNorm:簡化的歸一化方法
  • GQA(Grouped-Query Attention):分組查詢注意力優化
  • Tokenizer(SentencePiece):文字分詞與編碼
  • Quantization(INT8/INT4):模型量化降低記憶體需求

總覽 ​

深入閱讀 ​

核心概念 ​

學習反思 ​

實作與資源 ​

翻譯 ​

原始碼 ​

原始檔案位於 original/ 目錄:

  • original/run.c — 核心 C 推理引擎(973 行)
  • original/runq.c — int8 量化推理引擎
  • original/model.py — PyTorch Llama 2 模型定義
  • original/train.py — 分散式訓練腳本
  • original/tokenizer.py — 分詞器匯出工具
  • original/export.py — 模型權重匯出
  • original/tinystories.py — 資料集處理
  • original/sample.py — PyTorch 推理腳本