GPT-4o AIDE智能体:Kaggle刷榜背后的真相

学术   2024-10-12 13:42   中国台湾  

unsetunset虚假Kaggle大师(GPT 4o)unsetunset

最近,OpenAI发布了智能体基准MLE-bench,专为评估AI智能体在机器学习工程任务中的表现而打造。

声称评估结果中,拔得头筹的最佳智能体是——o1-preview。它在与专为Kaggle竞赛构建的框架AIDE结合时,平均在16.9%的竞赛中获得奖牌。

但大家也不用担心,其实OpenAI这个工作也是存在很多作弊和刷榜的行为,也不可能用这个方案去打Kaggle

  • 评测的比赛都是非code赛题,提交csv类型的比赛;
  • 评测的比赛都是历史比赛,现在的预训练模型存在很多进步。
  • 直接提交到私有排行榜,并没有限制提交次数。

我们暂且理性分析,看看MLE-bench的内容和这个智能框架的可取之处,后续我们将进行更多的分享。

unsetunset论文主要内容unsetunset

https://arxiv.org/pdf/2410.07095

https://github.com/openai/mle-bench/

文章介绍了MLE-bench的基准测试,它用于衡量人工智能代理在机器学习工程方面的表现。研究者们从Kaggle上精选了75个与机器学习工程相关的竞赛,创建了一系列挑战性的任务,这些任务测试了实际的机器学习工程技能,比如训练模型、准备数据集和运行实验。

为了评估模型,研究者们使用了开源的代理框架,并发现表现最佳的设置——OpenAI的o1-preview模型配合AIDE框架——在16.9%的竞赛中至少达到了Kaggle铜牌的水平。

unsetunsetMLE-bench 构成unsetunset

MLE-bench由75个机器学习工程任务组成,这些任务是从Kaggle手动筛选出来的,以反映机器学习工程师在前沿实验室中日常使用的核心技能集。75个不同领域的多样化Kaggle竞赛组成,包括自然语言处理、计算机视觉和信号处理。

为什么选择Kaggle?

Kaggle是一个托管数据科学和机器学习竞赛的平台,要求参与者构建预测模型来解决挑战,通常使用真实世界的数据集。参与者竞相在每个竞赛预定义的指标上获得最佳分数,并在排行榜上相互竞争。根据竞赛结果,会颁发铜牌、银牌和金牌。

排行榜

MLE-bench使用每个Kaggle竞赛的排行榜来衡量性能。在Kaggle上,竞赛可能有两个排行榜:"Public"(公共)和"Private"(私有)。研究者们发现Kaggle提交有时可能会过度拟合公共排行榜,因此他们选择使用私有排行榜。

评估指标

为了提供MLE-bench的单一指标,研究者们计算了获得任何奖牌(铜牌及以上)的尝试百分比。这个指标设计得具有挑战性,其上限与最优秀的人类Kaggler在多年累积努力后的成就相当。只有两位人类曾在75个不同的Kaggle竞赛中获得奖牌。

实验设置

MLE-bench旨在对解决它的方法保持中立,只要求为每个竞赛提交一个CSV文件以供评分。

此外解决方案被禁止使用自己的世界知识直接在提交文件中写入预测。这防止了代理简单地回忆起其预训练数据中可能记忆的标签,并确保代理参与机器学习工程。

unsetunset实验和结果unsetunset

在我们的实验中,我们在包含数据集、验证服务器以及可能对机器学习工程有帮助的Python包的Ubuntu 20.04 Docker容器中运行代理。容器在安全的集群环境中执行。

对于75个竞赛中的每一个,代理最多有24小时的时间来产生一个提交。在每次运行中,代理可以访问一台拥有36个vCPU、440GB RAM、4095 GiB SSD和单个Nvidia A10 GPU的机器。

论文用3个种子(即每个竞赛3次运行)重复所有实验,以计算平均值和标准误差,除非另有说明。我们的执行环境和框架的详细信息可以在附录A.5和A.6中找到。

主要实验

变化框架 为了确定表现最佳的框架,我们使用三个开源框架评估

  • AIDE
  • ResearchAgent
  • CodeActAgent

论文发现GPT-4o(AIDE)平均获得的奖牌数量多于MLAB和OpenHands(分别为8.7%、0.8%和4.4%),尽管它们提交的有效次数相似。值得注意的是,AIDE专门为Kaggle竞赛设计,而其他框架是通用的。图2显示了每个框架的轨迹片段。

采用前一个实验中表现最佳的框架(AIDE),我们尝试改变底层模型。我们用AIDE评估了四种不同的模型:o1-preview和GPT-4o(OpenAI)、Claude 3.5 Sonnet(Anthropic)和Llama 3.1 405B(Meta)。

