大模型应用
在开始微调前判断该不该微调…
当你准备做微调、或不确定用 RAG/提示工程是否就够、或在偏好优化与强化学习方法之间犹豫时,用这套路由流程先做决策。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
在开始微调前判断该不该微调、以及选哪种方通用
解决思路
- 先检查是否该走「岔路口」而非直接训练:若缺口是易变的事实(价格、文档、时事),改用 RAG,不要微调——微调会把快照固化并很快过时。
- 若缺口是仍在摸索或每次请求都变化的行为,改用提示工程,不要微调——微调会锁定尚未稳定的行为。
- 若缺口是稳定且密集的领域知识,按领域文本量选择:<10MB 只用 RAG;10MB–500MB 用 RAG+微调;500MB–10GB 先做持续预训练(CPT)再做 SFT;>10GB 必须做 CPT。CPT 学习率约为预训练学习率的 10%。
- 确认已有评测框架(eval harness)后再做任何训练;没有就先停下来搭建评测。
- 按数据形态自上而下走决策树:先问「是新事实还是新行为」,再按手里的数据形态(演示、偏好对、点赞/点踩、可验证成败)选方法,而不是先选方法再找数据。
- 有输入/输出演示数据 → 用 SFT(LoRA/QLoRA,all-linear,α=2r)。
- 有偏好对 → 用 DPO;若存在长度偏差用 SimPO,若显存受限用 ORPO。
- 只有未配对的 👍/👎 信号 → 用 KTO(DPO 需要成对偏好,不适用)。
- 有可验证的成功/失败信号(数学、代码、工具调用)→ 用 RLVR + GRPO,并按失败模式选 DAPO/GSPO/Dr.GRPO。
- 区分用途:编码主观判断(语气、风格、哪个答案更好)的偏好对走 DPO;有可验证通过/失败信号的任务走 GRPO+RLVR。
- 不要用 RL 去修复一个从来不会成功的模型:GRPO 等 RL 只是锐化已有能力,不能从零教会。若模型还不理解任务或输出格式,先做 SFT,等它至少偶尔能成功后再上 RL。
- 不要在选择 DPO 变体上纠结:一项 240 张 H100 的研究发现方法选择只值约 1 个百分点,而模型规模约值 50 个百分点,且 20 个 DPO 变体没有一个胜过原版 DPO——把精力放在数据形态和规模上。
- 不要用微调去修每周都变的事实,那是 RAG 的问题,微调只会比源数据过时得更快。
- 不要默认用 CPT 解决「模型不懂我们领域」:先看数据量阈值,低于 500MB 时 RAG 或 RAG+微调迭代更快。
- 选基座模型时先定规模档、再定系列,且只在 references/model-catalog.md 中查(该文件是唯一命名模型系列的地方,带「最后验证」日期和刷新清单);若日期过旧,先按刷新清单更新再推荐。
- 当目录与方法技能冲突时:目录的 Notes 列只说明硬件/规模档的可行性,不构成方法推荐;实际方法选择以 lora-qlora-recipes 中按任务形态路由的 LoRA vs QLoRA vs Full FT 表为准。
- 在确定方法前先估算显存:总显存 ≈ 参数量 × dtype 字节数 + 优化器状态 + 梯度 + 激活值,按所选 dtype 和方法(全量微调/LoRA/QLoRA)逐项计算,参考 references/memory-math.md 的算例。
- 在 DGX Spark 上,统一内存行为会打破朴素估算(瞬时加载峰值、nvidia-smi 少报、长跑热降频);安装 dgx-spark-ops 插件后,把 Spark 相关的可行性判断交给其 spark-memory-thermal-ops 技能。
- 选定方法后交接给执行技能:SFT 交给 lora-qlora-recipes,DPO/ORPO/KTO 交给 preference-optimization,GRPO 交给 grpo-rlvr-training。
适用边界 · 注意事项
- 缺口是易变事实或仍在变化的行为时,不要微调(分别改用 RAG 和提示工程)。
- 模型对任务从未成功过时,不要直接上 RL,应先做 SFT。
- 没有评测框架时,不要开始任何微调或方法选择。