Closed linpeisensh closed 4 months ago
@linpeisensh hi, to continue to finetune a model, you can specify pretrained_model_path
or pretrained_lora_path
:
1) For non-lora: AnglE.from_pretrained(backbone_name_or_path, pretrained_model_path='your_model', ...) 2) For lora: AnglE.from_pretrained(backbone_name_or_path, pretrained_lora_path='your_model', ...)
It is recommended to follow train_cli.py to set up your custom training.
Here is my train_lora.py:
When I run this code to finetune with the first finetune model, this error occurs: INFO:AnglE:lora_config={'task_type': <TaskType.FEATURE_EXTRACTION: 'FEATURE_EXTRACTION'>, 'r': 32, 'lora_alpha': 32, 'lora_dropout': 0.1} INFO:AnglE:lora target modules=['base_layer', 'default'] INFO:peft.tuners.tuners_utils:Already found a
angle = AnglE.from_pretrained(model_path, max_length=50, pooling_strategy='cls', apply_lora=True, load_kbit=4, train_mode=True).cuda() #
peft_config
attribute in the model. This will lead to having multiple adapters in the model. Make sure to know what you are doing! Traceback (most recent call last): File "/mnt/bd/mlx-bytedrive-1378-622c9164/llm/uae/train_lora.py", line 22, inFile "/mnt/bd/mlx-bytedrive-1378-622c9164/llm/venv/lib/python3.9/site-packages/angle_emb/angle.py", line 847, in from_pretrained angle = AnglE(model_name_or_path, File "/mnt/bd/mlx-bytedrive-1378-622c9164/llm/venv/lib/python3.9/site-packages/angle_emb/angle.py", line 772, in init model = get_peft_model(model, peft_config) File "/mnt/bd/mlx-bytedrive-1378-622c9164/llm/venv/lib/python3.9/site-packages/peft/mapping.py", line 133, in get_peft_model return MODEL_TYPE_TO_PEFT_MODEL_MAPPING[peft_config.task_type](model, peft_config, adapter_name=adapter_name) File "/mnt/bd/mlx-bytedrive-1378-622c9164/llm/venv/lib/python3.9/site-packages/peft/peft_model.py", line 1835, in init super().init(model, peft_config, adapter_name) File "/mnt/bd/mlx-bytedrive-1378-622c9164/llm/venv/lib/python3.9/site-packages/peft/peft_model.py", line 125, in init self.base_model = cls(model, {adapter_name: peft_config}, adapter_name) File "/mnt/bd/mlx-bytedrive-1378-622c9164/llm/venv/lib/python3.9/site-packages/peft/tuners/lora/model.py", line 111, in init super().init(model, config, adapter_name) File "/mnt/bd/mlx-bytedrive-1378-622c9164/llm/venv/lib/python3.9/site-packages/peft/tuners/tuners_utils.py", line 90, in init self.inject_adapter(self.model, adapter_name) File "/mnt/bd/mlx-bytedrive-1378-622c9164/llm/venv/lib/python3.9/site-packages/peft/tuners/tuners_utils.py", line 247, in inject_adapter self._create_and_replace(peft_config, adapter_name, target, target_name, parent, optional_kwargs) File "/mnt/bd/mlx-bytedrive-1378-622c9164/llm/venv/lib/python3.9/site-packages/peft/tuners/lora/model.py", line 202, in _create_and_replace new_module = self._create_new_module(lora_config, adapter_name, target, kwargs) File "/mnt/bd/mlx-bytedrive-1378-622c9164/llm/venv/lib/python3.9/site-packages/peft/tuners/lora/model.py", line 355, in _create_new_module raise ValueError( ValueError: Target module Dropout(p=0.1, inplace=False) is not supported. Currently, only the following modules are supported:
torch.nn.Linear
,torch.nn.Embedding
,torch.nn.Conv2d
,transformers.pytorch_utils.Conv1D
.If I load model with
angle = AnglE.from_pretrained(model_path, max_length=50, pooling_strategy='cls', train_mode=True).cuda()
Then this error occus: RuntimeError: element 0 of tensors does not require grad and does not have a grad_fnWhat should I do to finetune my finetuned adapter(peft) model again? Thanks!