Stability-AI / StableLM

StableLM: Stability AI Language Models
Apache License 2.0
15.85k stars 1.04k forks source link

Target modules ['query_key_value', 'dense', 'dense_h_to_4h', 'dense_4h_to_h'] not found in the base model. Please check the target modules and try again. #98

Closed andysingal closed 9 months ago

andysingal commented 11 months ago

I was trying:

!pip install -Uqqq pip --progress-bar off
!pip install -qqq bitsandbytes==0.40.2 --progress-bar off
!pip install -q torch==2.0.1+cu118 torchvision==0.15.2+cu118 torchaudio==2.0.2+cu118 torchtext==0.15.2 torchdata==0.6.1 --extra-index-url https://download.pytorch.org/whl/cu118 -U
!pip install -qqq -U git+https://github.com/huggingface/transformers.git@e03a9cc --progress-bar off
!pip install -qqq -U peft==0.4.0 --progress-bar off
!pip install -qqq -U git+https://github.com/huggingface/accelerate.git@c9fbb71 --progress-bar off
!pip install -qqq datasets==2.12.0 --progress-bar off
!pip install -qqq loralib==0.1.1 --progress-bar off
!pip install -qqq einops==0.6.1 --progress-bar off
!pip install accelerate==0.21.0 --progress-bar off
MODEL_NAME = "TheBloke/stable-vicuna-13B-HF"

tokenizer = LlamaTokenizer.from_pretrained(MODEL_NAME)

model = LlamaForCausalLM.from_pretrained(
    MODEL_NAME,
    torch_dtype=torch.float16,
    load_in_8bit=True,
    device_map="auto",
    offload_folder="./cache"
)
def print_trainable_parameters(model):
    """
    Prints the number of trainable parameters in the model.
    """
    trainable_params = 0
    all_param = 0
    for _, param in model.named_parameters():
        all_param += param.numel()
        if param.requires_grad:
            trainable_params += param.numel()
    print(
        f"trainable params: {trainable_params} || all params: {all_param} || trainable%: {100 * trainable_params / all_param}"
    )

lora_config = LoraConfig( r=16, lora_alpha=32, target_modules=[ "query_key_value", "dense", "dense_h_to_4h", "dense_4h_to_h", ], lora_dropout=0.05, bias="none", task_type="CAUSAL_LM" )

gave error:

ValueError Traceback (most recent call last) Cell In[24], line 15 1 lora_config = LoraConfig( 2 r=16, 3 lora_alpha=32, (...) 12 task_type="CAUSAL_LM" 13 ) ---> 15 model = get_peft_model(model, lora_config) 16 print_trainable_parameters(model)

File /opt/conda/lib/python3.10/site-packages/peft/mapping.py:98, in get_peft_model(model, peft_config, adapter_name) 96 if isinstance(peft_config, PromptLearningConfig): 97 peft_config = _prepare_prompt_learning_config(peft_config, model_config) ---> 98 return MODEL_TYPE_TO_PEFT_MODEL_MAPPING[peft_config.task_type](model, peft_config, adapter_name=adapter_name)

File /opt/conda/lib/python3.10/site-packages/peft/peft_model.py:893, in PeftModelForCausalLM.init(self, model, peft_config, adapter_name) 892 def init(self, model, peft_config: PeftConfig, adapter_name="default"): --> 893 super().init(model, peft_config, adapter_name) 894 self.base_model_prepare_inputs_for_generation = self.base_model.prepare_inputs_for_generation

File /opt/conda/lib/python3.10/site-packages/peft/peft_model.py:112, in PeftModel.init(self, model, peft_config, adapter_name) 110 if not isinstance(peft_config, PromptLearningConfig): 111 self.peft_config[adapter_name] = peft_config --> 112 self.base_model = PEFT_TYPE_TO_MODEL_MAPPING[peft_config.peft_type]( 113 self.base_model, self.peft_config, adapter_name 114 ) 115 self.set_additional_trainable_modules(peft_config, adapter_name) 116 else:

File /opt/conda/lib/python3.10/site-packages/peft/tuners/lora.py:180, in LoraModel.init(self, model, config, adapter_name) 178 self.forward = self.model.forward 179 self.peft_config = config --> 180 self.add_adapter(adapter_name, self.peft_config[adapter_name]) 182 # transformers models have a .config attribute, whose presence is assumed later on 183 if not hasattr(self, "config"):

File /opt/conda/lib/python3.10/site-packages/peft/tuners/lora.py:194, in LoraModel.add_adapter(self, adapter_name, config) 192 config = self._prepare_lora_config(config, model_config) 193 self.peft_config[adapter_name] = config --> 194 self._find_and_replace(adapter_name) 195 if len(self.peft_config) > 1 and self.peft_config[adapter_name].bias != "none": 196 raise ValueError( 197 "LoraModel supports only 1 adapter with bias. When using multiple adapters, set bias to 'none' for all adapters." 198 )

File /opt/conda/lib/python3.10/site-packages/peft/tuners/lora.py:356, in LoraModel._find_and_replace(self, adapter_name) 353 self._replace_module(parent, target_name, new_module, target) 355 if not is_target_modules_in_base_model: --> 356 raise ValueError( 357 f"Target modules {lora_config.target_modules} not found in the base model. " 358 f"Please check the target modules and try again." 359 )

ValueError: Target modules ['query_key_value', 'dense', 'dense_h_to_4h', 'dense_4h_to_h'] not found in the base model. Please check the target modules and try again.

kbulutozler commented 9 months ago

is there any update on this?

mcmonkey4eva commented 9 months ago

StableLM is not a LLaMA model