
文章目录
-
- 一、为什么要区分学习范式
- 二、监督学习:给模型输入和标准答案
- 三、一个最小监督学习例子
- 四、无监督学习:没有标签,也能找结构
- [五、一个简化 K-Means 例子](#五、一个简化 K-Means 例子)
- 六、自监督学习:从数据本身构造标签
- 七、自监督和监督学习有什么区别
- 八、强化学习:通过奖励学习行为
- 九、一个最小多臂老虎机例子
- [十、预训练、SFT、RLHF 如何连起来](#十、预训练、SFT、RLHF 如何连起来)
-
- [1. 预训练:自监督学习](#1. 预训练:自监督学习)
- [2. SFT:监督微调](#2. SFT:监督微调)
- [3. RLHF/DPO:偏好对齐](#3. RLHF/DPO:偏好对齐)
- 十一、开发者该怎么判断用哪种范式
- 十二、常见误区
- 十三、你应该记住的最小心智模型
- 总结
- 大模型视角
- 下一篇
摘要:机器学习不是一种单一方法,而是一组让模型从数据或反馈中改进的范式。监督学习使用"输入 + 标准答案"训练模型,无监督学习在没有标签的数据中发现结构,强化学习让智能体通过奖励学习行动策略。现代大模型还大量依赖自监督学习:从文本本身构造训练信号,比如预测下一个 token。本文面向有开发基础但刚入门 AI 的读者,用任务直觉、数据形式、目标函数和小代码解释监督、无监督、自监督、强化学习的区别,并把它们和预训练、SFT、RLHF/DPO 这条大模型训练流程连接起来。
前置知识 :第 1-5 篇数学与优化基础
阅读时间 :约 60 分钟
代码环境:Python 3.10+,numpy >= 1.24
前置文章导读:
入门导读:先抓住主线
机器学习范式的区别,核心不在模型名字,而在训练信号从哪里来。
可以先用一句话记住:
text
监督学习:有标准答案
无监督学习:没有标准答案,找数据结构
自监督学习:从数据本身构造答案
强化学习:没有固定答案,通过奖励反馈学习行为
例如:
- 给图片和标签"猫/狗"训练分类器,是监督学习;
- 把用户按行为自动分群,是无监督学习;
- 让语言模型根据前文预测下一个 token,是自监督学习;
- 让机器人通过奖励学会走路,是强化学习。
现代大模型训练会同时用到多种范式:预训练主要是自监督,SFT 是监督微调,RLHF/DPO 则引入偏好或奖励信号来对齐人类期望。
读完先达到这个程度就够了:
- 能区分监督、无监督、自监督、强化学习的数据形式;
- 能知道分类、回归、聚类、表示学习分别属于什么思路;
- 能理解大模型预训练为什么属于自监督;
- 能解释 SFT 和 RLHF/DPO 在训练流程中的位置;
- 能根据一个业务问题初步判断该用哪类学习方式。
带着这 3 个问题读:
- 如果没有人工标签,模型还能学到东西吗?
- 大模型预训练为什么不是传统监督学习?
- 强化学习和"给模型打分再训练"有什么关系?
一、为什么要区分学习范式
开发者做传统软件时,通常是人写规则:
text
if score > 60:
pass
else:
fail
机器学习不同。我们不是手写所有规则,而是给模型数据和目标,让模型从中学出规律。
但不同问题给模型的训练信号不同。
有些问题有明确答案:
text
输入:邮件内容
答案:垃圾邮件 / 正常邮件
有些问题没有答案,只想发现结构:
text
输入:用户行为数据
目标:自动分出不同用户群体
有些问题答案可以从数据本身构造:
text
输入:我喜欢机器
答案:学习
有些问题没有固定答案,只能通过行动结果评分:
text
动作:下棋落子
奖励:赢棋 +1,输棋 -1
这就是范式区分的意义:训练信号不同,模型目标、数据准备、评估方式和工程风险都不同。
二、监督学习:给模型输入和标准答案
监督学习的数据形式是:
text
(x, y)
其中 x 是输入,y 是标签或目标值。
常见任务:
| 任务 | 输入 x | 标签 y |
|---|---|---|
| 图片分类 | 图片 | 猫/狗/车 |
| 垃圾邮件识别 | 邮件文本 | 垃圾/正常 |
| 房价预测 | 面积、城市、楼层 | 房价 |
| 情感分析 | 评论文本 | 正面/负面 |
| 语音识别 | 音频 | 转写文本 |
监督学习又常分为分类和回归。
分类
输出是离散类别。
text
这条评论是正面还是负面?
回归
输出是连续数值。
text
这套房子大概多少钱?
监督学习的关键是标签质量。标签错了,模型会学错;标签偏了,模型会继承偏见;标签太少,模型容易过拟合。
三、一个最小监督学习例子
下面用 NumPy 写一个非常简化的二分类训练。
任务:输入一个数,大于 0 判为 1,小于 0 判为 0。
python
import numpy as np
np.random.seed(0)
x = np.random.randn(100, 1)
y = (x[:, 0] > 0).astype(float).reshape(-1, 1)
w = np.random.randn(1, 1) * 0.1
b = np.zeros((1,))
def sigmoid(z):
return 1 / (1 + np.exp(-z))
lr = 0.5
for step in range(200):
logits = x @ w + b
pred = sigmoid(logits)
loss = -np.mean(y * np.log(pred + 1e-8) + (1 - y) * np.log(1 - pred + 1e-8))
dlogits = (pred - y) / len(x)
dw = x.T @ dlogits
db = dlogits.sum(axis=0)
w -= lr * dw
b -= lr * db
if step % 50 == 0:
acc = ((pred > 0.5) == y).mean()
print(step, loss, acc)
这段代码展示了监督学习的核心:
text
输入 x
标签 y
预测 pred
loss 衡量 pred 和 y 的差距
梯度更新参数
大模型 SFT 也是监督学习的一种,只是输入输出变成了指令和理想回答。
四、无监督学习:没有标签,也能找结构
无监督学习没有人工标签。数据形式通常只有:
text
x
目标不是预测标准答案,而是发现数据中的结构。
常见任务:
| 任务 | 目标 |
|---|---|
| 聚类 | 把相似样本分组 |
| 降维 | 用更低维表示保留主要信息 |
| 异常检测 | 找出和大多数样本不同的数据 |
| 主题发现 | 从文档集合中发现主题 |
| 表示学习 | 学到有用特征表示 |
例如电商用户行为数据中,没有人告诉你"这些人属于哪类用户"。但你可以根据购买频率、客单价、品类偏好,把用户自动分群。
无监督学习的难点是评估。没有标准答案时,怎么判断聚类好不好?这通常需要结合业务解释、人工检查、下游任务效果或稳定性分析。
五、一个简化 K-Means 例子
K-Means 是经典聚类算法。它做两件事:
- 把每个点分配给最近的中心;
- 用分到同一组的点更新中心。
python
import numpy as np
np.random.seed(1)
points = np.vstack([
np.random.randn(20, 2) + np.array([2, 2]),
np.random.randn(20, 2) + np.array([-2, -2]),
])
centers = points[np.random.choice(len(points), size=2, replace=False)]
for step in range(10):
distances = ((points[:, None, :] - centers[None, :, :]) ** 2).sum(axis=-1)
labels = distances.argmin(axis=1)
for k in range(2):
centers[k] = points[labels == k].mean(axis=0)
print("centers:", centers)
print("labels:", labels[:10])
这里没有标签,模型只是根据点之间的距离发现两个簇。
这和监督分类不同:分类知道"正确类别",聚类只是发现"相似样本"。
六、自监督学习:从数据本身构造标签
自监督学习经常被单独拿出来讲,因为它是现代大模型预训练的关键。
它没有人工标签,但会从数据本身构造训练目标。
语言模型的 next-token prediction 就是典型例子:
text
文本:我 喜欢 机器 学习
输入:我 喜欢 机器
标签:学习
标签"学习"不是人工标注的,而是原文本中本来就存在的下一个 token。
BERT 的 MLM 也是自监督:
text
输入:我 喜欢 [MASK] 学习
标签:机器
自监督学习的优势是可以利用海量未标注数据。互联网文本、代码、网页、论文、问答记录都可以变成训练信号。
这就是大模型能扩大规模的关键:人工标注数据有限,但未标注文本几乎无穷。
七、自监督和监督学习有什么区别
两者都有"输入"和"目标",但目标来源不同。
| 范式 | 目标从哪里来 | 示例 |
|---|---|---|
| 监督学习 | 人工标签或业务标签 | 图片 -> 猫/狗 |
| 自监督学习 | 数据自身构造 | 前文 -> 下一个 token |
大模型预训练通常不是让人给每句话标标签,而是让模型在海量文本上预测缺失部分或下一个 token。
这也是为什么预训练可以扩展到万亿 token 级别。
不过,自监督模型学到的是"文本分布中的模式",不等于自动学会"听人指令"。所以还需要 SFT、偏好对齐和安全训练。
八、强化学习:通过奖励学习行为
强化学习的数据形式不同。它关心智能体和环境交互。
核心元素:
| 概念 | 含义 |
|---|---|
| Agent | 做决策的智能体 |
| Environment | 环境 |
| State | 当前状态 |
| Action | 可选动作 |
| Reward | 动作后得到的奖励 |
| Policy | 从状态到动作的策略 |
强化学习目标是最大化长期累计奖励。
例如下棋:
text
状态:当前棋盘
动作:下一步走哪里
奖励:赢棋 +1,输棋 -1
策略:看到棋盘后选择动作
强化学习和监督学习的区别是:没有每一步的标准答案。很多时候,只有最终奖励。模型要探索哪些行动会带来更好结果。
九、一个最小多臂老虎机例子
多臂老虎机是强化学习最简单的例子之一。你有几台机器,每台中奖概率不同,但一开始不知道。目标是边尝试边找到收益最高的机器。
python
import numpy as np
np.random.seed(0)
true_probs = [0.1, 0.5, 0.8]
counts = np.zeros(3)
values = np.zeros(3)
epsilon = 0.1
for step in range(1000):
if np.random.rand() < epsilon:
action = np.random.randint(3)
else:
action = np.argmax(values)
reward = 1.0 if np.random.rand() < true_probs[action] else 0.0
counts[action] += 1
values[action] += (reward - values[action]) / counts[action]
print("estimated values:", values)
print("counts:", counts)
这里没有标准答案标签,只有试错得到的 reward。epsilon 控制探索:有时随机试试其他动作,避免过早锁死在错误选择上。
大模型 RLHF 比这个复杂得多,但"根据奖励优化策略"的核心思想相通。
十、预训练、SFT、RLHF 如何连起来
现代大模型训练流程可以粗略理解成三段。

1. 预训练:自监督学习
模型在海量文本上做 next-token prediction。
text
输入:大量文本前缀
目标:预测下一个 token
模型学到语言、知识、代码、格式和一些推理模式。
2. SFT:监督微调
人工或高质量数据提供指令和理想回答。
text
输入:用户指令
标签:理想回答
模型学会更像助手一样回答问题。
3. RLHF/DPO:偏好对齐
人类或模型对多个回答进行偏好比较。
text
回答 A 比回答 B 更好
RLHF 会训练奖励模型并用强化学习优化策略。DPO 则用偏好数据直接优化模型,让被偏好的回答概率更高。
所以大模型不是只靠一种学习范式,而是多种范式组合。
十一、开发者该怎么判断用哪种范式
可以从数据和目标开始问。

你有输入和明确标签吗?
有,优先考虑监督学习。
text
工单文本 -> 工单类型
用户特征 -> 是否流失
图片 -> 缺陷类别
你没有标签,只想发现结构吗?
考虑无监督学习。
text
用户分群
异常检测
文档主题聚类
你有大量原始文本、代码或日志,可以构造预测任务吗?
考虑自监督学习或预训练/继续预训练。
text
领域语料 -> 继续预训练语言模型
代码仓库 -> 代码模型训练
你的目标是行为策略,结果由奖励反馈决定吗?
考虑强化学习或偏好优化。
text
游戏策略
机器人控制
对话偏好对齐
推荐策略优化
真实项目里,经常组合使用。例如 RAG 系统可能用自监督预训练的大模型、监督训练的 reranker、无监督聚类做数据分析,再用用户反馈优化排序策略。
十二、常见误区
误区 1:无监督学习就是没有目标。
不是。它没有人工标签,但仍然有优化目标,比如聚类距离、重构误差、对比学习损失。
误区 2:自监督学习和监督学习完全无关。
自监督也有"输入和目标",只是目标来自数据本身,而不是人工标注。
误区 3:强化学习就是让模型随机试错。
探索只是其中一部分。强化学习还要估计长期回报、优化策略,并平衡探索和利用。
误区 4:大模型预训练就是给模型喂知识库。
预训练的目标通常是预测 token,不是显式背知识库问答。知识是通过预测任务间接学到的。
误区 5:SFT 后模型就完全对齐人类。
SFT 让模型学习理想回答格式,但偏好、安全、拒答、事实性还需要额外对齐和评估。
误区 6:RLHF 等于传统强化学习的简单套用。
大模型 RLHF 有奖励模型、偏好数据、KL 约束等特殊设计,不能和游戏 RL 完全等同。
十三、你应该记住的最小心智模型
四种学习方式可以这样记:
text
监督学习:人给答案,模型学映射
无监督学习:没人给答案,模型找结构
自监督学习:数据自己提供答案,模型学表示
强化学习:环境给奖励,模型学策略
大模型训练流程可以这样记:
text
预训练:自监督,学通用模式
SFT:监督学习,学指令回答
RLHF/DPO:偏好/奖励优化,学人类偏好
这条线会贯穿后面的所有大模型内容。
总结
机器学习范式的核心差异在训练信号。监督学习依赖输入和标准答案,适合分类、回归、标注等任务;无监督学习没有标签,适合聚类、降维、异常检测和结构发现;自监督学习从数据本身构造目标,是大模型预训练的关键;强化学习通过奖励优化行为策略,适合需要交互和长期回报的任务,也影响了大模型对齐方法。
第一遍记住一句话:看一个学习问题,先问训练信号从哪里来,再决定用哪种范式。
大模型视角
后续专栏里,预训练、SFT、RLHF、DPO、RAG、Agent 都会反复出现这些范式。理解它们的区别后,你会更容易判断某个"大模型训练方法"到底是在做自监督、监督微调,还是偏好对齐。
下一篇
损失函数全解:从 MSE 到交叉熵 ------ 学习范式决定训练信号,损失函数把训练信号变成可优化的数字。下一篇看模型到底在最小化什么。