大模型Prompt优化工程
提示工程指南 | Prompt Engineering Guide
提问的智慧
为什么要优化Prompt
通过设计有效的提示词来指导模型执行期望任务。
用人话就是给模型一个任务,正确的告诉它怎么做、做什么。
几个名词
Temperature
temperature
决定了下一个词的随机程度,的参数值越小,模型就会返回越确定的一个结果。参数值越大,模型会返回更随机的结果,也就是说这可能会带来更多样化或创造性的产出。
Top_p
与
temperature
一起称为核采样,用来控制模型返回结果的确定性。如果你需要准确和事实的答案,就把参数值调低,反之调高。Temperature:控制生成文本的随机性,决定模型选择下一个词时的随机程度。
Top_p:控制生成文本的多样性,决定模型只考虑累积概率总和不超过 P 的词。
举例:假设模型预测下一个词的概率分布为:
"apple": 0.8
"banana": 0.1
"cherry": 0.05
"date": 0.03
"elderberry": 0.02如果top_p=0.9,那么会考虑选择"apple" 和 "banana",(累积概率为 0.9),忽略 "cherry"、"date" 和 "elderberry",所以top_p是增加生成文本的多样性,temperature是控制文本生成的随机性。
Stop Sequences
终止序列,当模型生成的文本包含终止序列中的字符串时会停止生成。
Frequency Penalty
Frequency penalty
是对下一个生成的 token 进行惩罚,某个token出现的次数越多,Frequency penalty
越高,那么再次出现的可能性就越小。
Presence Penalty
presence penalty
也是对重复的 token 施加惩罚,但与frequency penalty
不同的是,对于所有重复 token 的惩罚都是相同的。出现2次的 token 和出现 10 次的 token 会受到相同的惩罚。
提示词要素
明确的指令(任务)、上下文、期望的输出格式或类型,比如让模型写一个函数方法,我们需要提供:方法要实现的功能(任务)、环境变量(上下文)、出入参参数及类型(出入参格式)
提示词技巧
1.明确的指令,告诉模型要做什么
2.避免告诉模型不要做什么,而是告诉模型要做什么
提示技术
零样本提示
所谓零样本就是不提供范例,直接给任务,如:
少样本提示
提供范例给模型,如:
少样本提示的限制:即使增加样本提示数量也不足以获得较为复杂的推理问题的可靠响应。
COT(Chain of Thought)
零样本COT提示
不提供样本,让模型逐步思考,最终得出正确结果:
ReAct(Reasoning and Action)
推理、行动,像人一样进行推理,拆分复杂任务,调用工具,一步步执行。