OpenAI-Compatible 相关参数

介绍 OpenAI-Compatible API 的参数与技术含义

大模型调用参数技术表(OpenAI-Compatible)

参数名
类型
默认值
功能分类
技术含义(专业解释)

model

string

必填

路由/模型选择

指定使用的模型名称。不同模型具有不同上下文长度、模态能力与定价。

temperature

float

1.0

采样控制

使用温度缩放调整概率分布:$p_T(x) \propto \exp(\log p(x)/T)$。升高 T → 输出更随机。

top_p

float

1.0

采样控制

Nucleus Sampling。仅从累计概率达到 $p$ 的 token 子集中采样,控制长尾噪声。

top_k

int

无(不限)

采样控制

从概率最高的前 k 个 token 中采样。$k=1$ 为贪心解码。

frequency_penalty

float

0

采样控制

按 token 出现频率惩罚重复:$\logit' = \logit - \beta f(x)$。减少啰嗦。

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 分布 $p(x)$ 使用 softmax 温度缩放:$$ p_T(x) = \frac{\exp(\log p(x)/T)}{\sum_j \exp(\log p(j)/T)}

  • $T > 1$:让分布更均匀 → 输出更多样但更随机。

  • $T < 1$:让分布更尖锐 → 输出更确定,创造性降低。

  • 常用范围:$[0, 1.5]$。

1.2 top_p(Nucleus Sampling)

  • 限制采样在累计概率前 $p$ 的 token 子集内:$$ \sum_{x \in S} p(x) \ge p,\quad S \text{ 为最小的 token 集}

  • 用于防止尾部 token 噪声,提高稳定性。

  • 常用范围:$0.8 \sim 1.0$。

  • 与 temperature 互相影响,通常二选一调节即可。

1.3 top_k

  • 从概率最高的 $k$ 个 token 中采样。

  • $k$ 越大 → 多样性越高;$k=1$ → 贪心解码。

1.4 presence_penalty

  • 惩罚已出现过的 token,促进话题扩散。

  • 典型实现:对已出现 token 的概率加偏置 $- \alpha$。

1.5 frequency_penalty

  • 按出现频次惩罚 token,维持重复度抑制:$$ \text{logit}'(x) = \text{logit}(x) - \beta \cdot f(x)

  • 用于减少模型“啰嗦”与重复句式问题。

2. 输出长度、结构与停止条件

2.1 max_tokens

  • 限制模型生成的最大 token 数。

  • 注意:总 token = 输入 token + 输出 token。

2.2 stop / stop_sequences

  • 当生成序列命中指定字符串时立刻停止推理。

  • 常用于多轮对话协议、代码生成的结构约束。

2.3 n

  • 一次生成 $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 直接加偏置,如:

  • 可用于强制特定格式,如 JSON。

4.2 response_format / response_schema

  • 要求模型按 JSON 或其他结构化格式输出。

  • OpenAI 新接口常用:

4.3 tools(函数调用)

  • 用于 Function Calling / Tool Calling。

  • 允许模型输出结构化的调用参数,例如:

5. 调试与概率输出

5.1 logprobs

  • 要求返回每个生成 token 的对数概率。

  • 常用于可解释性、训练数据逆推、策略调试。

5.2 top_logprobs

  • 返回 top-$k$ token 及其概率,用于分析模型不确定性。

6. 流式输出

6.1 stream

  • true:以 chunk 流式推送 token。

  • 支持更低延迟和前端实时渲染。

7. 采样控制与解码策略

采样控制与解码策略常被混用,但在严格的生成式模型文献中,它们属于两个层级的概念:

7.1 定义上的层级差异

解码策略(Decoding Strategy)

解码策略是 “如何从模型的条件分布 $p(x_t \mid x_{<t})$ 中生成序列” 的整体方法。 它规定了完整的序列生成机制,包括:

  • 是否贪心

  • 是否随机采样

  • 是否使用束搜索(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)

采样控制是对具体解码策略内部概率分布的参数化调制,例如:

  • $T$(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

流程:

  1. 对所有 token $x$ 排序

  2. 找到最小集合 $S$,使得 $\sum_{x \in S} p(x) \ge p$

  3. 从 $S$ 中归一化后随机采样

采样控制:top_p / temperature / penalties

  • top_p 控制 $S$ 的大小

  • 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 时的概率分布长什么样”。

Last updated

Was this helpful?