Downloads · 30 days
0
dexhunter/aideml
aideml is a machine learning model from dexhunter. Use it for the machine learning task on the model card, and read the license before you ship it in a product.
<h1 align="center"AIDE: The Machine Learning Engineer Agent</h1
Downloads · 30 days
0
Access
Public
Updated Feb 20, 2025
Repo size
—
Likes
0
Public
Click a slice to open those files.
.md12.5 KB · 89%
From the Hugging Face model README
AIDE is an LLM agent that generates solutions for machine learning tasks just from natural language descriptions of the task.
In our own benchmark composed of over 60 Kaggle data science competitions, AIDE demonstrated impressive performance, surpassing 50% of Kaggle participants on average.
OpenAI's MLE-bench, a benchmark composed of 75 Kaggle machine learning tasks, shows that AIDE achieved four times more medals compared to the runner-up agent architecture.
METR's RE-Bench shows that AIDE is not only capable at machine learning tasks but generalizes to the AI R&D tasks such as optimizing low level Triton kernels and finetuning GPT-2 for QA, even surpassing the performance of human experts.
More specifically, AIDE has the following features:
https://github.com/user-attachments/assets/1da42853-fe36-45e1-b6a2-852f88470af6
We have developed a user-friendly Web UI using Streamlit to make it even easier to interact with AIDE.
Ensure you have installed the development version of AIDE and its dependencies as described in the Development section.
Navigate to the aide/webui directory and run the Streamlit application:
cd aide/webui
streamlit run app.py
Alternatively, you can run it from the root directory:
streamlit run aide/webui/app.py
API Key Configuration: In the sidebar, input your OpenAI API key or Anthropic API key and click "Save API Keys".
Input Data:
.csv, .txt, .json, .md) using the "Upload Data Files" feature.Define Goal and Evaluation Criteria:
Configure Steps:
Run the Experiment:
View Results:
Make sure you have Python>=3.10 installed and run:
pip install -U aideml
Also install unzip to allow the agent to autonomously extract your data.
Set up your OpenAI (or Anthropic) API key:
export OPENAI_API_KEY=<your API key>
# or
export ANTHROPIC_API_KEY=<your API key>
To run 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>"
For example, to run AIDE on the example house price prediction task:
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."
Options:
data_dir (required): A directory containing all the data relevant for your task (.csv files, images, etc.).goal: Describe what you want the models to predict in your task, for example, "Build a time series forecasting model for bitcoin close price" or "Predict sales price for houses".eval: The evaluation metric used to evaluate the ML models for the task (e.g., accuracy, F1, Root-Mean-Squared-Error, etc.).Alternatively, you can provide the entire task description as a desc_str string, or write it in a plaintext file and pass its path as desc_file (example file).
aide data_dir="my_data_dir" desc_file="my_task_description.txt"
The result of the run will be stored in the logs directory.
logs/<experiment-id>/best_solution.py: Python code of the best solution according to the validation metric.logs/<experiment-id>/journal.json: A JSON file containing the metadata of the experiment runs, including all the code generated in intermediate steps, plan, evaluation results, etc.logs/<experiment-id>/tree_plot.html: You can open it in your browser. It contains a visualization of the solution tree, which details the experimentation process of finding and optimizing ML code. You can explore and interact with the tree visualization to view what plan and code AIDE comes up with in each step.The workspaces directory will contain all the files and data that the agent generated.
To further customize the behavior of AIDE, some useful options might be:
agent.code.model=... to configure which model the agent should use for coding (default is gpt-4-turbo).agent.steps=... to configure how many improvement iterations the agent should run (default is 20).agent.search.num_drafts=... to configure the number of initial drafts the agent should generate (default is 5).You can check the config.yaml file for more options.
AIDE supports using local LLMs through OpenAI-compatible APIs. Here's how to set it up:
Set up a local LLM server with an OpenAI-compatible API endpoint. You can use:
Configure your environment to use the local endpoint:
export OPENAI_BASE_URL="http://localhost:11434/v1" # For Ollama
export OPENAI_API_KEY="local-llm" # Can be any string if your local server doesn't require authentication
Update the model configuration in your AIDE command or config. For example, with Ollama:
# Example with house prices dataset
aide agent.code.model="qwen2.5" agent.feedback.model="qwen2.5" report.model="qwen2.5" \
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."
Using AIDE within your Python script/project is easy. Follow the setup steps above, and then create an AIDE experiment like below and start running:
import aide
exp = aide.Experiment(
data_dir="example_tasks/bitcoin_price", # replace this with your own directory
goal="Build a time series forecasting 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}")
To install AIDE for development, clone this repository and install it locally:
git clone https://github.com/WecoAI/aideml.git
cd aideml
pip install -e .
Ensure that you have all the required development dependencies installed. Then, you can run the Web UI as follows:
cd aide/webui
streamlit run app.py
You can also run AIDE using Docker:
Build the Docker Image:
docker build -t aide .
Run AIDE with Docker (example with house prices task):
# Set custom workspace and logs location (optional)
export WORKSPACE_BASE=$(pwd)/workspaces
export LOGS_DIR=$(pwd)/logs
docker run -it --rm \
-v "${LOGS_DIR:-$(pwd)/logs}:/app/logs" \
-v "${WORKSPACE_BASE:-$(pwd)/workspaces}:/app/workspaces" \
-v "$(pwd)/aide/example_tasks:/app/data" \
-e OPENAI_API_KEY="your-actual-api-key" \
aide \
data_dir=/app/data/house_prices \
goal="Predict the sales price for each house" \
eval="Use the RMSE metric between the logarithm of the predicted and observed values."
You can customize the location of workspaces and logs by setting environment variables before running the container:
WORKSPACE_BASE: Sets the base directory for AIDE workspaces (default: $(pwd)/workspaces)LOGS_DIR: Sets the directory for AIDE logs (default: $(pwd)/logs)Contribution guide will be available soon.
AIDE's problem-solving approach is inspired by how human data scientists tackle challenges. It starts by generating a set of initial solution drafts and then iteratively refines and improves them based on performance feedback. This process is driven by a technique we call Solution Space Tree Search.
At its core, Solution Space Tree Search consists of three main components:
By repeatedly applying these steps, AIDE navigates the vast space of possible solutions, progressively refining its approach until it converges on the optimal solution for the given data science problem.
If you use AIDE in your work, please cite the following paper:
@article{aide2025,
title={AIDE: AI-Driven Exploration in the Space of Code},
author={Zhengyao Jiang and Dominik Schmidt and Dhruv Srikanth and Dixing Xu and Ian Kaplan and Deniss Jacenko and Yuxiang Wu},
year={2025},
eprint={2502.13138},
archivePrefix={arXiv},
primaryClass={cs.AI},
url={https://arxiv.org/abs/2502.13138},
}