LLM: fix loss error on Arc (#9550)
This commit is contained in:
		
							parent
							
								
									65121c7997
								
							
						
					
					
						commit
						4ff2ca9d0d
					
				
					 3 changed files with 6 additions and 8 deletions
				
			
		| 
						 | 
					@ -51,8 +51,7 @@ import intel_extension_for_pytorch as ipex
 | 
				
			||||||
from bigdl.llm.transformers import AutoModelForCausalLM
 | 
					from bigdl.llm.transformers import AutoModelForCausalLM
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# import them from bigdl.llm.transformers.qlora to get a BigDL-LLM compatible Peft model
 | 
					# import them from bigdl.llm.transformers.qlora to get a BigDL-LLM compatible Peft model
 | 
				
			||||||
from bigdl.llm.transformers.qlora import get_peft_model, prepare_model_for_kbit_training,\
 | 
					from bigdl.llm.transformers.qlora import get_peft_model, prepare_model_for_kbit_training
 | 
				
			||||||
    cast_lora_weight
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
def get_int_from_env(env_keys, default):
 | 
					def get_int_from_env(env_keys, default):
 | 
				
			||||||
    """Returns the first positive env value found in the `env_keys` list or the default."""
 | 
					    """Returns the first positive env value found in the `env_keys` list or the default."""
 | 
				
			||||||
| 
						 | 
					@ -283,9 +282,6 @@ def train(
 | 
				
			||||||
    #     model.is_parallelizable = True
 | 
					    #     model.is_parallelizable = True
 | 
				
			||||||
    #     model.model_parallel = True
 | 
					    #     model.model_parallel = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if bf16:
 | 
					 | 
				
			||||||
        cast_lora_weight(model, torch.bfloat16)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    trainer = transformers.Trainer(
 | 
					    trainer = transformers.Trainer(
 | 
				
			||||||
        model=model,
 | 
					        model=model,
 | 
				
			||||||
        train_dataset=train_data,
 | 
					        train_dataset=train_data,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -21,8 +21,7 @@ import transformers
 | 
				
			||||||
from transformers import LlamaTokenizer
 | 
					from transformers import LlamaTokenizer
 | 
				
			||||||
from peft import LoraConfig
 | 
					from peft import LoraConfig
 | 
				
			||||||
import intel_extension_for_pytorch as ipex
 | 
					import intel_extension_for_pytorch as ipex
 | 
				
			||||||
from bigdl.llm.transformers.qlora import get_peft_model, prepare_model_for_kbit_training, \
 | 
					from bigdl.llm.transformers.qlora import get_peft_model, prepare_model_for_kbit_training
 | 
				
			||||||
    cast_lora_weight
 | 
					 | 
				
			||||||
from bigdl.llm.transformers import AutoModelForCausalLM
 | 
					from bigdl.llm.transformers import AutoModelForCausalLM
 | 
				
			||||||
from datasets import load_dataset
 | 
					from datasets import load_dataset
 | 
				
			||||||
import argparse
 | 
					import argparse
 | 
				
			||||||
| 
						 | 
					@ -61,7 +60,6 @@ if __name__ == "__main__":
 | 
				
			||||||
        task_type="CAUSAL_LM"
 | 
					        task_type="CAUSAL_LM"
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
    model = get_peft_model(model, config)
 | 
					    model = get_peft_model(model, config)
 | 
				
			||||||
    cast_lora_weight(model, torch.bfloat16)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    tokenizer.pad_token_id = 0
 | 
					    tokenizer.pad_token_id = 0
 | 
				
			||||||
    tokenizer.padding_side = "left"
 | 
					    tokenizer.padding_side = "left"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -152,6 +152,10 @@ def get_peft_model(*args, **kwargs):
 | 
				
			||||||
    finally:
 | 
					    finally:
 | 
				
			||||||
        LoraModel._create_new_module = old_create_new_module
 | 
					        LoraModel._create_new_module = old_create_new_module
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if model.device.type == "xpu":
 | 
				
			||||||
 | 
					        cast_lora_weight(model, torch.bfloat16)
 | 
				
			||||||
 | 
					        torch.xpu.synchronize()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return model
 | 
					    return model
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue