Created
Aug 12, 2024 12:32 AM
Favorite
Favorite
Priority
备注
推荐
🌟🌟🌟🌟🌟
类型
模型学习
在使用大模型模型时,我们一般会通过两种形式与大模型交互,一种是大模型 API ,一种是直接与大语言模型进行交互。使用API我们可以通过传递一些参数来控制结果的输出;直接与大模型交互,我们可以通过参数或者修改推理逻辑来控制结果。通过配置一些参数以获得不同的提示结果是共同的方法非常重要,修改推理逻辑的方法我们以后会讲到。
参数的设置,需要实验调试才能得到满意的结果,如何调试它,他们是怎么起作用的,下面我们将一一讨论这些参数的内涵,助力我们快速调试出合适的效果。
大模型在进行推理时,输入经过模型计算得到一个向量h,向量h再与词嵌入矩阵V做内积,得到与词表中每个词的相似度logits,logits再计算softmax得到选取词表中每个词的概率score,我们假设有一个词表(包含五个词):
输入为 “我 爱”,得到预测token的logits,
[-0.9267, -1.1020, -0.6981, -0.9122, 0.7187]
计算softmax后概率为:
[0.1076, 0.0903, 0.1352, 0.1092, 0.5577]
  • 输入相同时,对于所有人给出的答案都一样,没有多样性(就不能帮助我们找写作灵感了);
  • 当模型遇到重复输出时,就会一直重复变成复读机;
  • 概率最大的也不一定是满意的结果
所以我们需要一些参数对概率和解码策略进行调整。
Temperature
我们先来看看softmax函数:
notion image
  • 当Temperature>1时,概率分布会更加平滑,即会缩小各个token之间的差距;越大分布越均匀。
  • 当Temperature<1时,概率分布会波动更大,即会放大各token之间的差距;越小分布的尖峰越高。
Top_p和Top_k

上面的例子介绍了,输入“我 爱”后,词表对应的概率:

Max Length

您可以通过调整 max length 来控制大模型生成的 token 数。指定 Max Length 有助于防止大模型生成冗长或不相关的响应并控制成本。这个可以控制成本哦。

Stop Sequences

stop sequence 是一个字符串,可以阻止模型生成 token,指定 stop sequences 是控制大模型响应长度和结构的另一种方法。也可以作为一个特殊符号,当模型解码到这个就停止,然后进行其它操作,agent可以用到哦。

Frequency Penalty

frequency penalty 是对下一个生成的 token 进行惩罚,这个惩罚和 token 在响应和提示中出现的次数成比例, frequency penalty 越高,某个词再次出现的可能性就越小,这个设置通过给 重复数量多的 Token 设置更高的惩罚来减少响应中单词的重复。这样可以减少复读机的现象,也可减少输出中同一个词的占比太高的问题。

Presence Penalty

presence penalty 也是对重复的 token 施加惩罚,但与 frequency penalty 不同的是,惩罚对于所有重复 token 都是相同的。出现两次的 token 和出现 10 次的 token 会受到相同的惩罚。此设置可防止模型在响应中过于频繁地生成重复的词。如果您希望模型生成多样化或创造性的文本,您可以设置更高的 presence penalty,如果您希望模型生成更专注的内容,您可以设置更低的 presence penalty。

一般建议是改变 frequency penalty 和 presence penalty 其中一个参数就行,不要同时调整两个。
如果对内容有什么疑问和建议可以私信和留言,也可以添加我加入大模型交流群,一起讨论大模型在创作、RAG和agent中的应用。
好了,这就是我今天想分享的内容。如果你对大模型应用感兴趣,别忘了点赞、关注噢~
Loading...