Skip to content

基于反馈迭代优化

主要是针对复杂的任务。

迭代优化技术,是指通过多次迭代不断改进初始提示词。

  1. 人工迭代
  2. 智能迭代

人工迭代#

“人类观察模型输出的结果 - 调整提示词的结构”的方式。

示例一:

初始提示词(V1):“请写一段产品介绍。”

模型输出:

“这是一款革命性的多功能学习设备,融合了AI技术与语音交互系统,能够有效提升学习效率……”

问题:太长、太正式、不符合用户希望的“轻松风格”,于是我们进一步给予大模型反馈

用户反馈优化(V2):“用轻松有趣的语气,给大学生写一段产品介绍,不超过100字。”

模型改进输出内容:

“考试周的救星来了!这款AI学习助手能语音陪聊、秒查资料,效率拉满,不卷白不卷!”

示例二:

初始提示词(V1):“请分析以下财报数据。”

模型输出:

一大段模糊分析,漏掉关键财务指标

用户反馈优化(V2):“你是财务分析师,请从以下内容中提取:1)营收增减;2)利润变化;3)核心业务亮点。用条列式输出。”

模型改进输出内容:

1. 营收同比增长12%
2. 净利润下降5%,主要因研发投入增加
3. 云服务业务增长显著,占总营收28%

在设计提示时,可以遵循下面这个“反馈优化流程”:

在进行反馈的时候,可以从以下几个点来着手:

  1. 明确任务:原来太模糊,优化为更具体。

    v1 : 请总结内容

    v2 : 请提取三条要点,每条不超过20字

  2. 增加上下文:提供背景、语气或受众信息。

    v1 : 写一段介绍

    v2 : 写给初中生听的产品介绍,语气轻松

  3. 示例引导:加 Few-shot (少样本学习)示例让模型模仿。

    v1 : 写对话

    v2 : 提供一个对话示例,模型照着模仿

    这种方式可以很好的控制模型的输出。

  4. 加限制条件:避免输出太长、太空泛、风格错误。

    例如:加入“不要重复前文”、“每段不超过100字”、“避免使用术语”等

  5. 拆分步骤:把任务分步骤输出,避免混乱。

    例如:先“提取关键词”,再“生成摘要”

可以用一个 checklist,主要是去核对提示词:

智能迭代#

引入多个智能体,每个智能体扮演一种角色。该方式是一种更加智能化、系统化的提示词工程的做法。

一般来讲,会存在以下三种角色:

具体示例。首先,由用户输入最初的提示词:

请阅读以下技术文章,并总结其中的关键点。
文章内容:【XXXX】

智能体 1:审查者(Reviewer)

任务:对当前提示词进行评价并打分。

例如:

评分:2/5
评价:提示词过于宽泛,没有定义“关键点”的标准,输出结果可能冗长或不聚焦;也未指定输出格式,可能导致难以阅读;没有指出受众是谁,无法判断输出该有多专业。

针对初始提示词的评分、评价就会传递给第二个智能体。

智能体 2:提问者(Asker)

任务:根据审查者反馈,提问者会询问用户更具体的一些信息。

例如:

什么样的信息应该被视为“关键点”?是技术原理、流程步骤,还是创新亮点?
我们是希望输出一个清单、摘要段落还是表格?
这个总结是写给谁的?是程序员、产品经理,还是普通用户?

这些问题是针对用户进行提问的。

用户就需要回答这些问题。

智能体 3:提示词生成者(Prompt Generator)

任务:该智能体会基于上面两位智能体的反馈,以及原始的提示词,生成最终的提示词。

例如:

你是一名资深技术内容编辑,请阅读以下技术文章,并用条列方式总结关键内容,重点包括:
1)主要技术原理;
2)解决了什么问题;
3)文章中的创新亮点。
请将输出控制在200字以内,适合产品经理快速阅读。
文章内容【XXXX】

最终,这个迭代后的提示词才会被发送给 LLM 进行处理。

总结整体的流程:

  1. 首先将 初始提示词 作为 当前提示词,然后将 当前提示词 发送给 审查者,该智能体会评估当前提示词的质量,并识别改进的方法。
  2. 提问者 随后使用当前提示词和对当前提示词的审查结果来生成问题呈现给终端用户,用户对问题进行回答之后,该智能体会将当前提示词、审查结果、用户的问题/回答全部发送给提示词生成者
  3. 提示词生成者会利用所有的信息,以及对提示工程最佳实践的知识,生成新的提示词 呈现给终端用户,如果终端用户满意,则提交给 LLM 模型,否则重复该步骤。

-EOF-