Commit graph

1,350 commits

Author SHA1 Message Date
Daniel Han
d71dfb1d01 Update rl_replacements.py 2025-06-21 22:20:32 -07:00
Daniel Han
3461b987fd Fix DAPO, TRL 0.19.0 2025-06-21 22:14:21 -07:00
simpissa
8a202d6175 Fix for grpo_compute_loss_slow (#2702)
* slice last logit

* move slicing
2025-06-21 21:58:06 -07:00
Daniel Han
447ce0fb4f Mistral Small 3.2 2025-06-21 06:44:14 -07:00
amrothemich
ca150bb27a Update pyproject.toml (#2778)
Switched pyproject license to dictionary type
2025-06-21 02:44:24 -07:00
Michael Han
2a200e739a Merge pull request #2780 from rolandtannous/fix/gemma3-grpo-self-llm
Fix AttributeError in GRPO trainer for models without llm attribute
2025-06-20 21:15:54 -07:00
Roland Tannous
8c563abb87 Fix Gemma3ForCausalLm does not have attribute self.llm 2025-06-21 01:07:32 +00:00
Roland Tannous
061f038ec7 Additional tests for unsloth-zoo PR#174 2025-06-21 00:22:00 +00:00
Daniel Han
1be2a6e90a Merge branch 'main' of https://github.com/unslothai/unsloth 2025-06-20 06:30:43 -07:00
Daniel Han
d8846ebdfd Update pyproject.toml 2025-06-20 06:30:35 -07:00
marcandrelarochelle
481292a96a Fix TRL 1.8.2 (#2774)
* Fix for TRL 1.8.2

Regex matching LLM initialization

* Update Regex
2025-06-20 06:28:58 -07:00
Daniel Han
e43babe76f Update __init__.py 2025-06-20 06:13:45 -07:00
Daniel Han
2e9724f279 Fix bugs 2025-06-20 06:09:03 -07:00
Datta Nimmaturi
b87ff3f528 Enable vLLM to share memory space (#2712)
* vLLM sleep once generation is done

* Make enable_sleep_model configurable

* Make default to false

Signed-off-by: datta0 <venkatadattasainimmaturi@gmail.com>

* Force standby under environment variable

---------

Signed-off-by: datta0 <venkatadattasainimmaturi@gmail.com>
2025-06-19 04:04:14 -07:00
Edd
a398484d0a Fix renaming on other model than Llama (#2762) 2025-06-18 13:38:36 -07:00
leopardracer
c6e0366e0d Fix Typos in Documentation and Comments (#2721)
* Update ocr_eval.md

* Update backward.py
2025-06-17 04:34:51 -07:00
pluesclues
440bbf5b52 Reward modeling update (There seems to be another patch) (#2710)
* Update llama.py, sequence_classifcaiton update

* Update llama.py, adapting to original commit

* Update llama.py, for seqeuence classifcation update

* Update llama.py, added transformer import

* Update llama.py, dealt with output weight

* Update llama.py, renamed it peft model fast forward

* Update llama.py, set up is classification varaiable

* Update llama.py, updated lora dict to initialize sequence classification object

* Update llama.py, gets model name correctly before Lora dict is initialized

* Update llama.py, Task_type_SEQ_CLS doesnt work but it does work with Task_type.CAUSAL_LM
2025-06-17 04:33:45 -07:00
Michael Han
ee76be7d58 Update issue templates
Adding Reddit link
2025-06-12 01:23:36 -07:00
Roland Tannous
efe2cc43a7 tests for additional merge fix unsloth zoo pr 163 (#2719)
* tests for additional merge fix unsloth zoo pr 163

* fixed load_dataset indent in mistral perplexity test file
2025-06-11 14:08:41 -07:00
Daniel Han
d535bf067e Versioning 2025-06-10 06:51:07 -07:00
user799595
19399e09f9 Making protobuf version more flexible (#2637)
* Making protobuf version more flexible

* Update pyproject.toml

* Update pyproject.toml

---------

Co-authored-by: Daniel Han <danielhanchen@gmail.com>
2025-06-10 04:13:25 -07:00
Daniel Han
af47cfb9a3 Update pyproject.toml 2025-06-10 04:04:25 -07:00
Lei Zhenyuan
fc78af6d76 add support for torch270 (#2709) 2025-06-10 03:59:15 -07:00
Daniel Han
16af0ceb8e versioning 2025-06-06 05:46:49 -07:00
Salpingopharyngeus
0012b13573 Ignore None to Subprocess_Commands (#2680)
Ignores none params when building the subprocess_command for vllm. As none values stop vllm from deploying properly, as --quantize will be passed with none if quantization type isn't specified in the model name.
2025-06-05 01:25:12 -07:00
DoubleMathew
aa50ef2862 Update prepare 4d causal attention call (#2678) 2025-06-04 12:58:50 -07:00
Daniel Han
8f465e21c5 Update rl.py 2025-06-03 00:07:52 -07:00
DoubleMathew
9bf691061d patch sft_trainer to favor max_seq_length over max_length in config (#2669) 2025-06-03 00:06:44 -07:00
DoubleMathew
90a4aacbf8 unsloth checkpointing fix for latest transformers==4.52.x (#2674) 2025-06-03 00:06:06 -07:00
Roland Tannous
58f3a6e29d reroute merge logic language models + comprehensive tests + eval kits (#2673) 2025-06-02 20:32:57 -07:00
RunFMe
332eabf309 Fix batched generation for prompts of different lengths (#2216)
* fix ignoring of attention mask after prefill stage in decoding

* update naming to avoid confusion

---------

Co-authored-by: Неизвестный Пользователь722497 <dolegosmirnov@sberbank.ru>
2025-06-02 03:59:10 -07:00
Michael Han
e76172c638 Merge pull request #2662 from Datta0/model_param_fix
Fix quant model param fetch regex
2025-06-01 04:19:12 -07:00
datta0
e8d6ede1fd Make replacement logic conscise 2025-06-01 05:57:43 +00:00
Michael Han
45a32bc599 Update issue templates 2025-05-31 14:38:55 -07:00
datta0
f2a8a437b4 Fix quant model param fetch regex 2025-05-31 18:52:46 +00:00
Daniel Han
03965930e7 DeepSeek R1 Qwen 2025-05-30 01:38:53 -07:00
Daniel Han
f9677b6cae Bug fixes (#2651)
* 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 README.md

typo

* 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

* Update vision.py

* Update vision.py

* Update vision.py

* Update vision.py

* Update loader.py

* Update loader.py

* Revert

* Update vision.py

* Update vision.py

* Update vision.py

* Update vision.py

* Update vision.py

* Bug fix

* Update mapper.py

* check SDPA for Mistral 3, Pixtral

* Update vision.py

* Versioning

* Update rl_replacements.py

* Update README.md

* add model registry

* move hf hub utils to unsloth/utils

* refactor global model info dicts to dataclasses

* fix dataclass init

* fix llama registration

* remove deprecated key function

* start registry reog

* add llama vision

* quant types -> Enum

* remap literal quant types to QuantType Enum

* add llama model registration

* fix quant tag mapping

* add qwen2.5 models to registry

* add option to include original model in registry

* handle quant types per model size

* separate registration of base and instruct llama3.2

* add QwenQVQ to registry

* add gemma3 to registry

* add phi

* add deepseek v3

* add deepseek r1 base

* add deepseek r1 zero

* add deepseek distill llama

* add deepseek distill models

* remove redundant code when constructing model names

* add mistral small to registry

* rename model registration methods

* rename deepseek registration methods

* refactor naming for mistral and phi

* add global register models

* refactor model registration tests for new registry apis

* add model search method

* remove deprecated registration api

* add quant type test

* add registry readme

* make llama registration more specific

* clear registry when executing individual model registration file

* more registry readme updates

* Update _auto_install.py

* Llama4

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Synthetic data

* Update mapper.py

* Xet and Synthetic

* Update synthetic.py

* Update loader.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update pyproject.toml

* Delete .gitignore

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update _utils.py

* Update pyproject.toml

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update chat_templates.py

* Seasame force float16 / float32

* Fix Seasame

* Update loader.py

* Update vision.py

* Update vision.py

* Update vision.py

* Update loader.py

* is_multimodal

* Update loader.py

* Update loader.py

* Update loader.py

* Update loader.py

* Update vision.py

* Update vision.py

* Update vision.py

* UNSLOTH_DISABLE_STATIC_GENERATION

* Update vision.py

* Auto vision detection

* Sesame

* Whisper

* Update loader.py

* Update loader.py

* Update loader.py

* Update mapper.py

* Update vision.py

* Update vision.py

* Update vision.py

* Update vision.py

* Update vision.py

* Update vision.py

* Update loader.py

* Update loader.py

* Update loader.py

* Update loader.py

* Update _utils.py

* Update rl.py

* versioning

* Update rl.py

* Update rl.py

* Update rl.py

* Update rl.py

* Update rl.py

* logging

* Update pyproject.toml

* Update rl.py

* versioning

* Update rl.py

* Update rl.py

---------

Co-authored-by: Jack Shi Wei Lun <87535974+jackswl@users.noreply.github.com>
Co-authored-by: naliazheli <nalia0316@gmail.com>
Co-authored-by: jeromeku <jerome.ku@gmail.com>
Co-authored-by: Michael Han <107991372+shimmyshimmer@users.noreply.github.com>
2025-05-29 09:59:29 -07:00
DoubleMathew
95452eed81 Fix SFTtraining for new trl (#2647)
* fix sft training with trl>0.15.2 with trl DataCollator

* Update fix to accomodate both trl and transformers DataCollatorForLanguageModeling
2025-05-28 11:55:48 -07:00
Daniel Han
623060ba29 Latest TRL, GRPO + Bug fixes (#2645)
* 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 README.md

typo

* 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

* Update vision.py

* Update vision.py

* Update vision.py

* Update vision.py

* Update loader.py

* Update loader.py

* Revert

* Update vision.py

* Update vision.py

* Update vision.py

* Update vision.py

* Update vision.py

* Bug fix

* Update mapper.py

* check SDPA for Mistral 3, Pixtral

* Update vision.py

* Versioning

* Update rl_replacements.py

* Update README.md

* add model registry

* move hf hub utils to unsloth/utils

* refactor global model info dicts to dataclasses

* fix dataclass init

* fix llama registration

* remove deprecated key function

* start registry reog

* add llama vision

* quant types -> Enum

* remap literal quant types to QuantType Enum

* add llama model registration

* fix quant tag mapping

* add qwen2.5 models to registry

* add option to include original model in registry

* handle quant types per model size

* separate registration of base and instruct llama3.2

* add QwenQVQ to registry

* add gemma3 to registry

* add phi

* add deepseek v3

* add deepseek r1 base

* add deepseek r1 zero

* add deepseek distill llama

* add deepseek distill models

* remove redundant code when constructing model names

* add mistral small to registry

* rename model registration methods

* rename deepseek registration methods

* refactor naming for mistral and phi

* add global register models

* refactor model registration tests for new registry apis

* add model search method

* remove deprecated registration api

* add quant type test

* add registry readme

* make llama registration more specific

* clear registry when executing individual model registration file

* more registry readme updates

* Update _auto_install.py

* Llama4

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Synthetic data

* Update mapper.py

* Xet and Synthetic

* Update synthetic.py

* Update loader.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update pyproject.toml

* Delete .gitignore

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update _utils.py

* Update pyproject.toml

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update synthetic.py

* Update chat_templates.py

* Seasame force float16 / float32

* Fix Seasame

* Update loader.py

* Update vision.py

* Update vision.py

* Update vision.py

* Update loader.py

* is_multimodal

* Update loader.py

* Update loader.py

* Update loader.py

* Update loader.py

* Update vision.py

* Update vision.py

* Update vision.py

* UNSLOTH_DISABLE_STATIC_GENERATION

* Update vision.py

* Auto vision detection

* Sesame

* Whisper

* Update loader.py

* Update loader.py

* Update loader.py

* Update mapper.py

* Update vision.py

* Update vision.py

* Update vision.py

* Update vision.py

* Update vision.py

* Update vision.py

* Update loader.py

* Update loader.py

* Update loader.py

* Update loader.py

* Update _utils.py

* Update rl.py

* versioning

* Update rl.py

* Update rl.py

* Update rl.py

* Update rl.py

* Update rl.py

* logging

* Update pyproject.toml

* Update rl.py

---------

Co-authored-by: Jack Shi Wei Lun <87535974+jackswl@users.noreply.github.com>
Co-authored-by: naliazheli <nalia0316@gmail.com>
Co-authored-by: jeromeku <jerome.ku@gmail.com>
Co-authored-by: Michael Han <107991372+shimmyshimmer@users.noreply.github.com>
2025-05-28 06:15:12 -07:00
Daniel Han
026ba8e678 Create LICENSE 2025-05-28 03:27:48 -07:00
jeromeku
0b5ac8f2ab Llama4 MoE Grouped GEMM (#2639)
* add llama4 reference layer

* add llama4 reference impl

* formatting
2025-05-28 03:26:35 -07:00
Premik
d8bf17959a Check the skip_prepare_dataset before accessing dataset fields. #2496 (#2633) 2025-05-28 03:23:59 -07:00
Michael Han
ce9e54755f Update README.md
Better Qwen3 notebook
2025-05-26 23:44:41 -07:00
Daniel Han
5327d1d36d Flash Attention whls 2025-05-26 22:48:46 -07:00
Datta Nimmaturi
811422bbb4 Upgrade trl fix (#2544)
* Update llama.py making set and reset functions in order to properly use autoSequenceClassification

* Update fast_lora.py, added mixed precising pytorch autocasting

* Update llama.py did not included rotary embeddings in the reset functions correctly

* Update rl.py: correct get reward model added as well as the eval step stuff

* Update rl.py removed function that did not need to be patched

* Update llama.py: kept reset functions and made their names generic

* Update fast_lora.py

* Update rl.py, try except

* Update fast_lora.py, removing downcasting stuff

* Update llama.py removed depircate LLamaLinearScalingRotaryEmbedding

* Update rl.py for VLLM RLOO and PPO

* Update rl.py reverted

* Update rl.py with peft cahnges

* Update rl.py, disabling adapters screws inference up

* Update rl.py getting PPO support

* Update rl.py cleanup

* Update rl.py cleaned up not useful commented code

* Update llama.py, enabled new flag, keep padding

* Upgrade trl fix

Signed-off-by: Dattu Sharma <venkatadattasainimmaturi@gmail.com>

* Update rl.py made changes relative to the review

* Revert accidental patch block for non grpo

Signed-off-by: Dattu Sharma <venkatadattasainimmaturi@gmail.com>

* Fixup sampling params issue

* Fix rl.py regex

Signed-off-by: Dattu Sharma <venkatadattasainimmaturi@gmail.com>

* loss type: grpo, drgrpo and bnpo

Signed-off-by: Dattu Sharma <venkatadattasainimmaturi@gmail.com>

* Add trl version check for vllm colocate mode for RL trainers

* Update rl.py

For TRL 0.18.0 (Main branch of TRL at the time because its on 0.17.0) , the SFT trainer for some reason deletes the labels column and unsloth internal loss funcitons need that column for hte claculations so I add it back in like this.

* Update llama.py, merge it to be dattas llama version

* Update rl.py, sft changes to get 0.18.0 to be working

* Update rl_replacements.py, added hidden state stuff

* Update rl_replacements.py

* Update rl_replacements.py

* Update rl_replacements.py, rechanged the accumlated loss

* Fixup num_iterations>1 for grpo

Signed-off-by: datta0 <venkatadattasainimmaturi@gmail.com>

* Update rl_replacements.py

* no unnecessary logits upcast. fix naming

Signed-off-by: datta0 <venkatadattasainimmaturi@gmail.com>

* Update rl_replacements.py returned hidden states from logprobs

* Update rl_replacements.py removed debug logic

* Update rl_replacements.py, should be fine now

* Update rl_replacements.py, should take new args for GRPO trainer

* Update rl_replacements.py, made it compatible with trl 0.15.2

* Update rl_replacements.py, fixed typo in per tokne-Logps

---------

Signed-off-by: Dattu Sharma <venkatadattasainimmaturi@gmail.com>
Signed-off-by: datta0 <venkatadattasainimmaturi@gmail.com>
Co-authored-by: pluesclues <136766175+pluesclues@users.noreply.github.com>
2025-05-26 17:20:57 -07:00
Daniel Han
a66f3f4cda Colocate vLLM 2025-05-26 00:37:04 -07:00
Michael Han
1f4e74cb96 Update README.md 2025-05-25 03:35:43 -07:00
Quentin Gallouédec
ce5c2d2145 Remove dataset_text_field from SFTConfig (#2609) 2025-05-25 03:20:16 -07:00
Richi
f6c4be39b7 add: path checking for failed llama cpp builds (#2603) 2025-05-25 03:18:07 -07:00
Daniel Han
dd43200718 Devstral, MedGemma 2025-05-21 07:35:36 -07:00