我们发现o1-preview的表现明显优于所有其他模型,在16.9%的竞赛中获得了奖牌——几乎是下一个最佳模型平均奖牌数量的两倍(表2)。我们注意到,成为Kaggle大师需要5个金牌,而o1-preview在MLE-bench上平均获得了7个金牌。

增加尝试次数

为了观察随着尝试次数的增加,性能如何变化,我们使用pass@k指标评估GPT-4o(AIDE)和o1-preview(AIDE)。我们估计代理在每次竞赛中获得奖牌的百分比,给定k次尝试,从n个种子中抽取。

我们可以看到,随着尝试次数的增加,两个代理获得奖牌的百分比都有所提高。

变化可用计算资源

我们的主要实验为代理提供了一个24GB的A10 GPU,而Kaggle为用户提供了一个免费的16GB P100 GPU,用户通常还会使用自己的硬件来竞争。

在这个实验中,我们研究代理的性能可能如何受到我们选择的硬件的影响,或者它们是否甚至会根据可用的硬件调整策略(例如,当只有CPU可用时训练较小的模型,当有GPU可用时训练较大的模型)。

我们在三种不同的硬件设置下比较GPT-4o(AIDE)的性能,分别在我们的标准设置(一个A10 GPU)、仅限CPU和两个A10 GPU之间变化。

增加可用时间

我们的主要实验将每次竞赛尝试的时间限制为24小时;相比之下,人类参赛者通常有数周或数月的时间来处理Kaggle竞赛。增加时间限制为代理提供了更多的时间来迭代他们的解决方案,并允许更多的模型训练时间。

我们进行了一个实验,为GPT-4o(AIDE)提供了更长的100小时每次竞赛的时间限制,并将允许的最大节点数增加了10倍,达到5000。我们每小时对代理的最佳尝试进行快照,并评分每个快照。图4显示了结果。

我们发现GPT-4o(AIDE)在执行的最初几个小时内就获得了相当数量的奖牌,然后在整个运行过程中慢慢积累了更多的奖牌。有时GPT-4o(AIDE)获得的奖牌数量实际上会减少,这是由于AIDE用来选择其“最佳”尝试的不完美方法所致。

unsetunsetAIDE框架unsetunset

Agent提示词模板

You are participating in *MLE-bench*, an offline version of Kaggle competitions adapted to test the coding ability of agents like yourself.

You will be given a machine learning task. You must solve the task by training a model and running the model on the test set to produce a submission file. You may not hand-label the data to produce a submission file.

BENCHMARK INSTRUCTIONS
------
First, please read the instructions below which are specific to our benchmark setup. Note, these instructions can be found again in `/home/instructions.txt`.

- **Competition-specific instructions**: The instructions for the competition are available in `/home/data/description.md`. Read this file to understand the problem setup for the competition you are currently solving.
- **Dataset**: The dataset files for the competition are available in `/home/data/`.
- **Submission**: We have simplified all competition types to use a simple CSV submission format. Regardless of what the competition instructions say, you MUST produce a submission file at `/home/submission/submission.csv`. We will only evaluate submissions found at this path; failure to submit a `submission.csv` at this path will result in a failed attempt.
- **Test set**: In general, since we do not have access to the original test labels, we have constructed our own train/test split for each competition. As such, the dataset you see in `/home/data/` may differ slightly from what is described in the competition instructions. Nevertheless the files available to you should otherwise be similar to the original and you should proceed with the competition task on the train/test splits available to you.
- **Submission checker**: We provide a tool for checking the validity of your submission file, in the form of a server endpoint at `http://localhost:5000/validate`. If you post a submission file to the server (e.g. `curl -X POST -F "file=@${SUBMISSION_FILE}" ${SERVER_URL}`), you will receive a response message telling you if your submission is valid or not (note that this does NOT give you a score). For your convenience, we provide a script `/home/validate_submission.sh` which can help you make this submission to the validation server.
- **Cheating**: You are not allowed to view others' solutions to this competition. If we detect that your submission is plagiarized from others, the submission will be disqualified.

Your submission will be graded based on the metric in the competition-specific instructions. Your goal is to achieve the best score possible on the competition task. 

Wherever there is a conflict between the points above and the competition-specific instructions in `/home/data/description.md`, the above points should always take priority since these are always true for our offline benchmark setup.

Agent 组成


Agent部分更多资料见:https://github.com/openai/mle-bench/tree/c8a94bbfab2cddefd1a7822c0478125d5dd76595/agents

 学习大模型 & 讨论Kaggle  #


△长按添加竞赛小助手

每天大模型、算法竞赛、干货资讯

与 36000+来自竞赛爱好者一起交流~

Coggle数据科学
Coggle全称Communication For Kaggle,专注数据科学领域竞赛相关资讯分享。
 最新文章