09-斯坦福CS336作业 📝

09-斯坦福CS336作业 📝

本文档介绍斯坦福大学 CS336《从零开始的语言模型》课程的 5 个作业内容及其作用,帮助学习者了解这门硬核实践课程的核心训练环节。

章节阅读路线图 🗺️

flowchart LR A["1. 作业概述"]:::overview --> B["2. Assignment 1: 基础组件"]:::a1 B --> C["3. Assignment 2: 系统与分布式训练"]:::a2 C --> D["4. Assignment 3: 缩放定律"]:::a3 D --> E["5. Assignment 4: 数据处理"]:::a4 E --> F["6. Assignment 5: 对齐与强化学习"]:::a5 F --> G["7. 作业特点总结"]:::summary classDef overview fill:#e3f2fd,stroke:#1565c0 classDef a1 fill:#e8f5e9,stroke:#2e7d32 classDef a2 fill:#fff3e0,stroke:#ef6c00 classDef a3 fill:#f3e5f5,stroke:#6a1b9a classDef a4 fill:#fce4ec,stroke:#c62828 classDef a5 fill:#e0f2f1,stroke:#00695c classDef summary fill:#fff8e1,stroke:#f57f17

阅读顺序说明

  • 第1章:了解作业整体概况和课程要求
  • 第2-6章:依次了解 5 个作业的内容和作用
  • 第7章:总结作业的整体特点和难度

1. 作业概述 📊

本章介绍 CS336 课程作业的整体概况

CS336 课程的作业以高度实践 著称,学生需要从零开始构建完整的大语言模型,而非使用现成的 API 或框架。

1.1 作业结构

课程共包含 5 个作业,对应课程的 5 个核心单元:

作业 主题 核心内容
Assignment 1 基础(Basics) 分词器、Transformer 模块、优化器、训练循环
Assignment 2 系统(Systems) 内存优化、分布式训练
Assignment 3 缩放定律(Scaling Laws) 模型缩放、计算预算优化
Assignment 4 数据(Data) 数据收集、过滤、去重
Assignment 5 对齐(Alignment) 模型对齐、强化学习

1.2 作业要求

  • 代码量巨大:相比其他 AI 课程,代码量至少是一个数量级的增长
  • 极少脚手架代码:学生需要自己编写大部分代码,仅提供单元测试和适配器接口
  • 代码 + 报告:每个作业包含两部分------代码实现和书面报告
  • 时间投入大:这是一门 5 学分的课程,需要大量的学习和开发时间

1.3 前置要求

  • 精通 Python 编程
  • 熟悉 PyTorch 和深度学习基础
  • 了解微积分、线性代数、概率统计
  • 掌握机器学习基础知识

参考资料:


2. Assignment 1: 基础组件 🔨

本章介绍第一个作业:构建大语言模型的基础组件

2.1 作业内容

Assignment 1 是整个课程的基础作业,学生需要从零实现以下组件:

  1. BPE 分词器(Byte-Pair Encoding Tokenizer)

    • 训练字节级 BPE 分词器
    • 支持高效的并行预处理和合并操作
    • 处理特殊符号和 Unicode 字符串
  2. Transformer 语言模型

    • 构建仅解码器的 Transformer 结构(类似 GPT)
    • 实现线性层、注意力机制、前馈网络等核心模块
    • 使用 Xavier 初始化等方法
  3. 训练循环与优化器

    • 实现训练损失计算
    • 构建优化器(如 AdamW)
    • 完成完整的训练流程

2.2 作业作用

为什么需要这个作业?

  1. 理解底层机制:通过手写分词器和 Transformer 模块,深入理解大模型的底层工作原理
  2. 建立完整知识体系:从数据处理到模型训练的完整链路,建立系统性认知
  3. 为后续作业打基础:Assignment 1 的代码会成为后续作业的基座模型
  4. 熟悉 PyTorch 核心元素:掌握张量、模型、优化器、训练循环等基本组件

学习收获

  • 掌握 BPE 分词器的原理和实现
  • 理解 Transformer 的每个组件如何协同工作
  • 能够独立从零搭建一个可训练的语言模型

参考资料:


3. Assignment 2: 系统与分布式训练 ⚙️

