如果你曾在Hugging Face网站使用过LLM,你可能已经遇到了类似的控制选项,可以用来调整LLM的行为。每个模型都暴露了一系列的配置参数,这些参数可以在推理过程中影响模型的输出。需要注意的是,这些参数与训练参数是不同的,训练参数是在训练时学习得到的。相反,这些配置参数是在推理时调用的,可以控制诸如完成的最大标记数和输出的创造性等内容。
这些参数包括最大新 token 数、随机抽样、top k 抽样、top p 抽样和温度,下面我们详细讲解这些参数。
Max new tokens是这些参数中最简单的一个,你可以使用它来限制模型生成的标记数。可以把它看作是对模型选择过程的次数设置上限。
变换器softmax层的输出是模型所使用的整个词典的单词的概率分布。大多数大型语言模型默认会使用所谓的贪婪解码。这是下一个词预测的最简单形式,模型总是选择概率最高的单词。这种方法对于短文本生成非常有效,但容易出现重复单词或重复单词序列。如果你希望生成更自然、更有创造力并避免重复单词的文本,你需要使用其他一些控制方法。
随机抽样是引入一些变化的最简单方法。使用随机抽样,模型不会每次都选择最可能的单词,而是根据概率分布随机选择输出单词。例如,如果香蕉这个单词的概率分数是0.02,使用随机抽样,这相当于选择这个单词的概率为2%。通过使用这种抽样技术,我们减少了单词重复的可能性。但是,根据设置的不同,可能会出现输出过于有创意,产生的单词使生成偏离了主题或变得毫无意义。
需要注意的是,在一些实现中,你可能需要显式地禁用贪