2024-06-25
llm
0

目录

推理参数
temperature
top_k
top_p
repetition_penalty
norepeatngram_size
do_sample
多项式采样
num_beams
numbeamgroups
diversity_penalty
length_penalty
use_cache
max_length
maxnewtokens
min_length
minnewtokens
badwordsids
forcewordsids
constraints

推理参数

temperature

该参数用于控制生成文本的随机性和多样性,其实是调整了模型输出的 logits 概率分布

  • temperature 较高时,会更平均地分配概率给各个 token,这导致生成的文本更具随机性和多样性
  • temperatur 较低接近 0 时,会倾向于选择概率最高的 token,从而使生成的文本更加确定和集中
  • temperature=1 时表示不使用此方式

top_k

用于在生成下一个 token 时,限制模型只能考虑前 k 个概率最高的 token,这个策略可以降低模型生成无意义或重复的输出的概率,同时提高模型的生成速度和效率

top_p

通常用一个介于 0 到 1 之间的值来表示生成下一个 token 时,在概率分布中选择的最高概率的累积阈值

  • top_p 较高时比如 0.9,这意味着前 90% 的概率的 token 会被考虑在抽样中,这样会允许更多的 token 参与抽样,增加生成文本的多样性
  • top_p 较低时比如 0.1,这意味着只有前 10% 最高概率的 token 会被考虑在抽样中,这样会限制生成文本的可能性,使生成的文本更加确定和集中
  • top_p=1 时表示不使用此方式

repetition_penalty

重复惩罚:目标是在这个概率分布中对先前生成过的 token,又重复的生成了该 token 进行惩罚(降低概率),以减少生成文本中的重复性

no_repeat_ngram_size

当设为大于 0 的整数时,生成的文本中不会出现指定大小的重复 n-gram(n个连续的token),可以使生成的文本更加多样化,避免出现重复的短语或句子结构

do_sample

对模型计算出来的概率要不要进行多项式采样

多项式采样

多项式采样(Multinomial Sampling)是一种用于从一个具有多个可能结果的离散概率分布中进行随机抽样的方法

在多项式采样中,概率高的结果更有可能被选中,但不同于确定性的选择,每个结果(概率较低但仍然可能的词)仍然有一定的概率被选中

num_beams

用于束搜索(beam search)算法,用途是控制生成的多个候选句子的数量,该参数控制的是每个生成步要保留的生成结果的数量

num_beam_groups

beam search 算法的改进,叫做 Diverse Beam Search (DBS)

核心是分组机制,如果设置 num_beams=2,num_beam_groups=2,那就是说分成2个组,每个组里的 beam 可以相似,但组和组之间要有足够的多样性

diversity_penalty

多样性惩罚参数只有在启用了“num_beam_groups”(组束搜索)时才有效,在这些组之间应用多样性惩罚,以确保每个组生成的内容尽可能不同

length_penalty

长度惩罚参数也是用于束搜索过程中,作用是将生成序列的长度应用于得分的分母,从而影响候选序列的得分

  • length_penalty > 1.0 时,较长的序列得到更大的惩罚,鼓励生成较短的序列
  • length_penalty < 1.0 时,较短的序列得到更大的惩罚,鼓励生成较长的序列
  • 默认为1,不受惩罚

use_cache

设置为True时,则模型会利用之前计算得到的注意力权重(key/values attentions)的缓存,当下一个token需要被生成时,模型可以通过缓存的注意力权重来重用之前计算的信息,而不需要重新计算一次,有效地跳过重复计算的步骤,从而减少计算负担,提高生成速度和效率

max_length

生成的 token 的最大长度 = 输入 prompt 的长度 + max_new_tokens

如果同时设置了 max_new_tokens,则会覆盖此参数

max_new_tokens

生成的最大 token 的数量,不考虑输入 prompt 中的 token 数

min_length

生成的 token 的最小长度 = 输入 prompt 的长度 + min_new_tokens

如果同时设置了 min_new_tokens,则会覆盖此参数

min_new_tokens

生成的最小 token 的数量,不考虑输入 prompt 中的 token 数

bad_words_ids

包含词汇 id 的列表,用于指定不允许在生成文本中出现的词汇,如果生成的文本包含任何在这个列表中的词汇,它们将被被替换或排除在最终生成的文本之外。

force_words_ids

包含词汇 id 的列表,用于指定必须包含在生成文本中的词汇,如果给定一个列表,生成的文本将包含这些词汇。

constraints

自定义约束条件,可以指定约束条件,这些约束条件可以是必须出现的关键词、短语、特定术语或其他文本元素,和 force_words_ids 差不多,在代码实现也是一样的。