Prompt原则和原理
1. 清晰明确的指令
2. 给模型思考的路径
在使用模型完成指定任务时,你可能已经对预期结果有了一些设想,此时需要将这些设想清晰地转化为具体的指令,并传递给模型。
Prompt框架
ICIO框架
Prompt框架代表了不同的思考逻辑
LangGPT框架更偏向于开发
CRISPE更偏向于营销创意场景
Zero shot 和 Few shot
Zero shot
在不提供任何示例的情况下,通过设计简洁明了的提示词,直接要求模型完成任务。
Few shot
在提示中提供少量具体示例,帮助模型理解任务模式,从而提升输出质量。
CoT
Chain of Thought(CoT)是一种提示设计方法,要求模型在生成答案之前,先详细描述其思考过程,类似于人在解决问题时的逐步推导。通过模拟逻辑推理的链条,模型能够更好地处理需要多步计算、复杂推理或因果分析的任务。
Zero shot of CoT
进一步的CoT
采样参数
temperature 和 top_p 是两个重要的采样参数,用于控制生成文本的多样性和随机性。它们在调整模型的输出风格和质量时起着关键作用。
Temperature
temperature 参数控制生成文本时的随机性。它通过调整模型输出的概率分布,使生成的结果更加自由或更加确定。
工作原理:
temperature 决定了模型对不同输出的概率分布进行“软化”或“锐化”。
当 temperature = 1,模型按默认概率分布采样。
当 temperature < 1,分布更加集中,模型倾向于选择高概率的词。
当 temperature > 1,分布更加分散,模型会更随机地选择词汇。
取值范围及效果:
temperature = 0:模型总是选择最高概率的词,输出完全确定,没有随机性。
temperature = 0.7:生成结果平衡,既有创造性又不会过于随机,常用默认值。
temperature > 1:增加随机性,适合需要高度创意或探索性输出的场景,但可能生成不相关或无意义的文本。
Top P
top_p 参数控制模型选择的候选词的范围,通过概率累积确定采样的词汇集合。它实现了一种动态的筛选机制,更灵活地控制输出的多样性。
工作原理:
模型按词汇概率排序,从最高到最低累积概率,直到达到 top_p 的阈值。
只从累计概率范围内的词中采样,而忽略其余概率较低的词。
与 temperature 不同,top_p 的采样范围是动态变化的,能更好地适应不同的任务需求。
取值范围及效果:
top_p = 1:包括所有可能的候选词,完全不做限制。
top_p = 0.9:只考虑总概率为 90% 的最高概率词集合,能过滤掉概率极低的选项。
top_p < 0.5:候选词集合非常小,仅包括高概率词,输出更加确定。
综合使用
可以同时调整 temperature 和 top_p,例如:
- 较保守输出:temperature = 0.5, top_p = 0.8
- 更随机生成:temperature = 1.0, top_p = 0.9
两者结合能够更精确地调节生成文本的风格,满足不同任务需求。
实际应用建议:
- 高确定性任务(如代码生成、问答):
使用较低的 temperature(如 0.2-0.5)和 top_p(如 0.8-0.9)。 - 高创造性任务(如诗歌、故事创作):
增加 temperature(如 0.7-1.2)并适当提升 top_p(如 0.9)。 - 避免无意义输出:
限制 top_p 范围(如 ≤0.9)以过滤概率极低的候选词。 - 微调输出风格:
根据任务实验多组参数,找到最适合的组合。
ToT:Tree of Thought
探索多种解答路径,并引入评估机制来选择最佳路径,最后根据最佳路径输出完整回答。
Agent
通过模型本身的规划能力和工具调用能力实现
Prompt迭代调优
角色迭代
角色的迭代能够丰富上下文语义信息,为模型提供更清晰的语境,从而提升输出内容的准确性。
任务迭代
针对指令中的关键动作,可以尝试使用不同的近义词替代,并结合贴近实际场景的具体化表达,来测试是否能够提升结果的准确性和表现力。
执行步骤迭代-正向引导
模型并不擅长对于字数的限制
执行步骤迭代-逻辑完备
执行步骤迭代-避免规则
充分考虑常规的语言表达方式,避免硬性规则
Few shot迭代
从结构上迭代指令
分隔符
避免用户对指令进行注入,同时划分指令结构
使用分隔符前:
使用分隔符后:
分条目
顺序
嵌套
避免嵌套逻辑
位置
建议整体优化完成后,再调整指令的顺序
效果评测
确定评测维度
构建评测集、测试迭代
关于Prompt
- 只有方法,没有语法
- 内容格式敏感
- 偏好分布
- 不同模型间存在差异