1. Transformer 内部机制与潜在空间
如果你不理解模型的内部几何结构,就无法对其进行控制(steer)。你必须超越仅通过 API 使用 LLM 的方式,理解 token 如何被转换为稠密数学向量(嵌入)并经过各层处理。
关键子主题
-
隐藏状态提取(Hidden State Extraction): 如何在 PyTorch 中执行前向传播,并从特定层提取中间激活向量(即”潜在表示”),例如从 36 层中提取第 18 层。
-
注意力机制(Attention Mechanisms): 理解交叉注意力与自注意力,因为学生/控制器需要关注基模型的输出。
-
Logits 与解码(Logits and Decoding): 理解最后一层如何将向量转换回单词概率(logits),以及在生成过程中如何从数学层面进行干预(例如对比解码、logits 偏置)。
深入研究这些模型的原始架构和数学原理是一个巨大的跨越,但如果你想理解它们在底层实际是如何工作的,这是正确的方向。
主题 1:Transformer 内部机制与潜在空间
要学习 Transformer 的工作原理,你需要结合视觉直觉(数据如何流动)和原始代码(数学如何应用)。
-
编程大师课:“Let’s build GPT: from scratch, in code, spelled out” — Andrej Karpathy
- 为什么有用: Karpathy 从一个空白 Python 文件开始,逐步构建一个可运行的 Transformer。这教你什么是嵌入,如何通过矩阵乘法计算自注意力,以及如何提取内部的潜在向量。
- 链接: 在 YouTube 上观看
-
视觉指南:“The Illustrated Transformer” — Jay Alammar
- 为什么有用: Alammar 的博客文章使用逐步的彩色编码图表,展示 Query、Key 和 Value 向量如何交互。
- 链接: 阅读博客
主题 2:表示学习与对比学习
这个主题从”预测下一个词”转向”理解概念的几何结构”。这需要更扎实的数学基础。
-
理论与架构:Yann LeCun 的深度学习课程(NYU DS-GA 1008)
- 为什么有用: 该课程涵盖基于能量的模型(Energy-Based Models)和自监督学习(Self-Supervised Learning),它们是对比学习的基础。
- 链接: 访问课程材料,重点关注自监督学习讲座。
-
数学解析:“Contrastive Representation Learning” — Lilian Weng
- 为什么有用: 这篇文章详细解析了如何在向量空间中将相似概念拉近、将不相似概念推远的数学原理,包括 InfoNCE 损失的公式:
- 链接: 阅读博客
2. 表示学习与自监督学习
这是提案中 JEPA(联合嵌入预测架构)部分背后的数学基础。你需要学习如何训练模型来测量概念在连续向量空间中的距离或相似性,而不仅仅是对精确文本进行分类。
关键子主题
- 距离度量: 余弦相似度、L1(曼哈顿)距离和 L2(欧几里得)距离。
- 对比学习(InfoNCE): 现代检索和表示学习的基础。你需要理解如何将匹配对在向量空间中拉近,同时将负样本推远。
- 线性探测(Linear Probing): 在冻结的嵌入之上训练简单的回归模型(如 Ridge 回归或逻辑回归),以证明特定概念(如圈复杂度)存在于向量空间中。
- 向量搜索: 使用 FAISS (Facebook AI Similarity Search) 等库高效索引和检索数百万个高维向量。
3. 推理时引导与强化学习
一旦你有了一个理解代码质量的模型(学生/评估器),就需要用它来主动引导生成过程。
关键子主题
- 结果奖励模型(ORM)与过程奖励模型(PRM): 训练模型对最终输出进行评分(ORM)与对每个中间步骤或决策进行评分(PRM)的区别。
- 引导解码 / 受控生成(Guided Decoding / Steered Generation): 例如 ThinkLogit 等技术,计算一个增量向量并将其注入大模型的生成循环中,而不修改其权重。
- 离线强化学习(Offline Reinforcement Learning): 使用历史数据(如已接受与已拒绝的 Pull Request)来训练策略,而不是让智能体通过盲目探索环境来学习。
4. 程序分析与代码语义
要训练一个理解软件工程概念的模型,你必须将代码视为结构化数据,而不仅仅是纯文本。
关键子主题
- 抽象语法树(AST): 使用
tree-sitter等工具将代码解析为树结构,从而能够精确地屏蔽”函数体”或”类方法”,而不是随机的字符串。 - 软件度量: 理解圈复杂度、模块间依赖关系和代码库变动率(codebase churn)。
5. 分布式深度学习工程
实现这一目标需要管理数百万个参数和海量数据集。你很快就会超出单张 GPU 的处理能力。
关键子主题
- PyTorch DDP(分布式数据并行): 在多个 GPU 之间同步梯度。
- 混合精度训练(Mixed Precision Training): 使用
bf16或fp16以节省显存。 - 梯度检查点(Gradient Checkpointing): 用计算换显存,以将大型模型适配到 GPU 上。