hdy 发表于 2025-6-5 22:37

DTA-Llama:大模型工具学习的并行革命,7B小模型性能炸裂

本帖最后由 hdy 于 2025-6-5 22:39 编辑

在AI领域,大型语言模型(LLM)的工具学习能力决定了其能否真正落地应用。然而,传统方法如CoT/ReAct(串行调用)和DFSDT(树搜索)存在效率低、计算成本高的问题。我们团队最近在 ACL 2025 录用的论文——DTA-Llama(Divide-Then-Aggregate Llama),通过并行工具调用,让7B小模型在任务解决能力上媲美GPT-3.5!一、传统方法的瓶颈:串行调用的效率困境现有的工具学习方法主要分为两类:CoT/ReAct等串行调用方法和基于DFS决策树(DFSDT)的树搜索方法。但串行调用一次只能调用一个工具,感知范围有限,需要多轮交互;而树搜索虽然提高了任务规划能力,但回溯机制导致调用路径长、计算成本高。DTA-Llama则旨在通过并行工具调用来提高大型语言模型(LLMs)在复杂任务中的表现。该方法的核心思想是将任务分解为多个并行子任务,并汇总调用结果,以决定下一步的行动。这种方法的实现通过对传统树型工具搜索路径进行改造,生成高质量的并行工具调用数据集。
二、核心方法论:分而治之的并行范式我们分别从数据构建、模型训练以及推理框架三个维度,详细揭秘DTA-Llama如何突破传统工具学习的瓶颈。2.1. 数据构建:如何将「串行工具调用」转化为「并行数据集」?

1. 原始数据清洗与筛选
[*]过滤无效数据:剔除工具调用失败、指令不完整的案例(如无系统/用户输入的对话),确保训练数据的「可执行性」。
[*]去重与逻辑校验:删除重复思考或动作的记录,例如同一轮次中重复调用相同工具,避免模型学习冗余行为。
2. 从树结构到DAG的转换流程
[*]提取成功路径:从原始决策树中筛选「根节点→成功叶节点」的路径,过滤失败分支。例如,在酒店预订任务中,仅保留最终完成预订的节点序列。
[*]并行性判定:利用GPT-4涡轮版分析路径中的工具是否可并行。判断标准包括:

[*]输入输出独立性:如查询天气与股票数据无数据依赖;
[*]逻辑因果关系:无先后执行要求(如无需先登录再查询公开信息)。
[*]DAG层级构建:对可并行的工具进行层级划分,同一层级的工具构成DAG的一个「层」,确保执行时无循环依赖。例如,第一层并行调用「价格查询」「空房检查」,第二层基于结果调用「用户评价获取」。
3. 数据过滤规则
[*]结构有效性:确保DAG是「有向无环连通图」,且仅有一个起点和终点。例如,删除存在孤立节点或循环调用(如A→B→A)的案例。
[*]功能唯一性:同一层级中不允许重复调用同一工具,避免资源浪费。例如,禁止同时调用两个「天气查询」接口。
2.2. 模型训练:Llama如何学会「分解-聚合」思维?1. 训练框架革新:从「Thought-Action-Observation」到「Thought-Observation」
[*]动作嵌入思考:传统ReAct中「Action」是独立步骤,而DTA-Llama将工具调用计划直接融入「Thought」。例如,思考过程变为:「需要并行查询NFT元数据(工具A)和货币流通量(工具B),参数分别为...」。
[*]损失函数设计:
其中, 是第轮的思考内容, 是工具返回结果。模型需根据历史思考和观察,预测下一步的并行工具调用计划。2. 超参数与训练配置
[*]基础模型:Llama2-7B/13B、Llama3-8B。
[*]训练参数:

[*]学习率:,热身比例4%;
[*]批次大小:64,训练4-5轮;
[*]硬件:8块A100 GPU并行训练,单卡显存需求约48GB。
2.3. 推理框架:Process/Threads如何实现并行工具调用?