本章介绍第二个作业:优化系统性能和实现分布式训练

3.1 作业内容

Assignment 2 重点关注系统优化和分布式训练

  1. 内存优化

    • 构建内存高效的训练代码
    • 优化显存占用,减少内存碎片
    • 实现梯度检查点(Gradient Checkpointing)等技术
  2. 分布式训练

    • 实现数据并行训练(Data Parallel Training)
    • 在多台机器、多个 GPU 上分布式训练模型
    • 优化通信开销和同步策略
  3. 性能分析

    • 分析计算资源(FLOPs)的使用情况
    • 识别性能瓶颈并优化

3.2 作业作用

为什么需要这个作业?

  1. 掌握大模型训练的核心技能:大模型训练离不开分布式系统和内存优化,这是工业界的必备技能
  2. 理解硬件与算法的关系:学习如何让算法适配硬件,充分利用 GPU 资源
  3. 提升工程能力:从"能跑"到"跑得快",培养系统优化的思维
  4. 为大规模训练做准备:后续的缩放定律和数据处理作业需要高效的训练系统

学习收获

  • 掌握分布式训练的核心技术(如 DDP、FSDP)
  • 能够分析和优化模型的内存和计算效率
  • 理解大模型训练背后的系统工程原理

参考资料:


4. Assignment 3: 缩放定律 📈

本章介绍第三个作业:理解模型的缩放规律

4.1 作业内容

Assignment 3 聚焦于缩放定律(Scaling Laws)

  1. 拟合缩放定律

    • 使用提供的 IsoFLOPs 训练数据拟合缩放曲线
    • 理解模型大小、数据量和计算量之间的关系
  2. 实验收集缩放数据

    • 在有限的 FLOPs 预算下查询训练 API
    • 收集不同配置下的训练数据
  3. 优化计算预算分配

    • 分析如何在给定计算预算下最优地分配模型大小和训练 token 数
    • 找到最佳的训练配置

4.2 作业作用

为什么需要这个作业?

  1. 理解大模型的缩放规律:缩放定律是大模型训练的理论基础,帮助理解"越大越好"背后的科学原理
  2. 掌握资源分配策略:学会在有限的计算资源下做出最优决策
  3. 培养科学实验能力:通过系统性的实验设计和数据分析,培养科研思维
  4. 指导实际训练:缩放定律可以直接指导工业界的大模型训练实践

学习收获

  • 理解 Chinchilla 等缩放定律的核心思想
  • 能够根据计算预算估算最优的模型大小和训练数据量
  • 掌握缩放实验的设计和数据分析方法

参考资料:


5. Assignment 4: 数据处理 🗃️

本章介绍第四个作业:构建数据处理流水线

5.1 作业内容

Assignment 4 专注于数据收集和处理

  1. HTML 转纯文本

    • 从网页爬虫数据中提取干净的文本
    • 处理 HTML 标签、脚本、样式等噪声
  2. 内容过滤

    • 过滤有害内容(如暴力、色情、仇恨言论等)
    • 实现多种过滤策略和启发式规则
  3. 数据去重

    • 实现高效的文本去重算法
    • 处理大规模数据集中的重复内容
  4. 构建数据流水线

    • 整合上述步骤,构建完整的数据处理流水线
    • 优化处理效率和数据质量

5.2 作业作用

为什么需要这个作业?

  1. 理解数据的重要性:数据质量直接影响模型性能,"Garbage in, garbage out"
  2. 掌握大数据处理技能:体验大数据时代和大模型恐怖的数据量级
  3. 学习工业级数据 pipeline:掌握实际生产环境中数据处理的完整流程
  4. 培养数据敏感性:学会识别和处理数据中的各种问题(噪声、偏差、重复等)

学习收获

  • 能够构建从原始网页到高质量训练数据的完整流水线
  • 掌握数据过滤和去重的核心算法
  • 理解数据质量对大模型训练的关键影响

💡 这是很多同学最喜欢的作业,能明显感受到大数据时代和大模型恐怖的数据量级!


参考资料:


6. Assignment 5: 对齐与强化学习 🎯

本章介绍第五个作业:模型对齐和强化学习

