Skip to main content

一些参数

Logprobs

logprobs概念

SGLang推理引擎处理curl请求时,设置logprobs,会返回tokenid对应token的概率。

当启用 logprobs 时,API 会返回每个输出 token 的对数概率(log probability),并提供每个位置上若干最可能的候选 token 及其 logprob。

logprobs 的核心要点:

  • logprob 越高(数值越接近 0)表示该 token 在当前上下文中的出现概率越高。有助于衡量模型对输出的置信度;分析模型曾考虑过哪些其他候选 token;

  • logprob 是 log(p),其中 p 是该 token 在上下文下的概率。logprob 可以是任意负数或 0,其中:

    • 0.0 表示该 token 的概率为 100%;
  • 通过将多个 token 的 logprobs 相加,可以计算整个序列的联合概率(joint probability);

    • 通常还会使用平均每 token 的 logprob,作为句子得分的评价指标;
  • 通过查看各候选 token 的 logprobs,可以洞察模型认为“合理”或“不合理”的 token 是哪些。

温度、top_p和top_k与logprobs的关系

  • temperature=0时,设置不同的logprobs,都会选取top_logprobs的最大值,也就是top1_token。

结论一:T 会改变“被抽样的概率分布”,所以 logprobs 和所选 token 都会变

  • 推理时模型先算出 logits,然后按温度做缩放:logits / T,再 softmax 得到 带温度的分布。
  • T=0 在多数实现里等价于贪心解码(argmax):每步都取概率最大的 token(确定性)。
  • T>0 则是随机采样:每步在该分布上 按概率抽样,不保证取到概率最大的那个。

因此:

  • T 越小(如 0 或 0.1),分布越“尖”,top1 的概率非常大 → 结果稳定、重复性强。
  • T 越大(如 1.5),分布越“平”,尾部 token 的概率也被放大 → 容易抽到“怪词”。

结论二:所选 token 不一定是 logprob 最大的那个(因为在抽样) 当 T>0 时,系统通常使用 多项式抽样(multinomial sampling)从整个词表按概率抽一个 token。 这意味着:

  • 即使 top1(logprob 最大)是 “the”,也可能抽到 top2/top3 甚至 top5 以外 的 token。
  • 你看到的 top_logprobs 只列出了 前 N 个候选(比如 N=3 或 5);如果抽到的是第 6 名或更靠后的 token,它就不会出现在 top_logprobs 列表里,但它仍然会被返回为“chosen_token”。

T 改变概率分布;T>0 用“抽样”,所以不会总选 logprob 最大的 token。

  • 想稳定:T=0(贪心)。
  • 想多样但不离谱:适度 T + top_p / top_k/ min_p 限制尾部。
    • temperature: 0.5 ~ 0.9
    • 加 top_p(核采样)如 top_p: 0.9,或 top_k(截断候选数)如 top_k: 50;这样就不会抽到像 Man 这种在当步 概率排名很靠后 的词。
    • 可再配合 min_p(最小概率阈值)或 typical_p(典型采样)进一步抑制尾部。

top_p 控制的是“从概率分布中保留多少累积概率质量”。它让采样既有随机性又不太“离谱”,top_p 越小,输出越“理性”且可复现;越大,越多样。

top_k 采样 是一种截断式随机采样方法,比top_p的动态概率阈值更直接,通过固定候选数量实现采样功能。

  • 当 top_k 越大,模型采样空间越宽,随机性与创造性增强,但一致性与事实性下降。
    • 小 k :选择范围窄 → 输出稳定。
    • 大 k :选择范围广 → 输出随机。

some model

DeepSeek-R1-Distill-Qwen-1.5B  Qwen1.5-MoE-A2.7B-Chat  Qwen2-1.5B  Qwen3-30B-A3B  Qwen3.5-0.8B