☰
cs336_note_and_hw笔记体系导览:6章PDF学习路线与Llama-3.1-8B实验环境搭建清单
2026/10/14 18:04:57 网站建设 项目流程

【免费下载链接】cs336_note_and_hw

记录我在cs336学习时的笔记和作业

项目地址:https://gitcode.com/gh_mirrors/cs/cs336_note_and_hw
点击查看免费下载

cs336_note_and_hw是斯坦福 CS336《Building Large Language Models》课程的完整学习资料仓库:它把 6 章的中文 PDF 笔记、全部编程作业代码(从零手写 Transformer 到 GRPO/DPO 强化学习对齐)和 Llama-3.1-8B 实验配置整理在一起,帮你用一条清晰的路线走通"构建大语言模型"。本文带你导览这套笔记体系,并给出一份可直接照做的 Llama-3.1-8B 实验环境搭建清单。

🗺️ 仓库总览:一套笔记 + 六章作业

仓库的组织方式非常简单,按"章节"切分,每章一个目录:

目录内容核心主题
chapter1/hw1 ~ hw7Transformer 基础:Tokenizer、RoPE、注意力、训练循环
chapter2/hw1 ~ hw2系统优化:Flash Attention、Triton、数据并行
chapter3/hwScaling Law 拟合实验
chapter4/hw网页数据清洗与质量分类全流程
chapter5/hw3 ~ hw7SFT、GRPO 等 LLM + RL
chapter5-supplement/hw1 ~ hw4基于 Llama-3.1-8B 的评估、指令微调与 DPO
笔记/8 份 PDF各章节中文笔记
原始官方讲义/6 份 PDF斯坦福 Assignment 1~5 官方讲义

整体学习路线就是:第 1 章打地基 → 第 2 章提速 → 第 3 章理解规模 → 第 4 章处理数据 → 第 5/6 章对齐模型。

📘 6 章 PDF 笔记:从哪个文件读起

所有笔记集中在 笔记/ 目录,作者按"章节完整版"的方式组织,建议按下面顺序阅读:

  1. 第一章完整版v1.pdf—— Tokenizer、Embedding、注意力等基础组件,对应难度最高的 Ch.1 作业;
  2. 第二章完整版v1.pdf—— Flash Attention、分布式训练与优化技巧;
  3. 第一二章合并完整版v1.pdf—— 前两章的合并版,适合一次性通读;
  4. 第三章.pdf—— Scaling Law:模型规模、数据量与性能的关系;
  5. 第四章v1草稿.pdf—— 数据清洗与质量过滤;
  6. 第五章笔记初版.pdf与第五章补充(DPO)笔记初版.pdf笔记初版.pdf)—— SFT、GRPO 与 DPO 对齐;
  7. 1-6完整版笔记初版(含目录)(纰漏较多).pdf(纰漏较多).pdf)—— 全 6 章合集(约 13MB),适合当完整手册翻查。

💡 官方原始讲义也一并收录在 原始官方讲义/ 下,如 cs336_spring2025_assignment1_basics.pdf 至 cs336_spring2025_assignment5_supplement_safety_rlhf.pdf,可与笔记对照着看。

🧩 第 1 章作业:手写 Transformer 的完整拼图

第 1 章是所有作业中分量最重的部分(作者标注难度 5 星),把 Transformer 拆成了一个个可独立实现的模块,目录结构如下:

chapter1/ ├── hw1/ pair_all_bpe_tokenzier.py # BPE 分词器 ├── hw2/ tokenizer_encode.py # Tokenizer 编码 ├── hw3/ softmax.py、rope.py、causal_multi_head_attention.py ... ├── hw4/ adamw.py、lr_cosine_shedule.py ... ├── hw5/ dataloader.py、checkpoint.py └── hw7/ final_train.py、final_inference.py # 完整训练/推理脚本

其中 causal_multi_head_attention_with_rope.py 是核心中的核心——带 RoPE 的因果多头注意力。笔记中对这一块的推导非常直观,旋转矩阵的几何意义一图看懂:

训练侧的组件同样逐块实现:adamw.py(优化器)、lr_cosine_shedule.py(余弦学习率)、checkpoint.py(断点续训)。典型的余弦学习率调度曲线长这样——先预热爬升、再平滑衰减:

⚡ 第 2 章:Flash Attention 与并行优化

chapter2/ 聚焦训练性能。两个方向:

  • hw1:用 Triton 手写 Flash Attention。triton_causal_forawrdflash_attention.py 是前向实现,仓库里还保留了 triton_backward_failure.py 与 triton_backward_success.py——这份"失败→成功"的对照记录对新手调试 Triton 反向传播非常有用;
  • hw2:数据并行。hw2-2/one_node_train.py 演示单机 DDP 训练,hw2-3/ddp_overlap_bucketed.py 探索梯度桶化与通信重叠。

