这一课完成什么
你将确认这台电脑能够运行课程程序,并分清“训练”和“生成”。只要能读简单的 Python,就可以从这里开始;模型里的新概念会先用具体数字和图解释。整个项目围绕一个具体任务:输入一个开头或几个关键词,让自己训练的模型逐字写出四句诗。
先分清:准备、训练、使用
学过 Python,就可以从普通程序的输入和输出理解模型。训练会修改一份数字文件;写诗只读取它。
用文字逐步读这张图
- 原始诗词:人能读的文字;还不是模型
- 整理材料:文字转为编号;保留题与答案
- 从零训练:反复对照答案;逐步修改数字
- 保存模型:结构、字表与参数;一起写进文件
- 输入开头:比如“春江”;使用配套字表
- 逐字生成:读取训练后的数字;接成四行诗
为什么每次写诗不必重新训练?
训练已经把规律写进参数;生成只需要加载参数并计算。
训练会读取许多原诗,反复调整模型内部的数字;生成会读取训练保存的数字,根据你给出的条件继续写。生成时不需要再次从头训练,也不会因为写了一首诗就自动变聪明。两者使用同一套模型结构,执行过程和资源开销不同。
认识文件的位置
| 路径 | 装着什么 | 什么时候使用 |
|---|---|---|
| 全唐诗/ | 仓库原始唐诗和宋诗 | 整理材料时只读 |
| poetry_gpt/ | 模型、训练、生成和命令行源码 | 全课程 |
| configs/ | 两档模型与训练设置 | 开始训练前 |
| artifacts/data/ | 整理后的学习、验证、测试材料 | 训练和评估 |
| artifacts/runs/ | 模型文件与训练日志 | 保存、恢复、生成 |
| lessons/ | 每课独立小实验 | 随课动手 |
| course/dist/ | 网页课程与图解 | 通过本机学习服务打开 |
| artifacts/workbench/ | 网页实验生成的模型、数据和日志 | 查看或恢复自己的练习 |
先认识眼前的工作台
左侧是讲解,右侧是“动手实验”。先在正文预测结果,再点击命令旁的“在右侧运行”:它会填入功能和参数,还不会开始计算。点击右侧“运行并观察”,本机的 Python 才真正执行,输出会陆续出现。可以展开“本次执行的命令”查看实际启动了什么。
窗口较窄时,点顶部“动手实验”打开面板;点“收起”回到正文。关闭或刷新网页不会停止正在进行的训练;结束训练请用“停止并保存”,等待状态变成“已停止”。“最近的实验”可以找回先前输出。
网页会为新训练分配独立目录。正文中供终端使用的示例路径会转换成右侧显示的实际路径;恢复训练时从列表中选自己的记录。只改图解里的滑块属于教学演示,点右侧运行才会启动真实程序。

对照输入与目标,而不是背编号
- 先看哪里
- 先看左侧输入 x 和目标 y,目标向后错开了一位;再看右侧 Python 输出。
- 这说明什么
- 左侧换成了“明月照山河”,右侧运行的是课文固定例子“春江花月夜”。句子和字表编号可以不同,制作接字题的规则相同。
- 你接着做
- 先改图中的句子,写下你预测的输入与目标;再运行课文示例,对照同一条规则。
建立并检查环境
所有命令默认在项目根目录执行。当前交付电脑已有独立环境,可以先检查;换电脑时,先按 uv 官方安装说明 安装 uv,再运行 setup 脚本。uv 负责准备合适的 Python 和所需程序包。安装需要网络;材料准备、训练、写诗和阅读课程都在本地完成。
# 先在解压后的项目根目录打开终端
sh scripts/setup.sh
./poet course --start
./poet doctor
./poet lesson 1交付电脑是 M1 Pro、32 GB 内存。检查结果里关注 Python、PyTorch 和“默认设备”。mps 表示使用 Mac 的图形处理器;cpu 表示使用普通处理器,也能运行小实验,训练通常更慢。是否支持加速由实际检查决定,不能只看芯片名称。
跑一个最小实验
./poet lesson 4
./poet lesson 4 --exercise你会看到“春江花月夜”的编号与输入、目标。先只观察:模型要根据前面的字猜后面的字。第 4 课会解释这些题怎么组成,第 6、7 课会解释如何评分和纠错。
验收与排错
doctor正常输出环境信息,退出码为 0。- 若提示没有环境,先运行 setup;若不能下载依赖,检查网络后重试安装,不要删除诗词材料。
- 若
mps不可用,先在普通 macOS 终端重试检查。课程实验都明确用 CPU,无需等待加速问题解决。 - 若换电脑,保留完整解压目录,在该目录启动;程序按自己的位置寻找数据。
完整学习包可从右侧底部下载。包内有课程、程序、诗词、正式模型与训练日志;新机器首次还需安装 Python 依赖。macOS 可双击包内的 start.command。若另一份项目已占用 8766 端口,可在终端运行 ./poet course --start --port 8767,打开对应端口的地址。
对照真实检查画面
图中是本次在这台 Mac 上重新运行 doctor 的结果。刚开始学习时“材料已准备”“模型已训练”可能为 false;这是进度尚未完成,不代表 Python 环境损坏。

第一屏:确认本机已经准备好
- 先看哪里
- 先看“默认设备”“材料已准备”“模型已训练”这三项。
- 这说明什么
- 本机选择 mps,表示使用 Mac 的图形加速;两个 true 表示交付材料和正式模型存在。刚从零开始的你看到 false 很正常,按后续课程创建即可。
- 你接着做
- 运行 ./poet doctor。Python 能启动以后,再检查材料和模型;换机器时版本或设备名可能不同。
小练习与答案
解释“已经训练过的模型关闭后,下次写诗为什么不用重新训练”。
查看答案
训练改变的是参数数值,保存模型会把这些数值写进文件。下次按相同结构建立模型,再读入这些数值,就恢复了生成能力。继续训练还需要优化器状态和随机状态,因此项目分别提供用于写诗的 best.pt 和用于恢复训练的 latest.pt。
本课源码
展开页面下方的完整实验,可单独运行 lessons/01/experiment.py。日常查看入口逻辑在 poetry_gpt/cli.py 的 doctor,设备选择在 poetry_gpt/common.py 的 device_for。