数据科学竞赛界的Manus?多智能体框架AutoKaggle开源,大幅降低数据科学门槛
AutoKaggle为数据科学家提供了一个端到端的数据处理解决方案,帮助简化和优化日常数据科学工作流程,同时我们也极大的降低了数据科学的门槛,可以帮助更多没有相关背景的使用者做出有价值的探索。
目前论文成果已经开源:
AutoKaggle: A Multi-Agent Framework for Autonomous Data Science Competitions
论文链接:AutoKaggle: A Multi-Agent Framework for Autonomous Data Science Competitions
1. 大师级Kaggle能力
大型语言模型(LLMs)近年来展现出惊人的能力,在多个领域取得突破性进展。然而,尽管LLMs在单一任务上表现出色,但在处理复杂、多步骤的项目时仍存在显著缺点。以数据分析项目为例,这类任务通常涉及需求理解、数据清洗和预处理、探索性数据分析、特征工程和建模等多个环节。每个步骤都需要专业知识和细致的规划,通常需要多次迭代。
我们希望通过构建一个多Agent的Workflow,来提高逻辑复杂的数据科学任务中中间决策 步骤的可解释性与透明性,并做到保持优秀的性能,更要保证其易用性,以降低理解难度和使用门槛。
要达到预定的目标,我们需要解决的问题包括:
- 对整个任务的抽象和多Agent协作
- 迭代调试和单元测试
- 使用复杂的机器学习知识
- 全面的报告
实验结果表明,在对8个Kaggle竞赛数据集的评估中,AutoKaggle的有效提交率达到85%,综合评分为0.82(满分为1),超过了在MLE-Bench中表现优秀的AIDE框架,展现了其在复杂数据科学任务中的高效性和广泛适应性,性能超过人类平均水平!我们的方案系统地解决了数据科学任务的复杂性,保证代码鲁棒、正确地被生成。同时我们为AutoKaggle的结果提供了详细的报告,可以帮助大家观察细节,并基于AutoKaggle的工作做进一步探索。
2. Kaggle是什么?
在介绍我们的工作之前,值得先简单介绍一些Kaggle以及项目的复杂性。
Kaggle是一个流行的数据科学竞赛平台,企业和研究者可在其上发布数据和问题,并提供奖金给能解决问题的人。由于这类问题并没有标准答案,只有无限逼近最优解,所以这样的模式可以激励参与者提出更好的方案,甚至推动整个行业的发展。

AI教父Hinton的Kaggle主页
在Kaggle这样的数据科学竞技平台上,每一个竞赛题目都是一个极其复杂的知识迷宫。以医疗影像诊断为例,参赛者不仅需要运用算法,还必须深入理解医学专业知识,在极其微小的像素细节中捕捉可能被肉眼忽略的关键特征。金融风险预测更是一个充满不确定性的领域,竞赛者需要构建能穿透市场复杂波动的模型,在海量且充满噪音的时间序列数据中提取有价值的信号。气候变化预测则将这种复杂性推向极致,参与者要整合全球多源数据,模拟地球系统错综复杂的相互作用,在有限的计算资源下做出精确预测。这些竞赛不仅是对技术能力的考验,更对协同能力、领域知识提出了极高的要求。可以说Kaggle的竞赛难度都是极高的,需要多个专家协同开发才能提供一个不差的方案。
竞赛取得奖金乃至取得好的名次的难度都是非常高的,通常一个项目的参与人数都能达到数千人,而其中只有Top1可以得到奖金。通常来说,几个具有一定水平的业内人士在临时组队的情况下最多也就拿到20名左右的成绩,想要再往前冲往往都需要有一定程度的默契和合作经验了。
3. AutoKaggle有多强?

