09 实战微调——在 Kaggle 上训练你自己的决策头
发布时间:2026/10/7 2:46:48 锦皓数字建站

文章目录写在前面一、官方 notebook 的地图五个站点二、train_ddp.py 拆解一个 269 行的 RLCD 循环三、RLCD 训练循环第 6 篇公式的 runnable 版四、沙箱预演90 秒 CPU 跑通整个闭环五、训练完的三件套温度、评估、上传自测十题本文总结写在最后附术语速查表第 9 版累加 8 条下篇预告写在前面前八篇我们把 LAYA 拆了个底朝天架构D3/D4、问法D5、训练原理D6、校准D7、部署D8。但全程都是用别人训好的模型。这一篇动真格把它变成你的模型。官方在仓库里放了一个微调 notebooklaya_finetune_typed_decisions_2xT4_kaggle.ipynb宣称在 Kaggle 免费 2×T4 上 4~5 小时跑完全流程造数据 → RLCD 训练 → 温度拟合 → 评估 → 推回 HuggingFace。我把它逐 cell 拆解了一遍然后在 CPU 上跑了一个 9 样本的迷你复刻第 6 篇的 proper_reward、第 7 篇的温度拟合都会在真实训练日志里再见面。家当Kaggle 账号免费白嫖每周 30 小时 GPU 配额 HuggingFace 账号token 存进 Kaggle Secrets。本文的迷你版则只要pip install laya。军规九被4~5 小时这个数字逼出来的一条军规九上新硬件之前先跑最小版。官方 notebook 是 3 万问题、4~5 小时、双 T4 的规模——直接照跑错了都不知道错在哪。我先用 9 个样本、90 秒、纯 CPU 把整个 RLCD 闭环走通再谈放大。先通后大错了便宜。一、官方 notebook 的地图五个站点打开 notebook五段结构清晰得像车站站点干什么关键代码① 环境Kaggle 上装 laya、取 HF_TOKENKaggle Secrets取 token 登录 Hub② 造数据把你的任务写成 typed questions 标注纯 JSON 手工活③ 训练%%writefile train_ddp.py写出训练脚本双卡 DDP 跑全文 269 行第三节拆④ 温度拟合训练完顺手校准第 7 篇的网格搜索fitted_temps写回配置⑤ 推送safetensors 配置 tokenizer 打包上传huggingface_hub.HfApi第 ② 站值得停一下造数据就是把第 5 篇的合同设计稿变现。你写 choice 的 criteria、score 的等级描述、noul 的陈述句——每一条都是一个训练样本的考卷标准答案。官方跑的是约 3 万道题4 个 epoch notebook 里有完整的格式模板。你在 D5 练过的选项怎么写在这里直接变现写得好 训练数据质量高。二、train_ddp.py 拆解一个 269 行的 RLCD 循环别被 269 行吓到骨架就四句话# 1) 只训头encoder 全部冻结head_params[pforn,pinmodel.named_parameters()ifencoder.notinn]# 2) 双学习率头动得快encoder 慢慢跟optimizertorch.optim.AdamW([{params:enc_params,lr:2.5e-5},# encoder 微调{params:head_params,lr:1e-4}])# 决策头大步走# 3) 探索退火前期大胆试后期收敛sigma0.4(0.1-0.4)*epoch/(EPOCHS-1)# 4) 每个 batch采样→打分→更新第三节细拆三个工程细节顺手记下head_checkpointingTrue用重算换显存2×T4 显存才 32GBCosineAnnealingLR余弦退火学习率梯度裁剪 1.0 防 RL 更新暴走。三、RLCD 训练循环第 6 篇公式的 runnable 版每个 batch 三步全部是第 6 篇讲过的东西穿上代码① 组内采样GRPO 式对当前模型给出的 logits加 G 组零均值高斯噪声sigma 从 0.4 退火到 0.1epstorch.randn((GROUP,)logits.shape)*sigma*mask epseps-eps.sum(-1,keepdimTrue)/mask.sum(-1,keepdimTrue)# 投影回零均值zlogits.detach().unsqueeze(0)eps# G 份赌法② proper_reward 打分G 份赌法各自 softmax 后对着真值算第 6 篇那个三合一账单rproper_reward(q,target,qtype,mask,w_sph0.75,w_rps1.0)adv(r-r.mean(0))/(r.std()1e-6)# 组内相对优势——没有裁判网络注意proper_reward不是比喻就是laya.common里那个函数——你在第 6 篇见过的 log score spherical RPS训练时真拿它发工资。③ 策略梯度 CE 引导奖励高的采样方向推一把同时用交叉熵兜底防止 RL 阶段崩盘logp-(((z-logits)**2)*mask).sum(-1)/(2*sigma**2)# 高斯似然解析式loss-(adv*logp).mean()-CE(logits,target)# RL 项 监督项第 6 篇说GRPO 式组内相对表现互为基准、省掉独立裁判——adv r - r.mean()那一行就是全部秘密。四、沙箱预演90 秒 CPU 跑通整个闭环说好的最小版。我把官方流程缩到极限9 个样本、3 类意图退款/故障/咨询、encoder 冻结、只训头CPU 上完整复刻三步循环可训练参数: 26,512,131 / 全部 421,293,827 ← 第 4 篇的参数账再次对上冻结后能训的正是那 26.5M 的头 RLCD mini: 9 样本 × 15 epochs, GROUP4, sigma 0.4-0.1 epoch 1/15 | 平均奖励 0.675 | sigma0.40 | 6s epoch 5/15 | 平均奖励 0.739 | sigma0.31 | 30s epoch 10/15 | 平均奖励 0.750 | sigma0.21 | 60s epoch 15/15 | 平均奖励 0.750 | sigma0.10 | 90s 奖励曲线: 0.68 0.69 0.71 0.73 0.74 0.75 0.75 ... 0.75 [训练前] held-out 命中 3/3 [训练后] held-out 命中 3/390 秒闭环走通。三处值得咂摸的读数奖励曲线的形状前 5 个 epoch 爬升之后贴住 0.750 不动——探索退火sigma 变小后策略收敛组内采样都在同一片区域优势趋零更新自然停。这是健康的形状held-out 前后都是 3/3这个底座本来就会这类题第 5 篇就说过它判断力在线。RLCD 的提升空间主要不在翻正误在把概率磨得更贴近真值——这正是 proper scoring rule 的设计意图也是它和只看对错的交叉熵训练的分野总账单9 样本 90 秒 CPU → 官方 3 万问题 4~5 小时双 T4。你的任务规模落在中间的哪里配额怎么花现在可以自己估了。五、训练完的三件套温度、评估、上传notebook 后半段把第 7 篇的知识直接复用温度拟合留出的校准集上网格搜 T每题型一个cfg[temperature] fitted_temps写回配置顺手删掉继承的旧分桶温度第 7 篇说过桶值优先于题型值评估跑 held-out 集看准确率和 ECE和训练前对比——不涨就别上传推送模型存 fp16 safetensors训练脚本里{k: v.half() for k, v in model.state_dict().items()}配fine_tuned: true的 rl_agent_config.jsonHfApi().upload_folder(...)推上你自己的 HF 仓库。从此 Router 加载的就是你的 checkpoint——D8 那套部署代码一行不改。这套流程跑通一次微调大模型就从传说变成了你的日常。而它全程没有写过一个字——第 1 篇的flag到这里才算真正合龙。自测十题点开对答案官方 notebook 五个站点—— 环境 → 造数据 → 训练train_ddp.py→ 温度拟合 → 推送。本篇一造数据在变现前哪篇的什么—— 第 5 篇的合同设计稿criteria/等级/陈述句就是训练样本的考卷答案。本篇一为什么只训头也能涨—— 判断力集中在 26.5M 的头上D4 账本encoder 提供通用语义即可9 样本实测奖励照样收敛。本篇二/四双学习率各是多少—— encoder 2.5e-5 慢走决策头 1e-4 大步。本篇二sigma 为什么从 0.4 退火到 0.1—— 前期大胆探索后期收敛实测曲线上贴住 0.750 不再动就是退火生效。本篇三/四GRPO 式的省掉裁判落在哪一行——adv (r - r.mean(0)) / (r.std()1e-6)组内相对表现互为基准。本篇三loss 里为什么还有一项交叉熵—— RL 项监督项混合CE 兜底防 RL 阶段崩盘。本篇三我的迷你版里 held-out 前后都是 3/3说明什么—— 底座本来会RLCD 在磨概率不是翻正误——proper scoring rule 的分野。本篇四上传的三件套—— fp16 safetensors rl_agent_config.jsonfine_tuned新温度 tokenizer。本篇五军规九是什么—— 上新硬件前先跑最小版先通后大错了便宜。写在前面本文总结notebook 五站环境→造数据→训练→温度拟合→推送造数据第 5 篇合同设计稿变现只训头encoder 冻结或慢走26.5M 的头是判断力所在——D4 参数账的实战回响RLCD 三步零均值噪声组内采样 → proper_reward 组内相对优势 → 解析似然策略梯度CE 引导sigma 退火 0.4→0.190 秒 CPU 迷你闭环奖励 0.675→0.750 收敛、曲线形状健康、held-out 保持——先通后大军规九上传三件套fp16 权重新温度tokenizerRouter 一行不改换模型。写在最后最后一篇了。九篇下来Jev/LAYA 从一条新闻变成了你手里一台全透明的机器为什么快一次前向、怎么问三原语合同、凭什么信RLCD校准、怎么养微调。收官篇回答最后一个问题也是最值钱的一个它什么时候不该用——零样本的真实水平、否定句的坑、高基数的墙全部实测。然后合龙十篇的军规、类比、实验一次点清。附术语速查表第 9 版累加 8 条术语一句话解释详解在哪篇微调fine-tune拿自己的数据继续训练专用化一个通用 checkpoint本篇冻结freezerequires_gradFalse参数不更新只训头时常用本篇组内采样同一 batch 加 G 组零均值噪声当G 份赌法本篇优势advantage组内奖励减组内均值比平均好才推本篇策略梯度奖励加权的对数似然上升本篇CE 引导交叉熵兜底项防 RL 崩盘本篇sigma 退火探索幅度从 0.4 线性降到 0.1本篇fp16 保存权重减半存储421M 约 804MB本篇5第 1~8 版共 77 条见前八篇此处不重复。下篇预告能力边界——什么时候不该用决策模型收官零样本的真实水平、否定句的坑实测、高基数的墙、三栏选型法规则引擎/决策模型/LLM——以及十篇合龙军规点兵、类比地图、实验清单。终章见。下一篇见。读完有收获的话点赞、收藏、关注三连走起——十篇连载跟得住学得完。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。