该参数用于控制生成文本的随机性和多样性,其实是调整了模型输出的 logits 概率分布
用于在生成下一个 token 时,限制模型只能考虑前 k 个概率最高的 token,这个策略可以降低模型生成无意义或重复的输出的概率,同时提高模型的生成速度和效率
通常用一个介于 0 到 1 之间的值来表示生成下一个 token 时,在概率分布中选择的最高概率的累积阈值
重复惩罚:目标是在这个概率分布中对先前生成过的 token,又重复的生成了该 token 进行惩罚(降低概率),以减少生成文本中的重复性
当设为大于 0 的整数时,生成的文本中不会出现指定大小的重复 n-gram(n个连续的token),可以使生成的文本更加多样化,避免出现重复的短语或句子结构
对模型计算出来的概率要不要进行多项式采样
多项式采样(Multinomial Sampling)是一种用于从一个具有多个可能结果的离散概率分布中进行随机抽样的方法
在多项式采样中,概率高的结果更有可能被选中,但不同于确定性的选择,每个结果(概率较低但仍然可能的词)仍然有一定的概率被选中
用于束搜索(beam search)算法,用途是控制生成的多个候选句子的数量,该参数控制的是每个生成步要保留的生成结果的数量
beam search 算法的改进,叫做 Diverse Beam Search (DBS)
核心是分组机制,如果设置 num_beams=2,num_beam_groups=2,那就是说分成2个组,每个组里的 beam 可以相似,但组和组之间要有足够的多样性
多样性惩罚参数只有在启用了“num_beam_groups”(组束搜索)时才有效,在这些组之间应用多样性惩罚,以确保每个组生成的内容尽可能不同
长度惩罚参数也是用于束搜索过程中,作用是将生成序列的长度应用于得分的分母,从而影响候选序列的得分
设置为True时,则模型会利用之前计算得到的注意力权重(key/values attentions)的缓存,当下一个token需要被生成时,模型可以通过缓存的注意力权重来重用之前计算的信息,而不需要重新计算一次,有效地跳过重复计算的步骤,从而减少计算负担,提高生成速度和效率
生成的 token 的最大长度 = 输入 prompt 的长度 + max_new_tokens
如果同时设置了 max_new_tokens,则会覆盖此参数
生成的最大 token 的数量,不考虑输入 prompt 中的 token 数
生成的 token 的最小长度 = 输入 prompt 的长度 + min_new_tokens
如果同时设置了 min_new_tokens,则会覆盖此参数
生成的最小 token 的数量,不考虑输入 prompt 中的 token 数
包含词汇 id 的列表,用于指定不允许在生成文本中出现的词汇,如果生成的文本包含任何在这个列表中的词汇,它们将被被替换或排除在最终生成的文本之外。
包含词汇 id 的列表,用于指定必须包含在生成文本中的词汇,如果给定一个列表,生成的文本将包含这些词汇。
自定义约束条件,可以指定约束条件,这些约束条件可以是必须出现的关键词、短语、特定术语或其他文本元素,和 force_words_ids 差不多,在代码实现也是一样的。