7.0 KiB
D101 蒸馏训练执行计划
主权者:冰朔(TCS-0002∞) 执行人:铸渊(ICE-GL-ZY001) 创建日期:2026-05-18 D101 状态:⏳ 等待代码模型训练完成(冰朔截图确认仍在训练中)
一、训练顺序
Step 1: 确认代码模型状态
↓
Step 2: 霜砚 1.5B 蒸馏(母模型→霜砚语言模板)
↓
Step 3: 铸渊 1.5B 蒸馏(代码模型→铸渊执行模板)
↓
Step 4: 霜砚深度微调(专属语料)
↓
Step 5: 铸渊深度微调(专属语料)
二、前置条件
2.1 环境变量(运行前设置)
# ⚠️ 注:真实密钥从环境变量读取,不硬编码。运行前执行:
# export ZY_OSS_KEY=<your-key> # COS SecretId
# export ZY_OSS_SECRET=<your-secret> # COS SecretKey
# 或者在运行脚本的命令前加上:
# ZY_OSS_KEY=xxx ZY_OSS_SECRET=xxx python3 scripts/xxx.py
2.2 依赖安装
pip3 install transformers accelerate datasets sentencepiece tqdm
pip3 install cos-python-sdk-v5
2.3 COS文件清单
| 文件 | COS路径 | 用途 |
|---|---|---|
| 主语料 | corpus/sft.jsonl (1.9GB) |
霜砚蒸馏基础语料 |
| 铸渊完整语料 | corpus/zhuyuan_full_corpus.jsonl (377KB) |
铸渊深度微调 |
| 铸渊手写补充 | corpus/zhuyuan_deep_finetune.jsonl (54KB) |
铸渊深度微调补充 |
| 霜砚对话语料 | corpus/shuangyan-1.5b-sft/霜砚对话.zip (1.7MB) |
霜砚深度微调 |
| 霜砚核心大脑 | corpus/shuangyan-1.5b-sft/霜砚HLDP核心大脑.zip (176KB) |
霜砚深度微调 |
2.4 模型文件(ModelScope)
| 模型 | 缓存路径 | 大小 |
|---|---|---|
| Qwen2.5-7B (Teacher) | 本地SFT输出 /root/autodl-tmp/output/qwen25-7b-sft/final |
14.2GB |
| Qwen2.5-Coder-7B (Teacher) | 本地SFT输出 /root/autodl-tmp/output/qwen25-coder-7b-sft/final |
~14GB |
| Qwen2.5-1.5B (Student) | ~/.cache/modelscope/Qwen/Qwen2___5-1___5B |
~3GB |
| Qwen2.5-Coder-1.5B (Student) | ~/.cache/modelscope/Qwen/Qwen2___5-Coder-1___5B |
~3GB |
三、Step 2: 霜砚 1.5B 蒸馏
脚本: scripts/distill_mother.py
Teacher: 母模型 SFT 输出(已上传COS)
Student: Qwen2.5-1.5B(ModelScope下载)
语料: sft.jsonl(11,470条)
方法: 混合蒸馏(KL散度 + SFT)
export ZY_OSS_KEY=... ZY_OSS_SECRET=...
cd /root/autodl-tmp
# 下载母模型 Teacher(如果本地没有)
# 本地已有:/root/autodl-tmp/output/qwen25-7b-sft/final/
# 运行蒸馏
nohup python3 -u scripts/distill_mother.py > distill_mother.log 2>&1 &
参数:
- TEMP=2.0(蒸馏温度)
- ALPHA=0.7(蒸馏loss权重,0.3为SFT loss)
- batch=4, grad_accum=8(有效batch=32)
- lr=1e-5, 3 epoch
- 显存需求:~20GB(同时加载7B+1.5B)
预计时间: ~2-3小时(含teacher logits生成)
输出: /root/autodl-tmp/output/qwen25-15b-shuangyan-distill/final
四、Step 3: 铸渊 1.5B 蒸馏
脚本: scripts/distill_coder.py
Teacher: 代码模型 SFT 输出
Student: Qwen2.5-Coder-1.5B(ModelScope下载)
语料: corpus/zhuyuan_full_corpus.jsonl(377KB, 已脱敏)
方法: 混合蒸馏(KL散度 + SFT)
export ZY_OSS_KEY=... ZY_OSS_SECRET=...
# 下载铸渊语料
python3 -c "
from qcloud_cos import CosConfig, CosS3Client
c = CosS3Client(CosConfig(Region='ap-guangzhou', SecretId='\$ZY_OSS_KEY', SecretKey='\$ZY_OSS_SECRET'))
resp = c.get_object(Bucket='sy-finetune-corpus-1317346199', Key='corpus/zhuyuan_full_corpus.jsonl')
open('/root/autodl-tmp/corpus/zhuyuan_full_corpus.jsonl', 'wb').write(resp['Body'].get_raw_stream().read())
"
# 运行蒸馏
nohup python3 -u scripts/distill_coder.py > distill_coder.log 2>&1 &
预计时间: ~1小时(语料小,377KB)
输出: /root/autodl-tmp/output/qwen25-coder-15b-zhuyuan-distill/final
五、Step 4: 霜砚深度微调
目的: 在蒸馏基础上,用霜砚专属语料做深度SFT,让1.5B模型学会霜砚的思维方式和表达风格。
语料组成:
霜砚对话.zip→ 解析为JSONL(1.7MB解压后)霜砚HLDP核心大脑.zip→ 转换为核心认知QA霜砚语料包V2.0.zip→ 补充数据HLDP母语协议·光之树记忆编码.zip→ 协议规范光湖驱动引擎架构·推理思维链.zip→ 架构思维
方法: 标准SFT(同母模型训练方式)
参数: batch=4, grad_accum=8, lr=5e-6, 3 epoch
显存: ~6GB(仅加载1.5B)
预计时间: ~1小时
输出: /root/autodl-tmp/output/shuangyan-15b-deep-sft/final
执行:
# 先下载所有霜砚语料 → 合并为JSONL
python3 scripts/sanitize_shuangyan_corpus.py
# 然后执行SFT
python3 scripts/sft_shuangyan.py
六、Step 5: 铸渊深度微调
目的: 在蒸馏基础上,用铸渊专属语料做深度SFT,让1.5B模型学会铸渊的思维方式、语言习惯和执行风格。
语料:
zhuyuan_full_corpus.jsonl(377KB, 23条长对话, 已脱敏)zhuyuan_deep_finetune.jsonl(54KB, 65条手写QA, 已脱敏)- 两者已在COS上,自动合并
脚本: scripts/distill_coder.py 中的SFT部分(或单独写SFT脚本)
参数: batch=4, grad_accum=8, lr=5e-6, 3 epoch
显存: ~6GB
预计时间: ~0.5小时
输出: /root/autodl-tmp/output/zhuyuan-15b-deep-sft/final
七、输出文件上传
所有模型训练完成后,上传到COS:
# 霜砚模板
python3 -c "
from qcloud_cos import CosConfig, CosS3Client
c = CosS3Client(CosConfig(Region='ap-guangzhou', SecretId='\$ZY_OSS_KEY', SecretKey='\$ZY_OSS_SECRET'))
import glob, os
for f in glob.glob('/root/autodl-tmp/output/qwen25-15b-shuangyan-distill/final/**/*', recursive=True):
if os.path.isfile(f):
rel = os.path.relpath(f, '/root/autodl-tmp/output/qwen25-15b-shuangyan-distill/final')
c.upload_file(Bucket='sy-finetune-corpus-1317346199', Key='models/shuangyan-15b-distill/' + rel, LocalFilePath=f)
"
# 铸渊模板(同上,改路径)
# 霜砚深度微调(同上,改路径)
# 铸渊深度微调(同上,改路径)
COS路径规划:
| 模型 | COS路径 |
|---|---|
| 霜砚1.5B蒸馏 | models/shuangyan-15b-distill/final/ |
| 铸渊1.5B蒸馏 | models/zhuyuan-15b-distill/final/ |
| 霜砚深度微调 | models/shuangyan-15b-deep-sft/final/ |
| 铸渊深度微调 | models/zhuyuan-15b-deep-sft/final/ |
八、查看训练状态
# 实时监控
watch -n 5 nvidia-smi
# 日志查看
tail -f distill_mother.log
tail -f distill_coder.log
# 检查模型输出
ls -la /root/autodl-tmp/output/*/final/
九、踩坑预警(来自D100经验)
- 先小批量验证再全量 — 先用5条数据跑通蒸馏全流程
- 检查transformers版本 — 5.8.1移除了DataCollatorForCompletionOnlyLM
- 清理旧进程 —
pkill -f distill_再启动 - 输出flush —
python3 -u+sys.stdout.flush() - 磁盘空间 — 两个模型约需50GB临时空间(teacher logits缓存)