模型是怎样练成的
下面的数字和诗句来自本项目保存的运行文件。教学演示与真实训练分开记录,保留固定题目的全部输出。
本次运行
| 项目 | 实测结果 |
|---|---|
| 状态 | 已完成 |
| 参数数量 | 4,877,312 |
| 已完成更新 | 18,000 步 |
| 训练计算设备 | Mac 图形加速(MPS) |
| 累计训练时间 | 20.01 分钟 |
| 进程最高常驻内存 | 704.5 MiB |
| 结束时 Mac 加速驱动分配内存 | 1281.5 MiB |
运行机器为 Apple M1 Pro、32 GiB 内存,系统 macOS 15.7.9,Python 3.12.12、PyTorch 2.8.0。训练时间不包含依赖下载、整理材料和课件制作。MiB 是容量单位,1 MiB 为 1024 × 1024 字节。两种内存指标有不同统计口径,不能相加解释为总内存。其他机器、后台任务和设置会影响速度。
使用了哪些材料
| 材料 | 篇数 |
|---|---|
| 训练材料 | 87,236 |
| 验证材料 | 4,869 |
| 最终保留材料 | 4,790 |
繁简统一后,筛选四句五言或七言,排除缺字与异常内容,再按相近版本分组切分。它们并非整个仓库全部诗词。详细筛选规则、原文件摘要与排除数量见材料清单。
用同一方法比较预测误差
| 模型阶段 | 材料 | 平均误差 |
|---|---|---|
| 训练前 | 验证材料 | 8.8673 |
| 6000 步 | 验证材料 | 4.3195 |
| 最终模型 | 验证材料 | 4.0914 |
| 最终模型 | 保留测试材料 | 4.0788 |
上述评估每次固定抽取 60 批、每批 32 条,共 1920 条题目,可能重复抽到同一首;按需要预测的字数加权。前三行使用相同验证抽样,最后一行使用留出的测试材料。误差越低代表接字预测更好,不能换算成“诗歌准确率”。训练日志用另一组批量设置,数字会略有差异。
怎样重做这次训练
本次先训练到 6000 步,再读取保存状态继续到总计 18000 步。第二段修改了后续学习率计划;直接从零设为 18000 步会是另一条训练轨迹。依赖与材料一致也不保证跨设备逐字一致。
./poet train --config configs/poet.json --run-dir artifacts/runs/reproduce --device auto
./poet train --run-dir artifacts/runs/reproduce --resume artifacts/runs/reproduce/latest.pt --steps 18000 --device auto
./poet write --checkpoint artifacts/runs/reproduce/best.pt --start 春 --seed 1完整性检查
- 核心行为测试:24 项通过,涵盖因果遮挡、保存恢复、学习更新、数据和生成约束。
- 自动交付验收:通过。
- 独立课程实验:26/26;参考答案:26/26。
- 起始练习的留空提示:26/26,补全前会明确报错。
- 相近版本是否串入不同材料:训练/验证 0 组,训练/测试 0 组,验证/测试 0 组。
- 同环境固定随机种子复现:通过;交互模式与其他目录调用也包含在报告。
交付模型的 SHA-256 校验指纹用于判断文件内容是否改变:4e715acea97f6651512894cb255b2db67a7c3bfc7c0b78fc870882bb9677a2e4。
恢复训练另做过真实短跑:从 50 步继续到总计 75 步,保存的进度和验证日志均可复查。
完整训练误差曲线:包括中间的波动
- 先看哪里
- 横轴是更新次数;纵轴是固定验证题的平均误差。右图放大后半段。
- 这说明什么
- 曲线直接使用 61 条基线及验证记录,没有平滑。6000 步后恢复并延长训练,调整幅度计划改变,随后出现短暂反弹,再继续下降。
- 你接着做
- 先比较同一口径的曲线;再看第 19 课另外保存的最终评估,不能把不同抽样的数字混在一起。
固定题目的全部生成结果
这些句子由 18000 步模型生成,并经过公开的候选评分。行数、字数和标点由程序约束;关键词为软引导。没有逐首手工改写。
./poet write --start 春 --form five --seed 1 --json --device mps春色侵人眼,
闲看旧树花。
不知春事晚,
只有两三家。
./poet write --start 明月 --form seven --seed 2 --json --device mps明月西湖处士家,
一杯新酒过流霞。
何人更问新年事,
却笑刘郎醉眼花。
./poet write --start 春江花月夜 --form five --seed 3 --json --device mps春江花月夜,
夜静水云秋。
何处不相见,
离人一两愁。
./poet write --keywords 明月 --form five --seed 4 --json --device mps月色照明月,
风光照镜湖。
无人会稽首,
更遣画屏无。
关键词:明月;直接出现:明月。
./poet write --keywords 秋雨,故乡 --form seven --count 3 --seed 5 --json --device mps故乡秋雨已离愁,
天气昏昏未可忧。
独有故人今又去,
一年相送不东流。
关键词:秋雨、故乡;直接出现:秋雨、故乡。
故人今日到重阳,
一笑何如有故乡。
万国万家今尽在,
秋风萧索杜鹃黄。
关键词:秋雨、故乡;直接出现:故乡。
三年秋雨到秋原,
天下山田不见村。
万里征人来不到,
不知何处觅黄昏。
关键词:秋雨、故乡;直接出现:秋雨。
./poet write --start 風 --form seven --seed 6 --json --device mps风流一棹古人愁,
不似沧波似帝州。
欲识吴王旧时事,
不堪流水到家头。
继续读源码
从这一行进入完整实现,再回到对应课程解释每一步。
原始证据文件
- 本次训练配置与资源
- 完整训练日志
- 恢复短跑结果
- 恢复短跑日志
- 材料来源与筛选清单
- 自动交付验收
- 核心测试
- 浏览器操作检查
- 26 课实验输出
- 26 课答案输出
- 26 课起始练习提示
- 初始模型评估
- 6000 步评估
- 最终模型验证
- 最终保留材料评估
课程通过本机 HTTP 阅读入口做了浏览器检查。所有脚本和样式均为本地文件;自动浏览器禁止 file:// 导航,因此未将直接双击 HTML 列为实测通过项。搜索、复制、进度保存和演示的实际检查结果见浏览器记录。