一字一诗

模型是怎样练成的

下面的数字和诗句来自本项目保存的运行文件。教学演示与真实训练分开记录,保留固定题目的全部输出。

本次运行

项目实测结果
状态已完成
参数数量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 步会是另一条训练轨迹。依赖与材料一致也不保证跨设备逐字一致。

bash
./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

完整性检查

交付模型的 SHA-256 校验指纹用于判断文件内容是否改变:4e715acea97f6651512894cb255b2db67a7c3bfc7c0b78fc870882bb9677a2e4

恢复训练另做过真实短跑:从 50 步继续到总计 75 步,保存的进度和验证日志均可复查。

图 21 / 数据图按真实日志绘图
完整训练误差曲线:包括中间的波动

完整训练误差曲线:包括中间的波动

先看哪里
横轴是更新次数;纵轴是固定验证题的平均误差。右图放大后半段。
这说明什么
曲线直接使用 61 条基线及验证记录,没有平滑。6000 步后恢复并延长训练,调整幅度计划改变,随后出现短暂反弹,再继续下降。
你接着做
先比较同一口径的曲线;再看第 19 课另外保存的最终评估,不能把不同抽样的数字混在一起。

打开原图,放大阅读

查看来源

artifacts/runs/poet/metrics.jsonl

固定题目的全部生成结果

这些句子由 18000 步模型生成,并经过公开的候选评分。行数、字数和标点由程序约束;关键词为软引导。没有逐首手工改写。

bash
./poet write --start 春 --form five --seed 1 --json --device mps
春色侵人眼,
闲看旧树花。
不知春事晚,
只有两三家。
bash
./poet write --start 明月 --form seven --seed 2 --json --device mps
明月西湖处士家,
一杯新酒过流霞。
何人更问新年事,
却笑刘郎醉眼花。
bash
./poet write --start 春江花月夜 --form five --seed 3 --json --device mps
春江花月夜,
夜静水云秋。
何处不相见,
离人一两愁。
bash
./poet write --keywords 明月 --form five --seed 4 --json --device mps
月色照明月,
风光照镜湖。
无人会稽首,
更遣画屏无。

关键词:明月;直接出现:明月。

bash
./poet write --keywords 秋雨,故乡 --form seven --count 3 --seed 5 --json --device mps
故乡秋雨已离愁,
天气昏昏未可忧。
独有故人今又去,
一年相送不东流。

关键词:秋雨、故乡;直接出现:秋雨、故乡。

故人今日到重阳,
一笑何如有故乡。
万国万家今尽在,
秋风萧索杜鹃黄。

关键词:秋雨、故乡;直接出现:故乡。

三年秋雨到秋原,
天下山田不见村。
万里征人来不到,
不知何处觅黄昏。

关键词:秋雨、故乡;直接出现:秋雨。

bash
./poet write --start 風 --form seven --seed 6 --json --device mps
风流一棹古人愁,
不似沧波似帝州。
欲识吴王旧时事,
不堪流水到家头。

继续读源码

从这一行进入完整实现,再回到对应课程解释每一步。

原始证据文件

课程通过本机 HTTP 阅读入口做了浏览器检查。所有脚本和样式均为本地文件;自动浏览器禁止 file:// 导航,因此未将直接双击 HTML 列为实测通过项。搜索、复制、进度保存和演示的实际检查结果见浏览器记录。