本节摘要:微调是机器学习的一个具体操作,先把"机器学习是什么"这个地基打牢。本节讲清机器学习的本质、三种学习方式与"数据-训练-评估"的标准流程,帮你建立"模型从哪来"的完整认知。
阅读完本节,你应当能够:
学微调的人常犯一个错:上来就调参,却不知道模型是怎么"学"出来的。其实微调的一切操作——学习率、数据、损失——都建立在机器学习的标准流程上。先搞懂"模型如何从数据中学习",微调就只是"换个数据继续学"。
机器学习不是"人写规则让机器执行",而是从大量例子中自动总结规律。传统程序是"规则 → 结果",机器学习是"例子 → 规律"。
| 方式 | 数据形态 | 典型任务 |
|---|---|---|
| 监督学习 | 带标签例子 | 分类、回归 |
| 无监督学习 | 无标签例子 | 聚类、降维 |
| 强化学习 | 环境奖惩 | 决策、控制 |
💡 关键直觉:微调属于监督学习的延伸——用"问题-答案"对继续训练模型,本质还是"带标签例子学规律",只是起点不同。
收集数据 → 清洗整理 → 划分训练/验证/测试集 → 训练模型 → 评估 → 迭代
⚠️ 常见坑:数据泄漏——测试集混进训练过程,评估成绩虚高,上线就翻车。三个集合必须严格隔离。
| 问题 | 影响 |
|---|---|
| 数据干净吗 | 脏数据 → 学错规律 |
| 数据均衡吗 | 不均衡 → 偏向多数类 |
| 数据够多吗 | 太少 → 过拟合 |
| 指标 | 适用 | 一句话 |
|---|---|---|
| 准确率 | 均衡分类 | 答对占比 |
| 精确率/召回率 | 不均衡 | 准不准 vs 全不全 |
| F1 | 综合 | 两者平衡 |
机器学习的经验直接迁移到微调:微调数据质量决定微调效果——与其用一万条脏数据,不如用一千条高质量领域数据。这条认知是后面所有章节的地基。
为了理解"为什么要微调而不是从头训练",看一个具体数字对比。假设要做一个中文情感分类模型:
| 路线 | 需要的数据 | 需要的算力 | 达到可用效果的时间 |
|---|---|---|---|
| 从零训练一个 Transformer | 千万级标注样本 | 多卡训练数周 | 数周以上 |
| 在预训练模型上微调 | 几千条标注样本 | 单卡数小时 | 半天以内 |
差距来自"知识迁移":预训练模型已经通过海量无监督语料学会了语言本身的规律,微调只需要把这份通用知识对齐到你的任务上。
# 一个最小的监督学习示例(scikit-learn 逻辑回归) from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.linear_model import LogisticRegression texts = ["这个电影太棒了", "剧情无聊透了", "演员演技在线"] labels = [1, 0, 1] # 1=正面 0=负面 vec = TfidfVectorizer().fit_transform(texts) clf = LogisticRegression().fit(vec, labels) new = vec.transform(["值得一看的好片"]) print(clf.predict(new)) # 输出 [1],判为正面
这个例子虽然简单,但完整走了一遍"数据 → 特征 → 训练 → 预测"的流程。微调大模型也是同一套流程,只是把特征提取器从 TF-IDF 换成了预训练 Transformer,把训练换成了在领域数据上继续更新参数。两者在评估环节同样要严守"测试集不参与训练"的纪律——迁移学习场景里还要额外小心:不要把预训练阶段见过的数据漏进测试集,否则评估结果依然会虚高。
💡 一句话记住:从零训练是"造轮子",微调是"给已有的好轮子换上适合你路面的轮胎"——省时、省数据、省算力,这也是微调成为工业界默认做法的根本原因。
机器学习地基打好了,下一块砖——深度学习基础。