Agent SMAC is a prototype framework designed to automate the end-to-end machine learning pipeline using a multi-agent system powered by Large Language Models (LLMs). This project aims to simplify the process of building, training, and deploying machine learning models by interpreting natural language instructions and orchestrating specialized agents for each stage of the pipeline.
- Natural Language Interface: Accepts user-defined task descriptions to initiate the AutoML process.
- Multi-Agent Collaboration: Decomposes tasks into subtasks handled by specialized LLM agents (e.g., data preprocessing, model selection, training).
- Parallel Execution: Executes subtasks concurrently to enhance efficiency.
- Modular Design: Facilitates easy integration of new agents or modification of existing ones.
- Extensible Framework: Designed to support various data modalities and machine learning tasks.
The Agent SMAC framework operates through the following stages:
- Initialization: Parses and validates user instructions.
- Planning: Breaks down the overall task into manageable subtasks.
- Execution: Assigns subtasks to specialized agents for processing.
- Verification: Evaluates the outputs of each agent to ensure correctness.
- Deployment: Aggregates the results into a deployable machine learning model.
AutoML-Agent/
├── automl_results/ # Outputs and results from AutoML runs
├── logs/ # Log files for monitoring and debugging
├── notebooks/ # Jupyter notebooks for experimentation
├── scripts/ # Utility scripts for various tasks
├── templates/ # Templates for reports or model deployment
├── .gitignore # Specifies files to ignore in version control
├── Readme.md # Project documentation
├── Streamlit.pdf # Streamlit application guide or documentation
├── functionality-gif.mov # Demonstration of project functionality
├── main.py # Main script to run the AutoML-Agent
└── test.ipynb # Test notebook for validating functionalities
- Python 3.10 or higher
- pip package manager
-
Clone the repository:
git clone https://github.com/amirrezaalasti/AutoML-Agent.git cd AutoML-Agent -
Create and activate a virtual environment (optional but recommended):
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install the required packages:
pip install -r requirements.txt
Note: Ensure that the
requirements.txtfile is present in the root directory with all necessary dependencies listed.
To initiate the AutoML process:
python main.pyFollow the on-screen prompts to input your task description and configure settings as needed.
Example:
Suppose you have a CSV file containing customer data and you want to predict customer churn.
-
Prepare your dataset and place it in the appropriate directory.
-
Run the application:
python main.py
-
Input your task description when prompted:
Predict customer churn based on the provided dataset.
The AutoML-Agent will process your request, perform data preprocessing, select suitable models, train and evaluate them, and finally provide a deployable model along with performance metrics.
- Classification: Binary and multi-class classification tasks.
- Regression: Predicting continuous values.
- Clustering: Grouping similar data points.
- Natural Language Processing: Text classification, sentiment analysis, etc.
- Computer Vision: Image classification, object detection, etc.
Note: The current prototype primarily supports tabular data. Support for other data modalities is under development.
Details about model performance, benchmarks on standard datasets, and comparisons with other AutoML tools can be added here.
Contributions are welcome! If you'd like to contribute:
-
Fork the repository.
-
Create a new branch:
git checkout -b feature/your-feature-name
-
Make your changes and commit them:
git commit -m "Add your message here" -
Push to your forked repository:
git push origin feature/your-feature-name
-
Open a pull request detailing your changes.
Please ensure that your code adheres to the project's coding standards and includes appropriate tests.
This project is licensed under the MIT License. You are free to use, modify, and distribute this software in accordance with the license terms.
For questions, suggestions, or collaborations, please contact:
- Amirreza Alasti GitHub Profile
Disclaimer: This is a prototype project and is currently under active development. Features and functionalities are subject to change.
All baseliens should be run in their own conda environment.
conda create -n AgentSmac_baseline_autogluon python=3.10conda activate AgentSmac_baseline_autogluon
conda install -c conda-forge mamba
mamba install -c conda-forge autogluon
mamba install -c conda-forge "ray-tune >=2.10.0,<2.32" "ray-default >=2.10.0,<2.32"
pip install -e .