Skip to content

Conversation

@kaixuanliu
Copy link
Contributor

This PR fixes 3 failed test cases on Intel XPU:

1.tests/models/video_llama_3/test_modeling_video_llama_3.py::VideoLlama3IntegrationTest::test_small_model_integration_test
2.tests/models/video_llama_3/test_modeling_video_llama_3.py::VideoLlama3IntegrationTest::test_small_model_integration_test_batch_wo_ima
ge
3.tests/models/video_llama_3/test_modeling_video_llama_3.py::VideoLlama3ModelTest::test_generate_with_quant_cache 

@ydshieh
Copy link
Collaborator

ydshieh commented Oct 29, 2025

Thank you @kaixuanliu

cc @yao-matrix for a first look 🙏

distribution_name = pkg_name if pkg_name in distributions else distributions[0]
package_version = importlib.metadata.version(distribution_name)
except importlib.metadata.PackageNotFoundError:
except (importlib.metadata.PackageNotFoundError, KeyError):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you explain what is the issue here that requires this new KeyError?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same question.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When i run pytest -rA tests/models/video_llama_3/test_modeling_video_llama_3.py::VideoLlama3ModelTest::test_generate_with_quant_cache, it will fail and return error:

pkg_name = 'optimum.quanto', return_version = True

    def _is_package_available(pkg_name: str, return_version: bool = False) -> tuple[bool, str] | bool:
        """Check if `pkg_name` exist, and optionally try to get its version"""
        spec = importlib.util.find_spec(pkg_name)
        package_exists = spec is not None
        package_version = "N/A"
        if package_exists and return_version:
            try:
                # importlib.metadata works with the distribution package, which may be different from the import
                # name (e.g. `PIL` is the import name, but `pillow` is the distribution name)
>               distributions = PACKAGE_DISTRIBUTION_MAPPING[pkg_name]
E               KeyError: 'optimum.quanto'

src/transformers/utils/import_utils.py:56: KeyError

Here is to fix this.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kaixuanliu it shows 'optimum': ['optimum-quanto', 'optimum-onnx', 'optimum'], in PACKAGE_DISTRIBUTION_MAPPING, so we may need another logic to search optimum-quanto distribution in optimum package, rather than using your current logic, because the package actually there, just we find it in a wrong way in this case. @ydshieh , WDYT?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let me check ,thank you for explaining the issue.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In this PR, when we catch the keyError exception, it will load optimum-quanto in package = importlib.import_module(pkg_name), where pkg_name is optimum.quanto, and it can be imported properly.

None,
): "user\n\nDescribe the image.\nassistant\nThe image captures a vibrant night scene in a bustling Japanese city. A woman in a striking red dress",
}
).get_expectation()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pls use format: off and format: on, and the same format as other files, refer to

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pls also "follow the same format as other files", as I shared in above link, thx.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have updated. Is it OK now?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, thank you both!

"user\nWhat is relativity?\nassistant\nRelativity is a scientific theory that describes the relationship between space and time. It was first proposed by",
],
}
).get_expectation()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as above

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as above

@github-actions
Copy link
Contributor

[For maintainers] Suggested jobs to run (before merge)

run-slow: video_llama_3

@ydshieh
Copy link
Collaborator

ydshieh commented Oct 31, 2025

@kaixuanliu @yao-matrix Thank you.

I have currently some trouble to get a CI runner to check the _is_package_available issue. From our scheduled CI runs, there is no issue. Of course, it's likely depending on the sys. environment, but I don't want to merge this PR without being verified more deeply myself.

I am happy to merge the PR if you can revert this part of change, and open an issue for this _is_package_available. Don't forget to provide the env. details (transformers env and pip freeze). WDYT?

@ydshieh
Copy link
Collaborator

ydshieh commented Nov 1, 2025

run-slow: vit, clip

@github-actions
Copy link
Contributor

github-actions bot commented Nov 1, 2025

This comment contains run-slow, running the specified jobs:

models: ["models/clip", "models/vit"]
quantizations: []

@github-actions
Copy link
Contributor

github-actions bot commented Nov 1, 2025

CI Results

Workflow Run ⚙️

✅ No failing test specific to this PR 🎉 !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants