Skip to content

[Tests] Skip lm_head embedding test#2352

Closed
kylesayrs wants to merge 1 commit intomainfrom
kylesayrs/tests-skip-lm-head-quant-for-now
Closed

[Tests] Skip lm_head embedding test#2352
kylesayrs wants to merge 1 commit intomainfrom
kylesayrs/tests-skip-lm-head-quant-for-now

Conversation

@kylesayrs
Copy link
Collaborator

No description provided.

Signed-off-by: Kyle Sayers <kylesayrs@gmail.com>
@github-actions
Copy link

👋 Hi! Thank you for contributing to llm-compressor. Please add the ready label when the PR is ready for review.

Note: This is required to complete the testing suite, please only add the label once the PR is code complete and local testing has been performed.

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @kylesayrs, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request implements a temporary workaround in the test suite to address an issue where the lm_head.weight tensor, when quantized, does not precisely match after model reload. By skipping the exact equality assertion for this specific tensor, the test can pass while a more robust solution for handling quantized embeddings during saving and loading is developed.

Highlights

  • Test Skipping: Introduced a conditional skip for the lm_head.weight tensor during the test_quant_model_reload assertion. This temporarily bypasses an exact match check for this specific weight.
  • Temporary Fix: Added comments indicating that this skip is a temporary measure, noting that the embedding is quantized and a proper fix involving save context is needed.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • tests/llmcompressor/transformers/compression/test_compress_tensor_utils.py
    • Added a conditional continue statement to skip the assertion for lm_head.weight.
    • Included comments explaining the temporary nature of the skip and the underlying issue with quantized embeddings.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request skips the lm_head.weight comparison in the test_quant_model_reload test, which is a reasonable temporary measure to address a failing test, as indicated by the TODO comment. My review includes a suggestion to make the test more robust by dynamically identifying the language model head's weight key instead of hardcoding it. This will improve maintainability and resilience to model architecture changes.

# Skip LM Head weight for now
# Note that the embedding is quantized
# TODO(@kylesayrs): this is a manifestation not using proper save context
if key == "lm_head.weight":
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

Hardcoding "lm_head.weight" makes this test brittle and dependent on the specific model's architecture. To make it more robust, consider dynamically identifying the output embedding layer's weight key.

You could achieve this by adding the following logic before the loop:

lm_head_key = None
if hasattr(model, "get_output_embeddings"):
    output_embeddings = model.get_output_embeddings()
    if output_embeddings is not None and hasattr(output_embeddings, "weight"):
        for name, param in model.named_parameters():
            if param is output_embeddings.weight:
                lm_head_key = name
                break

And then using lm_head_key in the comparison:

if key == lm_head_key:
    continue

This would make the test more resilient to changes in the model architecture or if other models are used in this test in the future.

@kylesayrs
Copy link
Collaborator Author

Better fix by #2362

@kylesayrs kylesayrs closed this Feb 13, 2026
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.

1 participant