You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PR #2456 added components_to_export to MobiusBuilder, which lets an Olive recipe declaratively select a subset of a multimodal model's components to export. Under the hood this is a thin wrapper around mobius's own ModelPackage.save(components=...) predicate filter (present in mobius since March 2026, unrelated to components_to_export itself).
This issue is a forward-looking tracking item, not an active bug: once MobiusBuilder sees wider adoption as the standard exporter for multi-component/VLM models (i.e. once we're no longer routing individual components like the decoder through a separate exporter such as ORT GenAI's native ModelBuilder), we should revisit whether Olive still needs its own components_to_export pass config, or whether it can be deprecated in favor of:
Exporting the full composite model in one MobiusBuilder run (no partial export needed), and
components_to_export currently exists because some components (notably the decoder) still need to go through a different exporter than MobiusBuilder (e.g. ORT GenAI's ModelBuilder) for that component alone, requiring MobiusBuilder to skip exporting it. Once MobiusBuilder itself can produce a decoder graph that's equivalent to (or supersedes) whatever the alternate exporter produces — i.e. once there's no longer a reason to route any component through a different exporter — the export-time filtering need mostly goes away, since a full export can just contain everything and downstream passes can select/skip what they need.
Suggested follow-up
Re-evaluate once MobiusBuilder is the default/sole exporter path for at least the VLM recipes currently depending on split export (e.g. Qwen VL family recipes).
Summary
PR #2456 added
components_to_exporttoMobiusBuilder, which lets an Olive recipe declaratively select a subset of a multimodal model's components to export. Under the hood this is a thin wrapper around mobius's ownModelPackage.save(components=...)predicate filter (present in mobius since March 2026, unrelated tocomponents_to_exportitself).This issue is a forward-looking tracking item, not an active bug: once
MobiusBuildersees wider adoption as the standard exporter for multi-component/VLM models (i.e. once we're no longer routing individual components like the decoder through a separate exporter such as ORT GenAI's nativeModelBuilder), we should revisit whether Olive still needs its owncomponents_to_exportpass config, or whether it can be deprecated in favor of:MobiusBuilderrun (no partial export needed), andcomponents_to_skipon downstream ONNX passes, or Add multi build support #2480'sbuilds/select_componentsmechanism, if/when that lands), which already operate on a fully-formed composite model rather than needing to filter at export time.Why this isn't done now
components_to_exportcurrently exists because some components (notably the decoder) still need to go through a different exporter thanMobiusBuilder(e.g. ORT GenAI'sModelBuilder) for that component alone, requiringMobiusBuilderto skip exporting it. OnceMobiusBuilderitself can produce a decoder graph that's equivalent to (or supersedes) whatever the alternate exporter produces — i.e. once there's no longer a reason to route any component through a different exporter — the export-time filtering need mostly goes away, since a full export can just contain everything and downstream passes can select/skip what they need.Suggested follow-up
components_to_exportis deprecated, keepcomponents_to_skip(feat: add components_to_skip to OnnxBlockWiseRtnQuantization #2457) and/or thebuildsmechanism (Add multi build support #2480, if merged) as the supported way to scope per-component processing on an already-exported composite model.