【深度学习】logits和probs
简单的理解就是,logits和probs的区别:
- logits就是没有经过softmax的输出,模型最后一层输出的、还没归一化的“原始打分”。
- probs是logits经过softmax的输出,经过temperature和softmax(归一化)后的“概率分布”。
temperature和softmax:
- temperature 的本质:就是把 logits 除以 T 再做 softmax。T 小 → 分布更尖(更确定);T 大 → 更平(更随机)。
- softmax 层:
- 步骤:1. 将神经网络的输出映射为一个维度和词汇表大小相同的向量,输出logits;2. 调用softmax方法将 logits 转化为加和为1的概率,输出probs。
- PS:如果所有 logits 同时加一个常数,softmax 结果不变。所以重要的是相对分数,不是绝对大小。
一个请求的生命周期:
请求到达
│
├─ ① 排队:GPU 正忙着处理别人的 prefill/decode
│
├─ ② Prefill:整个 prompt 的所有 token 并行过一遍所有层
│ ├─ 副产品:每个位置的 K/V 向量存入 KV cache
│ └─ 最后位置 → logits → 采样出 token#1 ──→ 返回给用户
│ ↑ TTFT 在这里截止
└─ ③ Decode 循环(每步产出 1 个 token):
第1步:吃进 token#1 → 产出 token#2
第2步:吃进 token#2 → 产出 token#3
…直到 EOS / max tokens
最后位置的隐状态 h(d_model 维,如 7168)
↓ × LM head 矩阵(vocab_size × d_model)
logits:词表里每个 token 一个原始分数(可正可负、未归一化)
↓ softmax(可先做温度缩放)
概率分布 probs
↓ 采样(greedy / top-k / top-p)
选出下一个 token

浙公网安备 33010602011771号