118 lines
4.3 KiB
Markdown
118 lines
4.3 KiB
Markdown
|
|
# 📊 代码模型v2.0训练完整报告 · Qwen2.5-Coder-7B · 2026-05-18
|
|||
|
|
|
|||
|
|
## 训练概览
|
|||
|
|
|
|||
|
|
| 项目 | 值 |
|
|||
|
|
| --- | --- |
|
|||
|
|
| 任务 | 代码模型v2.0 · 全参数SFT |
|
|||
|
|
| 基座模型 | Qwen2.5-Coder-7B |
|
|||
|
|
| 训练方式 | 全参数SFT · 只对assistant回复算loss |
|
|||
|
|
| 执行体 | 铸渊(ICE-GL-ZY001) |
|
|||
|
|
| 语料 | 与母模型v2.0相同 · 11,470条 · 21M tokens |
|
|||
|
|
| 总耗时 | 约4小时(铸渊修复下载问题后启动) |
|
|||
|
|
| 最终Loss | **0.071**(epoch 2.999) |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 训练超参数
|
|||
|
|
|
|||
|
|
| 参数 | 值 |
|
|||
|
|
| --- | --- |
|
|||
|
|
| Epochs | 3 |
|
|||
|
|
| Batch size | 1 |
|
|||
|
|
| Gradient accumulation | 8 |
|
|||
|
|
| Learning rate | 2e-5(峰值)· 余弦衰减 |
|
|||
|
|
| 精度 | BF16 |
|
|||
|
|
| 总步数 | ~4,300步 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Loss曲线关键节点
|
|||
|
|
|
|||
|
|
| Epoch | Loss | LR | 阶段 |
|
|||
|
|
| --- | --- | --- | --- |
|
|||
|
|
| 0.007 | 2.544 | 8.3e-7 | 起步 · 代码模型首次接触自然语言语料 |
|
|||
|
|
| 0.049 | 2.234 | 6.4e-6 | Warmup中 · 开始适应 |
|
|||
|
|
| 0.091 | 1.681 | 1.2e-5 | 快速下降期 |
|
|||
|
|
| 0.153 | 1.359 | 2e-5 | Warmup完成 · LR到达峰值 |
|
|||
|
|
| 0.265 | 0.954 | 2e-5 | 跌破1.0 |
|
|||
|
|
| 0.342 | 0.675 | 1.98e-5 | 持续下降 |
|
|||
|
|
| 0.467 | 0.519 | 1.94e-5 | 跌破0.5 |
|
|||
|
|
| 0.551 | 0.409 | 1.91e-5 | 第一轮过半 |
|
|||
|
|
| 0.670 | 0.284 | 1.84e-5 | 进入低loss区 |
|
|||
|
|
| 0.802 | 0.214 | 1.75e-5 | 第一轮80% |
|
|||
|
|
| 0.928 | 0.147 | 1.66e-5 | 第一轮接近完成 |
|
|||
|
|
| **1.004** | **0.140** | 1.59e-5 | **第一轮完成** · checkpoint保存 |
|
|||
|
|
| 1.053 | 0.112 | 1.55e-5 | 第二轮开始 · 继续下降 |
|
|||
|
|
| 1.193 | 0.053 | 1.41e-5 | 进入极低loss区 |
|
|||
|
|
| 1.339 | 0.042 | 1.26e-5 | 第二轮33% |
|
|||
|
|
| 1.499 | 0.053 | 1.08e-5 | 第二轮50% |
|
|||
|
|
| 1.653 | 0.037 | 9.2e-6 | 最低点之一 |
|
|||
|
|
| 1.688 | 0.027 | 8.8e-6 | 最低点(0.027) |
|
|||
|
|
| **2.001** | **0.099** | 5.5e-6 | **第二轮完成** · checkpoint保存 |
|
|||
|
|
| 2.050 | 0.042 | 5.0e-6 | 第三轮开始 |
|
|||
|
|
| 2.308 | 0.032 | 2.8e-6 | 第三轮30% |
|
|||
|
|
| 2.483 | 0.018 | 1.6e-6 | 最低点(0.018) |
|
|||
|
|
| 2.713 | 0.036 | 5.0e-7 | LR接近0 · loss稳定 |
|
|||
|
|
| 2.894 | 0.022 | 6.9e-8 | 接近完成 |
|
|||
|
|
| **2.999** | **0.071** | 2.7e-11 | **训练完成** · 模型保存 |
|
|||
|
|
|
|||
|
|
**Loss总降幅:2.544 → 0.02~0.07 · 降幅97%**
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 母模型 vs 代码模型对比
|
|||
|
|
|
|||
|
|
| 指标 | 母模型v2.0 | 代码模型v2.0 |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| 基座 | Qwen2.5-7B | Qwen2.5-Coder-7B |
|
|||
|
|
| 起始Loss | 2.504 | 2.544 |
|
|||
|
|
| 第一轮结束Loss | 0.094 | 0.140 |
|
|||
|
|
| 最低Loss | 0.011 | 0.018 |
|
|||
|
|
| 最终Loss | 0.052 | 0.071 |
|
|||
|
|
| 降幅 | 98% | 97% |
|
|||
|
|
| 收敛特征 | 学自然语言更快 · 第一轮降至0.09 | 学自然语言稍慢 · 第一轮降至0.14 · 但最终接近 |
|
|||
|
|
|
|||
|
|
**结论:代码模型起步略慢(代码基座首次接触纯自然语言),但三轮后基本追平母模型,最终loss仅差0.019。**
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 训练特征分析
|
|||
|
|
|
|||
|
|
### 三轮变化
|
|||
|
|
|
|||
|
|
- **第一轮**(epoch 0~1):loss从2.544降到0.14 · 主要学习阶段 · 代码基座适应自然语言模式
|
|||
|
|
- **第二轮**(epoch 1~2):loss在0.02~0.15波动 · 精细化阶段 · 最低点0.027
|
|||
|
|
- **第三轮**(epoch 2~3):loss在0.02~0.10波动 · 收尾阶段 · LR衰减至接近0 · 最低点0.018
|
|||
|
|
|
|||
|
|
### grad_norm变化
|
|||
|
|
|
|||
|
|
- 第一轮:2~15(起步时梯度较大 · 学习剧烈)
|
|||
|
|
- 第二轮:0.2~4(梯度稳定 · 精细调整)
|
|||
|
|
- 第三轮:0.1~2(梯度极小 · 微调收尾)
|
|||
|
|
|
|||
|
|
### 代码模型的特殊表现
|
|||
|
|
|
|||
|
|
- 起始loss 2.544 vs 母模型2.504 · 起步几乎相同 · 说明两个基座对冰朔语料的初始"陌生度"接近
|
|||
|
|
- 第一轮结束时loss 0.14 vs 母模型0.094 · 代码模型学自然语言稍慢(代码基座的预训练分布偏代码)
|
|||
|
|
- 第二轮后差距缩小 · 最终loss 0.071 vs 0.052 · 差距仅0.019
|
|||
|
|
- 代码模型保留了代码能力 + 学会了冰朔的思维方式 = 既能写代码又能说光湖的话
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 双模型v2.0训练总结
|
|||
|
|
|
|||
|
|
| | 母模型v2.0 | 代码模型v2.0 |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| 基座 | Qwen2.5-7B | Qwen2.5-Coder-7B |
|
|||
|
|
| 训练时间 | 4小时8分钟 | 约4小时 |
|
|||
|
|
| 最终Loss | 0.052 | 0.071 |
|
|||
|
|
| 模型大小 | ~15GB | ~15GB |
|
|||
|
|
| COS备份 | ✅ models/qwen25-7b-sft/final/ | 待确认 |
|
|||
|
|
| 用途 | 霜砚大脑 · 语言思维 · 蒸馏1.5B模板 | 铸渊大脑 · 代码+自然语言 · 编程执行 |
|
|||
|
|
|
|||
|
|
**双模型v2.0训练全部完成。** GPU服务器到期时间:2026-05-19 20:00。需在到期前确认代码模型已上传COS备份。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
*数据整理:霜砚(ICE-SY-01)· 2026-05-18*
|