默认值从哪来
模型目录里的 generation_config.json 记录作者设定的默认采样参数(温度、top_p、top_k 等)。请求没有显式指定时,实际生效值由「服务端默认 → 模型生成配置 → 请求参数」这条链路逐层决定,所以常与模型卡上写的推荐值不一致。查清这条链路,比反复试参数更快定位问题。
基本信息
| 文件 | 模型目录下的 generation_config.json |
|---|---|
| 内容 | 作者设定的默认采样参数 |
| 优先级 | 请求参数 > 模型配置 > 服务端默认 |
| 查看方式 | 直接读取该文件 |
| 常见误区 | 以为不传就是框架默认值 |
典型使用场景
- 排查输出风格与模型卡描述不符的原因
- 上线前确认实际生效的温度与 top_p
- 对比两个模型的「原生风格」时排除参数干扰
- 复现论文或评测结果时对齐作者配置
- 做提示词工程时固定采样参数,避免把参数波动误判成提示词改动的效果
查看模型自带默认值
查看模型自带默认值
cat <模型目录>/generation_config.json | head -30 # 看作者设定的默认值
# 与模型卡推荐值逐项对照,差异项单独记录请求级显式覆盖
请求级显式覆盖
r = client.chat.completions.create(
model="<模型名>",
messages=[{"role": "user", "content": "你好"}],
temperature=0.6, # 显式指定,不依赖链路里的隐式默认
top_p=0.9,
)
print(r.choices[0].message.content)默认值链路
| 层级 | 来源 | 说明 |
|---|---|---|
| 请求参数 | 调用方显式传入 | 优先级最高 |
| 模型配置 | generation_config.json | 作者推荐值 |
| 服务端默认 | 引擎与启动参数 | 兜底值 |
上线前用最小请求确认实际生效的 temperature/top_p:默认值链路(服务端 → 模型配置 → 请求)很容易想当然,而它直接决定线上输出风格。
同一个模型在不同引擎下的默认值可能不同:换服务端后输出风格变化,先按这条链路逐层排查,而不是先怀疑模型本身。
对比实验要记录生效参数及其来源(请求、模型配置还是服务端默认):否则过两周没人说得清当时用的是哪一套。