1. Process:任务规划的「总指挥」
[*]动态分解:根据用户指令和历史结果,将任务拆分为可并行的子工具。例如,用户查询「域名状态」时,Process会同时规划「DNS查询」「Whois查询」「域名有效性验证」三个子任务。
[*]格式标准化:通过正则表达式提取工具调用计划,确保线程可解析。例如,生成JSON格式的工具列表:
ounter(lineounter(lineounter(lineounter(line[{"name": "dns_for_domain_checker", "arguments": {"domain": "example.com"}},{"name": "whois_for_domain_checker", "arguments": {"domain": "example.com"}}]2. Threads:独立执行的「工作单元」
[*]并行执行:每个子工具分配一个线程,调用真实API(如Spotify、区块链节点)。支持有限并发(通常≤10线程),避免API过载。
[*]结果缓存:线程执行结果暂存于「中间状态锁」,等待所有线程完成后统一返回给Process。例如,NFT元数据和货币流通量查询结果会被合并为一个观察对象。
3. 关键机制:中间状态锁的作用
[*]同步控制:确保Process在所有线程完成前不进入下一轮,避免「部分结果干扰决策」。例如,若仅获取部分酒店价格数据就进行筛选,可能导致错误推荐。
[*]数据聚合:将多线程结果整理为结构化输出,如将多个API返回的JSON合并为统一格式,降低模型解析成本。
三、 实验3.1. 数据集介绍StableToolBench根据工具类别和任务场景划分为6个子集,难度逐级递增:2.1 按工具类别划分
[*]Inst.(Instruction):

[*]介绍:测试的时候使用训练数据中相同工具集的未见过的指令,用以测试模型对已知工具的泛化能力。
[*]示例:用训练过的天气API回答新的天气查询(如“明天北京的紫外线指数”)。
[*]Tool:

[*]介绍:同一工具类别下的未见工具,评估模型对同类新工具的适应能力。
[*]示例:训练时使用OpenWeather API,测试时换为Weather.com API。
[*]Cat.(Category):

[*]介绍:完全未见工具类别的任务测试模型跨领域工具学习能力。
[*]示例:训练时仅用天气和地图工具,测试时引入股票查询工具。
2.2 按任务场景划分
[*]I1(单工具指令):最简单的任务,仅需调用单一工具(如“查询比特币当前价格”)
[*]I2(类别内多工具):需组合同一类别下的多个工具(如用多个金融API计算投资回报率)
[*]I3(跨集合多工具):最复杂任务,需跨类别工具协同(如“预订航班并查询目的地天气”)
3.2. 实验结果对比我们分别从性能(SoPR/SoWR)、效率(token/时间)和泛化性(多模型测试)三个维度来看本文的工作对比其他的SoTA分别具有哪些优势。3.2.1. 性能对比(SoPR、SoWR)Solvable Pass Rate (SoPR) 用于衡量模型成功完成任务的比例,而 Solvable Win Rate (SoWR) 则是以GPT-3.5(ReAct)为基准评估模型生成结果的质量。从实验结果中,我们可以看出SoPR的对比中,DTA-Llama在开源模型中表现最佳,平均SoPR为66.1%,显著优于其他基线(如ToolLLaMA的54.2%和Qwen2.5的63.0%)。而与GPT系列模型相比,DTA-Llama(基于Llama2-7B)甚至在某些子集上超越了GPT-3.5(Parallel),并与GPT-4(DFSDT)性能接近。而在SoWR的对比上,DTA-Llama平均为59.1%,在开源模型中最高,尤其在I2-Inst子集上达到70.8%(相对提升27.32%),并且在平均值上优于所有开源基线(如ToolLLaMA的47.1%),接近GPT-3.5(DFSDT)的65.5%。3.2.2 计算成本(Computational Cost)除了效果,成本也是关系到大模型应用的一个重要因素,本文同样在成本的各项维度上进行了详细分析。Token消耗, 衡量模型完成任务所需的输入(Prompt)和输出(Completion)token数量。从实验结果进一步证明,高效的DAG结构避免了树搜索中的冗余回溯,同时并行调用减少了调用轮次,从而DTA-Llama的token消耗显著低于DFSDT方法(平均减少约50%),且与ReAct方法接近。而且在最大token消耗场景下,DTA-Llama表现稳定,未出现极端高消耗情况。同时,DTA-Llama的平均推理时间为31秒,比ToolLLaMA(ReAct)快1.22倍,比DFSDT快2.7倍。
3.2.3泛化能力(Generalization)从下表可知,DTA-Llama的框架对不同规模的模型均有效,具有较好的泛化性,在Llama2-13B和Llama3-8B上,DTA-Llama相比DFSDT基线均显著提升,尤其在较小模型(如7B)上表现突出。
四、代码与模型:如何复现DTA-Llama?1. 开源资源
[*]官网:https://corn0205.github.io/
[*]开源代码:https://github.com/Zhudongsheng75/Divide-Then-Aggregate
[*]数据集:DTA-Tool(2万条并行工具调用数据),可从HuggingFace DTA-Tool下载。
[*]模型权重:基于Pytorch的开源Llama模型进行微调,可从HuggingFace DTA-Llama下载对应微调好的checkpoint。
[*]推理框架:基于Python的Process/Threads实现,依赖concurrent.futures库。
五、总结:并行框架的「工程化价值」DTA-Llama的实现细节揭示了一个核心思路:通过数据结构(DAG)和系统设计(Process/Threads)将大模型的「决策能力」与「工具效率」解耦。这不仅提升了单次任务的执行速度,更重要的是为构建「可扩展的工具调用平台」奠定了基础——无论是电商比价、科研数据整合,还是实时监控系统,DTA框架都能通过并行机制降低整体耗时。延伸思考:若结合强化学习动态优化DAG层级,或引入联邦学习保护工具调用中的隐私数据,DTA-Llama的应用场景将进一步拓展。欢迎有兴趣的同学基于本篇开源资源进行二次创新。


页: [1]
查看完整版本: DTA-Llama:大模型工具学习的并行革命,7B小模型性能炸裂