怎么选生成模型
生成模型的选型要按场景拆开看:上下文窗口能否容纳多片段、指令遵循是否能稳定输出引用格式、中文术语与数字表述是否准确、推理能力与成本延迟是否可接受。判断依据是自有评测集上的对比结果,而不是榜单排名——RAG 场景考的核心能力是「严格按给定材料作答」,和通用对话能力不是同一件事。
基本信息
| 首要维度 | 长上下文下的忠实度与遗漏率 |
|---|---|
| 次要维度 | 指令遵循、中文表述质量、成本与延迟 |
| 验证方式 | 固定评测集与提示词,逐模型横向对比 |
| 版本管理 | 模型与提示词版本一起纳入回归,保留回退开关 |
典型使用场景
- 首次选型:在多个候选模型间用同一套评测集比出可用档位
- 升级换代:新版本发布后先跑回归,确认忠实度没有下降
- 成本压降:把简单问题路由到小模型,先按类别评测再放量
- 多场景配置:客服问答用稳定小模型,复杂推理走大模型
- 私有化部署:本地模型与云端接口在延迟与效果之间做权衡
A/B 对比骨架
A/B 对比骨架
for model in ["model-a", "model-b"]:
# 固定评测集与提示词版本,只换模型这一个变量
scores = run_eval(eval_set, model=model, prompt=PROMPT_VERSION)
print(model, {"faithful": scores.faithful, "cite_ok": scores.cite_ok,
"p95_ms": scores.p95, "cost": scores.cost})
# 结果写入报告留档,便于下次升级时对比
选型观察点
| 维度 | 验证方式 | 关注什么 |
|---|---|---|
| 长文稳定性 | 多片段(8 条以上)场景下的忠实度 | 是否遗漏中段材料或张冠李戴 |
| 指令遵循 | 引用格式与「不知道」行为的落实率 | 格式漂移与编造倾向 |
| 中文质量 | 术语、数字与单位表述抽样 | 专有名词是否被改写 |
| 成本与延迟 | 默认参数下的 P95 与单次费用 | 高峰期是否撑得住 |
模型升级要像代码一样管理:绑定评测集跑回归,保留回退开关,升级记录与模型名称一起写入回答的元数据,便于事后追溯。
换模型通常要微调提示词:同一套格式约束在不同模型上的遵循程度不同,不重新适配就下结论容易误判模型能力。