斯坦福大学的CS336课程《从零开始的语言建模》是一门专注于语言模型开发的深度学习课程。课程让学生通过实践,从数据收集、模型构建到训练和评估,全面掌握语言模型的开发流程。借鉴了操作系统课程的模式,要求学生从零开始构建一个完整的语言模型,包括实现分词器、Transformer架构、优化器等关键组件。
课程要求学生具备较强的Python编程能力、深度学习和系统优化经验,以及线性代数、概率统计和机器学习的基础知识。作业内容丰富,涵盖从基础模型训练到系统优化、数据处理和模型对齐等多个方面。课程提供了GPU计算资源的建议,帮助学生高效完成实践任务。通过这门课程,学生将深入理解语言模型的内部机制,掌握如何优化模型以应对大规模训练和实际应用中的挑战。
课程简介
-
课程内容:斯坦福大学的CS336课程旨在让学生全面了解语言模型的开发过程,包括数据收集与清洗、Transformer模型构建、模型训练与评估等。课程灵感来源于操作系统课程,要求学生从零开始构建一个完整的语言模型。
-
课程目标:通过实践,学生将深入理解语言模型的各个组件,并掌握如何优化模型以提高效率和性能。
课程要求
-
先修知识:
-
Python熟练度:大部分作业需要使用Python完成,学生需要具备较强的Python编程能力。
-
深度学习和系统优化经验:需要熟悉PyTorch和基本的系统概念,如内存层次结构。
-
数学基础:需要掌握线性代数、概率论和统计学的基本知识。
-
机器学习基础:需要了解机器学习和深度学习的基本概念。
-
-
课程难度:这是一门5学分的课程,非常注重实践,学生需要投入大量时间。
课程作业
-
作业1:实现Transformer语言模型的基本组件(分词器、模型架构、优化器)并训练一个最小语言模型。
-
作业2:使用高级工具对模型进行性能分析和优化,实现FlashAttention2的Triton版本,并构建分布式训练代码。
-
作业3:理解Transformer的每个组件,并通过训练API拟合模型扩展规律。
-
作业4:将原始Common Crawl数据转换为可用于预训练的数据,并进行过滤和去重以提高模型性能。
-
作业5:应用监督微调和强化学习训练语言模型解决数学问题,并可选地实现安全对齐方法。
课程官网地址
- 官网地址:https://stanford-cs336.github.io/spring2025/
其他信息
-
GPU计算资源:学生可以使用云服务提供商的GPU资源完成作业,课程提供了几种推荐的云服务选项。
-
学术诚信:学生可以使用AI工具进行低级编程问题或高级概念问题的咨询,但禁止直接使用AI工具解决问题。
-
作业提交:所有作业通过Gradescope提交,允许使用晚交天数,最多3天。