Diy-LLM(原 PoetryLLM / Poetry-PPO)
从零实现的古诗词生成教学模型:字符级 Decoder-Only Transformer(约 5000 万参数,d512/8 头/6 层/ff2048,词表 9270,seq 128),完整走过 预训练 → PPO → GRPO → KV-Cache 推理 → 多 Agent 应用 → 双轨评估 的现代 LLM 生命周期。代码与训练细节见 GitHub: vicfei/Diy-LLM。
Checkpoints
| 文件 | 说明 | 训练要点 |
|---|---|---|
checkpoints/best_poetry_model.pth |
预训练基座(最佳) | 33 epochs,AdamW lr=1e-4,字符级,古诗词语料 |
checkpoints/stable_rl_model.pth |
PPO(规则奖励) | 五维规则奖励,人工盲评 3.12 vs 基座 2.38(8 组 5 胜 2 负 1 平) |
checkpoints/grpo_model_v2.pth |
GRPO v2(实测最佳 RL 检查点) | 注意:同期的 improved_grpo 发生了奖励坍塌(reward 1.0 但输出乱码),v2 为对比实测后保留的可用版本 |
生成示例(grpo_model_v2)
prompt: 明月 → 「明月空山夜,清风独扣舷。无人知此意,空自照清泉。」 prompt: 春风 → 「春风落尽柳花飞,芳草萋萋正夕晖。芳草自知人意远,一双蝴蝶傍人飞。」
用法
权重为 PyTorch state_dict(含 model_state_dict 与配置),加载与推理脚本见仓库 predict_ppo.py / kvcahe_ppo.py(需自建词表 vocab.txt,见 build_vocab.py)。
已知限制
- PPO/GRPO 奖励均为规则代理指标(长度/多样性/意象字等),天花板低且易被 hack——improved_grpo 的奖励坍塌即实例;
- 仅学习研究用途(license: for learning & research);语料为公有领域古典诗词。