GOCLAWLLM ENGINEERING
GoClaw 首页

21. 实验资料与 Notebook

实验入口15~30 分钟
学习目标
  1. 选择正确 Notebook 与依赖
  2. 从干净内核执行全部单元格
  3. 按模板保存实验证据
前置知识
  • 完成环境章节

本章产物下载并解压实验包,成功运行环境 Notebook。

本站只托管静态文档和下载文件,不运行用户代码,也不提供共享 Jupyter 服务。Notebook 应在本地、个人云环境或自有 GPU 实例中执行。

21.1 Notebook 下载

实验资源要求下载
环境自检CPU,约 1 分钟00-environment-check.ipynb
张量、梯度与优化CPU,约 1 分钟01-tensor-autograd.ipynb
因果注意力CPU,约 1 分钟02-attention.ipynb
训练最小 GPTCPU 约 2~5 分钟,MPS/CUDA 可加速03-tiny-gpt.ipynb
KV CacheCPU,约 2 分钟04-kv-cache.ipynb
从零实现 LoRACPU,约 1 分钟05-lora.ipynb
训练并比较 TokenizerCPU,约 2 分钟06-tokenizer.ipynb
RAG 检索与指标CPU,约 2 分钟07-rag-retrieval.ipynb
困惑度与成对评估CPU,约 1 分钟08-evaluation.ipynb
Next-token Loss 与 MaskCPU,约 1 分钟09-language-modeling.ipynb
DPO ObjectiveCPU,约 1 分钟10-dpo-objective.ipynb

21.2 本地运行

python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements-core.txt
python -m pip install jupyterlab
jupyter lab

Notebook 默认保存为未执行状态,避免把旧环境的输出误认为当前结果。首次运行应选择 Restart Kernel and Run All Cells;执行完成后检查断言、图表和资源使用记录。

21.3 独立代码运行顺序

# 自动微分
python code/01_tensor_autograd.py

# 手写注意力
python code/02_attention_from_scratch.py

# 训练 BPE
python code/03_train_bpe.py

# 从零训练 TinyGPT
python code/04_tiny_gpt.py train --steps 2000
python code/04_tiny_gpt.py generate --prompt "注意力"

# 手写 LoRA
python code/05_lora_from_scratch.py

# 真实模型 LoRA/SFT
python -m pip install -r requirements-finetune.txt
python code/10_prepare_sft_data.py --input data/sft_train.jsonl --output-dir artifacts/sft-data
python code/06_sft_lora.py --epochs 1

# 偏好数据校验与 DPO dry-run
python code/13_dpo_lora.py --data data/preference_train.jsonl --dry-run

# 困惑度评估
python code/07_evaluate_perplexity.py

# 最小 RAG 检索与离线评估
python code/08_rag_retrieval.py --query "KV Cache 为什么占用内存?"
python code/11_rag_pipeline.py --query "KV Cache 为什么占用内存?"
python code/08_rag_retrieval.py --evaluate
python code/12_evaluate_cases.py

# 完成 TinyGPT 训练后启动本地 API
python code/09_serve_tiny_gpt.py --checkpoint artifacts/tiny_gpt.pt

实验验收不以命令全部执行结束为标准。每一步都需要回答三个问题:

输入和输出的张量形状是什么?
优化目标或系统瓶颈是什么?
采用什么对照实验证明该解释?

能够稳定回答这三个问题,才说明实验已经产生可迁移的工程知识。

21.4 应该从哪个实验开始

当前状态起点下一步
从未使用 PyTorch00 → 01数学基础与语言模型形状
会训练普通神经网络02 → 03TinyGPT 完整闭环
只会调用模型 API02、04推理、评估与服务
已做过 LoRA06、08检查数据、对照与统计方法
正在做知识库07扩展真实 query,再连接生成模型
准备部署04、08 + 服务章节容量、错误路径和可观测性

不要一次运行全部实验再回头阅读。推荐节奏是:先预测输出和失败点,运行一个 Notebook,修改一个变量,记录结果,再进入下一章。

21.5 下载与运行故障

现象处理
Notebook 找不到 data/从压缩包根目录启动 Jupyter,或保持 notebooks/code/data/ 相对结构
Kernel 与终端 Python 不同在 Notebook 打印 sys.executable,重新选择虚拟环境 kernel
模型下载很慢或失败先完成不下载模型的 00~05、07~08;不要让网络阻塞原理主线
MPS/CUDA OOM缩小 batch、context 和模型;记录实际配置,不静默更改
图表无输出检查 Matplotlib backend;命令行测试出现非交互警告不影响断言
旧输出看似成功Restart Kernel and Run All Cells,禁止依赖乱序执行的变量

资源页验收:从全新目录解压后,只根据本页命令完成环境 Notebook;能够说明每个生成文件的位置,并用实验模板保存第一份报告。