fix: store embedding_learning_rate on self in UnslothTrainingArguments (#4531)

Fixes #4492

The embedding_learning_rate parameter was assigned to a local variable
instead of self.embedding_learning_rate, causing UnslothTrainer.create_optimizer()
to always get None via getattr and silently fall back to a single param group.

Bug: embedding_learning_rate = embedding_learning_rate (no-op)
Fix: self.embedding_learning_rate = embedding_learning_rate
This commit is contained in:
金黄色葡萄球君君 2026-03-24 12:08:29 +08:00 committed by GitHub
commit 2b330e2f24
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -132,8 +132,8 @@ except:
class UnslothTrainingArguments(TrainingArguments):
def __init__(self, embedding_learning_rate: float = None, *args, **kwargs):
embedding_learning_rate = embedding_learning_rate
super().__init__(*args, **kwargs)
self.embedding_learning_rate = embedding_learning_rate
def _create_unsloth_optimizer(