配套 Python 示例¶
这些脚本用于把书中的公式与数据流变成可运行实验。它们强调透明、可测试和便于修改,不等同于生产实现。运行前建议创建独立虚拟环境;涉及 GPU 的库必须按官方兼容矩阵安装。
推荐运行顺序¶
01_numpy_mlp.py:NumPy 两层网络;依赖:NumPy。01_gradient_check.py:有限差分梯度检查;依赖:NumPy。02_attention.py:带 mask 的多头注意力;依赖:PyTorch。02_tokenizer_and_mask.py:token、padding、因果 mask 与标签右移;依赖:NumPy。03_llama_components.py:RMSNorm、RoPE、SwiGLU;依赖:PyTorch。03_rope_gqa_cache.py:RoPE、GQA 与 KV Cache;依赖:PyTorch。04_async_service.py:流式 FastAPI 服务骨架;依赖:FastAPI、Pydantic。05_rag_minimal.py:最小可追溯 RAG;依赖:NumPy。06_hybrid_rrf.py:混合检索 RRF 融合;依赖:Python 标准库。07_safe_agent_loop.py:安全边界明确的工具循环;依赖:Python 标准库。08_tiny_lm.py:可训练微型 Decoder-only LM;依赖:PyTorch。09_lora.py:手写 LoRA Linear;依赖:PyTorch。09_sft_label_mask.py:多轮 SFT 标签掩码;依赖:Python 标准库。10_dpo.py:DPO 损失与组内优势;依赖:PyTorch。11_vit_patchify.py:ViT patchify 与逆变换;依赖:PyTorch。12_ddp_minimal.py:torchrun 启动的最小 DDP;依赖:PyTorch。13_int8_quantization.py:对称 int8 量化;依赖:NumPy。14_interview_drills.py:面试代码练习;依赖:NumPy。14_lru_cache.py:O(1) LRU Cache;依赖:Python 标准库。
学习方法¶
- 先读文件顶部说明和函数签名,写下你预测的输入输出形状。
- 运行原始脚本,确认断言通过;记录 Python、库版本和硬件。
- 每次只改一个变量,例如序列长度、头数、rank、量化粒度或缓存容量。
- 在修改前写预期,修改后解释结果;若失败,把最小输入加入回归测试。
- 生产化时补充配置管理、日志、鉴权、并发、容错、性能测试和安全审计。