第 04 章 / 第 10 课

跑一次预训练:让实验可以复现

确定语料、切分方式和计算预算,用固定留出集解释一个小模型学到了什么。

中文讲解 · 约 3 分钟两道自测 · 可重复作答第 10 / 15 课
这一课,你会学到
  • 在训练前确定评估集
  • 记录 token 数与模型配置
  • 区分采样观感和模型评估
术语速查与实践准备
预训练
从语料中的训练目标学习模型参数。
SFT
利用监督样本进行微调的一类训练目标。
LoRA
用低秩矩阵表示权重更新的方法,参数效率不等于显存同比下降。
留出集
与训练内容分开、用于评估的一组固定样本。

浏览器概念实验可以直接做。运行文中的 PyTorch 代码前,按官方安装说明准备独立环境;完整模型训练的时间与内存按实际数据、模型和硬件测量。

一次预训练实验不是“运行命令直到能生成文本”。你需要知道模型看过哪些数据、用了多少计算,以及怎样判断它在未见过的文本上有变化。

先定义实验,再启动训练

选用可合法使用的小语料,记录来源与版本。按文档、作者或来源关系做切分,避免同一篇内容的近似副本跨越训练与评估集合。先固定验证集,再决定训练配置。

小模型实验的目标是跑通方法。它不等于复现大型商业模型,也不能用几段流畅输出证明完整能力。设定明确的时间、token 或步数预算,可以让比较更公平。

把参数和数据量写清楚

记录层数、隐藏维度、注意力头数、词表大小、上下文长度、批次和梯度累积设置。处理过的 token 数有时比“跑了几轮”更有解释力,因为不同切分和打包方式会改变每轮的实际输入。

同一训练目标下,可以把留出集的平均负对数似然作为一个指标。若平均损失使用自然对数,困惑度是 exp(loss);比较时要保持分词器、评估文本和损失汇总方式一致。

import math

# 示例数字说明换算,不是本课程测得的模型结果。
validation_loss = 2.0
perplexity = math.exp(validation_loss)
print(perplexity)  # 约 7.389

固定提示,区分采样和评价

在训练前选好几个提示,训练后用相同 temperature、长度和其他采样设置生成。保留全部结果,包括不好看的样本。改变采样参数可能让输出更保守或更随机,并不表示模型权重变好了。

对于非常小的语料,要特别检查是否只是记住片段。可以看生成文本与训练文档的重合,报告典型重复和失败模式,而不是只挑最好的一次输出。

写出别人能理解的结论

实验报告至少包含:数据与许可、清洗/切分规则、模型和环境配置、计算预算、训练与留出指标、固定提示样本、已知局限。没有独立留出集时,就明确写成训练流程演示。

下一课开始指令微调。模型仍然预测 token,但数据组织和损失范围会影响它学会的任务形式。带着本课的固定评估方法继续,才能比较微调前后。

读完之后,给理解一次反馈。

在可合法使用的小语料上训练一个小模型,固定评估集和三个提示,保存初始与训练后的结果。

本课参考资料

文章、例子与练习为本站原创讲解;官方视频与延伸资料保留作者来源。

核对日期 2026-10-14
核对实验结果,再留下完成记录。

完成记录与自测结果分别保存,不自动推断掌握程度。