|
|
@@ -114,10 +114,7 @@ class VisionEngine(BaseEngine):
|
|
|
hf_dataset = HFDataset.from_list(data)
|
|
|
hf_dataset.set_transform(transform)
|
|
|
|
|
|
- self._model = get_peft_model(self._model, peft_config)
|
|
|
- self._model.print_trainable_parameters()
|
|
|
-
|
|
|
- output_dir = str(settings.adapters_dir / job_id)
|
|
|
+ # 计算总步数(AdaLoRA 需要在 get_peft_model 之前设置 total_step)
|
|
|
epochs = training_args.get("epochs", 3)
|
|
|
batch_size = training_args.get("batch_size", 4)
|
|
|
learning_rate = training_args.get("learning_rate", 2e-4)
|
|
|
@@ -125,6 +122,15 @@ class VisionEngine(BaseEngine):
|
|
|
dataset_len = len(hf_dataset)
|
|
|
max_steps = max(1, (dataset_len * epochs) // batch_size)
|
|
|
|
|
|
+ from peft import AdaLoraConfig
|
|
|
+ if isinstance(peft_config, AdaLoraConfig):
|
|
|
+ peft_config.total_step = max_steps
|
|
|
+
|
|
|
+ self._model = get_peft_model(self._model, peft_config)
|
|
|
+ self._model.print_trainable_parameters()
|
|
|
+
|
|
|
+ output_dir = str(settings.adapters_dir / job_id)
|
|
|
+
|
|
|
tr_args = TrainingArguments(
|
|
|
output_dir=output_dir,
|
|
|
num_train_epochs=epochs,
|