📰 正文

当 AI 第一次给出的回答不够好时,能不能让它自己再看看自己说的,自己改一改?

一个名为 Self-Refine 的提示工程技巧,该方法能让一个大语言模型自我迭代输出内容,进而提高质量。

Self-Refine 的目标是:

让大语言模型(LLMs)在无需人工标注数据或强化学习的前提下,通过自我反馈+多轮改进机制,持续优化生成结果,显著提升任务表现质量。

其核心机制包括三个步骤:生成回答、批评自身输出、基于反馈进行改进。这一循环可执行多轮,直到结果足够理想。

也就是:AI 先说一句话,然后自己看一眼,给出意见(就像“我觉得这句话有点模糊”),然后根据自己的意见再说一遍,反复几次。

你可以把它想象成:

📄 写一篇作文 → 🤔 自己读一遍 → 🖊 找出问题 → ✍ 改一遍 → 🤔 再读一遍 → … → ✅ 满意为止!

image

🎯 它解决了什么问题?

该方法的优势在于,不需要额外训练或外部工具,仅通过提示控制即可完成,且对 GPT-4 等模型也适用。

传统的 GPT 等大模型,有个问题:

第一次生成的答案可能不够好(比如不清楚、情感不对、代码效率低)

如果想生成更好的,需要你:👨‍🏫 人类写反馈、或者用强化学习训练

🟢 Self-Refine 的亮点在于:

不需要人教(不需要人类反馈数据)

不需要额外训练

只用大模型自己“边做边改”,就能提升质量!

传统的 Prompt Engineering 侧重于优化用户输入,而 Self-Refine 则利用 AI 自我审视与优化能力,提升输出质量,平均可提高 约 20% 的表现。

Self-Refine 相比 GPT-3.5/GPT-4,效果平均提升 5%~40%

在人类评价与自动评估指标中,多任务大幅领先

原来 GPT-4 写的对话只有 25% 被人喜欢,用 SELF-REFINE 后变成了 75%;

代码更快,文字更清晰,生成更符合要求。

可以用来干什么?

写代码更高效;

聊天机器人更有温度;

自动改写、润色文章;

为内容创作者、教育、营销等提供高质量文案支持。


📘 论文题目

SELF-REFINE: Iterative Refinement with Self-Feedback 作者来自 CMU、Allen Institute for AI、Google Research 等多个机构。


🧭 背景与动机

尽管大语言模型(LLMs)如 GPT-3.5、GPT-4 已具备强大的生成能力,但其初次生成的输出并不总是最佳的。现实中,人类在写作、编程等任务中常常采取**“初稿 - 反思 - 修改”**的策略。这种“自我反馈+迭代修正”的机制,在当前的 LLM 推理过程中尚未得到系统性利用。

目前,许多提升生成质量的方法(如强化学习或微调)需要高昂的监督成本、人力标注或训练资源。作者提出:是否可以只使用现有的预训练语言模型,通过提示工程实现无监督的“自我反馈-自我优化”过程?


🧩 方法介绍:SELF-REFINE

Self-Refine 技术机制

Self-Refine = 自我循环提示法,过程如下:

一个 LLM 担任三个角色: 1️⃣ 生成初始回答 2️⃣ 对自己的回答进行批评和反馈 3️⃣ 基于反馈改进回答 循环进行,直到模型认为“回答足够好”

特点:

无需额外训练或新数据

仅用提示控制即可达成优化效果

可拓展到写作、代码、沟通场景等多个任务

image

🌟 核心思想

SELF-REFINE 是一种基于提示驱动(prompting)的迭代优化机制,实现了 LLM 自身生成反馈并据此改进自身输出。其特点包括:

完全不依赖额外训练或监督数据

使用同一个 LLM 实现生成、评价和优化功能

可适用于多种文本生成任务


🔁 工作流程

SELF-REFINE 将生成过程拆分为如下三个步骤并可循环迭代:

image 1.

生成(Generation) 给定输入 x 和生成提示 p_gen,模型产生初步输出 y₀。 例如:回答一个用户提问,或生成一段代码。

反馈(Feedback) 将生成的 y₀ 与输入 x 一起送回模型,并使用反馈提示 p_fb,生成一段针对 y₀ 的具体建议 fb₀。 要求反馈必须是**具体(specific)且可操作(actionable)**的,例如:“增加语气的热情”或“避免使用 for 循环带来的低效”。

优化(Refine) 将原始输入 x、输出 y₀ 和反馈 fb₀ 送入模型,并通过 p_refine 生成更新版本 y₁。

image

每一轮的过程: 1.

✏ 模型生成原始输出 y₀

🔍 同一个模型再用“审稿人”口吻,分析哪里不好,给出具体建议(feedback)

🧠 然后模型根据建议,改写内容(refine)

