소스 검색

model-conversion : add trust_remote_code for orig model run [no ci] (#16751)

This commit add the trust_remote_code=True argument when loading models
using AutoConfig, AutoTokenizer, and AutoModelForCausalLM for the run
original model script.

The motivation for this is that some models require custom code to be
loaded properly, and setting trust_remote_code=True avoids a prompt
asking for user confirmation:
```console
(venv) $ make causal-run-original-model
The repository /path/to/model contains custom code which must be
executed to correctly load the model. You can inspect the repository
content at /path/to/model.

Do you wish to run the custom code? [y/N] N
```

Having this as the default seems like a safe choice as we have to clone
or download the models we convert and would be expecting to run any
custom code they have.
Daniel Bevenius 2 달 전
부모
커밋
5a91109a5d
1개의 변경된 파일4개의 추가작업 그리고 4개의 파일을 삭제
  1. 4 4
      examples/model-conversion/scripts/causal/run-org-model.py

+ 4 - 4
examples/model-conversion/scripts/causal/run-org-model.py

@@ -138,7 +138,7 @@ if model_path is None:
         "Model path must be specified either via --model-path argument or MODEL_PATH environment variable"
         "Model path must be specified either via --model-path argument or MODEL_PATH environment variable"
     )
     )
 
 
-config = AutoConfig.from_pretrained(model_path)
+config = AutoConfig.from_pretrained(model_path, trust_remote_code=True)
 
 
 print("Model type:       ", config.model_type)
 print("Model type:       ", config.model_type)
 print("Vocab size:       ", config.vocab_size)
 print("Vocab size:       ", config.vocab_size)
@@ -148,8 +148,8 @@ print("BOS token id:     ", config.bos_token_id)
 print("EOS token id:     ", config.eos_token_id)
 print("EOS token id:     ", config.eos_token_id)
 
 
 print("Loading model and tokenizer using AutoTokenizer:", model_path)
 print("Loading model and tokenizer using AutoTokenizer:", model_path)
-tokenizer = AutoTokenizer.from_pretrained(model_path)
-config = AutoConfig.from_pretrained(model_path)
+tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
+config = AutoConfig.from_pretrained(model_path, trust_remote_code=True)
 
 
 if unreleased_model_name:
 if unreleased_model_name:
     model_name_lower = unreleased_model_name.lower()
     model_name_lower = unreleased_model_name.lower()
@@ -171,7 +171,7 @@ if unreleased_model_name:
         exit(1)
         exit(1)
 else:
 else:
     model = AutoModelForCausalLM.from_pretrained(
     model = AutoModelForCausalLM.from_pretrained(
-        model_path, device_map="auto", offload_folder="offload"
+        model_path, device_map="auto", offload_folder="offload", trust_remote_code=True
     )
     )
 
 
 for name, module in model.named_modules():
 for name, module in model.named_modules():