ScoreFlow:通过基于分数的偏好优化掌握 LLM 智体工作流程

25年2月来自 U of Chicago、Princeton U 和 U of Oxford 的论文“ScoreFlow: Mastering LLM Agent Workflows via Score-based Preference Optimization”。

最近的研究利用大语言模型多智体系统来解决复杂问题,同时试图减少构建它们所需的手动工作量,从而推动自动智体工作流优化方法的发展。然而,现有方法在依赖离散优化技术时,由于表征限制、缺乏适应性和可扩展性差,仍然缺乏灵活性。本文用 ScoreFlow 解决这些挑战,这是一个简单但高性能的框架,它利用连续空间中高效的基于梯度优化。ScoreFlow 结合 Score-DPO,一个直接偏好优化(DPO)方法的一种变型,它考虑定量反馈。在涵盖问答、编码和数学推理的六个基准测试中,ScoreFlow 比现有基线提高 8.2%。此外,它使较小的模型能够以较低的推理成本胜过较大的模型。

大语言模型 (LLM) 已证明其在解决自然语言任务方面表现出色 [25, 33, 1, 2, 41, 42]。此外,LLM 的多智体系统(工作流)中,多个智体协调并交换信息以完成任务,这使得基于 LLM 的智体能够协作并解决广泛领域的复杂任务,例如数学问题解决 [47, 38]、问答 [24] 和编码任务 [12, 28]。

然而,这些手动设计的智体工作流需要付出巨大努力,并且处理不同领域任务的能力有限。因此,该领域的新兴重点是通过开发自动化的工作流生成和优化方法来解决静态工作流的局限性。这些优化可以针对各个方面,包括快速细化、超参调整和工作流结构设计 [17, 49, 44, 14, 46, 7, 19, 21, 32, 45]。

自动优化方法可能受到预定义工作流结构固有限制和工作流空间表征的刚性限制 [17, 49, 44, 21]。DyLAN [21] 深思熟虑地强调 LLM 辩论中的通信结构,但忽略其他潜在的通信结构。GPTSwarm [49] 利用基于图的结构并采用强化微调进行优化。然而,图结构中缺乏对条件状态的考虑,对搜索空间施加限制。

为了提高表示能力,AFlow [46] 和 ADAS [14] 使用代码作为工作流的表示,从而促进稳健而灵活的工作流搜索。然而,ADAS 面临着搜索过程效率低下和工作流存储粗糙的挑战,这导致无关数据的积累和复杂性增加,最终降低其有效性。为了解决这些问题,AFlow 采用蒙特卡洛树搜索(MCTS)的变型作为优化方法来提高效率。然而,工作流结构收敛速度过快,再加上离散优化方法,限制搜索空间的探索,常常导致结果不理想。此外,它们都针对整个任务集优化单一工作流,这限制包含各种问题较大数据集的适应性和可扩展性 [45, 32]。

智体工作流优化

针对提示和超参的自动优化。强调提示优化 [11, 44, 40, 17] 或超参优化 [29] 的自动优化方法可以提高性能;但是,它们对工作流结构施加限制,并且通常需要手动修改以适应新任务,从而限制它们的适应性和可扩展性。

工作流结构的自动优化。工作流优化方法 [48, 49, 14, 46, 7, 19, 21, 32, 45] 专注于改进工作流的结构,使其更强大,可以处理各种任务。但是,工作流表征的不灵活性和局限性(例如图结构中条件状态的丢失)可能会限制搜索空间,从而妨碍适应多样化和复杂工作流的能力。

从语言模型的偏好中学习

PPO。近端策略优化 (PPO) [30] 分两个阶段处理偏好反馈。首先,在偏好数据集 D_R 上训练奖励模型 R_φ,其中每个条目 (x, y_w, y_l) 由提示 x、首选响应 y_w 和拒绝响应 y_l 组成。通过最小化以下损失函数来优化奖励模型,该函数的灵感来自 Bradley-Terry (BT) 模型 [5],用于对排名(pair-ranking)。

接下来,通过最大化分配给其生成响应的奖励来完善策略模型 π_θ,同时保持软 KL 散度约束以防止退化。

