机器学习的兴起(ML)助长了各种现实世界中高性能应用的开发表格分类到图像denoising。但是,制作这些模型仍然是机器学习工程师的艰巨努力,要求进行广泛的迭代实验和数据工程。要简化这些苛刻的工作流程,最近的调查专注于利用大型语言模型(LLM)作为机器学习工程(MLE)代理。通过利用其固有的编码和推理技能,这些代理将ML任务概念化为代码优化挑战。然后,他们探索潜在的代码解决方案,最终基于提供的任务说明和数据集生成可执行代码(例如Python脚本)。
尽管他们有希望的初步进步,但目前的MLE代理人面临着一些限制,以降低其功效。首先,他们对预先存在的LLM知识的严重依赖通常会导致对熟悉和常用方法的偏见(例如,Scikit-Learn库用于表格数据),忽略了潜在的特定任务特异性方法。此外,这些代理通常采用探索策略,在每次迭代中同时修改整个代码结构。这通常会导致代理商过早地将重点转移到其他阶段(例如,模型选择或超参数调整),因为它们缺乏特定管道组件内深,迭代探索的能力,例如对不同的功能工程选项进行详尽的实验。
在我们最近的纸,我们介绍MLE-Star,这是一种新颖的ML工程代理网络搜索和针对的代码块改进。与替代方案不同,MLE-Star首先搜索网络以获取适当的模型以获得坚实的基础,以应对ML挑战。然后,它通过测试代码的哪些部分最重要的部分来仔细改善该基础。MLE-Star还利用一种新方法将几种模型融合在一起,以更好地结果。这种方法非常成功 - 它在MLE-Bench-Lite的Kaggle竞赛中获得了奖牌,极大地表现了替代方案。
为了生成初始解决方案代码,MLE-Star使用Web搜索来检索可能有效构建模型的相关和潜在的最先进方法。
此外,我们提出了一种生成合奏的新方法。MLE-Star首先提出了多种候选解决方案。然后,使用代理本身提出的合奏策略将这些候选者合并为单一的改进解决方案,而不是基于验证分数依靠简单的投票机制。根据前面策略的性能,这种合奏策略是迭代精制的。
最后但并非最不重要的一点是,MLE-Star结合了三个其他模块以增强其鲁棒性:(i)调试代理,(ii)数据泄漏检查器和(iii)数据使用检查器。对于调试代理,如果执行Python脚本会触发错误,导致记录(例如Trackback),则MLE-Star使用调试模块来尝试校正。关于数据泄漏检查器,我们观察到LLM生成的Python脚本具有引入数据泄漏的风险,例如,通过在培训数据准备过程中从测试数据集中访问信息不当。为了解决这个问题,我们介绍了一个检查器代理,该检查器在执行之前对解决方案脚本进行了分析。至于数据使用检查器,我们注意到LLM生成的脚本有时会忽略使用所有提供的数据源,仅关注CSV等简单格式。为了确保所有相关提供的数据的利用,MLE-Star包括数据使用检查器代理。
为了了解MLE-Star的性能提升的来源,我们从各种角度进行了几项分析。在这里,我们检查了(i)MLE-Star使用的ML模型的类型,(ii)如何通过人为干预来扩展MLE-Star,以及(iii)其他数据泄漏和使用情况检查器如何进一步改善MLE-Star的性能。
我们提出了MLE-Star,这是一种新型的机器学习工程代理,专为各种ML任务而设计。我们的核心想法是利用网络搜索检索有效的模型,然后探索针对特定ML管道组件以改进解决方案的各种策略。MLE-Star的有效性通过在63%的奖牌(其中36%是金牌)中验证MLE-BENCH-LITEKaggle比赛。
通过自动执行复杂的ML任务,MLE-Star可以降低寻求利用ML的个人和组织的进入障碍,并可能促进各个部门的创新。此外,随着最新模型的不断更新和改进,MLE-Star生成的解决方案的性能有望自动提高。这是因为我们的框架利用搜索引擎从网络中检索有效的模型以形成其解决方案。这种固有的适应性可确保MLE-Star继续随着ML的进步领域提供越来越更好的解决方案。最后但并非最不重要的一点是,开发人员和研究人员现在可以使用我们新发布的开源代码库MLE-Star,以代理开发套件(ADK)。
我们非常感谢Jiefeng Chen,Jinwoo Shin,Sercan O Arik,Raj Sinha和Tomas Pfister的贡献。