机器学习

机器学习关注的是:如何让模型从数据中学习规律,并把这种规律用于新的样本。对 LLM 来说,机器学习是更底层的框架;预训练、微调、对齐、多模态都可以放在这个框架里理解。


学习范式

监督学习(Supervised Learning)

目的:从带标签的数据中学习「输入(特征)→ 输出(标签)」的映射,从而对新的、未见过的样本做出预测。

典型场景:分类(如图像中是哪一种水果)、回归(如预测房价或销量走势)。

无监督学习(Unsupervised Learning)

目的:在无标签数据中发现内在结构或模式,不依赖人工标注,相当于“无师自通”。

典型场景:聚类(如用户分群)、降维(如 PCA)、关联规则(如“买 A 的人也常买 B”)。

半监督学习(Semi-supervised Learning)

目的:同时利用少量有标签数据和大量无标签数据,在标注成本有限时提升模型表现。

典型场景:文本分类、图像识别中只有部分样本被标注时的训练。

强化学习(Reinforcement Learning)

目的:在与环境的持续交互中学习策略。智能体通过试错,根据环境反馈的奖励或惩罚,逐步逼近更优行为。

典型场景:博弈、机器人控制、自动驾驶决策。LLM 对齐里的 RLHF / RLAIF 也借用了强化学习思想,但工程形态和游戏智能体并不完全相同。


模型技术

传统方法

  • 线性 / 逻辑回归:形式简单、可解释性强,常作为基线模型。
  • 支持向量机(SVM):在特征空间中寻找最优分类超平面,适合中小规模、高维数据。
  • 决策树 / 随机森林 / GBDT:适合表格型数据,可解释性与工程稳定性较好。

深度学习

深度学习使用多层神经网络,通过非线性变换逐层抽取高层特征。图像、语音、自然语言中的主流模型大多属于深度学习。

在 LLM 语境下,最核心的深度学习架构是 Transformer。它用自注意力处理序列依赖,用 FFN 做逐 token 非线性变换,详见 transformer.md


模型训练

模型训练的目标是找到使损失函数(如均方误差、交叉熵)尽可能小的参数。常见方式有两类:

解析解(闭式解)

适用于形式简单、存在闭式解的模型。通过数学推导(如最小二乘法、正规方程)一次计算即可得到全局最优参数,无需迭代。

典型场景:线性回归。

梯度下降(Gradient Descent)

适用于可微分、无法直接求解析解的模型(如深度神经网络)。沿损失函数梯度的反方向迭代更新参数,使损失逐步减小,直至收敛。

基本过程

  1. 前向传播:输入训练数据,得到模型预测与当前损失。
  2. 反向传播:从输出层向输入层逐层计算梯度(链式法则)。
  3. 参数更新:按梯度方向与学习率更新参数。
  4. 重复上述步骤直到损失收敛或达到迭代上限。

常见变体:批量梯度下降(BGD)、随机梯度下降(SGD)、小批量梯度下降(Mini-batch GD)。Mini-batch 在深度学习中最为常用,在计算效率与收敛稳定性之间取得平衡。


大模型训练流程

LLM 通常不是从“直接回答用户问题”开始训练的,而是分阶段获得能力。

预训练(Pretraining)

预训练用海量文本学习通用语言模式。对 Decoder-only LLM 来说,最常见目标是给定前文,预测下一个 token。这个目标简单、可规模化,任意连续文本都能构造成训练样本。

预训练得到的是基座模型:它掌握大量语言和知识模式,但不一定服从指令,也不一定符合产品安全要求。

监督微调(SFT)

SFT 使用高质量的「指令 → 回答」数据,让模型学会按用户意图组织输出。它更像是把基座模型从“续写器”调成“助手”。

对齐(Alignment)

对齐关注模型输出是否有帮助、诚实、安全,常见方法包括 RLHF、RLAIF、DPO 等。它们的共同目标是把模型行为从“可能的文本”进一步约束到“人类偏好的回答”。


参数高效微调

在将通用预训练模型应用到特定任务或领域时,往往需要对其进行定向调整。但大模型参数量可达数十亿甚至更多,若全量更新参数,不仅计算与存储成本高,还可能导致灾难性遗忘

LoRA(Low-Rank Adaptation)

LoRA 是一种参数高效的大模型微调方法。核心思想是:冻结原始模型的大部分参数,不直接修改权重矩阵 W,而是学习一个低秩的增量 ΔW,在前向传播时使用 W + ΔW。

具体地,LoRA 将 ΔW 分解为两个低秩矩阵的乘积:

ΔW = B · A

其中 A、B 的秩 r 远小于原矩阵维度,只训练 A、B,就能用较少参数近似全量更新。这样既能适配特定任务,又显著降低可训练参数量与显存占用,也便于在不同任务间切换适配器。

理论直觉:很多任务对模型权重的有效更新可能集中在少数重要维度上,用低秩矩阵就能覆盖主要变化。


多模态

相对纯文本 LLM,多模态系统要先把图像、音频等变成与文本可对接的表示,再进入统一骨干做理解或生成。

  1. 表示:除文本 token 外,常见还有图像 patch / 图像 token、音频帧或声学单元等;各模态往往先经专用编码器(如 ViT、音频 CNN/Transformer)。
  2. 对齐与融合:通过投影层、交叉注意力、连接器(connector)等,把多模态特征接到同一套语言模型空间。
  3. 训练方式:常见做法是冻结部分骨干,只训练对齐模块或少量适配层;也可以端到端训练,成本更高。
  4. 架构:当前主流仍以 Transformer 及其变体(ViT、多模态 LLM 等)为主干。

关于「稠密 / 稀疏激活」「MoE」等模型形态上的架构差异,见 transformer.md 中的 架构变体


复习问题

  • 监督学习、无监督学习、强化学习分别依赖什么形式的数据或反馈?
  • 为什么深度学习通常依赖梯度下降,而不是解析解?
  • 预训练、SFT、对齐分别在改变模型的什么能力?
  • LoRA 为什么能降低微调成本?它训练的是原权重,还是原权重之外的增量?