DPO。直接偏好优化 (DPO) [27] 使用偏好数据促进直接策略优化,无需显式奖励模型或主动策略采样。这种方法提高优化过程的效率和稳定性。从上述策略模型目标函数的闭式解中,隐式奖励可以表示为 R_φ(x, y) = β log π_θ^⋆ (y | x)/π_ref (y | x) + βZ(x),其中 π_θ^⋆ 是最优策略,Z(x) 是分区函数。然后可以使用上述奖励目标直接优化策略模型,从而导致 DPO 损失。

ScoreFlow 是一种自动化且经济高效的多智体工作流生成框架,它采用优化方法来实现高性能、可扩展性和适应性。其流程如下:

请添加图片描述

ScoreFlow 的推理过程概述,如图所示。给定数学任务 A 和 B,以及可选择的智体类型(程序员、可自定义操作员、集成操作员和审阅人),将为每个任务生成一个基于 Python 的工作流,其中工作流 A 和 B 的智体集分别包含一个和五个状态。然后将每个任务输入到其各自的工作流中以产生执行结果。

请添加图片描述
现在将 LLM 多智体工作流优化问题和一些符号形式化如下。

给定一个输入任务 q,格式化为提示,希望确定解决此任务的最佳工作流 G(q),其中 G 是工作流生成器。工作流函数 W_f 定义为某个任务 q 和智体集 V ,(q,V)的集成到执行结果 W_f (q,V) 的映射,通常是该任务的解决方案。智体集 V 由一组智体组成,每个智体都以其系统提示、温度设置和其他相关参数为特征。然后,将工作流定义为智体集和工作流函数的组合:(V,W_f)。定义工作流搜索空间为:W = {(V,W_f)| V ⊂ V,(V,W_f)满足条件 C},其中 V 表示整个智体空间。

条件 C 对搜索空间施加约束,使得 W_f 对于智体集 V 是可执行的。给定这些符号,优化目标是确定最佳的工作流生成器:

请添加图片描述
其中 D 表示任务数据集,S 是针对任务 q 执行工作流 G(q) 所生成结果的第三方评估器,例如人工提供的分数、平均胜率或其他相关指标。
使用代码作为工作流函数 W_f [14, 46] 的表示可以解释线性序列、循环、条件逻辑,并提供超出图或网络结构的灵活性。此外,按照 Aflow [46],将 V 中的智体表征为操作员。操作员是预定义的、可重复使用的智体节点组合,代表常见操作,例如程序员、审阅员、校对员、问答操作员、集成操作员、测试操作员和可定制操作员等。通过允许生成器 G 自定义操作员内的系统提示,实现提示的优化,扩展智体空间 V,丰富搜索空间 W。

为了使工作流适应输入任务 q,即根据输入问题调整所选的操作员和生成工作流的结构复杂性,需要从 q 中提取语义信息。具体来说,用一个开源的预训练大语言模型作为生成器 G 的基础模型。生成器的输入包括任务 q 和生成指南的组合,包括格式要求和可用操作员的介绍,所有这些都被格式化为一个指导提示。

直接使用 DPO 对收集的偏好数据进行生成器微调,会导致收敛速度慢并且无法达到最佳性能。这些问题是由于评估分数中的错误和方差造成的。本文提出一种广泛适用的优化方法 Score-DPO,这是 DPO 的改进版,旨在解决这些挑战。本文实验证明 Score-DPO 在优化 LLM 工作流生成器方面的优势,表明它适用于类似的设置。

增强的采样分布。在设置中应用 DPO 时观察的收敛速度慢和性能不佳,可以归因于收集的偏好数据不准确,这是由评估分数中不可避免的方差和误差造成的。为了解决这个问题,建议增加样本对 (w, l) 的权重,使分数差异 s_w − s_l 更大。具体来说,引入一个函数 d(x, y) : [0, 1]2 → [0, 1],该函数关于 x − y 严格单调递增。然后,根据 P^⋆(w, l) ∝ d(s_w, s_l)P(w, l) 增加得分差异较大的数据对采样概率,通过增加其可能性来提高权重,其中 P(w, l) 表示偏好数据集 D_pre 上的均匀随机采样分布。此调整可确保在采样过程中优先考虑得分差异较大的对,从而提高优化过程的有效性。

