Skip to content

Bring your Docker workload.We run the trials.

Read a few arguments. Print a few metrics. HyperOptimizer runs your image with different parameter values and shows you how the results compare.

Why Docker?

The universal interface for optimization

Optimize any containerized workload: ML models, trading strategies, simulations, pipelines, or custom code. Accept parameters, run one repeatable trial, and print objective metrics.

Connect your Docker workload →

Any language, any framework

Use Python, Rust, C++, Go, or another language that can read trial arguments and print metrics. No SDK is required.

Minimal integration effort

Two changes to your code: parse --hpo-* CLI arguments and print metrics to stdout. That's the entire contract between your code and our platform.

Managed trial containers

Your image carries your code and dependencies. Each trial runs in a container, with its logs and metrics available in the dashboard.

Parallel execution

Test several parameter combinations at once. Your plan sets the number of trial slots, and each trial uses your available compute.

How it works

Your role vs. ours

A clear split of responsibilities. You bring the container; we run the search.

You
HyperOptimizer
Provide a Dockerfile or published image
Build and push with the CLI, then run containers for each trial
Define parameters & ranges in hpo.toml or the dashboard
Choose the next parameter set (Bayesian optimization)
Parse --hpo-* CLI args in your code
Inject those args at container start
Print metrics to stdout
Collect metrics, rank results, show the dashboard

Example

Two changes to your code

Parse hyperparameters from CLI args and print metrics to stdout. That's the entire integration surface.

1. Parse CLI args

args = parse_args()
lookback = args.hpo_lookback_window
multiplier = args.hpo_atr_multiplier

result = run_backtest(
    lookback=lookback,
    multiplier=multiplier,
)

2. Print metrics

import json

metrics = {
    "sharpe": result.sharpe,
    "max_drawdown": result.max_dd,
}

for k, v in metrics.items():
    print(f"hpo.metrics.{k}={json.dumps(v)}")

More integrations

Framework-specific guides

HyperOptimizer works with any Docker container. These guides show how specific frameworks integrate.

Or explore all integrations on the product page.

Ready to optimize?

Follow the getting started guide for a full walkthrough with Dockerfile examples.