3015 字
约 10 分钟
14
S19-X18 · 模型谱系与版本演化:从 GPT 到 Qwen 与 Claude
gpt-4o-mini、qwen2.5-72b-instruct、claude-sonnet-4——这三串名字里塞着家族、代际、规模、训练阶段与变体。读不懂命名法,选型只能靠榜单,升级只能靠感觉。
1. 名字的四个位置
| 位置 | 表达什么 | 例子 |
|---|---|---|
| 家族名 | 出品方的产品线 | gpt*、claude*、qwen*、llama*、gemma* |
| 代际 | 训练配方与数据的大版本迭代 | qwen2.5 中的 2.5、claude-sonnet-4 中的 4 |
| 规模 | 参数量的数量级或档位 | 72b、7b、0.5b;闭源侧常用 nano/mini/sonnet/opus 这类档位词 |
| 变体后缀 | 训练阶段与用途 | -instruct、-chat、-base、-thinking、-vl、-coder |
逐项说明:
qwen2.5-72b-instruct
└─┬─┘ └┬┘ └┬┘ └──┬───┘
│ │ │ └ 训练阶段:指令微调后的对话可用版
│ │ └ 规模:约 72B 参数
│ └ 代际:2.5 这一代
└ 家族
claude-sonnet-4-20250514
└──┬─┘ └─┬─┘ ┬ └──┬──┘
│ │ │ └ 快照日期,用于锁定
│ │ └ 代际
│ └ 档位:能力/成本分层
└ 家族
| 后缀 | 含义 | 用错的后果 |
|---|---|---|
-base |
仅预训练,续写型 | 直接当对话模型用,答非所问 |
-instruct / -chat |
指令微调 + 对齐 | 误以为是同一模型的"同一版本" |
-thinking / -reasoning |
带较长思维链,延迟与 token 成本更高 | 当普通模型压测,成本估错一个量级 |
-vl |
视觉输入 | 传图报错或静默忽略图像 |
-awq / -gguf / -fp8 |
量化或序列化格式 | 以为能力等同原版权重 |
-distill |
蒸馏产物 | 当原版报能力 |
2. 模型版本号不是软件版本号
软件版本号是同一份代码的修订记录,增量改动、接口兼容;模型版本号更像物种谱系:
| 维度 | 软件版本 | 模型版本 |
|---|---|---|
| 同号是否同物 | 是 | 否:同代不同规模是不同模型 |
| 是否可比 | 接口契约稳定 | 行为分布会变,提示词需重调 |
| 回滚成本 | 换二进制 | 换权重/换端点,可能整条链路重评 |
| 语义 | 修复 + 功能 | 配方 + 数据 + 对齐目标的整体替换 |
三条例外必须记清:同代不同规模(7b 与 72b 是不同模型);同规模不同阶段(base 与 instruct 共享预训练产物,行为差异巨大);蒸馏版与原始版(学的是输出分布,同名不同源)。
3. 三个阶段各带来什么
预训练 → 指令微调 → 对齐(偏好/安全/推理风格)
知识、语言能力 遵循格式、会对话 取舍偏好、拒答边界、输出风格
| 阶段 | 得到什么 | 代价 | 典型失效 |
|---|---|---|---|
| 预训练 | 知识广度、语言能力、续写 | 算力最贵 | 不会按指令组织回答 |
| 指令微调 | 遵循格式、多轮、工具调用协议 | 数据质量决定上限 | 过度拟合模板,泛化变窄 |
| 对齐 | 有用性/无害性/风格的取舍 | 可能牺牲部分原始能力 | 过度保守、啰嗦 |
关键认知:对齐不是加法,是取舍。同一基座,对齐目标不同会得到行为不同的模型;升级到"更对齐"的版本,某些边界场景的通过率可能下降,这不是能力退化,是目标函数换了。
4. 能力维度拆解
| 维度 | 主要来源 | 观测方式 |
|---|---|---|
| 知识广度 | 预训练数据规模与时效 | 事实问答、闭卷测验 |
| 推理深度 | 规模 + 训练配方 + 思维链长度 | 多步数学、代码调试 |
| 指令遵循 | 指令微调数据质量 | 格式约束、多约束同时满足率 |
| 长上下文 | 位置编码扩展 + 长文训练 | 中段召回、跨段引用 |
| 工具调用 | 后训练中的函数调用数据 | 参数正确率、多轮纠错 |
| 多语言 | 语料配比 | 低资源语种的一致性 |
| 代码 | 代码语料 + 执行反馈训练 | 编译通过率、测试通过率 |
同一模型的各维度强弱并不同步:规模扩大先改善知识与推理,指令遵循更依赖数据质量;长上下文多是独立训练的产物,与参数量关系不大。所以"换更大的模型"不等于"所有维度都变好"。
5. 上下文窗口:扩展方式与边界
| 方式 | 做法 | 边界 |
|---|---|---|
| 位置编码外推 | 调整 RoPE 基频等参数 | 超出训练长度后精度衰减 |
| 插值/缩放 | 压缩位置索引 | 近距离分辨率下降 |
| 长文继续训练 | 用长样本续训 | 成本高,短任务能力可能回退 |
| 检索替代 | 外接 RAG | 不是窗口问题,是检索质量问题 |
长窗口不等于长上下文有效。窗口是容量,有效上下文是"能不能真的用上中间那段"。评测要专门做中段召回:把关键信息放在长文档中部,看模型能否引用。典型量级上,宣称 128K 的模型在中段的稳定召回往往明显弱于首尾——具体差异须按所用模型版本核对。
# 有效上下文探针:把"针"放在不同相对位置,看召回率
def needle_probe(llm, filler, needle, positions=(0.0, 0.25, 0.5, 0.75, 1.0)):
hits = {}
for p in positions:
i = int(len(filler) * p)
doc = filler[:i] + needle + filler[i:]
ans = llm(f"只根据下文回答,找不到就说未知。\n{doc}\n问题:{needle_q}")
hits[p] = needle_a in ans
return hits
6. 开源权重与闭源 API 的谱系差异
| 维度 | 开源权重 | 闭源 API |
|---|---|---|
| 微调 | 可全参/LoRA,可改结构 | 一般只能提示、少量微调接口 |
| 自托管 | 可,需算力与运维 | 不可 |
| 版本可复现 | 权重哈希固定即可复现 | 端点可能静默更新,只能靠快照名锁定 |
| 能力上限 | 受权重限制 | 常领先一个代际 |
| 成本结构 | 固定算力成本,边际近零 | 按 token 计费,随用量线性增长 |
| 数据边界 | 数据不出内网 | 受服务条款约束 |
一句话选型:要可复现与数据边界选权重,要能力上限与零运维选 API;混合架构很常见。
7. 模型卡该看什么
| 字段 | 要读出的东西 | 红旗 |
|---|---|---|
| 训练数据来源与截止 | 知识时效边界 | 只写"大规模语料",无时间 |
| 评测集与协议 | 分数是在什么条件下得的 | 只报自建集,无外部集 |
| 已知局限 | 官方承认的短板 | 该字段为空 |
| 许可证 | 商用、再分发、衍生限制 | 只写"见 LICENSE",无商用说明 |
| 对齐方法 | RLHF/DPO/规则约束 | 未说明,行为不可预期 |
| 量化版本 | 是否官方量化、精度损失 | 社区量化冒充官方 |
8. 版本锁定与升级验证
# 应用侧:模型版本必须是配置,不是散落在代码里的字符串
model:
provider: [PROVIDER]
id: [MODEL_ID] # 精确到快照名,不用 rolling 别名
snapshot: [SNAPSHOT] # 例:带日期的快照标识
params: {temperature: 0.2, max_tokens: 1024}
fallback: [FALLBACK_ID]
canary:
ratio: 0.05
gates:
- task_success_rate 不低于基线 - 1pp
- schema_valid_rate 不低于 0.99
- p95_latency 不高于基线的 1.3 倍
- 单位成本不高于预算
| 升级前验证 | 做法 | 判定 |
|---|---|---|
| 回归集 | 固定 300–500 条历史难例 | 逐条对比,不看均值 |
| 格式合规 | 结构化输出 schema 校验通过率 | 硬门槛 |
| 成本 | 同任务 token 消耗对比 | 明显上升要重估 |
| 延迟 | p50/p95 | 影响交互体验 |
| 灰度 | 5% 流量 + 双跑记录 | 达标再放量 |
别用 rolling 别名做生产依赖:别名背后的模型会在不通知的情况下更换。
regression:
cases: tests/model_regression/*.jsonl # 300–500 条历史难例
compare: {baseline: [MODEL_ID_OLD], candidate: [MODEL_ID_NEW], mode: pairwise}
gates: [schema_valid_rate, task_success_rate, p95_latency, cost_per_task]
on_fail: block_release
9. 代际跨越的迁移成本
| 变化 | 表现 | 应对 |
|---|---|---|
| 提示词要重调 | 旧提示在新模型上过度解释或过度简短 | 保留提示词版本库,逐代回归 |
| 采样参数最优点漂移 | 同 temperature 下风格差异明显 | 重新扫 temperature/top_p |
| 工具调用格式变化 | function schema、并行调用支持不同 | 适配层抽象,不写死协议 |
| 输出长度分布变化 | 截断率上升或成本上升 | 重设 max_tokens 与截断策略 |
| 拒答边界变化 | 原本通过的请求被拒 | 准备降级路径与人工兜底 |
经验口径:同代小版本升级约等于一次提示词回归;跨代升级约等于一次小型接入重构。
10. 常见误解
| 误解 | 纠正 |
|---|---|
| 参数量大就全面更强 | 维度不同步,小模型在特定任务上常胜 |
| 蒸馏版等于原版 | 分布近似,长尾与推理链差异明显 |
| 榜单排名是能力保证 | 榜单可被针对性优化,且与你的任务分布不同 |
| 升级只会变好 | 对齐目标变化会牺牲部分能力 |
| 同名即同物 | 同代不同规模、不同阶段都是不同模型 |
11. 排错:五种判断失误
| 现象 | 真实原因 | 处理 |
|---|---|---|
| "升级后变笨了" | 采样参数未随代际重调 | 重扫 temperature,再判能力 |
| 同一 prompt 效果不稳 | 用了 rolling 别名 | 锁定快照名 |
| 小模型表现接近大模型 | 比的是蒸馏版 vs 原版 | 核对权重来源与模型卡 |
| 长文档问答掉点 | 关键信息在文档中段 | 做中段召回探针 |
| 成本突然翻倍 | 新代际默认思维链更长 | 看输出 token 分布,而非请求数 |
12. 边界:这些判断不该靠模型名
| 场景 | 模型名给不了的信息 | 该做什么 |
|---|---|---|
| 选型 | 你的任务上的实际表现 | 自建 100–300 条任务集做对比 |
| 成本预算 | 输出长度分布 | 按真实流量实测 token |
| 合规审查 | 数据处理与留存策略 | 读服务条款与部署文档 |
| 能力上限 | 榜单不覆盖的细分能力 | 针对性探针 |
| 长期维护 | 该版本的支持周期 | 关注官方弃用公告 |
13. 自测
qwen2.5-72b-instruct四个位置各表达什么?换成-base会怎样?- 为什么说模型版本号不是软件版本号?举两种"同号不同物"的情况。
- 预训练、指令微调、对齐三阶段各自的能力增量是什么?
- 宣称 128K 窗口的模型,为什么还要单独测中段召回?
- 生产环境为什么不能用 rolling 别名?
- 跨代升级的迁移成本主要体现在哪四件事上?
S19-X18 · 模型谱系与版本演化:从 GPT 到 Qwen 与 Claude
https://www.clxhxhhr.top/posts/6003/ 评论
0 条
还没有评论,先写一条吧。