🧠 大模型入门与实战 · 第 1 篇

大模型怎么选:从任务类型出发的选型方法

作者:VillaB · 发布:2026-10-27 · 更新:2026-10-27 · 分类:大模型

先说结论:排行榜解决不了选型问题

榜单衡量的是「平均能力」,而你的业务只关心「这个任务能不能稳定做对,每千次调用花多少钱」。两件事没有必然关系——一个总分很低的模型,可能在你的任务上更稳、更便宜、延迟更低。

真正决定选型的是四个变量:

变量 为什么关键 怎么量化
任务类型 决定能力下限(推理 / 抽取 / 生成 / 代码 / 多模态) 抽 30~50 条真实样本,人工标注期望输出
成本 高频调用时会吃掉全部毛利 每次调用 token × 单价 × 日调用量
延迟 直接决定用户是否愿意等 P50 / P95 首 token 延迟与总耗时
合规 决定「能不能用」,不是「好不好用」 数据是否需出境、是否可私有化

顺序不能反:先筛合规,再筛能力,最后压成本和延迟。反过来做,经常是选了便宜模型、上线前才发现数据不能出境。

第一步:把任务拆成四类

不同任务类型的瓶颈完全不同,用同一套指标评估是浪费。

1. 结构化抽取(最高性价比)

从文本里抽出字段、分类打标、意图识别。这类任务不需要强推理,需要的是稳定遵循指令和严格输出格式。

  • 关键指标:格式合规率(能不能稳定输出合法 JSON)、字段准确率
  • 常见误区:上最贵的模型。抽取任务上,小模型 + 好的 schema 约束往往就够
  • 必做:response_format / JSON mode,加校验失败重试(见下文第 5 篇)

2. 长文理解(最容易被上下文长度误导)

合同比对、文档问答、会议纪要。厂商都在宣传「支持 1M 上下文」,但放得下不等于读得懂。

  • 关键指标:关键信息召回率(该找到的找没找到)、长文中间位置的准确率
  • 必做:做一个「大海捞针」测试——把关键句子埋在第 3 万字的位置,看能不能答对
  • 结论:如果召回率不达标,别怪模型,直接上 RAG(见第 5 篇)

3. 代码生成(差异最明显)

代码补全、单测生成、重构。这类任务在不同模型间差距最大,也最容易判断——跑测试就行,不需要人来打分。

  • 关键指标:测试通过率、首次可运行率
  • 优势:可以自动化评测,构建一条 CI 流水线就能持续对比

4. 开放生成(最难评估)

文案、摘要、客服话术。没有唯一正确答案,主观性强。

  • 关键指标:人工盲评胜率(A/B 两两比较,比打分靠谱)
  • 必做:至少要 100 条样本做盲评,20 条样本得出的结论基本是噪声

第二步:五个必问问题(能问倒一堆方案)

选型评审时,这五个问题能筛掉大部分拍脑袋的决定:

  1. P95 延迟是多少? —— 只看平均值会被长尾坑死。用户能忍受 2 秒,忍不了偶尔 30 秒。
  2. 失败时返回什么? —— 是报错、是超时、还是返回一个看起来正常的幻觉?这决定你要不要做兜底。
  3. 超长输入怎么计费? —— 有些厂商输入单价低但输出高,有些对长文本有阶梯价,算错了成本预估会差 3 倍。
  4. 有没有速率限制(RPM/TPM)? —— 免费额度和正式配额的限流差别巨大,压测时才发现就打乱了上线节奏。
  5. 模型版本会灰度更新吗? —— 如果厂商随时替换底层模型,你今天测好的效果明天可能就变了。要问清是否有版本锁定。

第三步:一套能落地的评分表

别用「感觉不错」做决策。把候选模型(3~5 个就够)拉进同一张表,每项 1~5 分加权:

总分 = 合规(一票否决) × [ 0.35×任务准确率 + 0.25×稳定性
                        + 0.20×成本 + 0.10×延迟 + 0.10×生态 ]
  • 任务准确率:自己那 30~50 条样本上的通过率
  • 稳定性:同一输入跑 5 次,输出一致的次数(抽取任务尤其重要)
  • 成本:按你的真实调用量算出的月账单,不是单价
  • 延迟:P95,不是平均
  • 生态:SDK 质量、文档、是否有 OpenAI 兼容(决定迁移成本)

权重要按业务改。客服场景延迟权重应该更高;离线批处理场景成本权重更高。

第四步:别忽略「换模型的成本」

一个常被低估的隐性成本:prompt 是模型绑定的。

你在 A 模型上调好的 prompt,换到 B 模型上经常直接掉点——因为不同模型对指令的敏感度、对 few-shot 的依赖、对格式的遵循程度都不一样。所以:

  • 选型时不要只测一个模型,至少留一个备胎跑通链路
  • prompt 里不要把话说过死(比如写死「你必须输出以下格式」而不用 schema 约束)
  • 关键路径上保留抽象层(统一走 OpenAI 兼容接口,见专栏的接入方式部分)
# 统一入口:换厂商只改 base_url 与 model
client = OpenAI(api_key=KEY, base_url=BASE_URL)
resp = client.chat.completions.create(model=MODEL, messages=msgs)

这样下次迁移,改动面从「重写所有 prompt」缩小到「改两个常量」。

一张图总结选型流程

合规检查(能否出境 / 能否私有化)
      ↓
任务分类(抽取 / 长文 / 代码 / 生成)
      ↓
跑真实样本(30~50 条,人工标注)
      ↓
算三项硬指标:准确率、P95 延迟、真实月成本
      ↓
留备胎 + 抽象层 → 上线

常见误区清单

  • ❌ 只看榜单选模型 → 榜单测的不是你的任务
  • ❌ 用 20 条样本下结论 → 样本量不足,结论是噪声
  • ❌ 只算单价不算用量 → 输出 token 通常是输入的数倍
  • ❌ 认为「上下文长 = 长文能力强」→ 要自己测召回率
  • ❌ 不留备胎 → 单一厂商限流或涨价时被动
  • ✅ 先合规、再能力、后成本 → 顺序错了会返工

相关工具

  • 想知道 prompt 里到底有多少 token?用文本字数统计估算量级(中文约 1 字 ≈ 1~1.5 token)
  • 需要校验模型输出的哈希是否稳定?哈希计算器

返回文章列表