NVIDIA 数据智能体登顶 DABStep 榜单
数据世界广阔,但定量信息往往稀疏或无法在线获取,这对深度研究智能体构成重大挑战。本文分享一个由 NVIDIA Kaggle Grandmasters (KGMON) LLM Agent Research Team 开发的自主数据分析智能体架构——NVIDIA KGMON (NeMo Agent Toolkit) Data Explorer。该项目引入了一个专为数据集探索和分析设计的智能体,旨在处理多步推理、工具调用和迭代数据分析的复杂性。值得注意的是,我们的方法在 Data Agent Benchmark for Multi-step Reasoning (DABStep) 基准测试中确立了新的最先进(SOTA)性能,排名第一,速度比 claude code 基线快 30 倍。
在具有挑战性的 DABStep 基准测试上,多阶段方法的成功验证了将基础知识构建与快速推理分离的策略。
动机:弥合数据分析的差距
深度研究智能体,尤其是那些依赖互联网文本搜索的,在处理需要复杂、多步查询的结构化表格数据时表现不佳。
我们的核心动机是创建一个在以下方面表现出色的智能体:
- 通过自动代码生成和执行,更快地迭代分析。
- 利用多步推理和工具调用,破解复杂的表格问题。
- 使用语义搜索理解大型非结构化上下文。
- 通过自动生成和解释可视化,在实验中保持方向感。
NVIDIA KGMON (NeMo Agent Toolkit) Data Explorer 旨在提供包括自动开放式探索性数据分析、表格数据问答、预测建模和预测在内的能力。
NVIDIA KGMON (NeMo Agent Toolkit) Data Explorer 架构
在 NVIDIA KGMON (NeMo Agent Toolkit) Data Explorer 中,我们为不同的用例实现了不同的智能体循环。该架构利用 NVIDIA NeMo Agent Toolkit 来驱动这些循环,使用专门从数据科学家角度设计的工具。对于开放式探索性数据分析,系统将 ReAct 智能体与 Jupyter Notebook 工具配对,允许连续、双向交互。或者,对于多步基于规则的表格数据问答,架构使用工具调用智能体(Tool Calling Agent)。该智能体与一个独特的、多部分的专用工具套件交互以完成其结构化任务:一个有状态的 Python 解释器、一个检索器和一个文件结构检测器。
开放式探索与表格数据问答
目前,NVIDIA KGMON (NeMo Agent Toolkit) Data Explorer 专注于两个主要应用:
1. 开放式探索性数据分析(EDA)
下图展示了由 ReAct 智能体驱动的开放式探索性数据分析架构。工作流始于用户挂载数据集并向 ReAct 智能体发送问题或指令,智能体将这些输入转换为特定的工具调用。这些调用被发送到 Notebook 操作工具(Notebook Manipulation Tools),这是一个能够执行标准操作(如创建笔记本、添加代码和运行单元格)的套件。工具执行命令后,原始输出流入工具输出处理器(Tool Output Handler)。该处理器的一个关键特性是其与视觉语言模型(VLM)的集成;如果工具输出包含可视化图表,处理器会将其发送给 VLM 以生成文本描述和改进图表美观度与信息丰富度的建议。然后,处理器用此基于文本的分析替换可视化图表,并将处理后的工具输出发送回 ReAct 智能体,以便其能制定对用户的知情响应。
2. 多步规则表格数据问答
这解决了需要针对表格数据集进行多步推理和工具调用的难题。我们专注于 Data Agent Benchmark for Multi-step Reasoning (DABStep) 基准测试,该测试包含 450 个专门针对金融支付领域的任务。基准测试过程分为三个主要部分:
上下文与查询(Context & Query)包括问题和异构数据源(如 CSV 和 JSON 文件),以及详细说明领域逻辑和规则的 markdown 手册。基准任务(Benchmark Tasks)将工作负载分类为简单任务(16%)和困难任务(84%)。简单任务是基本的单数据集查询,而困难任务需要复杂的、多步的工具增强推理。这些困难任务涉及阅读文档、生成代码(如 SQL 或 Pandas)以及交叉引用数据来计算答案,其中网络搜索几乎或完全没有帮助。最后,评估阶段(Evaluation)使用具有严格格式要求的精确文本匹配(Exact Text Match)来衡量成功,期望输出包含 agent_answer 和 reasoning_trace 的 JSONL 格式。
破解 DABStep:多阶段方法
为了在 DATStep 上实现最先进(SOTA)的结果,我们需要将繁重的工作与快速执行分开。系统分为三个不同的阶段:学习阶段(Learning phase),智能体使用通用技能和真实数据来锻造可重用的专用工具;推理阶段(Inference phase),应用这些工具快速解决新问题;以及离线反思阶段(Offline Reflection phase),审查输出以生成更深入的见解。这模仿了人类数据科学家的操作方式——前期投入大量精力构建强大的工具包,以便未来的任务变得高效且可扩展。
阶段 1:学习循环
在学习阶段,我们部署一个重量级模型(如 Opus 4.5/4.6)在一个多轮循环中,配备全套工具,包括有状态的 Python 解释器、bash 工具和文件结构检测器。通过处理一批代表性任务(例如任务 1 到 10)并根据真实答案进行验证,智能体构建了数据集的全面心智模型。然后,它将各个 python 脚本合成为一个主解决方案,最终将其提炼为一个高度优化的可重用函数库(helper.py)和一组简洁的少样本示例,这些示例展示了如何使用辅助函数来解决开发集(训练集)中的问题。
识别互连任务 & 全局优化子解决方案
驱动这种方法的核心见解是,复杂的数据问题很少孤立存在。如商户费用示例所示,不同的任务通常共享完全相同的基础数据操作。例如,计算特定月份的具体交易费用(任务 2)需要与仅列出适用费用 ID(任务 1)完全相同的初始步骤——获取商户信息和查找费用数据。识别并映射这种重叠是构建模块化、DRY(不要重复自己)系统的关键。
智能体不是为每个新问题编写孤立的、脆弱的脚本,而是积极寻找最稳健的逻辑。如果函数的“版本 1”对任务 1 完美工作,但在应用于任务 2 略有不同的约束时失败,智能体会识别缺陷。通过使用 Python 解释器针对多个互连任务的真实数据主动测试候选函数,智能体迭代地发现一个“版本 2”,该版本成功泛化到整个批次。
重构与打包
一旦找到最优的、泛化的逻辑,智能体将笨重的独立脚本重构为清晰、统一的架构。复杂的数据提取和计算步骤被打包到集中的 helper.py 库中。因此,回答任何特定问题所需的实际代码量急剧减少。最终的任务解决方案从冗长、复杂的脚本转变为轻量级的指令,这些指令只需从辅助库中导入并执行正确的工具。
阶段 2:快速且精简的推理
基础代码编写完成后,推理阶段转向使用更小、更快的模型(如 Haiku 4.5)运行单轮循环。由于复杂的领域逻辑已经安全地封装在 helper.py 中,推理智能体只需要一个基本的 Python 解释器来完成其工作。为了将 token 成本和延迟降至绝对最低,上下文窗口被积极修剪:智能体仅被提供函数签名(而非底层代码)以及一个精简的系统提示,使其能够高效地编排预构建的工具来解决未见过的任务。
第三阶段:无监督离线反思
为了保证高质量输出,同时避免拖慢实时推理循环,我们把关键的质量控制环节完全移到了离线阶段。这个阶段依赖两种强大的大语言模型评估技术——反思(Reflection)和群体一致性(Group-Consistency),由一个重量级模型(比如 Opus 或 Sonnet 4.6)驱动,扮演无监督评审员的角色。
反思 是指模型回顾智能体生成的代码和推理过程,审计其表现。它会问一些尖锐的问题:智能体有没有有效利用 helper.py 库?是否忠实遵循了提示?代码里有没有明显的错误?
群体一致性 则涉及分析多组相似测试问题中的候选解决方案,确保智能体的逻辑保持稳定。如果智能体用相互矛盾的方法解决同一类问题,离线模型就会标记这种差异,并推理出哪种方法才是正确的。把这些计算量大的检查移到离线阶段,我们就能在不牺牲推理速度的前提下,对数据进行深度分析。
闭环:注入洞察,加速推理
离线反思产生的洞察不只是用来分析——它们会被主动反馈到架构中,形成学习闭环。通过从测试数据中提取关键模式、边缘情况和潜在陷阱,重量级模型把这些学习成果编译起来,直接注入到系统提示中,供未来的推理阶段使用。因为轻量级推理智能体在初始提示中就已经包含了这些预先计算好的洞察,我们完全不需要缓慢、计算开销大的在线反思或一致性检查。结果是,推理阶段保持了极快的速度和极高的 token 效率,同时通过每一次离线评审,持续提升准确性。
结果
| 简单任务 | 困难任务 | 单任务耗时 | 代码长度 | |
|---|---|---|---|---|
| NVIDIA KGMON (NeMo Agent Toolkit) Data Explorer + haiku 4.5 | 87.5 | 89.95 | 20s | 1870 |
| claude code + opus 4.5 | 90.2 | 66.93 | 10min | 5011 |
| DataPilot from AntGroup | 86.11 | 87.57 | unknown | unknown |
| DS-STAR from Google AI | 87.5 | 45.24 | unknown | unknown |
为了验证这个架构,我们将三阶段“NVIDIA KGMON (NeMo Agent Toolkit) Data Explorer”方法(使用轻量级 Haiku 4.5 进行推理)与一个标准基线进行了对比。基线使用“Claude Code”搭配重量级 Opus 4.5,试图从零开始解决每个任务。结果凸显了我们方法带来的巨大效率提升。
因为我们的推理智能体依赖预构建的 helper.py 库,它能以极快的速度解决任务——每个任务只需 20 秒,生成的代码高度简洁,仅 1,870 个字符。相比之下,从零开始的方法每个任务耗时长达 10 分钟,代码长度膨胀到 5,011 个字符。
最令人印象深刻的是,这 30 倍的速度提升并没有牺牲复杂推理能力。虽然重量级 Opus 模型在“简单”任务上略有优势(90.2 对 87.5),但我们的方法在“困难”任务上完全占据主导地位,得分 89.95,而基线只有 66.93。这证明,在前期的学习和代码抽象上投入时间,能让更小、更快的模型在复杂、多步骤问题上胜过更重的模型。
这个表现让我们的架构在官方 DABStep 排行榜上获得了第一名。NVIDIA KGMON (NeMo Agent Toolkit) Data Explorer 方法在复杂问题上显著优于 AntGroup 的 DataPilot 和 Google AI 的 DS-STAR。在“困难”任务上,我们的系统得分 89.95,超过了 DataPilot(87.57),几乎是 DS-STAR 得分(45.24)的两倍。考虑到基准测试中 84% 是困难级别的任务,我们在这个类别的优势直接确保了整体最佳解决方案的地位。这些结果确立了我们三阶段方法在高效且严谨的表格推理方面的当前最先进水平。
结论:数据密集型研究的新范式
基于 NVIDIA NeMo Agent Toolkit 构建的 Data Explorer 智能体,在结构化表格数据的自动化分析方面迈出了重要一步。通过采用灵活的智能体循环——一个用于开放式探索性数据分析的 ReAct 循环,和一个用于基于规则的表格问答的多阶段系统——该智能体能够独特地处理复杂、多步骤的推理任务。
多阶段方法在具有挑战性的 DABStep 基准测试上的成功,特别是主动学习循环生成可重用、通用化函数的部分,验证了将基础知识构建与快速推理分离的策略。Data Explorer 超越了简单的查询应答,体现了经验丰富的数据科学家的操作工作流,提供可扩展、高质量的洞察,并为大语言模型驱动的智能体驱动的数据密集型研究建立了一个新范式。
准备好构建你自己的数据探索智能体了吗?从 NVIDIA Launchable 开始吧。示例即将发布!
觉得有用?分享给更多人