🔁 重复几轮,直到符合要求为止!

该过程可迭代多次直到满足终止条件(如达到最大轮数、模型判断无需改进等)。


📚 任务与实验设计

作者在 7 个任务上评估了 SELF-REFINE,包括:

image


📊 实验结果概览

✅ 总体效果

在所有任务中,SELF-REFINE 均显著提升了生成质量,具体如下(以 GPT-4 为例):

image

image

image

SELF-REFINE 在所有任务中都显著优于单步输出模式(one-shot generation),尤其在人类偏好任务(如对话、情感、缩略词)中提升尤为显著。


🛠 技术实现上其实很简单:

只要用下面这个小逻辑:

def self_refine(prompt):
    answer = GPT(prompt)
    while True:
        feedback = GPT("哪里写得不好?怎么改", answer)
        refined = GPT("按建议改一下", feedback, answer)
        if "已经足够好了":
            break
        answer = refined
    return answer

也就是说:

不用训练新的模型

不用大量标注数据

就靠一套 smart prompt 策略+判断逻辑,就能让 GPT 更好地做事!

实际案例解析

📌 案例 1:用户交互对话(乒乓球)

用户提问:“我对打乒乓球感兴趣。”

初始回答: 内容笼统,例如:“是很好的社交方式…可以找俱乐部…”

AI 自我反馈:

回应太通用,没有探究用户背景

假设用户是初学者,但未确认

缺乏追问,互动性弱

优化后回答:

更具体并引导用户互动

增加提问,如“你是刚开始玩吗?”

包含运动特色:“需要快速反应的运动”

📝 总结要点:

通过自我反馈和重写,AI 提升了内容的相关性、互动性和个性化程度。

image


📌 案例 2:商业写作 – 冷邮件(Cold Email)

初始提示: 向早期电商初创企业推销 SEO 服务

初始输出: “我们提供 SEO 服务帮助初创企业增长。我们聊聊吧!”

AI 自我反馈:

没有明确价值主张

没提及电商或其面临的具体挑战

号召性用语(CTA)模糊,缺乏紧迫感

优化后邮件:

你好 [Name],我看到你的电商店铺刚上线——恭喜!
我专注于帮助早期品牌通过 SEO 快速提升 Google 排名,带来流量与销售。
我可以免费为你定制 3 个 SEO 点子——下周你有 10 分钟聊一下吗?

📝 总结要点:

改进后的邮件更具有行业针对性、说服力强、内容具体,且明确了行动建议。

机制分析与对比研究

  1. 反馈质量的关键作用

实验表明:

具体反馈(如“变量命名应更具语义性”)显著优于笼统反馈(如“请改进这段内容”);

无反馈时即使迭代也难以取得良好改进。

  1. 多轮迭代 vs 单步生成

实验显示,多轮迭代输出的质量持续提高,尤其是前 2-3 轮提升最大,后续趋于收敛或边际回报下降。

  1. 与“多样化生成”对比

直接生成多个候选输出(top-k sampling)不如在相同模型下使用自我反馈指导优化生成效果。

  1. 弱模型适配性较差

Vicuna-13B 这类较小的开源模型无法有效生成结构化反馈或在反馈指导下迭代优化,说明该机制依赖模型具备一定的指令理解与执行能力。


🔗 与已有方法比较

image

SELF-REFINE 是唯一满足 无需训练 + 自我反馈 + 多轮优化 + 通用适配性强 的方法。


实用价值与潜力应用

代码写作辅助:将低效代码转为高效实现,减少人力优化成本。

智能对话系统:让聊天机器人更加理解上下文与用户意图。

内容生成优化:提高营销文案、社交媒体内容的吸引力与表达质量。

人机协同创作:让 AI 能更好地参与到人类创作中,迭代出更高质量的文本。


局限与讨论

模型能力要求较高:仅在 GPT-3.5、GPT-4 等强模型上表现优秀,弱模型难以执行反馈生成。

仅在英语任务上评估,尚未验证在多语言环境下的效果。

可能被滥用生成有害内容,需结合安全机制使用。


🧩总结

SELF-REFINE 提出了一种无需训练、可泛化、由模型自身驱动的输出优化机制,显著提升了多种语言任务中的结果质量。其核心贡献在于揭示:一个强大的语言模型不仅能生成内容,还能对自己的内容进行评价和迭代性改进。

这是一种将“反思机制”引入语言模型使用流程的前沿尝试,为未来构建更具主动学习能力的通用人工智能系统提供了可行路径。


项目地址:https://selfrefine.info/

论文:https://arxiv.org/pdf/2303.17651

GitHub:https://github.com/madaan/self-refine

演示:https://self-refine-webgen.herokuapp.com/


来源:Self-Refine:通过批评与自我批评 自我反思 让AI自我迭代输出内容 提高自己的输出质量