将评估分数纳入排名目标。Bradley-Terry (BT) [5] 排名目标 σ(r_w −r_l) 有一些替代公式,比 DPO [23, 4, 26] 更有效,其中 r_w := β log(π_θ(y_w|x)/π_ref (y_w|x)) 和 r_l := β log(π_θ(yl|x)/π_ref (yl|x))。在设置中,结合评估分数来指导隐性奖励。具体来说,将基于分数的 BT 排名目标定义为 σ(r_w − r_l),其中 r_w := f(s_w)r_w,r_l^⋆ := (1 − f(s_l))r_l,f(x) : [0, 1] → [0, 1] 是严格单调递增函数。从经验上讲,这种方法可确保,具有更确定性评估分数的数据点,对损失函数的影响更大。最后,将 Score-DPO 的损失函数定义为

请添加图片描述

虽然 DPO 很难有效地学习偏好排名 [6],但以下定理将证明这种分数-指导方法将每个样本对优化目标的影响与其评估分数的大小相一致。
为了使分析形式化,引入符号来量化每个特定样本对优化目标的影响。

定义 1(每个样本的影响)。对于给定的样本 z,z 对目标函数的影响(称为每个样本的影响)定义为:

请添加图片描述

每个样本的影响 I(z) 是样本 z 贡献的梯度,表示 z 对优化目标的定量影响。当 I(z) > 0 时,优化过程会增加 z 的对数,使其更有可能被优先考虑。当 I(z) < 0 时,它会降低 z 的对数,使其不太可能被优先考虑。以下定理 2 展示分数指导对 I(z) 的影响。

定理 2。假设函数 d(x, y) : [0, 1]^2 → [0, 1] 关于 x − y 严格单调递增,函数 f(x) : [0,1] → [0,1] 关于 x 严格单调递增。样本 z 的每个样本影响由以下公式给出:

请添加图片描述

当 −(1 − f(s_z))−1 ≤ r_z ≤ f^−1(s_z) 成立时,该影响随得分 s_z 严格单调递增。

因此,Score-DPO 可以将得分信息纳入自采样偏好优化中,使优化过程能够考虑定量信息,而不是仅使用赤裸裸偏好对信息,并且可以减少得分不准确造成的误差和方差。请注意,定理 2 中所述的条件不是限制性的,因为 |r_z | ≤ 1 为其有效性提供充分条件。此外,实验结果表明,在收敛之前的优化过程中,|r_z| ≤ 1 成立的概率约为 91.1%。

最后总结的算法如下:

请添加图片描述

数据集。专注于六个公共数据集,涵盖一系列任务,包括数学问题、问答问题和编码问题。具体来说,利用 HumanEval [8] 和 MBPP [3] 的完整数据集。按照 Aflow [46] 的方法,对于 GSM8K [9],在测试集中使用 1,319 个数据点。对于 MATH 数据集,为了强调高级和具有挑战性的问题,从以下问题类型中选择难度级别为 5 的问题:组合和概率、数论、初等代数和初等微积分,就像 Hong [12] 所做的那样。对于 DROP [10] 和 HotpotQA [43],遵循 Hu [14]、Shinn [31] 和 Zhang [46] 概述的方法,从每个数据集中随机选择 1,000 个样本。使用 1:4 的比例将数据分成验证集和测试集。

基线。手动设计的静态工作流基线包括:直接 LLM 调用、思维链 [36]、自洽性 CoT(对集成生成 5 个响应)[34]、MedPrompt(3 个响应和 5 张票)[24]、多人辩论 [35] 和自我优化(2 轮)[22]。还与代码表示自动化工作流优化方法进行比较:ADAS [14] 和 Aflow [46],其中使用 GPT-4o-mini 作为它们的优化模型。将 Aflow 的迭代轮数设置为 20,如 Zhang [46] 所述。

模型。默认情况下,用 Llama-3.1-8B-Instruct 作为生成器的基础模型(使用 vLLM [18] 进行推理),并使用 GPT-4o-mini 作为执行器(通过 API 进行推理,温度为 0)。在消融研究中,用 Qwen2.5-7B-Instruct [39] 作为生成器,并使用 GPT-4o 和 DeepSeek 系列模型 [20] 作为执行器。所有实验均使用 2 个 A6000 GPU 和 LoRA [13]。

