https://github.com/conglu1997/acd
Automated Capability Discovery via Foundation Model Self-Exploration
Science Score: 23.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
✓Academic publication links
Links to: arxiv.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (16.1%) to scientific vocabulary
Repository
Automated Capability Discovery via Foundation Model Self-Exploration
Basic Info
- Host: GitHub
- Owner: conglu1997
- License: mit
- Language: Python
- Default Branch: main
- Size: 237 MB
Statistics
- Stars: 44
- Watchers: 3
- Forks: 3
- Open Issues: 1
- Releases: 0
Metadata Files
README.md
Automated Capability Discovery
via Foundation Model Self-Exploration
Automated Capability Discovery (ACD) is a novel framework that leverages one foundation modelacting as a scientistto autonomously discover and evaluate the capabilities and failure modes of another subject model. This framework, described in our paper Automated Capability Discovery via Foundation Model Self-Exploration (Cong Lu, Shengran Hu, Jeff Clune), offers a scalable approach to automating the evaluation of frontier models.
Safety Notice
Because this repository can automatically execute LLM-generated code, you should carefully sandbox the execution environment (e.g., using Docker) to limit the potential impact of any malicious or unintended actions. We explicitly prompt the foundation models not to access the internet or filesystem, which makes the risk unlikely, but it is always good practice to apply the principle of least privilege when running automatically generated code.
Setup
Clone the repository and install the required dependencies:
bash
conda create -n acd python=3.11
conda activate acd
pip install -r requirements.txt
Running Instructions
General Notes
- Logs and Results: Full logs and all discovered tasks (as presented in the paper) are saved in the
resultsdirectory. - API Keys: Ensure that the required API keys (e.g.
OPENAI_API_KEY,OPENROUTER_API_KEY, etc.) are set in your environment. For a complete list of supported foundation models, seesrc/llm_utils.py. - Parallelism: To speed up task generation, use the
--parallelismflag to enable multi-threaded discovery. - Automated Judge: By default, ACD uses GPT-4o as the automated judge model for consistency. You can change the judge model for evaluation in the
eval_helper.pyfile. Furthermore, you can change the judge model for the interestingness and surprisingness assessment via the--filter_modelflag in the main script.
Task Generation
Generate tasks using one of the following commands:
```bash
Run ACD: GPT-4o Scientist on GPT-4o Subject
python generateacdtasks.py --scientistmodel 'gpt-4o-2024-05-13' --subjectmodel 'gpt-4o-2024-05-13' --outputdir acdgpt4o_gpt4o
Run ACD: Claude Scientist on GPT-4o Subject
python generateacdtasks.py --scientistmodel 'claude-3-5-sonnet-20240620-v1:0' --subjectmodel 'gpt-4o-2024-05-13' --outputdir acdsonnet35_gpt4o
Run ACD: GPT-4o Scientist on Llama3-8B Subject
python generateacdtasks.py --scientistmodel 'gpt-4o-2024-05-13' --subjectmodel 'llama3.1-8b' --outputdir acdgpt4ollama38b ```
Visualizing Discovered Tasks
To generate an HTML visualization of the discovered tasks, run:
bash
python visualize_generated_tasks.py --experiment_dir "results/acd_gpt4o_gpt4o"
Generating a Report
We include generated reports from our paper in the reports directory. To compile a Capability Report summarizing the discovered capabilities and failure modes for a new setting, follow these steps:
- Generate the Markdown Report
Run the following command, replacing the placeholders with the appropriate values:
bash
python generate_report.py --task_folder {TASK_FOLDER} --scientist {SCIENTIST_MODEL} --subject {SUBJECT_MODEL}
This command produces a Markdown file containing the report.
- Convert the Markdown Report to PDF
The project uses markdown-paper to convert Markdown files into PDFs. Please refer to the markdown-paper repository for installation instructions. Once installed, convert your report by running:
bash
cd markdown-paper
python build.py {PATH-TO-report.md}
If a compile error occurs, try pressing R. The final PDF (report.pdf) will be generated in the markdown-paper directory.
Citation
If you find this project useful, please consider citing our work:
bibtex
@article{lu2025ACD,
title={Automated Capability Discovery via Foundation Model Self-Exploration},
author={Lu, Cong and Hu, Shengran and Clune, Jeff},
journal={arXiv preprint arXiv:2502.07577},
year={2025}
}
Contact
For any queries, please contact Cong Lu.
Owner
- Name: Cong Lu
- Login: conglu1997
- Kind: user
- Location: Oxford
- Website: https://www.conglu.co.uk
- Twitter: cong_ml
- Repositories: 2
- Profile: https://github.com/conglu1997
Reinforcement Learning PhD Student in MLRG and OxCSML @ Oxford
GitHub Events
Total
- Create event: 1
- Issues event: 1
- Release event: 1
- Watch event: 54
- Push event: 5
- Public event: 1
- Fork event: 3
Last Year
- Create event: 1
- Issues event: 1
- Release event: 1
- Watch event: 54
- Push event: 5
- Public event: 1
- Fork event: 3
Issues and Pull Requests
Last synced: 10 months ago
All Time
- Total issues: 1
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 1
- Total pull request authors: 0
- Average comments per issue: 0.0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 1
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 1
- Pull request authors: 0
- Average comments per issue: 0.0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- johnsonc (1)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- anthropic *
- backoff *
- matplotlib *
- numpy *
- openai *
- pandas *
- plotly *
- scikit-learn *
- sklearn *
- tiktoken *
- tqdm *