Skip to content

[GENERAL SUPPORT]: Model Fitting #4548

@leolin8806

Description

@leolin8806

Question

Hi,

I'm using Ax + BoTorch for a physical experiment involving a custom drone propeller.
For every trial, I choose a set of input parameters being:

camber, root chord, tip chord, corner radius, angle of attack, and symmetric (as a yes/no value)

After running each trial, I measure four outputs: lift, drag, rpm, and vibration

My goal is to perform Bayesian optimization where the inputs are the propeller geometry parameters, and the outputs are the physical measurements above (e.g., maximizing lift/drag while also modeling rpm and vibration).

Because I have multiple outputs per experiment, I attempted to use MultiTaskGP from BoTorch. However, Ax skips the MultiTaskGP model and eventually throws the error:

ModelFittingError: Cannot fit MultiTaskGP without task feature.

I now understand that MultiTaskGP requires a task feature dimension, but in my setup: each trial has multiple metrics, not multiple “tasks.” I do not have different fidelities, environments, or conditions, but all metrics are recorded from the same physical experiment

So my questions are:

  1. Is MultiTaskGP appropriate for multi-output data like this?

My understanding is now that tasks ≠ metrics. But I want to confirm whether MultiTaskGP is intended for: multi-output regression or only multi-fidelity / multi-environment modeling

  1. If MultiTaskGP is the correct model, what should the task_feature be?

Since I have outputs like lift, drag, rpm, and vibration, would each metric need to become a separate “task”? And would that require reshaping the data into long-form with a task column and only one metric per row?

  1. If MultiTaskGP is not the intended solution, what model should I be using for multi-output BO?

Is the recommended approach: independent SingleTaskGPs (one per metric), ModelListGP in BoTorch, or something else supported by Ax?

  1. Is there a built-in way in Ax’s modular BoTorch backend to jointly model multiple outputs?

I want to follow Ax/BoTorch best practices for multi-output optimization. Any guidance on which model class is correct for this scenario—and how the task feature should be defined, if applicable—would be greatly appreciated.

Thanks.

Please provide any relevant code snippet if applicable.

Code of Conduct

  • I agree to follow this Ax's Code of Conduct

Metadata

Metadata

Assignees

Labels

questionFurther information is requested

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions