训练与架构
微调、适配,以及现代模型背后的架构设计。
20 篇教程,横跨 17 个学习层中的 2 个——按前后衔接顺序编排。
12训练与适配
- 微调到底是怎么工作的在你自己的数据上继续训练一个现成的模型。它会改变什么、改变不了什么,以及为什么数据集就是全部工作。
- 模型蒸馏训练一个小模型去模仿大模型。这通常比从头训练小模型效果更好,也是便宜模型变好用的原因。
- 超参数调优有些设置是训练过程中学出来的,另一些必须在训练开始前定好。怎么搜这些你定的参数,又不自欺、不浪费算力。
- LoRA 与参数高效微调只训练少量额外权重,而不是全部权重。用一小部分成本拿到几乎全部收益,外加可热插拔的适配器。
- 读懂模型基准测试基准测试表格是营销门面,只是里面填的是真数字。怎么从中提取信号,以及为什么你自己的二十个样本胜过任何排行榜。
- 优化器与学习率梯度下降只指出哪个方向是下坡。走多远、要不要参考过去那一百步,由优化器和学习率决定。以及为什么 SGD 让位给了 Adam。
- 什么是量化?用更少的比特存权重。换来大幅的内存与速度收益,只损失一点质量,也是大模型能跑在小硬件上的主要原因。
- 正则化:dropout 与 weight decay这些手段故意让模型在训练数据上拟合得更差,好让它在没见过的数据上表现更好。给模型加障碍为什么有用。
- 模型是怎么被对齐的把一个文本预测器变成助手,靠的是偏好训练。它加上了什么、代价是什么,以及为什么拒答时灵时不灵。
- 推理模型是怎么工作的被训练成先想很久再作答的模型。同一条「token 即计算」的原则,从你的 prompt 里搬进了训练过程。
- 合成数据用模型生成训练数据。只要你能验证或过滤输出,它就管用;不能验证时,它会安静地失败。
- 迁移学习:预训练为什么可以被复用在一个庞大任务上训练出来的模型,可以用少得多的数据改造成另一个更小的任务。表示为什么能迁移,以及什么时候不能。
13进阶架构
- 注意力变体:稀疏、线性与滑动窗口全注意力让每个 token 和所有其他 token 两两比较,成本随长度平方增长。打破这个平方项的几种变体,以及各自放弃了什么。
- embedding 模型如何训练通用模型的内部向量并不等于一个好的 embedding。对比目标到底在优化什么,以及为什么难负样本决定成败。
- 推理服务是怎么运作的批处理、调度与显存管理。吞吐量和延迟为什么彼此拉扯,以及一个服务系统到底在做什么。
- 长上下文是怎么成为可能的上下文窗口从几千 token 长到上百万。四方面的改变促成了这件事,而它们没有一个废掉了平方级成本。
- 专家混合参数存很多,每个 token 只用一小部分。模型如何在不变慢多少的前提下做得大得多。
- 模型融合与组合把两个微调模型的权重平均一下,常常得到一个两件事都能干的模型。效果好得出人意料,而没有人完全说得清为什么。
- 投机解码用小模型猜出若干个 token,再用大模型一次性全部验证。白拿的速度,完全一样的输出。
- 状态空间模型一种替代注意力的方案:开销线性、内存恒定。它在哪里赢、在哪里输,以及为什么混合架构正在胜出。