指标和评估分数。在最终结果中报告解决率(评估 3 次并取平均值)。用 GPT-4o-mini 作为 MATH、DROP 和 HotpotQA 的评判模型,以避免格式不一致问题。在优化过程的每次迭代中(总共 3 次迭代),为每个问题生成 k = 8 个工作流并获得它们的评估分数,其中不使用判断模型来降低成本和计算开销。具体来说,用 F1 分数作为 DROP 和 HotpotQA 的评估指标,并解决剩余数据集的速率(评估 3 次并取平均值)。为了应用 Score-DPO,将 f (x) = x 和 d(x, y) = (x − y)^3 设置为默认选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/71249.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数值分析与科学计算导引——误差与算法举例

文章目录 第一章 数值分析与科学计算导引1.1 数值分析的对象、作用与特点数值分析的对象数值分析的作用数值分析的特点 1.2 数值计算的误差误差分类误差与有效数字数值运算的误差估计 1.3 算法举例秦九韶算法求多项式值开根号迭代算法牛顿切线加权平均的松弛技术 第一章 数值分…

【在时光的棋局中修行——论股市投资的诗意哲学】

在时光的棋局中修行——论股市投资的诗意哲学 引子&#xff1a;数字之海与星辰之约 在经纬交织的K线图里&#xff0c;我常看见银河倾泻的轨迹。那些跳动的数字如同繁星坠落&#xff0c;在午夜时分编织着财富的密码。炒股之道&#xff0c;是理性与诗意的交响&#xff0c;是数据…

线上项目报错OOM常见原因、排查方式、解决方案

概述 OutOfMemoryError&#xff08;OOM&#xff09;是 Java 应用程序中常见的问题&#xff0c;通常是由于应用程序占用的内存超过了 JVM 分配的最大内存限制。在 Spring Boot 项目中&#xff0c;OOM 问题可能由多种原因引起。 1. OOM 的常见原因 OOM 通常由以下几种情况引起&…

java练习(27)

ps&#xff1a;练习来自力扣 删除排序链表中的重复元素 给定一个已排序的链表的头 head &#xff0c; 删除所有重复的元素&#xff0c;使每个元素只出现一次 。返回 已排序的链表 。 代码来自官方题解 class Solution {public ListNode deleteDuplicates(ListNode head) {//…

Flutter:动态表单(在不确定字段的情况下,生成动态表单)

关于数据模型&#xff1a;模型就是一种规范约束&#xff0c;便于维护管理&#xff0c;在不确定表单内会出现什么数据时&#xff0c;就没有模型一说。 这时就要用到动态表单&#xff08;根据接口返回的字段&#xff0c;生成动态表单&#xff09; 1、观察数据格式&#xff0c;定义…

洛谷P8707 [蓝桥杯 2020 省 AB1] 走方格

#include <iostream> using namespace std; int f[31][31]; int main(){int n,m;scanf("%d%d",&n,&m);f[1][1]1;//边界&#xff1a;f(1,1)1for(int i1;i<n;i)for(int j1;j<m;j)if((i&1||j&1)&&(i!1||j!1))//i,j不均为偶数&#…

ASP.NET Core Web应用(.NET9.0)读取数据库表记录并显示到页面

1.创建ASP.NET Core Web应用 选择.NET9.0框架 安装SqlClient依赖包 2.实现数据库记录读取: 引用数据库操作类命名空间 创建查询记录结构类 查询数据并返回数据集合 3.前端遍历数据并动态生成表格显示 生成结果:

解决 Linux 中搜狗输入法导致系统崩溃的问题【fcitx 】【ibus】

在 Linux 系统中安装搜狗输入法时&#xff0c;有时会遇到一些令人头疼的问题。最近&#xff0c;我在安装搜狗输入法后&#xff0c;系统出现了崩溃的情况。具体表现为输入密码登录后&#xff0c;界面卡死&#xff0c;无法正常进入系统。经过一番排查和分析&#xff0c;我终于找到…

如何做好项目变更管理

项目变更管理是确保项目按时、按预算和按质量要求完成的关键环节之一。有效的项目变更管理包括&#xff1a;变更识别、变更评审、变更批准和变更实施。这些步骤确保项目在面对变化时能够高效应对&#xff0c;避免资源浪费、时间延误和预算超支。其中&#xff0c;变更评审和变更…

HarmonyOS-ArkTS基础快速入门

