跳转到主要内容

为数据科学和机器学习提供自主AI

项目描述

AIDE:机器学习代码生成代理

许可证:MITPyPIPython 3.10+ DiscordTwitter Follow

AIDE是一个LLM代理,它只需从任务的自然语言描述中生成机器学习任务的解决方案。在一个包含60多个Kaggle数据科学竞赛的基准测试中,AIDE展现了令人印象深刻的表现,平均超越了50%的Kaggle参赛者(详情请见我们的技术报告)。具体来说,AIDE具有以下特点

  1. 用自然语言指导:用自然语言描述您的问题或额外需求以及专业知识。
  2. 以源代码交付解决方案:AIDE将为经过测试的机器学习流程生成Python脚本。享受全面的透明度、可重复性和进一步改进源代码的自由!
  3. 迭代优化:AIDE会自行迭代运行、调试、评估和改进ML代码。
  4. 可视化:我们还提供工具来可视化AIDE产生的解决方案树,以便更好地理解其实验过程。这不仅让您了解哪些方法有效,还了解哪些方法无效。

如何使用AIDE?

设置

确保您已安装Python≥3.10并运行

pip install -U aideml

另外,安装unzip以允许代理自主提取您的数据。

设置您的OpenAI(或Anthropic)API密钥

export OPENAI_API_KEY=<your API key>
# or
export ANTHROPIC_API_KEY=<your API key>

通过命令行运行AIDE

要运行AIDE

aide data_dir="<path to your data directory>" goal="<describe the agent's goal for your task>" eval="<(optional) describe the evaluation metric the agent should use>"

例如,要对房价预测任务运行AIDE

aide data_dir="example_tasks/house_prices" goal="Predict the sales price for each house" eval="Use the RMSE metric between the logarithm of the predicted and observed values."

选项

  • data_dir(必需):包含与您的任务相关的所有数据(.csv文件、图像等)的目录。
  • goal:描述您希望模型在任务中预测的内容,例如,“为比特币收盘价构建时间序列预测模型”或“预测房价”。
  • eval:用于评估任务中ML模型的评估指标(例如,准确率、F1、均方根误差等)

或者,您可以提供整个任务描述作为desc_str字符串,或将其写入纯文本文件,并将路径作为desc_file传递(示例文件)。

aide data_dir="my_data_dir" desc_file="my_task_description.txt"

运行结果将存储在logs目录中。

  • logs/<实验ID>/best_solution.py:根据验证指标的最佳解决方案的Python代码
  • logs/<实验ID>/journal.json:一个包含实验运行元数据的JSON文件,包括所有中间步骤中生成的代码、计划、评估结果等。
  • logs/<实验ID>/tree_plot.html:您可以在浏览器中打开它。它包含解决方案树的可视化,详细说明了寻找和优化ML代码的实验过程。您可以通过探索和交互树可视化来查看AIDE在每个步骤中提出的计划和代码。

workspaces目录将包含代理生成的所有文件和数据。

高级用法

