Skip to content

Nightly#3753

Merged
danielhanchen merged 60 commits intomainfrom
nightly
Dec 20, 2025
Merged

Nightly#3753
danielhanchen merged 60 commits intomainfrom
nightly

Conversation

@danielhanchen
Copy link
Copy Markdown
Contributor

No description provided.

danielhanchen and others added 30 commits December 9, 2025 01:02
* Fix get_input_embeds call for VLMs

* patch input_require_grads instead

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* cleanup old patch

* cleanup old patch

* cleanup

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Apply suggestion from @danielhanchen

* use logger instead of prints

* Move unsloth present set

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Daniel Han <danielhanchen@gmail.com>
danielhanchen and others added 27 commits December 16, 2025 19:49
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* Silence fbgemm TMA print

Also safer .push_to_hub

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* login on token

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* cleanup old code

* safer imports

* cleanup

* Return token after login

* correct return types

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Apply suggestion from @danielhanchen

* add back imports

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* finish return token

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Daniel Han <danielhanchen@gmail.com>
* Do not overwrite slots

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @danielhanchen, 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 significantly refactors the Hugging Face authentication process within the Unsloth library. By introducing a dedicated hf_login utility function, it centralizes the logic for token retrieval and login attempts. This change enhances code consistency, improves maintainability, and simplifies future updates related to Hugging Face integration across different model loading components.

Highlights

  • Centralized Hugging Face Login: A new utility function, hf_login, has been introduced in unsloth/models/_utils.py to encapsulate the logic for retrieving Hugging Face tokens and performing login.
  • Code Refactoring: Existing scattered calls to huggingface_hub.get_token() and huggingface_hub.login() have been replaced with the new hf_login function across various from_pretrained methods in unsloth/models/llama.py, unsloth/models/loader.py, and unsloth/models/vision.py.
  • Minor Optimization: The __slots__ attribute has been removed from the HidePrintMessage class in unsloth/import_fixes.py.

🧠 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.

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
Copy Markdown
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 refactors the Hugging Face login logic into a new utility function hf_login in unsloth/models/_utils.py. This change centralizes the login process and removes duplicated code from several files, which is a good improvement for maintainability.

My review includes two suggestions:

  1. In unsloth/import_fixes.py, I recommend re-adding __slots__ to the HidePrintMessage class for memory optimization.
  2. In unsloth/models/_utils.py, I suggest replacing a bare except: with a more specific exception to improve error handling robustness.

Overall, this is a positive refactoring with minor areas for improvement.

@@ -72,8 +72,6 @@ def filter(self, x):


class HidePrintMessage:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The __slots__ attribute was removed from the HidePrintMessage class. Using __slots__ is a good practice for memory optimization, especially for classes that are instantiated many times. Since this class has a fixed set of attributes (_original_stream, _hidden_texts), reintroducing __slots__ would be beneficial for performance by preventing the creation of __dict__ for each instance.

class HidePrintMessage:
    __slots__ = ("_original_stream", "_hidden_texts")

token = get_token()
if token is None:
return None
except:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

Using a bare except: is generally discouraged as it can catch unexpected errors like SystemExit or KeyboardInterrupt, making the program harder to debug and control. It's better to catch a more specific exception, like Exception, or even more specific ones like ImportError or huggingface_hub.utils.HfHubError if applicable.

Suggested change
except:
except Exception:

@danielhanchen danielhanchen merged commit 20adb44 into main Dec 20, 2025
4 checks passed
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.

2 participants