6.1 作业内容

Assignment 5 关注模型对齐和推理强化学习

  1. 模型对齐技术

    • 学习人类反馈强化学习(RLHF)
    • 实现直接偏好优化(DPO)等对齐算法
    • 让模型输出更符合人类价值观和意图
  2. 推理优化

    • 优化模型的推理效率和输出质量
    • 实现思维链(Chain-of-Thought)等推理增强技术
  3. 安全与责任

    • 理解大模型的安全性问题
    • 实现对齐后的安全评估

6.2 作业作用

为什么需要这个作业?

  1. 掌握大模型对齐的核心技术:对齐是当前大模型研究的热点和难点
  2. 理解 RLHF 等前沿方法:学习 ChatGPT 等主流模型背后的对齐技术
  3. 培养安全意识:理解大模型的潜在风险和缓解策略
  4. 紧跟研究前沿:对齐和强化学习是大模型领域最活跃的研究方向之一

学习收获

  • 理解模型对齐的原理和实现方法
  • 掌握 RLHF、DPO 等主流对齐算法
  • 能够评估和改进大模型的安全性和对齐程度

参考资料:


7. 作业特点总结 📝

本章总结 CS336 作业的整体特点

7.1 作业难度曲线

作业 难度 代码量 核心挑战
Assignment 1 ⭐⭐⭐ 从零搭建完整模型
Assignment 2 ⭐⭐⭐⭐ 系统优化和分布式训练
Assignment 3 ⭐⭐⭐ 实验设计和数据分析
Assignment 4 ⭐⭐⭐⭐⭐ 大数据处理和去重
Assignment 5 ⭐⭐⭐⭐ 对齐算法实现

7.2 核心特点

  1. 从零开始:不使用高级 API,所有组件都需要手写
  2. 完整的训练链路:从数据处理 → 模型构建 → 训练优化 → 对齐,覆盖大模型的全生命周期
  3. 注重实践:代码量巨大,强调动手能力
  4. 紧跟前沿:涵盖缩放定律、分布式训练、RLHF 等最新技术
  5. 工业级标准:作业内容和工业界大模型开发高度一致

7.3 适合人群

  • ✅ 想深入理解大模型底层原理的研究者和工程师
  • ✅ 有扎实的 Python 和 PyTorch 基础
  • ✅ 有足够的学习时间(建议每周 10-15 小时)
  • ❌ 不适合只想调用 API 的应用开发者
  • ❌ 不适合编程基础薄弱的初学者

7.4 学习建议

  1. 扎实基础:确保 Python、PyTorch、深度学习基础扎实
  2. 循序渐进:按顺序完成作业,前面的代码会成为后面的基础
  3. 重视报告:书面报告帮助整理思路,加深对原理的理解
  4. 善用资源:参考官方课程网站、GitHub 开源实现和社区讨论
  5. 团队合作:如果允许,可以和同学组队,互相学习

参考资料:


最后更新时间:2026-05-18

相关推荐
闭关修炼啊哈1 小时前
[IdeaLoop · 灵感回路] AI时代独立开发者·创业/副业灵感日报 · 2026-05-17
人工智能·远程工作·创业·副业
赢乐2 小时前
大模型学习笔记:检索增强生成(RAG)架构
人工智能·python·深度学习·机器学习·智能体·幻觉·检索增强生成(rag)
飞哥数智坊2 小时前
OPC 需要的不是一个个AI工具,而是一支数字团队
人工智能
小橙讲编程2 小时前
200+ 模型、零内容过滤、完全免费 — Open Generative AI 全面解析与实战指南
人工智能
happyprince3 小时前
Hugging Face Transformers 源码全景解读
人工智能
春风LiuK3 小时前
远程服务器安装 Claude Code 并配置 DeepSeek v4
人工智能
冬奇Lab3 小时前
RAG 系列(二十):企业级 RAG 架构设计
人工智能·llm
冬奇Lab4 小时前
一天一个开源项目(第104篇):CLI-Anything - 让所有软件变成 AI 代理可调用的命令行接口
人工智能·开源·资讯
冬奇Lab4 小时前
RAG 系列(十九):增量更新——知识库如何保持新鲜
人工智能·llm