工具增强型语言模型通过结合外部可执行技能来扩展小型语言模型的能力,但这种方法在扩展工具库时面临一个双重挑战:一方面,工具库必须随着规划器的进化而更新,以纳入新的可重用子程序;另一方面,从不断增长的工具库中检索合适工具的过程必须保持在固定的上下文预算内。现有的大多数工具使用和技能库方法通常将工具视为扁平化或文本索引的记忆,这导致提示成本随库大小线性增长,并且掩盖了可执行代码的类型化组合结构。
为了解决这一问题,研究人员提出了CoCoDA(Co-evolving Compositional DAG)框架。该框架通过一种单一的原生代码结构——组合式代码有向无环图(DAG)——来实现规划器和工具库的协同进化。在这个DAG中,节点代表原始工具或复合工具,边编码了调用依赖关系。每个节点都存储了类型化签名、描述、前置/后置条件规范以及工作示例。这种结构使得工具库不仅是存储工具的集合,更是一个动态的可进化系统。
在推理阶段,CoCoDA使用类型化DAG检索技术。该过程首先通过符号签名统一来修剪候选工具集,然后按描述对幸存者进行排序,接着通过行为规范进行过滤,最后用示例消除歧义。这样,昂贵的上下文具体化操作只在逐步缩小的候选集上执行,从而大大降低了检索成本。在训练阶段,成功的轨迹被折叠为经过验证的复合工具,同时规划器通过DAG诱导的奖励进行更新,该奖励根据原始展开大小对复合工具进行信用分配。
理论分析表明,CoCoDA在检索成本降低、亚线性检索时间、在塑造奖励下的组合优势、保守更新下的单调协同进化以及DAG良构性方面具有优势。在数学推理基准GSM8K和MATH、表格分析以及代码任务上的实验结果显示,CoCoDA使一个80亿参数的学生模型能够达到或超过一个320亿参数的教师模型的性能,并且持续优于其他强大的工具使用和库学习基线方法。
CoCoDA为工具增强型智能体提供了一种可扩展且高效的范式,有望推动小型模型在复杂任务中的应用,同时保持较低的计算成本。