要进一步自定义AIDE的行为,以下是一些有用的选项

  • agent.code.model=... 用于配置代理应使用的编码模型(默认为gpt-4-turbo
  • agent.steps=... 用于配置代理应运行的改进迭代次数(默认为20)
  • agent.search.num_drafts=... 用于配置代理应生成的初始草稿数量(默认为5)

您可以在config.yaml文件中查看更多选项。

在Python中使用AIDE

在您的Python脚本/项目中使用AIDE很容易。遵循上面的设置步骤,然后创建如下AIDE实验并开始运行

import aide
exp = aide.Experiment(
    data_dir="example_tasks/bitcoin_price",  # replace this with your own directory
    goal="Build a timeseries forcasting model for bitcoin close price.",  # replace with your own goal description
    eval="RMSLE"  # replace with your own evaluation metric
)

best_solution = exp.run(steps=10)

print(f"Best solution has validation metric: {best_solution.valid_metric}")
print(f"Best solution code: {best_solution.code}")

开发

要为开发安装AIDE,克隆此存储库并本地安装。

git clone https://github.com/WecoAI/aideml.git
cd aideml
pip install -e .

贡献指南将很快提供。

算法描述

AIDE的解决问题方法受人类数据科学家应对挑战的启发。它首先生成一系列初始解决方案草稿,然后根据性能反馈迭代地完善和改进它们。这个过程由我们称为解决方案空间树搜索的技术驱动。

在本质上,解决方案空间树搜索由三个主要组件组成

  • 解决方案生成器:该组件通过创建新颖的草案或对现有解决方案进行修改,如修复错误或引入改进,来提出新的解决方案。
  • 评估器:评估器通过运行每个提出的解决方案并比较其性能与目标来评估其质量。这是通过指示LLM包含打印评估指标的语句,并让另一个LLM解析打印的日志以提取评估指标来实现的。
  • 基本解决方案选择器:解决方案选择器从探索的选项中选择最有希望的解决方案,作为下一次迭代精炼的起点。

通过反复应用这些步骤,AIDE在可能解决方案的广阔空间中导航,逐步优化其方法,直到收敛到给定数据科学问题的最优解决方案。

Tree Search Visualization

解决方案画廊

领域 任务 Top% 解决方案链接 竞赛链接
城市规划 预测城市自行车共享系统使用情况 5% 链接 链接
物理学 预测临界热通量 56% 链接 链接
基因组学 从基因组数据中分类细菌物种 0% 链接 链接
农业 预测蓝莓产量 58% 链接 链接
医疗保健 预测疾病预后 0% 链接 链接
经济学 预测给定区域的月度微型商业密度 35% 链接 链接
密码学 解密莎士比亚文本 91% 链接 链接
数据科学教育 预测泰坦尼克号乘客的生存概率 78% 链接 链接
软件工程 预测具有各种代码属性的C程序中的缺陷 0% 链接 链接
房地产 预测房屋的最终价格 5% 链接 链接
房地产 预测房屋销售价格 36% 链接 链接
娱乐分析 预测电影全球票房收入 62% 链接 链接
娱乐分析 预测火箭联盟比赛中下一个10秒的得分概率 21% 链接 链接
环境科学 预测空气污染水平 12% 链接 链接
环境科学 使用制图变量对森林类别进行分类 55% 链接 链接
计算机视觉 预测机器故障的概率 32% 链接 链接
计算机视觉 识别手写数字 14% 链接 链接
制造业 预测数据集中的缺失值 70% 链接 链接
制造业 预测产品故障 48% 链接 链接
制造业 将控制数据聚类到不同的控制状态 96% 链接 链接
自然语言处理 分类有毒在线评论 78% 链接 链接
自然语言处理 预测乘客被传送到另一个维度 59% 链接 链接
自然语言处理 分类句子情感 42% 链接 链接
自然语言处理 预测推文是否关于真实灾害 48% 链接 链接
商业分析 预测下个月每个产品和商店的总销售额 87% 链接 链接
商业分析 预测2021年图书销量 66% 链接 链接
商业分析 预测保险索赔金额 80% 链接 链接
商业分析 最小化安排家庭到圣诞工坊的处罚成本 100% 链接 链接
商业分析 预测学习模块的年度销量 26% 链接 链接
商业分析 制造机器状态的二进制分类 60% 链接 链接
商业分析 预测零售店销售 36% 链接 链接
商业分析 预测预订取消 54% 链接 链接
金融 预测保险索赔的概率 13% 链接 链接
金融 预测贷款损失 0% 链接 链接
金融 预测连续目标 42% 链接 链接
金融 预测客户流失 24% 链接 链接
金融 预测中值房价 58% 链接 链接
金融 预测纳斯达克上市股票的收盘价走势 99% 链接 链接
金融 预测出租车费用 100% 链接 链接
金融 预测保险索赔概率 62% 链接 链接
生物技术 预测猫在数据中 66% 链接 链接
生物技术 预测分子的生物反应 62% 链接 链接
生物技术 预测医疗状况 92% 链接 链接
生物技术 预测葡萄酒质量 61% 链接 链接
生物技术 预测二进制目标而不过拟合 98% 链接 链接
生物技术 预测混凝土强度 86% 链接 链接
生物技术 预测螃蟹年龄 46% 链接 链接
生物技术 预测酶的特性 10% 链接 链接
生物技术 从传感器数据中分类活动状态 51% 链接 链接
生物技术 预测马的健康结果 86% 链接 链接
生物技术 预测矿物的莫氏硬度 64% 链接 链接
生物技术 预测肝硬化患者的预后 51% 链接 链接
生物技术 预测肥胖风险 62% 链接 链接
生物技术 分类数据中的特征存在 66% 链接 链接
生物技术 预测患者的吸烟状态 40% 链接 链接

项目详情


下载文件

下载适合您平台的文件。如果您不确定该选择哪一个,请了解更多关于安装包的信息。

源代码分发

aideml-0.1.4.tar.gz (248.7 kB 查看哈希值)

上传时间 源代码

构建分发

aideml-0.1.4-py3-none-any.whl (254.7 kB 查看哈希值)

上传时间 Python 3

由以下支持