在这样的任务中,AutoKaggle仍然得到了相当好的成绩,我们将8个任务分为Classic和Recent两组。考虑到项目依赖于GPT4o,而4o是基于2023年10月以前的可用数据进行训练的,因此它可能包括大部分经典Kaggle竞赛数据,所以我们为了更公平的评估Workflow,Classic的比赛选择了2023年10月之前开始且至少有500人参加的比赛,而Recent组选择了24年后的比赛。我们对比了AutoKaggle与AIDE在不同维度的性能,包括任务提交、有效提交和综合评分三个维度,AutoKaggle在大多数的评分中体现了更优的水平。
4. 为什么会有好的表现?
架构设计
AutoKaggle的核心是基于阶段的多Agent推理,希望通过对竞赛的抽象,将复杂的数据科学问题抽象为可泛化的Workflow,由两套组件来完成这个任务:多阶段的Workflow及多Agent。

AutoKaggle流程 多阶段的Workflow及多Agent
我们将数据科学解题过程分为六个关键阶段:背景理解、初步探索性数据分析、数据清洗、深入探索性数据分析、特征工程以及模型构建、验证和预测。结构化的设计提供了一个清晰的问题解决路径,确保了问题的各个方面都得到系统和全面的处理。
我们定义好每个阶段需要解决的问题后,需要设计对应的Agent来完成不同阶段的任务,为了完成好任务,设计了Reader、Planner、Developer、Reviewer和Summarizer这五个Agent。每个Agent在工作流程中分别承担协同分析问题、制定策略、实施解决方案、审查结果并生成综合报告。这种多Agent协作的方式不仅提高了任务的完成效率,还增强了系统的灵活性和适应性,使得AutoKaggle能够应对各种复杂的数据科学挑战。
重要模块之代码开发模块

基于迭代调试和单元测试的方法
Developer更复杂,也更值得分析。通过迭代开发与测试方法构建了一个自适应、鲁棒的数据科学代码生成系统。
首先,Developer会基于当前状态、Planner提供的策略和上下文做初始代码生成,之后,它进入了一个迭代的调试和测试过程。1) 代码执行运行生产的代码,如果有错误,则送入调试工具。2) 代码调试工具基于源代码和报错信息修改代码。3) 单元测试生成的代码。通过多次的代码执行、智能调试和全面单元测试,框架实现了对复杂研发过程的精准控制。
在Kaggle这样极具挑战性的数据科学竞赛中,单纯确保代码无错误运行远非充分条件。这类竞赛涉及复杂的数据处理和精密的算法,其中隐藏的逻辑细微差错往往可能对最终结果产生决定性影响。因此,单元测试不仅需要验证代码的形式正确性,更要深入审视其是否完全符合预期的逻辑和性能标准。若忽视这一点,微小误差将在各个阶段不断累积,最终可能导致整个分析过程的系统性偏差。
为降低这种潜在风险,必须对每个开发阶段进行极其细致的单元测试设计,全面覆盖常规场景与边缘情况。以数据清洗阶段为例,单元测试不仅要检查缺失值处理的技术细节,还要确保异常值管理符合预设逻辑,数据转换过程严格遵循既定的计算规则。这种严谨的测试方法,实质上是减少每一个微观环节的错误概率,确保整个数据科学流程的完整性和可靠性。
该方法的核心优势在于:动态捕获潜在错误、实时修正代码逻辑、预防错误传播,并在最小化人工干预的前提下,保证了代码的正确性和一致性。不同于传统的线性开发模式,迭代方法引入了自我修复和持续优化机制,显著提升了代码生成的水平。
重要模块之机器学习工具库
AutoKaggle的机器学习工具库是其架构的核心创新,通过精心设计的三大工具集:数据清洗、特征工程和模型构建与验证,提供了一个全面、标准化的解决方案。该库不仅弥补了LLM在领域专业知识方面的固有局限,还通过七个数据清洗工具、十一个特征工程工具和综合模型开发工具,实现了数据处理流程的智能化和自动化。其先进性体现在:标准化的功能模块、全面的异常处理机制、对复杂Kaggle竞赛场景的精准适配,以及能够显著降低技术实现复杂度,使多Agent系统能更专注于高层次的战略性任务规划。每个工具的标准化功能使得项目能够无缝地共享和处理数据,提升特征质量,优化模型性能,从而提高整体工作流程的效率。
5. 做对了什么?
在前文中我们已经展示了AutoKaggle基于GPT-4o和o1-mini模型的性能表现,但是我们更希望探索为什么我们能获得这样的成绩。

