Multi-objective optimization¶
Access this AI accelerator on GitHub
This accelerator demonstrates how to implement a Streamlit application for multi-objective optimization using DataRobot deployments, allowing users to optimize multiple targets simultaneously. The application acts as a simulation environment: it runs many trials, uses DataRobot’s prediction API as the core of each trial, and supports Monte Carlo–style sampling (e.g., Random and Quasi-Monte Carlo samplers), illustrating how to build custom simulations that integrate with DataRobot and external optimization tools.
The notebook outlines how to:
- Create multiple DataRobot projects: Upload training data, configure project settings for each target, and run Autopilot with cross-validation.
- Build deployments: Select the top-performing model for each target, create registered model versions, and deploy to a prediction server.
- Set up the Streamlit application: Upload the application to DataRobot, configure optimization parameters (e.g., trial count, objective directions and weighting), and run simulations to view optimization results.
The application uses Optuna to suggest parameters and request predictions from the DataRobot API on each trial, then computes and displays the Pareto front. Current capabilities and features include six types of optimization algorithms, adjustable trial count, numexpr support for individual optimization targets, objective variable weighting, parameter reliability statistics, display of hypervolume and target-vs-feature plots, 2D/3D Pareto front display, localization support (EN/JP), and support for both dedicated prediction servers and serverless deployment. The optimization application process flow is shown below:
sequenceDiagram
participant User
participant App as Streamlit App
participant Op as Optuna
participant DR as DataRobot API
User->>App: Adjust settings
User->>App: Click "Simulation Start!"
App->>DR: Load deployment infos
DR-->>App: Return deployment infos
loop For each trial
App->>Op: Create study
Op->>Op: Suggest parameters
Op->>DR: Request predictions
DR-->>Op: Return predictions
Op->>Op: Update study
end
App->>App: Calculate Pareto front
App->>User: Display optimization results