Replies: 1 comment
-
|
Thanks @YGMaerz. This is a very good suggestion. We are working along these lines and we should have an initial sample in PhysicsNeMo soon. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi everyone,
I’d like to open a discussion on whether and how to integrate active learning into NVIDIA Modulus as a more “standard” component. Currently, Modulus offers powerful PDE solvers and neural operator frameworks (like the FNO implementations), but does not include a built-in mechanism for iterative data acquisition informed by model uncertainty (a.k.a. active learning).
Background
Use Case: In many real-world PDE settings (e.g., Darcy Flow or other high-dimensional systems), running full-fidelity simulations can be costly. Active learning (AL) helps by identifying where the model is most uncertain and focusing additional simulation efforts on those inputs, reducing overall cost.
Lack of Built-In Support: Although users can manually script an AL loop (train → estimate uncertainty → pick new samples → retrain), there’s no off-the-shelf feature or integrated example in Modulus that demonstrates this workflow.
Community Interest: Given the push towards more data-efficient PDE surrogate modeling, I suspect other users might benefit from having a streamlined active learning example or an optional interface in Modulus.
Possible Approaches
Add a Single Example
General Toolkit
Lightweight Integration
Example (Pseudo-Code)
(Note: Purely illustrative and not tested.)
Extensibility for Different UQ Methods
One idea is to define a generic
UncertaintyEstimatorinterface that can work with any neural operator (FNO, AFNO, etc.) and can be swapped out for different UQ approaches (e.g., MC-Dropout, ensembles, or a Bayesian library). This keeps the AL loop itself (the “Orchestrator”) relatively unchanged:train()mode.fortuna, as long as they expose a.forward(...)or similar.By making the AL orchestrator agnostic to how uncertainty is computed, Modulus could offer a flexible path for advanced users to plug in new approaches with minimal friction.
Discussion Points
modulus.active_learningsubmodule) or start as a separateexamples/active_learningfolder?I’d love to hear thoughts from the Modulus team and the community regarding:
Thanks in advance for your insights!
Best,
Y Georg Maerz
(Again, the pseudo-code above is for demonstration only and is not tested. I’m happy to iterate or help contribute if there’s interest in making this more official.)
Beta Was this translation helpful? Give feedback.
All reactions