Fix LoRA tokenizer for Llama and chatglm (#11186)
* Set pad_token to eos_token if it's None. Otherwise, use model config.
This commit is contained in:
parent
3eb13ccd8c
commit
15a6205790
4 changed files with 14 additions and 15 deletions
|
|
@ -39,7 +39,7 @@ import transformers
|
||||||
from datasets import load_dataset
|
from datasets import load_dataset
|
||||||
import accelerate
|
import accelerate
|
||||||
|
|
||||||
from transformers import LlamaTokenizer
|
from transformers import AutoTokenizer
|
||||||
from peft import (
|
from peft import (
|
||||||
get_peft_model_state_dict,
|
get_peft_model_state_dict,
|
||||||
set_peft_model_state_dict,
|
set_peft_model_state_dict,
|
||||||
|
|
@ -198,13 +198,12 @@ def train(
|
||||||
model = model.to("cpu")
|
model = model.to("cpu")
|
||||||
print(f"Model moved to rank {os.environ.get('LOCAL_RANK')}")
|
print(f"Model moved to rank {os.environ.get('LOCAL_RANK')}")
|
||||||
|
|
||||||
tokenizer = LlamaTokenizer.from_pretrained(base_model)
|
tokenizer = AutoTokenizer.from_pretrained(base_model)
|
||||||
print(f"Tokenizer loaded on rank {os.environ.get('LOCAL_RANK')}")
|
print(f"Tokenizer loaded on rank {os.environ.get('LOCAL_RANK')}")
|
||||||
|
|
||||||
tokenizer.pad_token_id = (
|
# For Llama family
|
||||||
0 # unk. we want this to be different from the eos token
|
if tokenizer.pad_token is None:
|
||||||
)
|
tokenizer.pad_token = tokenizer.eos_token
|
||||||
tokenizer.padding_side = "left" # Allow batched inference
|
|
||||||
|
|
||||||
print(model)
|
print(model)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -180,10 +180,9 @@ def train(
|
||||||
tokenizer = AutoTokenizer.from_pretrained(base_model, trust_remote_code=True)
|
tokenizer = AutoTokenizer.from_pretrained(base_model, trust_remote_code=True)
|
||||||
print(f"Tokenizer loaded on rank {os.environ.get('LOCAL_RANK')}")
|
print(f"Tokenizer loaded on rank {os.environ.get('LOCAL_RANK')}")
|
||||||
|
|
||||||
tokenizer.pad_token_id = (
|
# For Llama family
|
||||||
0 # unk. we want this to be different from the eos token
|
if tokenizer.pad_token is None:
|
||||||
)
|
tokenizer.pad_token = tokenizer.eos_token
|
||||||
tokenizer.padding_side = "left" # Allow batched inference
|
|
||||||
|
|
||||||
print(model)
|
print(model)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -192,11 +192,9 @@ def train(
|
||||||
tokenizer = AutoTokenizer.from_pretrained(base_model, trust_remote_code=True)
|
tokenizer = AutoTokenizer.from_pretrained(base_model, trust_remote_code=True)
|
||||||
print(f"Tokenizer loaded on rank {os.environ.get('LOCAL_RANK')}")
|
print(f"Tokenizer loaded on rank {os.environ.get('LOCAL_RANK')}")
|
||||||
|
|
||||||
tokenizer.pad_token_id = (
|
# For Llama family
|
||||||
0 # unk. we want this to be different from the eos token
|
if tokenizer.pad_token is None:
|
||||||
)
|
tokenizer.pad_token = tokenizer.eos_token
|
||||||
tokenizer.padding_side = "left" # Allow batched inference
|
|
||||||
|
|
||||||
print(model)
|
print(model)
|
||||||
|
|
||||||
# Prepare a IPEX-LLM compatible Peft model
|
# Prepare a IPEX-LLM compatible Peft model
|
||||||
|
|
|
||||||
|
|
@ -192,6 +192,9 @@ def train(
|
||||||
|
|
||||||
tokenizer = AutoTokenizer.from_pretrained(base_model, trust_remote_code=True)
|
tokenizer = AutoTokenizer.from_pretrained(base_model, trust_remote_code=True)
|
||||||
print(f"Tokenizer loaded on rank {os.environ.get('LOCAL_RANK')}")
|
print(f"Tokenizer loaded on rank {os.environ.get('LOCAL_RANK')}")
|
||||||
|
# For Llama family
|
||||||
|
if tokenizer.pad_token is None:
|
||||||
|
tokenizer.pad_token = tokenizer.eos_token
|
||||||
print(model)
|
print(model)
|
||||||
|
|
||||||
# Prepare a IPEX-LLM compatible Peft model
|
# Prepare a IPEX-LLM compatible Peft model
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue