Skip to content

Commit

Permalink
support for DoRA w/ PEFT (#1363)
Browse files Browse the repository at this point in the history
  • Loading branch information
winglian committed Mar 6, 2024
1 parent 3765747 commit 0cfdb2c
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 2 deletions.
4 changes: 2 additions & 2 deletions requirements.txt
@@ -1,7 +1,7 @@
--extra-index-url https://huggingface.github.io/autogptq-index/whl/cu118/
packaging==23.2
peft @ git+https://github.com/huggingface/peft.git
transformers @ git+https://github.com/huggingface/transformers.git@ae49b218c3d718df90d8e4a109016450fb8f0632
peft==0.9.0
transformers==4.38.2
tokenizers==0.15.0
bitsandbytes>=0.41.1
accelerate==0.26.1
Expand Down
12 changes: 12 additions & 0 deletions src/axolotl/utils/config/models/input/v0_4_1/__init__.py
Expand Up @@ -178,6 +178,7 @@ class LoraConfig(BaseModel):
lora_dropout: Optional[float] = None
peft_layers_to_transform: Optional[List[int]] = None
peft: Optional[PeftConfig] = None
peft_use_dora: Optional[bool] = None

lora_on_cpu: Optional[bool] = None
gptq: Optional[bool] = None
Expand Down Expand Up @@ -233,6 +234,17 @@ def validate_qlora(self):
raise ValueError("Require cfg.load_in_4bit to be True for qlora")
return self

@model_validator(mode="before")
@classmethod
def validate_quantized_dora(cls, data):
if data.get("peft_use_dora") and (
data.get("load_in_8bit") or data.get("load_in_4bit")
):
raise ValueError(
"`peft_use_dora` is not currently compatible with quantized weights."
)
return data


class ReLoRAConfig(BaseModel):
"""ReLoRA configuration subset"""
Expand Down
2 changes: 2 additions & 0 deletions src/axolotl/utils/models.py
Expand Up @@ -830,6 +830,8 @@ def load_lora(model, cfg, inference=False, config_only=False):
if loftq_bits:
lora_config_kwargs["loftq_config"] = LoftQConfig(loftq_bits=loftq_bits)
lora_config_kwargs["init_lora_weights"] = "loftq"
if cfg.peft_use_dora:
lora_config_kwargs["use_dora"] = cfg.peft_use_dora

lora_config = LoraConfig(
r=cfg.lora_r,
Expand Down

0 comments on commit 0cfdb2c

Please sign in to comment.