首页
/ Gorilla项目中缺失参数处理的优化方案探讨

Gorilla项目中缺失参数处理的优化方案探讨

2025-05-19 14:57:21作者:裴麒琰

背景介绍

在Gorilla项目的Berkeley函数调用排行榜(BFCL)评估中,处理缺失参数的多轮对话数据集时出现了一个技术挑战。当遇到参数缺失的对话轮次时,标准做法是将真实标签标记为空列表(或不可解码),这与无关信号的处理方式相同。然而,这种处理方式在实际应用中可能不够理想。

问题分析

在训练过程中,开发团队不希望将参数缺失的情况简单地视为无关信号。相反,他们希望模型能够输出一个部分完成的函数调用,其中缺失的参数保持空白。这种设计允许后续的代理模块(与函数调用模块分离)向用户询问缺失的参数值。

技术方案

团队提出了一种后处理方案来解决这一评估需求:

  1. 训练模型输出包含空白参数的函数调用
  2. 在评估时通过后处理将这些部分函数调用转换为无关信号

例如,在参数缺失的查询中,模型可能输出类似["cd(folder='..')", "mv(source='',destination='temp')"]的结果,其中第二个移动操作缺少必需的参数。后处理阶段会将其解码为空列表[]

潜在挑战

这种方案需要考虑如何区分以下两种情况:

  1. 参数实际值为空字符串""的情况
  2. 模型输出的占位符格式

类似实现参考

NexusRaven-V2模型采用了类似的技术思路,它为每个测试条目添加了一个out_of_domain函数。当模型调用该函数时,就将模型响应标记为"无关"。

结论

这种后处理方案获得了项目维护者的认可,为处理缺失参数场景提供了一种更灵活的解决方案。它既保持了训练时的实用性,又确保了评估时的准确性,为构建更智能的函数调用系统提供了技术基础。

登录后查看全文
热门项目推荐