目录 ArkTS 快速入门 ArkTS 快速入门 如图&#xff0c;index.etc里面的内容&#xff08;图中框住的大长方形区域&#xff09;会渲染到预览区中&#xff0c;而console.log(xx,xxx)用于内容的打印&#xff0c;需要在日志中查看打印的内容

【设计模式】【结构型模式】桥接模式(Bridge)

&#x1f44b;hi&#xff0c;我不是一名外包公司的员工&#xff0c;也不会偷吃茶水间的零食&#xff0c;我的梦想是能写高端CRUD &#x1f525; 2025本人正在沉淀中… 博客更新速度 &#x1f44d; 欢迎点赞、收藏、关注&#xff0c;跟上我的更新节奏 &#x1f3b5; 当你的天空突…

深度学习(1)-简单神经网络示例

我们来看一个神经网络的具体实例&#xff1a;使用Python的Keras库来学习手写数字分类。在这个例子中&#xff0c;我们要解决的问题是&#xff0c;将手写数字的灰度图像&#xff08;28像素28像素&#xff09;划分到10个类别中&#xff08;从0到9&#xff09;​。我们将使用MNIST…

深入探索 C++17 中的 std::hypot:从二维到三维的欧几里得距离计算

文章目录 1. std::hypot 的起源与背景2. 三维空间中的 std::hypot3. 为什么需要 std::hypot 而不是手动计算&#xff1f;4. 使用 std::hypot 的示例4.1 二维空间中的应用4.2 三维空间中的应用4.3 处理浮点数溢出问题 5. std::hypot 的性能与精度6. 实际应用场景6.1 计算机图形学…

面基Spring Boot项目中实用注解一

在Spring Boot项目中&#xff0c;实用注解根据功能可以分为多个类别。以下是常见的注解分类、示例说明及对比分析&#xff1a; 1. 核心配置注解 SpringBootApplication 作用&#xff1a;标记主启动类&#xff0c;组合了Configuration、EnableAutoConfiguration和ComponentScan…

【每日论文】Latent Radiance Fields with 3D-aware 2D Representations

下载论文或阅读原文&#xff0c;请点击&#xff1a;每日论文 摘要 中文 潜在3D重建技术在赋予3D语义理解和3D生成能力方面展现出巨大的潜力&#xff0c;它通过将2D特征提炼到3D空间来实现。然而&#xff0c;现有的方法在2D特征空间和3D表示之间的领域差距问题上挣扎&#xff…

CPP集群聊天服务器开发实践(七):Github上传项目

github链接&#xff1a;GitHub - arduino-ctrl/ClusterServer: 基于jsonmuduomysqlnginxredis的集群服务器与客户端通信源码 步骤如下&#xff1a; 1. github新建代码仓库&#xff0c;复制url 2. git clone https://github.com/arduino-ctrl/ClusterServer.git 3. 将项目文件…

作业。。。。。

顺序表按元素删除 参数&#xff1a;删除元素&#xff0c;顺序表 1.调用元素查找的函数 4.根据下表删除 delete_sub(list,sub); //删除元素 void delete_element(int element, Sqlist *list) …

二、从0开始卷出一个新项目之瑞萨RZT2M双核架构通信和工程构建

一、概述 RZT2M双核架构是同构多核&#xff0c;但双核针对不同应用 扩展多核架构和通信知识可参见嵌入式科普(30)一文看懂嵌入式MCU/MPU多核架构与通信 二、参考资料 用户手册&#xff1a;RZ/T2M Group Users Manual: Hardware R52内核手册&#xff1a;arm_cortex_r52_proc…

【HF设计模式】07-适配器模式 外观模式

声明&#xff1a;仅为个人学习总结&#xff0c;还请批判性查看&#xff0c;如有不同观点&#xff0c;欢迎交流。 摘要 《Head First设计模式》第7章笔记&#xff1a;结合示例应用和代码&#xff0c;介绍适配器模式和外观模式&#xff0c;包括遇到的问题、采用的解决方案、遵循…

RDMA 高性能通信技术原理

目录 文章目录 目录DMA 与 RDMARDMA 特性和优势大带宽低延时 RDMA 协议栈标准RDMA 运行原理通信通路通信模型通信方式内存注册QP 建链常规流程双向控制 Send-Receive API 流程单向数据 Write API 流程单向数据 Read API 流程 RDMA Verbs API 编程基础网络连通性RDMA C/S 程序 D…