📈 第 3 章:Scaling Law 拟合实验

第 3 章难度最低(1 星),适合热身:isoflop.py 完成 IsoFLOPs 曲线拟合,数据来自 isoflops_curves.json。拟合效果一目了然:

🧹 第 4 章:网页数据清洗全流程

chapter4/hw/ 把数据工程做成了可复现的流水线:

  • 过滤:filter_email.py、filter_ip.py、filter_phone_number.py 做规则清洗;
  • 去重:exact_deduplication.py 与 minhash_deduplication/minhash_deduplication.py 两级去重;
  • 质量分类:quality_classify/train_fasttext_classify.py 用 fasttext 训练分类器,turn_cc_to_fasttext_dataset.py 处理训练数据格式;
  • 安全过滤:detect_nsfw.py、detect_toxic_speech.py。

作者的 quality_classify/README.md 还记录了与官方讲义思路不同的实现取舍,值得细读。

🎯 第 5 章与补充章:SFT、GRPO 到 DPO

chapter5/ 覆盖对齐训练主线:SFT_experiment.py(监督微调)、run_grpo_train_loop.py(GRPO 训练循环,chapter5/README.md 说明了当前实验状态)、配套的 MATH 数据集在 chapter5/MATH/。

而Llama-3.1-8B 实验全部集中在 chapter5-supplement/:

  • hw1 评估基座模型:stage1_zero_shot.py 用 vLLM 跑 MMLU 零样本评估,支持--model-path /path/to/Llama-3.1-8B指定本地模型;
  • hw2 指令微调:Instruct_fine_tuning.py,作者用 A800 训练约 20 小时(详见 README.md)。训练过程的两张关键曲线:

![Llama-3.1-8B 指令微调 loss 下降曲线](https://raw.gitcode.com/gh_mirrors/cs/cs336_note_and_hw/raw/5158e7351f9f2396a9706ddd4ec1509b82bb73e3/chapter5-supplement/hw2 instruct finetuning/loss_curves.png?utm_source=gitcode_repo_files)

![Llama-3.1-8B 指令微调学习率变化曲线](https://raw.gitcode.com/gh_mirrors/cs/cs336_note_and_hw/raw/5158e7351f9f2396a9706ddd4ec1509b82bb73e3/chapter5-supplement/hw2 instruct finetuning/learning_rate.png?utm_source=gitcode_repo_files)

  • hw4 DPO:train_dpo.py + dpo_loss.py 实现直接偏好优化,实验结果(767 步更新、最佳验证准确率 0.46)记录在 summary.json:

![DPO 训练曲线(平滑版):训练损失随更新步数下降的趋势](https://raw.gitcode.com/gh_mirrors/cs/cs336_note_and_hw/raw/5158e7351f9f2396a9706ddd4ec1509b82bb73e3/chapter5-supplement/hw4 DPO/experiment results/dpo_training_curves_smoothed.png?utm_source=gitcode_repo_files)

✅ Llama-3.1-8B 实验环境搭建清单

想复现补充章的实验,按 chapter5-supplement/README.md 的说明,只需 4 步:

  1. 申请模型访问权限:Llama-3.1-8B 属于 Meta 的许可模型,需要先向 Hugging Face 提交申请并等待通过;
  2. 配置 Token 权限:在 Hugging Face 账户的 Token 设置中确认该 Token 可访问此模型;
  3. 终端登录:执行hf login,用上面的 Token 登录,之后即可正常下载模型权重;
  4. 准备推理依赖:评估脚本基于 vLLM(from vllm import LLM, SamplingParams),训练侧依赖 PyTorch + transformers;仓库要求 Python ≥ 3.12(见 pyproject.toml)。

⚠️ 注意:chapter5/README.md 提示 SFT 部分实验仍在修订(基于 V100 而非讲义要求的 H100),代码仅供参考,复现时请留意版本说明。

🧭 新手上手建议

  • 先读后跑:每章先看 笔记/ 对应 PDF,再对照作业代码,最后动手跑 chapter1/hw7/final_train.py 这类整合脚本;
  • 从低难度切入:第 3 章(1 星)适合建立信心,第 1 章(5 星)建议留足时间;
  • 实验成本心里有数:指令微调实测约 20h A800,DPO 实验约 3 小时(11151 秒),规划 GPU 时间时参考 summary.json。

整套 cs336_note_and_hw 的学习路线可以概括为一句话:笔记定框架,作业练细节,Llama-3.1-8B 实验见真章。按 6 章 PDF 顺序推进,配合本清单搭好环境,你就可以完整走一遍"构建大语言模型"的全过程。

【免费下载链接】cs336_note_and_hw

记录我在cs336学习时的笔记和作业

项目地址:https://gitcode.com/gh_mirrors/cs/cs336_note_and_hw
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询