大模型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)

思维链相较于上面的少样本提示,仅添加了推理过程,只需1个样本就获得了正确的推理结果。

零样本COT提示

不提供样本,让模型逐步思考,最终得出正确结果:

ReAct(Reasoning and Action)

推理、行动,像人一样进行推理,拆分复杂任务,调用工具,一步步执行。