我们对比了没有使用任何工具、仅使用数据清洗工具、仅使用数据清洗和特征工程工具以及完全体这四种场景在完成率和综合评分上的水平,可以看到与没使用任何工具相比,仅使用数据清洗工具的完成率是最高的,高了30%,而使用了所有工具的完成率仅提高了27%。我们可以看到加入特征工程以后完成率呈下降趋势,这种下降可能因为涉及的特征数量相对较多,加之此阶段所使用工具的复杂性和高封装性,需要增加和删除特征,从而使其使用变得复杂。

4个版本的调试时间和平均性能
从上图中我们也能观察到加入特征工程工具后Debugging Time显著高于只使用数据清洗工具,这种复杂性给Developer们在调试错误代码时带来了挑战,也可能是性能下降的原因。而且从右图我们可以看到不同场景对于性能的影响,尽管我们开发的机器学习工具库并未显著提升解决方案的上限,但它作为一个更稳定的工具,提高了AutoKaggle的完成率。

单元测试对性能的影响
在没有单元测试的情况下,完成率显著降低,使得完成任务几乎变得不可能。这凸显出对于像数据科学这样需要高精度和逻辑要求的任务,仅仅让代码的每个阶段可执行且不出错是不够的。需要进行全面的单元测试以确保代码逻辑正确,并实现每个阶段的目标。
6. 如何做得更好?

AutoKaggle Bad Case分析
我们统计了不同的错误类型及出现的次数,可以看到每个子任务阶段都有可能发生错误,数据清洗和特征工程分别经历了最高的错误率,分别为25%和22.5%。值得注意的是,在特征工程阶段的失败导致了31.25%的失败。
但是我们为开发人员提供了详细的调试过程。下面,我们以文件未找到错误为例说明调试工作流程:
- 错误定位:开发人员最初遇到执行脚本时出现问题,涉及文件保存操作。
- 错误修复:为了解决这些问题,提出了几个修改建议。
- 合并正确的和已修正的代码片段:将已修正的片段合并回原始代码,以创建一个无缝且稳健的解决方案。
7. 写在后面
AutoKaggle提供了一个健壮的框架完成数据科学的探索,在各种Kaggle竞赛中进行的广泛评估表明AutoKaggle的有效性,当然我们也留下了很多遗憾,例如由于时间和预算的原因,我们无法在数据集规模特别大的比赛中验证性能。但是我们仍然认为这个工作是极有价值的,我们展示了多Agent对于模型能力边界的提升,也证明了如果能把Workflow抽象出来就能解决足够复杂的问题,提供了更多的可能性。
致谢
感谢字节跳动团队以及M-A-P团队
整数智能信息技术(杭州)有限责任公司,起源自浙江大学计算机创新技术研究院,致力于成为AI行业的数据合伙人。整数智能也是中国人工智能产业发展联盟、ASAM协会、浙江省人工智能产业技术联盟成员,其提供的智能数据工程平台(MooreData Platform)与数据集构建服务(ACE Service),满足了智能驾驶、AIGC等数十个人工智能应用场景对于先进的智能标注工具以及高质量数据的需求。

目前公司已合作海内外顶级科技公司与科研机构客户1000余家,拥有知识产权数十项,通过ISO9001、ISO27001等国际认证,也多次参与人工智能领域的标准与白皮书撰写,也受到《CCTV财经频道》《新锐杭商》《浙江卫视》《苏州卫视》等多家新闻媒体报道。

