0.背景
1. 论文名称:
PROMPTBREEDER:SELF-REFERENTIAL SELF-IMPROVEMENTVIA PROMPT EVOLUTION
《PROMPTBREEDER:通过提示进化实现自指式自我改进》
2. 论文链接:https://arxiv.org/pdf/2309.16797
3. 论文作者所在机构:谷歌 DeepMind
4.一句话概括:该论文提出 Promptbreeder,这是一种通用的自指式自我改进机制,通过让大语言模型生成和改进任务提示及变异提示。
1.论文挑战
论文中提到的 PROMPTBREEDER 方法在研究过程中面临一些挑战,主要体现在以下几个方面:
1. 提示策略的局限性:当前的提示策略虽然有效,但仍存在局限性。例如,手动设计的提示策略可能不是最优的,且在某些情况下,如迭代 APE 中,随着选择轮次增加,收益会递减。这表明需要更智能、自适应的方法来改进提示策略,以更好地发挥语言模型的能力。
2. 自改进过程的复杂性:实现通过自我参照来改进提示的过程并不简单。例如,如何确保模型在改进提示时不会陷入局部最优或产生不稳定的行为是一个挑战。在文中提到的自我参照过程中,如果不加以适当约束,可能会出现发散(脱轨)或陷入吸引子的情况,影响提示进化的效果。
3. 评估和提升多样性:在提示进化过程中,保持和提升生成提示的多样性是一个重要挑战。缺乏多样性可能导致生成的提示过于相似,无法充分探索问题空间,从而限制了模型在不同任务和领域中的适应性和性能表现。例如,文中提到的一些方法在多样性维护方面可能存在不足,需要探索更好的方式来促进提示的多样化生成。
4. 适应复杂任务需求:对于复杂任务,如仇恨言论分类,如何设计有效的提示策略是一个挑战。这些任务可能需要更复杂、更具针对性的提示来引导模型做出准确的判断,而当前的方法在处理此类任务时可能需要进一步优化,以提高对复杂任务的处理能力和准确性。
2.论文贡献点
1. 提出 PROMPTBREEDER 方法
(1)引入了一种自指式自我改进机制,用于为特定领域演化提示,并改进提示的演化方式。
(2)该方法利用大语言模型(LLM)生成任务提示的变异,通过评估适应度来选择最优提示,实现了提示的自动进化。
2. 性能表现优异
(1)在多种常用的算术和常识推理基准测试中,PROMPTBREEDER 方法超越了现有的先进提示策略,如 Chain-of-Thought 和 Plan-and-Solve Prompting。
(2)实验结果表明,该方法在多个数据集上取得了更高的准确率,证明了其有效性和优越性。
3. 探索自指组件贡献
(1)深入研究了 PROMPTBREEDER 中各种自指组件对结果的影响,通过实验分析了不同突变算子和机制的作用。
(2)发现所有突变算子对方法的运行都具有重要意义,包括实现自指式自我改进的超突变算子,且随机初始提示对适应度有较大的积极影响。
3.Promptbreeder
给定问题描述以及一组初始的通用 ““thinking-styles 思维风格” 和变异提示(mutation-prompts),Promptbreeder 会生成一个进化单元种群,每个单元通常由两个任务提示和一个变异提示组成。然后,运行标准的二元锦标赛遗传算法(binary tournament genetic algorithm)。为了确定任务提示的适应度,作者在随机一批训练数据上评估其性能。经过多代进化,Promptbreeder 随后使用五类不同的变异算子对任务提示和变异提示进行变异。前者会产生越来越适应特定领域的任务提示,而后者则以自指的方式进化出越来越有用的变异提示。
基本原理
1. 利用 LLM 生成提示变体:基于 LLM 能够根据输入文本生成变体的能力,Promptbreeder 通过进化算法生成任务提示的变体。任务提示(task-prompt)是用于在向 LLM 输入问题前预先设定上下文的字符串,以期望获得更好的回答。
2. 自我参照机制:不仅对任务提示进行进化,还对用于生成任务提示变体的变异提示(mutation-prompt)进行进化。通过这种方式,Promptbreeder 不断改进提示本身以及生成提示的方式,实现了自我参照的自我改进。
初始化过程
1. 生成初始任务提示:对于给定的领域问题描述(如"Solve the math word problem, giving your answer asan arabic numeral),Promptbreeder 通过将随机抽取的 “变异提示”(如 “Make a variant of the prompt”)和 “思考风格”(如 “Let’s think step by step”)与问题描述连接,提供给 LLM 以生成初始任务提示。每个进化单元包含两个任务提示和一个变异提示,且变异提示与特定任务提示相关联。比如:“Make a variant of the prompt. Let’s think step by step. INSTRUCTION:Solve the math word problem, giving your answer as an arabic numeral.INSTRUCTION MUTANT:”
注意控制字符串“INSTRUCTION”和“INSTRUCTION MUTANT”以鼓励适当的继续。
2. 多样化的初始提示:为促进初始提示的多样性,从初始的变异提示和思考风格集合中随机采样,以不同组合生成初始任务提示,避免初始提示的单一性,为后续进化提供丰富的起点。
突变操作
1. 直接突变
(1)零阶提示生成(Zero-order Prompt Generation):通过将问题描述("Solve the math word problem, giving your answer as an arabicnumeral”)与特定提示(如 “A list of 100 hints”)连接,邀请 LLM 生成新提示,每次重新从问题描述生成,类似于自动化课程学习中的均匀重采样,用于在提示进化发散时生成与原始问题相关的新任务提示。
(2)一阶提示生成(First-order Prompt Generation):将变异提示与父任务提示连接,传递给 LLM 以产生突变后的任务提示,这是标准的无性突变操作,核心在于基于一个父代基因型(任务提示)应用突变(受变异提示影响)。示例:"Say that instruction again in another way. DON’T use any of the wordsin the original instruction there’s a good chap. INSTRUCTION: Solve themath word problem, giving your answer as an arabic numeral. INSTRUCTIONMUTANT: "。
2.分布估计突变
(1)EDA 突变(Estimation of Distribution Mutation):提供经过 BERT 嵌入余弦相似度过滤后的当前任务提示种群列表给 LLM,要求其继续生成新任务提示,以鼓励多样性,考虑了种群中的模式。
(2)EDA 排名和索引突变(EDA Rank and Index Mutation):变体操作是先按适应度升序对任务提示排序,然后通过特定提示引导 LLM 生成新条目,利用了类似 LLM 中的近因效应,期望得到高适应度且多样的外推结果。示例:"INSTRUCTION: " + <> + “\n A List ofResponses in descending order of score.” + <> + “is thebest response. It resembles” + << last index>> + “more than it does (1)”。
(3)基于谱系的突变(Lineage Based Mutation):存储每个进化单元谱系中最佳个体的历史列表(按质量升序 “GENOTYPESFOUND IN ASCENDING ORDER OF QUALITY”),提供给 LLM 以产生新提示,认为从历史上改进的基因型提示信号可能更强,有助于引导提示的进化。
3. 超突变(突变变异提示)
(1)零阶超突变(Zero-order Hyper-Mutation):将原始问题描述与随机采样的思考风格连接,生成新的变异提示,然后应用于任务提示生成变体,类似于初始化过程,同时引入思考风格的知识。
(2)一阶超突变(First-order Hyper-Mutation):将超突变提示(如 “Please summarizeand improve the following instruction:”)与变异提示连接,使 LLM 生成新变异提示,进而评估其对下游任务提示质量的影响。
4. 拉马克式突变(LAMARCKIAN MUTATION):从成功的表型(即由进化后的任务提示产生的正确答案的具体推理过程)生成新的基因型(突变任务提示)。例如,通过向 LLM 提供导致正确答案的推理过程,逆向工程生成新的任务提示,这在问题描述缺失、不足或误导时尤为关键。“I gave a friend an instruction and some advice. Hereare the correct examples of his workings out + <> +The instruction was:”
5. 提示交叉和上下文洗牌
(1)提示交叉(Prompt Crossover):在突变操作后,以 10% 的概率用从种群中另一个成员(根据适应度比例选择)随机选择的任务提示替换当前任务提示,仅应用于任务提示,不应用于变异提示。
(2)上下文洗牌(Context Shuffling):同时进化任务提示、变异提示和少量示例的正确推理过程(few-shot context)。在评估时,将 few-shot context 置于任务提示之前,为推理过程提供指导。如果上下文列表已满,在评估新问题集后,用新的正确推理过程替换列表中的现有内容;同时,有 10% 的概率根据最大上下文列表长度的逆概率重新采样整个上下文列表。
4.实验与结论
实验设置
使用大小为 50 的种群,通常进化 20 - 30 代,每代通过随机配对个体并竞争来进行。在多个数据集上进行评估,包括算术推理(如 GSM8K、SVAMP 等)、常识推理(如 CommonsenseQA、StrategyQA)、指令归纳任务和仇恨言论分类(ETHOS 数据集)等。
结果表现
(1)在与现有先进提示策略的比较中,Promptbreeder 在零样本和少样本情况下均表现出色,超过了 Plan-and-Solve 等方法,尤其在一些数据集上,零样本准确率更高,且在少样本情况下,结合发现的解决方案示例后进一步提升了性能。
(2)在仇恨言论分类任务中,能够演化出复杂的提示策略,得分高于手动设计的提示,展示了其在复杂领域适应任务的能力。
5.prompt示例
突变体prompt:
6.意义与展望
-
创新点:为提示工程的自动化提供了新的思路和方法,通过自我参照的自我改进机制,能够自动适应不同领域,提高了 LLM 在各种任务中的性能,且避免了传统方法中因参数更新带来的问题。
-
未来研究方向:可以进一步探索利用 LLM 评估和提升生成提示的多样性,确定整个 “思维过程” 的适应度,以及开发更复杂的 “思维策略”,如在竞争式对话中使用 Promptbreeder 进行自我博弈,以不断改进提示策略。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。