Prompt优化方法主要包括以下几种:
-
APE(Automatic Prompt Engineering)
- 从候选集中选出好的prompt,再在好的prompt附近进行试探性地搜索。
- 可以分为以下三个步骤:
- 生成prompt candidates
- 在训练集上打分,并保留高分prompt
- 在高分prompt附近进行采样,模拟Monte-Carlo Search过程
-
APO(Automatic Prompt Optimization)
- 在文本空间实现gradient descent过程。
- 分为以下三个步骤:
- 得到当前prompt的“gradient”,即在给定的错误样本上让LLM给出当前prompt预测错误的原因。
- 应用“gradient”,得到新的prompt,包括两个子步骤:使用LLL来编辑原来的prompt,以及通过resample扩充相似语义的prompt。
- 挑选出好的prompt。
-
OPRO(LLM as Optimizer)
- 将LLM设计成一个基于过往迭代记录和优化目标的优化器。
- 框架的核心是让LM基于迭代过程的规律进行优化。
- 框架分为使用meta-prompt让LLL成为优化器,生成新的solution,以及在使用Scorer LLM评估效果并记录到meta-prompt中后,继续下一轮迭代的过程。
-
SAMMO(Structure-Aware Multi-objective Metaprompt Optimization)
- 微软提出的一种新框架,实现编译时优化Metaprompt。
- 将Prompt表示为结构化对象,支持minimetry来降低标注成本,并拥有提示原型和工程等优势。
- 核心思想是将Prompt表示为一个结构化的程序,并定义了一系列结构感知的Prompt变异算子。
这些方法都试图通过自动化的方式对prompt进行迭代优化,以提高LLM在各种任务上的性能。然而,值得注意的是,这些方法的效果可能会因LLM的不同而有所差异,因此在实际应用中,需要根据具体场景和LLM特性进行调整和优化。