autoresearch-multi
An extension of Karpathy's autoresearch. Accepts additional ML frameworks, tests more combinations, wastes fewer runs, and feeds every result back into the next decision.
What it does
-
Decomposes Python ML pipelines into independent slots (
load_data,engineer_features,build_model,evaluate) and tests combinations. Detects the framework from imports and generates appropriate model variants. Supports sklearn, PyTorch, TensorFlow, Keras, HuggingFace, and statsmodels. -
Prunes dead ends. After the first round, losing model families are killed, dominated impls within surviving families are archived, and impls that crash 3 times are auto-skipped. EXPLOIT, COMBINE, and NARROW skip all of them.
-
Detects interactions. Finds superadditive effects that sequential testing misses, then uses them to prioritize what to try next:
Title features solo: +2.79% XGBoost solo: +0.00% Predicted combo: +2.79% Actual combo: +3.91% Interaction delta: +1.12% (superadditive) -
Adaptive search with 4 modes. Each round feeds results into the next. Auto-selects Optuna Bayesian when search space >20 variants.
EXPLORE coverage guarantee: one per model family x encoding EXPLOIT Optuna Bayesian (large space) or grid (small space) COMBINE near-miss pairs, sorted by prior interaction signal NARROW fine-tune within winning region -
Proposes code via LLM (when API key is set). The LLM sees per-slot rankings, interaction effects, and dead families, not just flat results. Proposals are tested directly against the current best combo instead of restarting search. Code diffs show what changed.
-
Works on any data. CSV, OpenML dataset, or multi-file Python pipelines.
Install
pip install autoresearch-multi
With optional frameworks:
pip install autoresearch-multi[torch] # + PyTorch
pip install autoresearch-multi[keras] # + TensorFlow/Keras
pip install autoresearch-multi[llm] # + Claude API
pip install autoresearch-multi[all] # everything
Or from source:
git clone https://github.com/agalimova/autoresearch-multi.git
cd autoresearch-multi
pip install -e .
Usage
autoresearch my_data.csv # point at a CSV
autoresearch my_pipeline.py # point at a Python file (auto-decomposes)
autoresearch --dataset adult # use any OpenML dataset
Without an API key: template-based search. With any LLM key, it proposes novel model code and iteratively improves. Supports Claude, GPT-4o, Gemini, OpenRouter, Together AI, Deepseek, and Ollama (local, no key needed).
Results
LLM mode
Claude proposes novel code (ensembles, custom feature engineering) and iteratively improves across 3 rounds. Example on King-Rook vs King-Pawn, a chess endgame dataset (36 categorical columns, binary classification):
Templates: 98.06% (24 combos, 21s)
LLM Round 1: 99.40% (+1.33%)
LLM Round 2: 99.44% (+0.04%)
LLM Round 3: 100.00% (+0.56%, perfect accuracy)
Template vs LLM (same datasets)
| Dataset | Baseline | Template | Percentile | With Claude | Percentile | Combos | Time |
|---|---|---|---|---|---|---|---|
| heart-statlog | 84.81% | 84.81% | top 25% | 97.33% | top 1% | 45 | 114s |
| kr-vs-kp | 93.31% | 98.06% | top 5% | 100.00% | top 1% | 48 | 133s |
| diabetes | 77.22% | 77.22% | top 5% | 77.74% | top 5% | 33 | 94s |
Features from the community
| Feature | Source |
|---|---|
| Entity-level code diffs | sem |
| Optuna exploit | soveshmohapatra |
| Resume support | buzypi |
| Warm-start checkpoints | soveshmohapatra |
| Hardware auto-detection | elementalcollision |
| Scaling law | Sreebhargavibalijaa |
| TUI dashboard | elementalcollision |
| Experiment dedup | mutable-state-inc |
Project structure
run.py one command, any data
engine/
adaptive.py 4-mode search + Optuna
variants.py model variant generation (sklearn, pytorch, tf, keras, hf, statsmodels)
llm_proposer.py LLM code proposal (Claude, GPT, Gemini)
semantic_diff.py entity-level code diffs (for LLM mode)
decompose.py auto-split Python files into slots
slots/runner.py combinatorial slot testing
slots/registry.py version tracking + interaction detection
hardware.py hardware auto-detection
dashboard.py TUI dashboard
checkpoint.py warm-start best model across combos (PyTorch, Keras)
scaling.py swarm scaling law
merge.py multi-agent A/B merge
extras/
telemetry/ PII-stripped experiment telemetry (opt-out)
Telemetry
Collects anonymous experiment telemetry by default. PII auto-stripped from all text (names, emails, paths, IPs, credit cards).
Disable: export AUTORESEARCH_TELEMETRY=0
License
MIT
Metadata
Release files for autoresearch-multi 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| autoresearch_multi-0.1.0.tar.gz | 50.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| autoresearch_multi-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 107.8 kB
Release files / autoresearch_multi-0.1.0.tar.gz
| Download URL | autoresearch_multi-0.1.0.tar.gz |
|---|---|
| Size | 50.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
09276963b509d61a3cb29283ab41834c1ce3974a4f7c92609b774bc1d58f488a
|
|
BLAKE2b-256 checksum How to use checksums |
c9ef3ce2074926180a4441a48f946ee261dca1ee1f65be3f4e580f634991b8ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / autoresearch_multi-0.1.0-py3-none-any.whl
| Download URL | autoresearch_multi-0.1.0-py3-none-any.whl |
|---|---|
| Size | 56.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a6591ac483131496b2281b24c7b9096c64d896e015e165852015520ffe9a40b9
|
|
BLAKE2b-256 checksum How to use checksums |
abe8b2c4708898689413eefcab0f7c362060710845bb4d88a2c8ebba9de36262
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Security for autoresearch-multi 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.