APE自动化提示词工程
随着大模型能力越来越强,人们觉得提示词工程没有那么重要了,基于一个prompt规则,手动调试调试,即可完成提示词的工作。然后,针对不同的模型,这样手动改写的prompt,并不一定适用,而且如果有些case效果不好,调试特别麻烦。在要求较高的情况下,提示词像模型超参数一样,也是很有必要进行优化并精心设计的。特别是在特定任务场景,使用很好的prompt来穷尽大模型的能力,很有必要且很有价值。这催生了自
rag系列文章目录
前言
随着大模型能力越来越强,人们觉得提示词工程没有那么重要了,基于一个prompt规则,手动调试调试,即可完成提示词的工作。然后,针对不同的模型,这样手动改写的prompt,并不一定适用,而且如果有些case效果不好,调试特别麻烦。在要求较高的情况下,提示词像模型超参数一样,也是很有必要进行优化并精心设计的。特别是在特定任务场景,使用很好的prompt来穷尽大模型的能力,很有必要且很有价值。这催生了自动提示词工程APE的兴起。
一、APE工作流程
要开始使用 APE,我们需要准备以下几个要素:
- 一个带标签的数据集,用来代表我们希望优化提示词的任务;
- 一个初始提示词;
- 一个可以作为爬坡优化(hill climbing)目标的评估指标。
图中流程步骤如下:
- 准备要素:
我们先准备好带标签的数据集、初始提示词,以及评估指标。 - 从初始提示词开始:
使用初始提示词和数据集启动 APE 工作流,把它们输入目标大模型(即我们希望在生产环境中使用并进行提示词优化的大模型)。 - 生成回复:
目标大模型会基于数据集和初始提示词生成输出。比如说,我们有 10 条推文,而初始提示词是“判断这条推文的情感”,那么模型会生成 10 个结果,每条推文对应一个情感分类。 - 评估回复:
因为数据集是带标签的,我们有每条推文的真实答案。评估器大模型会将真实标签与目标大模型的输出进行比较,计算出目标大模型的性能并存储结果。 - 优化提示词:
然后,优化器大模型会生成一个新的提示词。具体如何生成,我们稍后会展开说明。但可以先理解为,这类似于超参数优化中选择新的候选值,会有不同的策略来完成。 - 重复步骤 3–5:
生成回复 → 评估回复 → 优化提示词,这个过程会不断迭代。随着迭代的进行,提示词逐步被优化,理想情况下,目标大模型的回复质量也会持续提升。 - 选择最佳提示词:
在达到设定的迭代次数,或性能达到满意水平时,流程就会结束。这时表现最好的提示词(以及所有提示词的评分结果)会返回给用户。
二、调优方法
如何才能通过上面的流程,获取最佳的prompt呢?可以从下面的方法着手:
-
尝试随机prompt
与随机搜索HPO类似,随机提示优化采用"暴力"策略。该策略让优化器LLM生成一系列随机提示,这些提示与先前提示及结果完全独立。系统不会尝试从历史结果中学习,而是直接随机探索海量潜在提示的组合。 -
Optimisation by PROmpting (OPRO)
若将随机提示优化类比为HPO中的随机搜索,那么OPRO则类似于贝叶斯搜索。在OPRO中,我们利用前次迭代的结果,主动针对评估指标进行爬坡优化。该方法持续追踪所有历史提示词的得分,并根据其在优化轨迹中的表现排序提示词历史,形成宝贵的信息源,引导优化器LLM选择更高效的提示词。
OPRO的核心在于元提示,它用于引导优化器LLM。这种元提示不仅包含常规的任务描述和示例,还包含优化轨迹。借助该提示,优化器LLM能够分析优化轨迹中的模式,识别成功提示的要素并规避失败提示的陷阱。这种学习过程使优化器能够随时间推移生成越来越有效的提示,从而迭代提升目标LLM的性能。 -
引入few shot
通过范例选择机制,少样本提示可融入APE流程。该机制旨在为特定任务筛选最优少样本示例,从而进一步增强优化提示词的效能。其核心思路在于:通过OPRO找到高性能优化提示词后,可借助少量示例进一步提升目标LLM的性能。此时范例选择机制便发挥作用——它系统性地测试不同示例集并追踪其表现。与提示优化类似,该机制能自动确定特定任务与特定(优化后)提示词的最佳少样本示例。
总结
在金融领域,比如涉及风控资金相关的大模型应用中,对最终的效果要求很高,这就需要有较高稳定的大模型输出,通过自动化提示词工程,能够极大穷尽大模型能力,获取最佳的大模型输出。
更多推荐
所有评论(0)