importnumpyasnp# 假设一个语言模型预测下一个词的概率分布如下(按概率降序排列)probabilities=np.array([0.5,0.3,0.1,0.05,0.05])words=['词A','词B','词C','词D','词E']# 设置Top-k和Top-p参数top_k=3top_p=0.9# Top-k采样top_k_indices=np.argsort(probabilities)[-top_k:][::-1]top_k_...
Top-K 采样是一种通过限制候选词汇数量来增加生成文本多样性的方法。在每一步生成过程中,模型只考虑概率最高(Top)的 K 个词汇,然后从这 K 个词汇中根据概率进行采样。K=1 就是贪心搜索。 步骤: 获取概率分布: 模型为每个可能的下一个词汇生成一个概率分布。 筛选Top-K: 选择概率最高的 K 个词汇,忽略其...
通过调整 k 的大小,即可控制采样列表的大小。“贪心策略”其实就是 k = 1的 top-k 采样。 下面是top-k 的代码实现: importtorchfromlabml_nn.samplingimportSampler# Top-k SamplerclassTopKSampler(Sampler):# k is the number of tokens to pick# sampler is the sampler to use for the top-k tokens#...
Top-k采样策略简单地选取概率最高的k个标记,忽略其余标记。 当k=1时,top-k采样等同于贪婪解码。 更准确地说,top-k采样在概率最高的前k个标记之后截断概率分布。这意味着我们将词汇表V中不属于前k个标记的所有标记的概率设为零...
Top-K 采样(在每个时间步选择条件概率排名前 K 的词语,然后在这 K 个词语中进行随机采样。这种方法既能保持一定的生成质量,又能增加文本的多样性,并且可以通过限制候选词语的数量来控制生成文本的多样性。 这个过程使得生成的文本在保持一定的生成质量的同时,也具有一定的多样性,因为在候选词语中仍然存在一定的竞争...
Top-k采样: 只考虑前 个概率最大的词,注意要把它们的概率重新归一化,即 Nucleus采样:也是只考虑前若干个概率最大的词,不过以一种概率累计式的方法,即, Tempered采样:在原概率上增加一个温度项,即 Tempered Top-k采样:结合Top-k采样和Tempered采样,即 ...
需要设定一个合适的k值,如果k值太小,生成的文本可能会缺乏多样性;如果k值太大,则效果与标准采样相似。 4. 核采样 (Nucleus Sampling) 核采样是一种自适应的采样方法,它选择的候选词集合V(p)是满足累计概率和大于或等于给定阈值p的最小词汇子集。与Top-k采样不同,核采样的候选词数量不是固定的,而是基于累计概率...
1. 贪心解码:选择可能性最高的标记“United”。贪心解码策略虽然简单,但存在重复文本循环的问题,就像智能手机自动建议中不断选择最高建议的单词。2. Top-k采样:从候选名单中选择前三个标记。这种方法引入随机性,有助于提高输出质量。将Top-k设置为3,意味着在输出每个标记时从大小为3的候选列表中...
在采样时,我们随机选择这k个词中的一个作为下一个输出,从而增加了输出的多样性。 Top-p 与Top-k不同,Top-p是一种考虑模型输出的全局策略。在Top-p策略中,我们不仅仅考虑每个词的预测概率,而且考虑当前所有预测概率的累计分布。具体来说,我们首先按照每个词的预测概率对它们进行排序,然后根据这些词的顺序逐个...