微信扫码
添加专属顾问
我要投稿
LLM中token生成的过程基本上会有两个阶段,prefill阶段和decode阶段,为了造成不必要的混淆,把decode阶段理解成生成阶段,也就是包括prefill阶段和生成阶段。
在prefill阶段中,我们需要提供一段信息,以问答场景为例,假设输入的问题是“tell me today's whether”, 那么这个问题就可以理解成prefill阶段,回答的过程理解成生成阶段。
对于输入的问题,首先要进行的步骤是把文字转成计算机能理解的“数字”的过程,也就是tokenizer阶段,这个阶段将文字进行切割,切割成token,每个token对应词表中的一个ID(最简单的切割方式是按照词切割,只是理解上这样切割,实际上不会这么做)。这样一句话就会被映射成多个ID,在这里tell me today's whether可以理解成映射到了4个ID。之后,就是embeding层了,简单的理解是1个ID并不能表达这个词或者这个token的特征,那么为了表示这个token的特征,我们用向量来表示,此向量的维度假设为dim。如果词表的总大小是vocab_size,那么就会有维度的矩阵EmbedingMatrix(训练中得到)存在。我们已经知道了Token ID,那么就可以查表得到对用的向量,对于这里的输入得到
的矩阵,这个矩阵就是参与LLM的计算过程的输入,经过计算会得到一个新的的矩阵,这个可以理解成特征维度的结果,将此结果映射回token, 需要将的矩阵 和的矩阵相乘,得到的矩阵,取最后一个结果即的向量作为最后一个token,这里可以理解成有
个概率,每个值代表对应的token出现的概率,我们将要介绍的采样就是发生在这里,对这个最后的的向量进行采样,得到1个TokenID, 这个TokenID就是最后生成的Token。如何对这个的向量进行采样是有很多中方法的,下面一一介绍。
通过调整 k 值,您可以直接影响模型的选择过程。较低的 k 值将模型限制为一组较小的高概率token,使文本生成更加可预测和连贯。相反,较高的 k 值通过考虑更广泛的标记阵列来实现更多的多样性,这可以引入创造力,但也可能导致输出更不可预测。
例如上图中,如果设置k=4,那么就会选择前4个概率最大的作为候选,将这4个概率值重新计算归一化,得到新的概率值,然后根据随机选择一个token作为结果。
Top-K也是有一定的缺点:
1. 重复的可能性:虽然与Greedy Search相比,重复的可能性较小,但如果前 k 个集合经常包含相似的标记,则仍然有可能出现重复。
2. k 的选择:确定 k 的最佳值需要进行实验,因为 k 太小可能会导致可预测性,而 k 太大可能会重新引入过多的随机性。
temprature是一个超参数,它会修改 softmax 函数产生的输出概率,从而影响下一个 token 的选择。
具体的计算是:
T代表temprature参数的值,经过计算后,概率分布会重新改变:T>1 时:除以大于 1 的temprature的效果是使 logit 在 softmax 操作之前彼此更接近。这种分布的“平坦化”意味着 logit 之间的差异不那么明显,从而导致更均匀的分布,其中可能性较小的 token 获得更高的被选中机会。
T<1 时:相反,除以小于 1 的温度会放大 logit 之间的差异,使分布“更尖锐”。这会导致可能性较大的 token 的概率更高,而可能性较小的 token 的概率会显著降低。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-02-06
国产最强 AI 进军终端!Kimi Code CLI 正式发布,让你的命令行直接起飞
2026-02-06
GPT-5.3-Codex突然登场!AI能自己造自己了
2026-02-06
AI记忆正成为新操作系统:检索已过时,生成式记忆才是未来
2026-02-06
简单就是美!Claude Code Ralph循环机制详解
2026-02-06
OpenAI 发布 GPT-5.3-Codex,一文详解
2026-02-06
火拼升级!OpenAI、Anthropic同日发布新模型,一个能替你写代码,一个能替公司管流程
2026-02-06
Claude Code最佳实践
2026-02-06
Claude Agent SDK 构建 AI Agent 实践:服务端向 Claude Agent SDK 注入环境变量的实践
2026-01-24
2026-01-10
2025-11-19
2025-11-13
2026-01-26
2026-01-01
2025-12-09
2025-11-12
2026-01-09
2025-12-21
2026-02-04
2026-02-03
2026-02-03
2026-02-02
2026-02-02
2026-02-02
2026-01-31
2026-01-30