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. 自测

  1. qwen2.5-72b-instruct 四个位置各表达什么?换成 -base 会怎样?
  2. 为什么说模型版本号不是软件版本号?举两种"同号不同物"的情况。
  3. 预训练、指令微调、对齐三阶段各自的能力增量是什么?
  4. 宣称 128K 窗口的模型,为什么还要单独测中段召回?
  5. 生产环境为什么不能用 rolling 别名?
  6. 跨代升级的迁移成本主要体现在哪四件事上?
S19-X18 · 模型谱系与版本演化:从 GPT 到 Qwen 与 Claude
https://www.clxhxhhr.top/posts/6003/
作者
clxstart
发布于
2024-12-31
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。