Fix Transformers 4.45 (#2151)
* Update pyproject.toml
* Update _utils.py
* Update _utils.py
* Update _utils.py
* Batch samples
* Update loader.py
* Update loader.py
* Update loader.py
* Update loader.py
* Update _utils.py
* Update loader.py
* Update vision.py
* Update loader.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update mapper.py
* Update vision.py
* Temporary patches
* Update loader.py
* model names
* Gemma 3 chat template
* Bug fixes
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update llama.py
* Update llama.py
* Update rl.py
* Update chat_templates.py
* Update chat_templates.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update loader.py
* Update vision.py
* Update vision.py
* Revert
* Update _utils.py
* forced precision
* Autocast
* Update vision.py
* Update vision.py
* Update rl.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update rl.py
* vLLM fixes
* constexpr
* Update vision.py
* Update vision.py
* Update vision.py
* Update rl.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update _utils.py
* Update _utils.py
* Update _utils.py
* Update _utils.py
* Update save.py
* New models
* Triton windows update (#1976)
* Update pyproject.toml
* Update README.md
* Update RMS LayerNorm implementation, and list compr. change in chat templates (#1974)
* Update RMS LayerNorm implementation with optimizations and testing suite
* perf: optimize list comprehension in get_ollama_eos_tokens
* Update Zoo
* Update llama.py
* Update llama.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update rl_replacements.py
* Update vision.py
* grpo fix
* Update rl_replacements.py
* Update vision.py
* Update rl_replacements.py
* Update vision.py
* Update mapper.py
* Update vision.py
* Update vision.py
* Update loader.py
* Update vision.py
* Update save.py
* Update save.py
* Update save.py
* Update rl.py
* Update _utils.py
* Version
* Update pyproject.toml
* Update llama.py
* Update llama.py
* bug fix #2008 (#2039)
* fix (#2051)
* Update loader.py
* Update pyproject.toml
* Update pyproject.toml
* Update vision.py
* more prints
* Update loader.py
* LoRA 16bit fix
* Update vision.py
* Update vision.py
* Update _utils.py
* Update vision.py
* move forced float32
* Update _utils.py
* Update _utils.py
* Update _utils.py
* Update _utils.py
* move print
* Update _utils.py
* disable bfloat16
* Fix forced float32
* move float32
* Ensure trust_remote_code propegates down to unsloth_compile_transformers (#2075)
* Update _utils.py
* Show both `peft_error` and `autoconfig_error`, not just `autoconfig_error` (#2080)
When loading a PEFT model fails, only the `autoconfig_error` is shown. Instead of the `peft_error`, which is what really matters when we're trying to load a PEFT adapter, the user will see something like this:
```
RuntimeError: Unrecognized model in my_model. Should have a `model_type` key in its config.json, or contain one of the following strings in its name: albert, align, altclip, ...
```
This PR just changes it so `autoconfig_error` and `peft_error` are both displayed.
* fix error message (#2046)
* Update vision.py
* Update _utils.py
* Update pyproject.toml
* Update __init__.py
* Update __init__.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update rl_replacements.py
* Update rl_replacements.py
* Update rl_replacements.py
* Update rl_replacements.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update rl_replacements.py
* Update vision.py
* Update rl_replacements.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Remove double generate patch
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update mapper.py
* Update vision.py
* fix: config.torch_dtype in LlamaModel_fast_forward_inference (#2091)
* fix: config.torch_dtype in LlamaModel_fast_forward_inference
* Update llama.py
* update for consistency
---------
Co-authored-by: Daniel Han <danielhanchen@gmail.com>
* versioning
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* model_type_arch
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update vision.py
* Update loader.py
* check
* Update _utils.py
* Update loader.py
* Update loader.py
* Remove prints
* Update _utils.py
* Update _utils.py
* versioning
* Update _utils.py
* Update _utils.py
* Update _utils.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update llama.py
* Update vision.py
* HF Transfer
* fix(utils): add missing importlib import to fix NameError (#2134)
This commit fixes a NameError that occurs when `importlib` is referenced in _utils.py
without being imported, especially when UNSLOTH_USE_MODELSCOPE=1 is enabled.
By adding the missing import statement, the code will no longer throw a NameError.
* Add QLoRA Train and Merge16bit Test (#2130)
* add reference and unsloth lora merging tests
* add test / dataset printing to test scripts
* allow running tests from repo root
* add qlora test readme
* more readme edits
* ruff formatting
* additional readme comments
* forgot to add actual tests
* add apache license
* Update pyproject.toml
---------
Co-authored-by: Akshay Behl <126911424+Captain-T2004@users.noreply.github.com>
Co-authored-by: Nino Risteski <95188570+NinoRisteski@users.noreply.github.com>
Co-authored-by: Mukkesh Ganesh <mukmckenzie@gmail.com>
Co-authored-by: Kareem <81531392+KareemMusleh@users.noreply.github.com>
Co-authored-by: Xander Hawthorne <167850078+CuppaXanax@users.noreply.github.com>
Co-authored-by: Isaac Breen <isaac.breen@icloud.com>
Co-authored-by: lurf21 <93976703+lurf21@users.noreply.github.com>
Co-authored-by: naliazheli <nalia0316@gmail.com>
Co-authored-by: jeromeku <jerome.ku@gmail.com>
2025-03-22 00:55:12 +00:00
|
|
|
# Copyright 2023-present Daniel Han-Chen & the Unsloth team. All rights reserved.
|
|
|
|
|
#
|
|
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
|
# you may not use this file except in compliance with the License.
|
|
|
|
|
# You may obtain a copy of the License at
|
|
|
|
|
#
|
|
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
#
|
|
|
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
|
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
|
# See the License for the specific language governing permissions and
|
|
|
|
|
# limitations under the License.
|
|
|
|
|
|
|
|
|
|
import time
|
|
|
|
|
from contextlib import contextmanager
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@contextmanager
|
|
|
|
|
def timer(name):
|
|
|
|
|
start = time.time()
|
|
|
|
|
yield
|
|
|
|
|
end = time.time()
|
|
|
|
|
print(f"{name} took {end - start:.2f} seconds")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@contextmanager
|
|
|
|
|
def header_footer_context(title: str, char="-"):
|
|
|
|
|
print()
|
|
|
|
|
print(f"{char}" * 50 + f" {title} " + f"{char}" * 50)
|
|
|
|
|
yield
|
|
|
|
|
print(f"{char}" * (100 + len(title) + 2))
|
|
|
|
|
print()
|