AIDE ML
用树搜索持续编写、评估并改进机器学习代码。
- Star 数
- ★ 1.5k
- 最近更新
- 20 天前
- License
- MIT
- 主语言
- Python
- FA 评分
- 48/100 · 缺口较多
30 秒速览
- 可在哪里用
- 通用 · 跨平台OpenAI API · Claude API
- 开始前需要
- 典型场景
- 机器学习实践者拥有结构化数据集,需要以“预测流失、AUROC”这类目标和指标快速探索建模代码时。
- 主要局限
- 首次使用需要可访问的 LLM 服务及相应 API 凭据;文档中的默认编码模型为
gpt-4-turbo。
这个 Agent 能做什么,适合哪些场景?
AIDE ML 是 AIDE 算法的开源参考实现,面向以数据集、目标和评价指标驱动的机器学习工程任务。它通过 LLM 引导的代码空间树搜索生成 Python 脚本、创建改动分支,并利用指标反馈推进或剪枝搜索。项目提供 `aide` 命令行、`aide.Experiment` Python 接口、HTML 方案树可视化和 Streamlit Web UI。一次运行会在 `logs/<id>/` 中输出最佳代码 `best_solution.py` 及可交互查看搜索树的 `tree_plot.html`。它适合研究和原型验证;若需要更广泛的代码优化、实验跟踪或更强控制,仓库将 Weco 定位为相关的平台产品。
用户通过 aide data_dir=... goal=... eval=... 或 aide.Experiment(data_dir=..., goal=..., eval=...) 提供数据目录、自然语言目标和评估指标。AIDE ML 将每个 Python 脚本作为解树节点,调用配置的编码模型生成补丁并形成子节点,评估代码后用度量结果引导搜索。Experiment.run(steps=...) 返回最佳方案,可读取其 valid_metric 和 code。CLI 运行将最佳方案写入 logs/<id>/best_solution.py,并生成 logs/<id>/tree_plot.html;Web UI 允许输入 API key、上传数据、设置 Goal 与 Metric,并显示实时日志、方案树和最佳代码。
- 机器学习实践者拥有结构化数据集,需要以“预测流失、AUROC”这类目标和指标快速探索建模代码时。
- 研究智能体架构的团队需要替换搜索启发式、评估器或 LLM 后端,并观察代码搜索树时。
- 研究人员复现 AIDE 论文或测试新的代码生成与评估策略时。
- 需要在本机 Ollama 端点上测试
qwen2.5作为编码模型,比较本地模型驱动的迭代优化时。 - 偏好浏览器式原型操作的用户,需要在 Streamlit UI 中上传数据、启动运行并查看实时结果时。
如何安装或部署这个 Agent?
需要 Python 3.10+。安装:pip install -U aideml。使用 OpenAI 时设置凭据:export OPENAI_API_KEY=<your-key>。首次运行:aide data_dir="example_tasks/house_prices" goal="Predict the sales price for each house" eval="RMSE between log-prices"。开发安装可执行:git clone https://github.com/WecoAI/aideml.git,然后 cd aideml && pip install -e .。
如何使用这个 Agent?
CLI 可用 agent.code.model 选择编码模型,并用 agent.steps 控制迭代次数,例如:aide agent.code.model="claude-4-sonnet" agent.steps=50 data_dir=... goal=... eval=...。Python 中创建 aide.Experiment(...) 后调用 exp.run(steps=2)。启动界面时进入 aide/webui 并运行 streamlit run app.py。使用 Ollama 的 OpenAI 兼容端点时设置 OPENAI_BASE_URL="http://localhost:11434/v1",再指定 agent.code.model="qwen2.5";若要让评估器也走本地模型,额外设置 agent.feedback.model="qwen2.5"。
这个 Agent 有哪些优点和局限?
- 以代码树搜索而非单线式修改组织探索:脚本节点、LLM 补丁和指标反馈直接对应可检查的候选方案。
- 同时提供 CLI、
aide.ExperimentAPI、HTML 树可视化和 Streamlit UI,覆盖脚本化、Python 集成与交互式原型场景。 - 文档明确列出 OpenAI、Anthropic、Gemini 以及 OpenAI API 兼容本地模型路径,并给出 Ollama 配置示例。
- 运行产物包括最佳 Python 代码和完整方案树,便于检查最终结果与搜索过程。
- 首次使用需要可访问的 LLM 服务及相应 API 凭据;文档中的默认编码模型为
gpt-4-turbo。 - 本地模型模式仍可能默认使用
gpt-4o作为评估器;完全本地运行需要额外设置反馈模型,且文档提示性能可能下降。 - 评估依赖用户提供的数据目录、目标和指标,仓库材料未说明对任意数据格式或任务类型的通用保证。
- 仓库将自身定位为研究友好的精简实现;更广泛代码优化、实验跟踪和增强控制被定位在另一平台产品中。
这个 Agent 与同类方案有什么区别?
README 引述 MLE-Bench(75 个 Kaggle 竞赛)的结果:AIDE 的树搜索获得的奖牌数为最佳线性智能体 OpenHands 的 4 倍。该比较针对该基准中的奖牌结果,不等同于所有机器学习任务上的普遍性能结论。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|
| AIDE ML 当前 | 48 · 缺口较多 | ★ 1.5k | 20 天前 | Python | OpenAI API · Claude API |
| BambooAI 数据分析师 | 85 · 表现良好 | ★ 790 | 7 天前 | Python | OpenAI API · Claude API |
| K-Dense BYOK | 49 · 缺口较多 | ★ 1.2k | 12 天前 | TypeScript | ChatGPT · Codex · Claude.ai |
| MindSearch 深度搜索器 | 42 · 缺口较多 | ★ 6.9k | 1 年前 | JavaScript | — |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:README 要求用户提供 API 密钥(如 OPENAI_API_KEY),并支持本地 LLM 选项,表明存在外部 API 调用。代码执行由解释器处理,但未明确要求用户确认。数据流透明度有限,未详细说明数据如何被处理或传输。敏感数据处理方面,未提及数据加密或脱敏。依赖安全方面,requirements.txt 中固定了部分版本,但未提供漏洞扫描或安全审计。外部影响方面,代理会生成并执行代码,可能产生外部副作用,但未明确限制。回滚机制未提及。来源归属方面,README 引用了论文和外部研究,但未明确说明代码来源。扣分原因:缺少用户确认机制、数据流透明度不足、敏感数据处理不明确、依赖安全未充分说明、外部影响未明确限制、回滚机制缺失。
证据显示:README 和测试文件提供了清晰的示例和预期行为,自洽性较好。依赖可用性方面,requirements.txt 列出了大量依赖,但未提供版本兼容性说明。失败消息方面,测试覆盖了超时和异常情况,但未提供用户友好的错误提示。扣分原因:依赖可用性未充分说明,失败消息可能不够友好。
证据显示:README 明确了目标受众(研究人员和 ML 从业者),并提供了多种使用场景(CLI、Web UI、Python API)。能力边界方面,说明了代理的用途和限制(如需要 LLM 密钥)。触发精度方面,提供了详细的 CLI 参数和示例。环境适配方面,支持多种 LLM 后端和本地部署。扣分原因:能力边界描述不够详细,环境适配未覆盖所有可能场景。
证据显示:README 结构清晰,提供了安装说明、快速开始、高级选项和示例。命名稳定性方面,未提供版本历史或命名约定。示例和 FAQ 方面,提供了多个示例,但缺少 FAQ。已知限制方面,仅提及本地模型性能下降。许可证为 MIT,清晰明确。版本控制和变更日志方面,未提供 CHANGELOG。维护责任方面,未明确说明维护者或贡献指南。扣分原因:缺少 FAQ、已知限制不全面、无变更日志、维护责任不明确。
证据显示:输出可用性方面,提供了最佳解决方案代码和可视化树。边际价值方面,代理自动化了 ML 流水线开发,具有明显价值。成本效益方面,需要 LLM API 密钥,可能产生费用,但未提供成本估算。扣分原因:成本效益未充分说明。
证据显示:README 引用了论文和外部研究,提供了可追溯的声明。跨来源验证方面,引用了多个外部项目。事实与推断分离方面,README 区分了算法描述和产品特性。扣分原因:部分声明(如性能提升)未提供具体数据支持。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 代理会执行生成的代码,可能产生外部副作用,需在隔离环境中运行。
- 需要提供 LLM API 密钥,注意密钥安全,避免泄露。
- 依赖列表庞大,可能存在版本冲突或安全漏洞,建议使用虚拟环境并定期更新。
常见问题
运行需要什么凭据?
OPENAI_API_KEY。仓库也说明可配置 Anthropic、Gemini 或 OpenAI API 兼容的本地模型;Ollama 示例使用 OPENAI_BASE_URL 指向本地端点。能否完全本地运行?
OPENAI_BASE_URL 指向 Ollama,并同时把 agent.code.model 和 agent.feedback.model 设为本地模型。文档提醒完全本地模型可能带来性能下降。一次运行会留下哪些结果?
logs/<id>/best_solution.py 和 logs/<id>/tree_plot.html;Python API 还可从返回的最佳方案读取验证指标和代码。