文章来源|豆包大模型团队
作为数据科学与机器学习经典竞赛,Kaggle 以其高难度、高奖金、高关注度吸引了大量顶尖人才参与。Kaggle 竞赛任务往往涉及需求理解、数据清洗和预处理、特征工程和建模等多个环节,需要参与者具备极强的专业知识与协作能力。
字节跳动豆包大模型团队与 M-A-P 社区于近日提出 AutoKaggle ,为数据科学家提供了一个端到端的数据处理解决方案,帮助简化和优化日常数据科学工作流程的同时,极大降低数据科学的门槛,可帮助更多没有相关背景的使用者进行有价值的探索。在相关评估中,AutoKaggle 性能表现超出人类平均水平。
目前,该成果已经开源,本文将介绍其立项缘起、技术亮点及实验中的更多结论。
大型语言模型(LLMs)近年来展现出惊人能力,遗憾的是,尽管 LLMs 在单一任务上表现出色,面对复杂、多步骤的项目处理时,仍存在显著缺陷。
以数据分析项目为例,这类任务通常涉及 需求理解、数据清洗和预处理、探索性数据分析、特征工程和建模等 多个环节。每个步骤都需要专业知识和细致的规划,通常需要多次迭代,门槛非常高。
基于上述背景,豆包大模型团队与 M-A-P 社区联合提出 AutoKaggle,一个端到端的数据处理解决方案。
AutoKaggle 通过构建一个多智能体(Agent)的工作流,以提高逻辑复杂的数据科学任务中间决策步骤的可解释性与透明性,并保持优秀性能及易用性,以降低理解难度和使用门槛。团队认为,AutoKaggle 可系统地解决数据科学任务的复杂问题,保证代码鲁棒、正确地生成。
实验结果表明,在对 8 个 Kaggle 竞赛数据集的评估中,AutoKaggle 的有效提交率达到 85% ,综合评分为 0.82 (满分为 1), 超过了 在 MLE-Bench 中表现优秀的 AIDE 框架 ,展现了其在复杂数据科学任务中的高效性和广泛适应性, 性能超过人类平均水平 !
目前,论文成果已经开源,同时,团队针对 AutoKaggle 的运行结果提供了 详细报告 ,可帮助大家观察细节,以便进一步探索。
Au toKaggle: A Multi-Agent Framework for Autonomous Data Science Competitions
论文链接:
https://arxiv.org/abs/2410.20424
代码链接:
https://github.com/multimodal-art-projection/AutoKaggle
成果展示页:
https://m-a-p.ai/AutoKaggle.github.io/
0 1
成为「 Kaggle 大神」有多难?
在介绍我们工作之前,先简单介绍 Kaggle,以及项目的复杂性。
Kaggle 是一个业内流行的数据科学竞赛平台,企业和研究者可在其上发布数据和问题,并提供奖金给解决问题的参赛者。 每个 Kaggle 竞赛题目都是一座极其复杂的知识迷宫,没有标准答案,只有无限逼近最优解,促使参与者不断提出更好方案,探寻技术边界。
Kaggle Days 在中国举办 来源:Kaggle官方
以医疗影像诊断为例,参赛者不仅需要熟练运用算法,还须深入理解医学专业知识,方能在极其微小的像素细节中,捕捉肉眼容易忽略的关键特征。
金融风险预测更是充满不确定性,竞赛者需要构建能穿透市场复杂波动的模型,在海量且充满噪音的时间序列数据中,提取有价值的信号。
而将这种复杂性推向极致的,则是气候变化预测,参与者要整合全球多源数据,模拟地球系统错综复杂的相互作用,在有限计算资源下做出精确预测。
这些题目不仅考验技术能力,更对协同能力、领域知识提出极高要求。通常一个项目参与人数能达到数千,只有 Top1 可以得到高额奖金。即便多个专家组队协同开发,也只能提供一个不算差的方案,想再往前冲,则要有一定程度的默契和合作经验。
高难度既代表高额奖金,亦意味着声望。此前,Hinton 及其学生就曾在竞赛中展示深度神经网络的强大能力,成为业内标志性事件。而许多机器学习技术实力过硬的人才,也同样因 「 Kaggle 大神」之名而被认可。
02
基于阶段的多智能体推理,叠加两大重要模块
前文提及,Kaggle 竞赛大部分任务往往涉及需求理解、数据清洗和预处理、探索性数据分析、特征工程和建模等多个环节。每个步骤需要专业知识和细致规划,历经多次迭代,门槛非常高。
为此,需要解决的问题包括:对整个任务的抽象和多智能体协作、迭代调试和单元测试、使用复杂的机器学习知识、全面的报告。
带着上述问题,团队进行了如下工作:
架构设计
AutoKaggle 的核心是 基于阶段的多智能体推理 ,通过对竞赛任务的抽象,将复杂数据科学问题转化为可泛化的工作流。由两套组件来完成这个任务: 多阶段的工作流及多智能体 。
我们将数据科学解题过程分为六个关键阶段: 背景理解、初步探索性数据分析、数据清洗、深入探索性数据分析、特征工程以及模型构建、验证和预测 。结构化的设计提供了清晰的问题解决路径,确保各个方面都得到系统和全面的处理。
定义好每个阶段需要解决的问题后,需要设计对应的智能体以完成不同阶段任务,它们分别为 Reader、Planner、Developer、Reviewer 和 Summarizer。这些智能体在工作流程中,分别承担 协同分析问题、制定策略、实施解决方案、审查结果并生成综合报告 的角色。
多智能体协作的方式不仅提高了任务完成效率,还增强了系统灵活性和适应性,使得 AutoKaggle 能够应对各种复杂的数据科学挑战。
重要模块之代码开发模块
在架构之内,Developer 模块更复杂,也更值得分析。
团队通过迭代开发与测试,构建了一个 自适应、鲁棒的数据科学代码生成系统 。Developer 会基于当前状态、Planner 提供的策略和上下文做初始代码生成。之后,Developer 进入迭代的调试和测试过程:
1) 运行生产的代码,如果有错误,则送入调试工具。
2) 代码调试工具基于源代码和报错信息修改代码。
3) 单元测试生成的代码,通过多次代码执行、智能调试和全面单元测试,实现了对复杂研发过程的精准控制。
在 Kaggle 竞赛中,单纯 确保代码无错误运行远非充分条件 。竞赛问题涉及复杂数据处理和精密算法,其中隐藏的细微逻辑差错往往对最终结果产生决定性影响。
因此,单元测试不仅需要验证代码的形式正确,更要 深入审视其是否完全符合预期的逻辑和性能标准 。若忽视这点,微小误差将在各阶段累积,可能导致整个分析产生系统性偏差。
为降低这种潜在风险,必须对 每个开发阶段进行极其细致的单元测试设计 ,全面覆盖常规场景与边缘情况。
该方法的核心优势在于:动态捕获潜在错误、实时修正代码逻辑、预防错误传播,并在最小化人工干预的前提下,保证了代码的正确性和一致性。由于引入了自我修复和持续优化机制, 能显著提升代码生成水平 。
重要模块之机器学习工具库
AutoKaggle 的机器学习工具库,也是其架构的核心创新点。精心设计的三大工具集: 数据清洗、特征工程和模型构建与验证 ,共同提供了一个全面、标准化的解决方案。
该库不仅弥补了 LLM 在专业知识方面的固有局限,还通过七个数据清洗工具、十一个特征工程工具和综合模型开发工具,实现了数据处理流程的智能化和自动化。
其先进性体现在: 标准化的功能模块、全面的异常处理机制、对复杂 Kaggle 竞赛场景的精准适配,以及能够显著降低技术实现复杂度 ,使多智能体系统能更专注于高层次的战略性任务规划。每个工具的功能标准化使项目能 无缝地共享和处理数据,提升特征质量,优化模型性能,从而提高整体工作流程的效率 。
可扩展性强,完整报告产出,用户友好型框架
除技术方面优势,AutoKaggle 还深度考虑到了用户体验,使其成为一个真正具有 可扩展性 和 用户友好性 的框架,同时确保了数据处理过程的 透明性 ,提升用户对于 AutoKaggle 解决方案的信任程度。
在可定制化方面,AutoKaggle 考虑到每位用户的使用场景都独具特色,通过开放定制化接口,用户通过简单的配置文件参数修改,即可定制整个数据处理流程。
此外,AutoKaggle 的机器学习工具库设计高度开放,用户只需提供一个函数及其配套的 Markdown 和 JSON 格式说明,即可扩展现有工具,满足多样化的用户需求。
最后,为了提高 AutoKaggle 方案的可解释性并实现整个数据处理流程的完全透明,AutoKaggle 在每个阶段均提供了详细报告,并在最后呈现竞赛总结。
通过这些详细的阶段性报告,用户不仅可以实时跟踪 AutoKaggle 的工作进度,还能深入理解每个阶段的分析逻辑,从而增强对框架的信任感。
详情请见 https://github.com/multimodal-art-projection/AutoKaggle 。
03
在大多数评分中,AutoKaggle 展现出更优水平
我们将 8 个任务分为 classic 和 Recent 两组,考虑到项目依赖于 GPT4o,而该模型基于 2023 年 10 月以前可用数据进行训练,因此,它可能包括大部分经典Kaggle 竞赛数据。
为了更公平地评估工作流,我们选择了 2023 年 10 月之前开始的、至少有 500 人参加的比赛,而 Recent 组选择了 24 年后竞赛问题。
我们对比了 AutoKaggle 与 AIDE 在不同维度的性能,包括任务提交、有效提交和综合评分三个维度,可以看到, AutoKaggle 在大多数的评分中展现出更优水平 。
为了进一步探索其性能源于哪些因素,我们对比了 没有使用任何工具、仅使用数据清洗工具、仅使用数据清洗和特征工程工具 以及 完全体 这四种场景的完成率和综合评分。
可以看到,与没使用任何工具相比,仅使用数据清洗工具的完成率最高, 提升 30% ,而使用了所有工具的完成率仅提高 27%。加入特征工程以后,完成率呈下降趋势,这种下降可能因为涉及的特征数量相对较多,加之此阶段工具的复杂性和高封装性,需要增删特征,从而让使用变得复杂。
从下方左图能观察到,加入特征工程工具后, Debugging Time 显著高于只使用数据清洗工具 。这种复杂性让 Developer 们调试错误代码变难,也可能是性能下降的原因。
且从下方右图可以看到,不同场景对于性能的影响。尽管机器学习工具库并未显著提升解决方案上限,但它作为一个更稳定的工具,提高了 AutoKaggle 的完成率。
而在没有单元测试的情况下,完成率显著降低,完成任务几乎变得不可能。
这意味着,对于像数据科学为代表的高精度和逻辑要求的任务, 仅仅让代码每个阶段可执行且不出错并不够, 需要进行全面的单元测试,以确保代码逻辑正确,并实现每个阶段的目标。
最后,我们统计了不同错误类型及出现次数,可以看到,每个子任务阶段都有可能发生错误。数据清洗和特征工程错误率最高,分别为 25% 和 22.5%。值得注意的是,在特征工程阶段的错误导致了 31.25% 任务失败。
但是,团队为开发者提供了详细的调试过程。以文件未找到错误为例,调试工作流程如下:
1)错误定位 :开发人员最初遇到执行脚本时出现问题,涉及文件保存操作。
2)错误修复 :为了解决这些问题,提出了几个修改建议。
3)合并代码片段 :将已修正的片段合并回正确的原始代码,以创建一个无缝且稳健的解决方案。
04
一些思考
AutoKaggle 提供了一个健壮的框架以完成数据科学探索,基于各种 Kaggle 竞赛问题的广泛评估,证明了其有效性。该成果既展示了 多智能体对于模型能力边界的提升 ,也证明了,如果能把工作流抽象出来就能解决足够复杂的问题, 为大模型应用提供了更多可能性 。当然,我们也留下一些遗憾,比如,无法在数据集规模特别大的比赛中,验证 AutoKaggle 性能。
未来,团队成员还将继续探索智数据科学课题及相关开源工作,并关注 Kaggle 上的最新前沿技术,如果你也对智能体协作、数据科学、大模型对复杂问题的解决感兴趣,有志于探索前沿课题, 欢迎关注「豆包大模型团队」微信公众号,或点击阅读原文前往官网,了解更多信息 。
推荐阅读
点击「阅读原文」,了解更多豆包大模型团队信息!