iDreamer 致力于打造一个激发科研热情的全球中心。我们帮助教授将愿景变为现实,为学生照亮塑造未来的道路。
在这里,没有资源的壁垒,没有思想的界限,只有团结一心追求卓越。我们相信,真正的研究应该属于每一个有才华、有梦想的人。通过整合全球资源、优化协作,我们确保每一位科研人员在这里都能找到自己理想的伙伴和方向。
生成式人工智能(Generative AI)正在逐渐从单一模型训练的阶段,过渡到更加复杂的系统优化时代。随着大语言模型(LLM)及其相关组件在多种任务中的广泛应用,如何高效地协调并优化这些组件的表现,已成为人工智能领域的重要课题。近年来,针对复杂系统的自动化优化框架的研究逐步增多。然而,传统优化方法往往局限于即时反馈和局部调整,难以有效应对多轮推理和复杂任务中逐步演化的需求。
REVOLVE作为一种新的优化框架,提出了一种不同的思路。通过引入历史响应相似度的概念,REVOLVE不仅优化当前的输出,还能在多轮迭代中引导模型实现持续改进。与传统方法依赖即时反馈不同,REVOLVE通过捕捉响应演化的趋势,推动优化过程更加稳定且细致,帮助模型逐步突破局部最优,提升整体性能。通过这种方式,REVOLVE为大语言模型的优化提供了新的视角,并为AI系统的长期进化和自我修正打开了潜在的方向。本文将介绍REVOLVE的核心概念、创新机制,并探讨其在解决方案优化、提示优化和代码优化等任务中的应用,分析其在多种场景中的实际效果。
项目主页:https://llm-revolve.netlify.app/
论文链接:https://arxiv.org/pdf/2412.03092
代码仓库:https://github.com/Peiyance/REVOLVE
现有优化方法
目前,许多现有的AI优化方法可分为三类:
Chain-of-thought(CoT)方法
CoT推理方法依赖一次性推理和逐步思考来解决任务,虽然它通过逐步推理帮助模型在单次推理过程中提供较为清晰的步骤,但由于缺乏迭代优化和历史响应的整合,这种方法无法从任务的长期演化中汲取经验。因此,CoT无法应对需要细致调整和逐步改进的复杂任务,也不能通过迭代优化逐步提升准确性,在复杂任务中往往难以有效提升性能。
基于搜索的方法(Search-Based Methods)
PromptAgent、Boosting-of-Thought等提示词优化方法利用搜索算法(如蒙特卡洛树搜索或迭代探索)试图通过反复探索不同路径来优化任务提示或推理路径。尽管这种方法能够在有限的局部搜索空间内反复尝试不同的路径,但它依赖于局部搜索,缺乏全局视角,容易停留在局部最优解。特别是在深度推理和多阶段决策任务中,搜索方法表现不佳,且由于无法全面考虑任务的全局演化,可能导致计算资源的浪费。
基于文本梯度的优化(Textual-Gradient-Based Methods)
TextGrad、ProTeGi等方法通过即时反馈调整每次输出,关注当前的任务结果而忽视历史响应的积累效应。这种做法导致优化过程可能在某个阶段停滞,无法有效提升模型的长期性能。虽然即使引入动量策略(如Momentum-Enhanced TextGrad)来加速优化,依然仅依赖即时反馈,且存在过度调整和不稳定更新的风险,难以确保优化持续朝着正确方向前进,特别是在复杂任务中,优化过程常常无法持续改进。
核心思想
在文本优化(Textual Optimization)的框架中,LLM 智能体系统通常被视为一个计算图(Computation Graph),通过自然语言作为媒介,实现不同组件之间的“梯度”传递。优化的过程是通过反向传播,将语言模型的输出作为反馈,传递到所有可能的早期组件,从而调整系统中的各个变量。这一过程类似于深度学习中的反向传播,只不过这里传播的不是数值梯度,而是自然语言形式的反馈。
在当前的优化范式中,系统通过基于即时反馈的机制来调整模型输出。这种方法通过分析每次输出与目标之间的误差,逐步引导模型输出更符合期望的结果:
其中,是任务损失函数,
表示模型在第 t 次迭代中收到输入提示
后的响应结果。我们使用
来表示基于文本的的梯度,指代损失函数相对于输入提示的变化率,这与传统的导数具有相似的作用。通过这种反馈,优化器可以调整输入提示,从而逐步改进任务性能。
然而,这种优化范式存在一定的局限性。它依赖即时反馈,每次调整仅根据当前迭代的反馈进行,忽视了历史响应的积累效应。这导致优化过程在面对复杂任务时可能停滞,尤其是当任务需要多轮推理和逐步演化时,模型的优化效果逐渐减弱。由于缺乏对任务全局演化的把握,现有方法容易陷入局部最优,无法充分利用多轮迭代中的信息,难以持续提升模型的表现。
REVOLVE通过引入响应演化的跟踪,使优化过程更为精细和稳定。我们不再仅依赖单次反馈,而是通过考虑多轮迭代中响应的变化趋势,逐步推动模型优化。作者通过以下公式扩展了优化过程:
其中,是相似度函数,表示当前响应与前一次响应之间的相似性。通过引入这一项,REVOLVE能够综合过去的信息,更全面地指导优化过程。
为了更清晰地定义相似度函数,作者使用如下公式量化响应之间的差异:
该相似度函数通过计算响应差异来反映任务的演化趋势,使得优化过程能够从全局角度出发,避免局部最优。
接下来,假设连续提示的差异 足够小,我们可以将其等价地视为梯度变化率。于是,我们得出以下公式:
最终,REVOLVE的优化公式可以被重写为:
这一公式引入了第二阶优化的思想,模拟了Hessian矩阵的作用。通过考虑梯度变化率,REVOLVE能够更全面地分析优化过程,从全局角度推动模型优化,避免陷入局部最优,并确保多轮迭代中的持续进化。
REVOLVE能做什么
1.解决方案优化 (Solution Optimization):
REVOLVE能够显著提升模型在复杂科学问题上的解答能力,尤其是在需要深度推理和复杂决策的任务中。例如,在MMLU-Machine Learning benchmark上,REVOLVE通过优化解答过程,在Llama-3.1-8B模型上相较于SOTA baseline提升了 20.72%的准确率,充分展示了其在复杂问题求解中的优势。
2. 提示词优化 (Prompt Optimization):
在推理任务中,REVOLVE通过优化提示词,帮助大语言模型提升推理能力。
例如,在Big Bench Hard (BBH-Objective Counting)的物体计数任务上,通过 REVOLVE优化的 prompt,能将 GPT-3.5-turbor的 QA 准确率从 77.8% 提升到 95.5%。 此外,REVOLVE在Llama-3.1-8B模型上相对于SOTA baseline带来了7.8%的性能提升,展现了其在推理任务中的卓越性能。
3. 代码优化 (Code Optimization):
REVOLVE同样能够优化复杂的编程任务解决方案,提升模型在代码生成中的表现。例如,在LeetCode Hard基准测试中,Llama-3.1-8B模型通过REVOLVE优化,相对于SOTA baseline性能提升了29.17%,证明了该方法在代码优化中的卓越性能。
在实验中,REVOLVE还体现了如下优势:
1.跨模型普适性
REVOLVE展现了极高的跨模型适应性,并且在多种大语言模型上都表现出色。在如GPT-3.5-turbo-0125、GPT-4-0125-preview、Gemini 1.5 Pro和Llama 3.1 8B Instruct等多个模型架构中,REVOLVE的优化效果均稳定可靠,准确率普遍提升了5-7%,证明了其在不同系统架构中的广泛适用性。
2. 处理弱模型的优势
对于计算能力较弱的模型,如GPT-3.5-turbo-0125、Llama 3.1 8B Instruct等,REVOLVE展现出了显著的效率优势。通过一次性优化,REVOLVE能够为这些弱模型提供强大的性能提升,从而帮助它们在推理任务中超越原本的能力。此特性使得REVOLVE非常适用于低成本的部署场景,特别是在资源有限的环境中,它能够为弱模型提供高效的优化效果,而无需使用高成本的强大模型进行多轮推理。
3. 计算资源效率
REVOLVE在计算资源使用上表现出色,尽管每次迭代的运行时间略高,但它通过减少迭代次数,显著节省了总体运行时间。具体结果如下:
(1)在物体计数数据集上,REVOLVE相较于TextGrad减少了50%的总运行时间。
(2)在解决方案优化任务中,REVOLVE比TextGrad节省了26.14%的运行时间,而Momentum-Enhanced TextGrad由于不稳定性,运行时间增加了77.65%。
(3)在代码优化任务中,REVOLVE比基线方法减少了16.67%的总运行时间。
(4)在GPU内存使用方面,REVOLVE与基线方法相当,未表现出显著的资源消耗增加。
结语
总的来说,REVOLVE为AI系统的长期发展提供了一种新的视角。通过系统性地整合历史反馈,REVOLVE有效解决了传统方法在复杂任务中常见的停滞和局部最优问题,从而推动了模型的深度自我修正和持续优化。这种优化方法所体现出的适应性、效率和跨模型的能力,使其在未来的AI应用中具备了更大的潜力。