Intel® NNCF Compression detect ONNX external data#2384
Open
Anirudh-Swaminathan wants to merge 2 commits intomicrosoft:mainfrom
Open
Intel® NNCF Compression detect ONNX external data#2384Anirudh-Swaminathan wants to merge 2 commits intomicrosoft:mainfrom
Anirudh-Swaminathan wants to merge 2 commits intomicrosoft:mainfrom
Conversation
Add change to auto-detect ONNX external data files in NNCF compression pass. If an ONNX model is locally sourced, the ONNXModelHandler points to just the .onnx file. This means that the EXTERNAL_DATA_DIR isn't set in AdvancedCompressionParameters, leading to NNCF failing to find the model weights. This commit fixes that and allows auto-detecting the presence of an external data file, and will pass this path to NNCF AdvancedCompressionParameters if not already set manually with local sourcing or if chained with another pass that produces an ONNX model with external data - [x] Add unit tests for this change. - [x] Make sure all tests can pass. - [ ] Update documents if necessary. - [x] Lint and apply fixes to your code by running `lintrunner -a` - [ ] Is this a user-facing change? If yes, give a description of this change to be included in the release notes. --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the OpenVINO NNCF weight-compression flow for ONNX models to automatically detect when the input ONNX graph uses external data (e.g., model.onnx.data) and to pass the source model directory to NNCF so it can resolve external weight files correctly.
Changes:
- Add a utility to detect ONNX external-data usage by scanning initializers (and subgraphs) for external-data markers.
- In the ONNX compression path, auto-compute the source model directory when external data is detected and forward it into the shared compression routine.
- Add a unit test that generates an ONNX model with external data and runs the compression pass.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
olive/passes/openvino/ov_utils.py |
Adds model_graph_uses_external_data to detect external-data usage in ONNX graphs (including nested subgraphs). |
olive/passes/openvino/compression.py |
Detects external data for ONNX inputs and sets NNCF EXTERNAL_DATA_DIR via a new model_source_dir parameter. |
test/passes/openvino/test_openvino_compression.py |
Adds a unit test that builds an ONNX-with-external-data model and validates compression output behavior. |
jambayk
approved these changes
Apr 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add change to auto-detect ONNX external data files in NNCF compression pass.
Describe your changes
If an ONNX model is locally sourced, the ONNXModelHandler points to just the .onnx file. This means that the EXTERNAL_DATA_DIR isn't set in AdvancedCompressionParameters, leading to NNCF failing to find the model weights.
This commit fixes that and allows auto-detecting the presence of an external data file, and will pass this path to NNCF AdvancedCompressionParameters if not already set manually with local sourcing or if chained with another pass that produces an ONNX model with external data
Checklist before requesting a review
lintrunner -a(Optional) Issue link