Fix Trainer() got multiple values for keyword argument 'callbacks'
Browse files
src/axolotl/utils/trainer.py
CHANGED
@@ -175,12 +175,16 @@ def setup_trainer(cfg, train_dataset, eval_dataset, model, tokenizer):
|
|
175 |
)
|
176 |
trainer_kwargs["optimizers"] = (optimizer, lr_scheduler)
|
177 |
|
|
|
178 |
# TODO on_save callback to sync checkpoints to GCP/AWS in background
|
179 |
if cfg.early_stopping_patience:
|
180 |
early_stop_cb = EarlyStoppingCallback(
|
181 |
cfg.early_stopping_patience,
|
182 |
)
|
183 |
-
|
|
|
|
|
|
|
184 |
|
185 |
data_collator_kwargs = {
|
186 |
"padding": True,
|
@@ -190,10 +194,6 @@ def setup_trainer(cfg, train_dataset, eval_dataset, model, tokenizer):
|
|
190 |
else:
|
191 |
data_collator_kwargs["pad_to_multiple_of"] = 8
|
192 |
|
193 |
-
callbacks = []
|
194 |
-
if cfg.adapter == 'lora':
|
195 |
-
callbacks.append(SavePeftModelCallback)
|
196 |
-
|
197 |
trainer = transformers.Trainer(
|
198 |
model=model,
|
199 |
train_dataset=train_dataset,
|
|
|
175 |
)
|
176 |
trainer_kwargs["optimizers"] = (optimizer, lr_scheduler)
|
177 |
|
178 |
+
callbacks = []
|
179 |
# TODO on_save callback to sync checkpoints to GCP/AWS in background
|
180 |
if cfg.early_stopping_patience:
|
181 |
early_stop_cb = EarlyStoppingCallback(
|
182 |
cfg.early_stopping_patience,
|
183 |
)
|
184 |
+
callbacks.append(early_stop_cb)
|
185 |
+
|
186 |
+
if cfg.local_rank == 0 and cfg.adapter == 'lora': # only save in rank 0
|
187 |
+
callbacks.append(SavePeftModelCallback)
|
188 |
|
189 |
data_collator_kwargs = {
|
190 |
"padding": True,
|
|
|
194 |
else:
|
195 |
data_collator_kwargs["pad_to_multiple_of"] = 8
|
196 |
|
|
|
|
|
|
|
|
|
197 |
trainer = transformers.Trainer(
|
198 |
model=model,
|
199 |
train_dataset=train_dataset,
|