OpenAI-Compatible 相关参数
介绍 OpenAI-Compatible API 的参数与技术含义
大模型调用参数技术表(OpenAI-Compatible)
| 参数名 | 类型 | 默认值 | 功能分类 | 技术含义(专业解释) |
|---|---|---|---|---|
| model | string | 必填 | 路由 / 模型选择 | 指定使用的模型名称不同模型具有不同上下文长度、模态能力与定价 |
| temperature | float | 1.0 | 采样控制 | 使用温度缩放调整概率分布: 升高 T → 输出更随机 |
| top_p | float | 1.0 | 采样控制 | Nucleus Sampling 仅从累计概率达到 的 token 子集中采样,控制长尾噪声 |
| top_k | int | 无(不限) | 采样控制 | 从概率最高的前 k 个 token 中采样 为贪心解码 |
| frequency_penalty | float | 0 | 采样控制 | 按 token 出现频率惩罚重复: 减少啰嗦 |
| presence_penalty | float | 0 | 采样控制 | 对已出现 token 添加惩罚,鼓励话题多样性 |
| max_tokens | int | 由模型决定 | 输出控制 | 限制输出 token 的最大值总 token = 输入 + 输出 |
| stop /stop_sequences | string/string [] | None | 输出控制 | 当生成序列命中指定字符串时立即终止推理 |
| n | int | 1 | 输出控制 | 一次生成 n 个独立候选输出,用于 rerank 或多样化 |
| stream | bool | false | 输出控制 | 启用流式输出,逐 token 返回,降低延迟 |
| logprobs | bool 或 int | None | 调试 / 可解释性 | 若为 true 或整数,返回 token 对数概率及 top-k 候选概率 |
| top_logprobs | int | None | 调试 / 可解释性 | 返回每个位置 top-k token 概率用于分析不确定性 |
| logit_bias | object | 生成约束 | 对特定 token 的 logit 加偏置(如 -100 禁止该 token) | |
| response_format | object | None | 结构化输出 | 强制 JSON 等结构化格式输出,如 {type:"json_object"} |
| tools | array | None | Function Calling | 声明可调用的函数 / 工具模型可返回 {tool_name, arguments} |
| tool_choice | string/object | "auto" | Function Calling | 指定必须调用哪一个工具或允许自动选择 |
| messages | array | 必填(聊天接口) | 输入 | 聊天协议输入,包含系统、用户、助手角色消息 |
| input | string/object/array | 取决接口 | 输入 | 非 ChatCompletions 新接口(如 /v1/responses)的输入字段 |
| media_resolution | string 或 int | 模型特定 | 多模态 | 控制视觉编码分辨率,高分辨率增加视觉 token,提升 OCR / 细节能力 |
| image_detail /vision_detail | string | "auto" | 多模态 | 控制视觉特征粒度:"low" 为粗特征,"high" 为细粒度 |
| max_output_tokens | int | None | 输出控制(新接口) | 等同于 max_tokens,部分 API 新名称 |
| seed | int | None | 可复现性 | 指定随机种子,使模型输出可复现(若模型支持) |
| function_call(旧接口) | string/object | "auto" | Function Calling | OpenAI 旧版函数调用参数,新接口已合并为 tools |
1. 采样控制(Sampling Controls)
1.1 temperature
-
控制生成分布的 “平滑度”
-
当对 token 分布 使用 softmax 温度缩放:
-
:让分布更均匀 → 输出更多样但更随机
-
:让分布更尖锐 → 输出更确定,创造性降低
-
常用范围:
1.2 top_p(Nucleus Sampling)
-
限制采样在累计概率前 的 token 子集内:
-
用于防止尾部 token 噪声,提高稳定性
-
常用范围:
-
与 temperature 互相影响,通常二选一调节即可
1.3 top_k
- 从概率最高的 个 token 中采样
- 越大 → 多样性越高; → 贪心解码
1.4 presence_penalty
- 惩罚已出现过的 token,促进话题扩散
- 典型实现:对已出现 token 的概率加偏置
1.5 frequency_penalty
-
按出现频次惩罚 token,维持重复度抑制:
-
用于减少模型 “啰嗦” 与重复句式问题
2. 输出长度、结构与停止条件
2.1 max_tokens
- 限制模型生成的最大 token 数
- 注意:总 token = 输入 token + 输出 token
2.2 stop /stop_sequences
- 当生成序列命中指定字符串时立刻停止推理
- 常用于多轮对话协议、代码生成的结构约束
2.3 n
- 一次生成 个独立候选输出
- 用于 reranking、批量生成
3. 模态与输入控制(Images / Audio / Multimodal)
3.1 media_resolution(Gemini / 部分多模态模型特有)
- 决定图像在内部编码器中的处理分辨率
- 分辨率越高 → 视觉 token 更多、识别细节更好 → 成本与延迟上升
3.2 image_detail /vision_detail(不同 API 名称略有差异)
- 控制图像编码粒度:
"low":粗略视觉特征,性能更快"high":细粒度视觉特征,适合 OCR
4. 系统行为控制(Behavior / Safety)
4.1 logit_bias
-
对特定 token 的 logit 直接加偏置,如:
"logit_bias": { "198": -100 } // 禁止某 token -
可用于强制特定格式,如 JSON
4.2 response_format /response_schema
-
要求模型按 JSON 或其他结构化格式输出
-
OpenAI 新接口常用:
"response_format": { "type": "json_object" }
4.3 tools(函数调用)
-
用于 Function Calling / Tool Calling
-
允许模型输出结构化的调用参数,例如:
{ "tool_name": "search", "arguments": { "q": "LLM evaluation" } }
5. 调试与概率输出
5.1 logprobs
- 要求返回每个生成 token 的对数概率
- 常用于可解释性、训练数据逆推、策略调试
5.2 top_logprobs
- 返回 top- token 及其概率,用于分析模型不确定性
6. 流式输出
6.1 stream
true:以 chunk 流式推送 token- 支持更低延迟和前端实时渲染
7. 采样控制与解码策略
采样控制与解码策略常被混用,但在严格的生成式模型文献中,它们属于两个层级的概念:
7.1 定义上的层级差异
解码策略(Decoding Strategy)
解码策略是 “如何从模型的条件分布 中生成序列” 的整体方法 它规定了完整的序列生成机制,包括:
- 是否贪心
- 是否随机采样
- 是否使用束搜索(Beam Search)
- 是否使用逐 token 的过滤策略(如 top-p、top-k、typical)
是一个宏观决策层级
典型解码策略:
- Greedy decoding
- Beam search
- Random sampling (stochastic decoding)
- Nucleus sampling
- Top-k sampling
- Typical decoding
- Contrastive decoding
- Speculative decoding
- Mixture-of-strategies(如 ChatGPT 的内部策略)
采样控制(Sampling Controls)
采样控制是对具体解码策略内部概率分布的参数化调制,例如:
- (temperature)
- top-p
- top-k
- repetition penalty /frequency penalty
- presence penalty
它们是局部调节工具,作用在某个解码策略的概率分布上
7.2 二者关系:解码策略是 “方法”,采样控制是 “参数”
理解方式:
| 层级 | 含义 | 示例 |
|---|---|---|
| 解码策略(Decoding Strategy) | 决定采样方式的宏观方法 | Greedy / Beam / Top-p Sampling / Typical Decoding |
| 采样控制(Sampling Controls) | 控制概率分布形状的具体参数 | Temperature /top_p/top_k / Penalties |
换句话说,解码策略 = 算法,采样控制 = 算法的参数
举例:
- “Top-p sampling” 是策略
- “top_p = 0.9” 是控制参数
- “temperature = 1.3” 是进一步控制其随机性的缩放系数
7.3 具体例子:top-p sampling 中的参数与策略分离
解码策略:Top-p Sampling
流程:
- 对所有 token 排序
- 找到最小集合 ,使得
- 从 中归一化后随机采样
采样控制:top_p /temperature/penalties
- top_p 控制 的大小
- temperature 控制概率分布的平滑度
- penalty 控制重复度抑制
策略不变,只是调整其内部概率
7.4 解码策略通常决定生成质量的 “风格”,采样控制决定 “随机性”
| 属性 | 解码策略决定 | 采样控制决定 |
|---|---|---|
| 生成结构 | 强(如 beam search 更保守) | 弱 |
| 输出确定性 | 强(greedy = 完全确定) | 可控(通过 T、top_p) |
| 多样性 | 中(策略范围) | 强(温度 / 概率调节) |
| 可控性 | 方法级别 | 参数级别 |
7.5 常见混淆点澄清
混淆点 1:认为 top-p 是 “采样控制”
实际上,它属于:
- 作为 “策略”:Top-p sampling
- 作为 “参数”:top_p
两者不同语义层级
混淆点 2:认为 temperature 是 “解码策略”
否,temperature 不是策略,它不决定如何采样,只决定采样时的概率分布形状
解码策略决定 “如何从语言模型中取 token”,采样控制决定 “取 token 时的概率分布长什么样”
这篇文档有帮助吗?