Skip to content

Commit 15a6205

Browse files
authored
Fix LoRA tokenizer for Llama and chatglm (#11186)
* Set pad_token to eos_token if it's None. Otherwise, use model config.
1 parent 3eb13cc commit 15a6205

File tree

4 files changed

+14
-15
lines changed

4 files changed

+14
-15
lines changed

python/llm/example/CPU/QLoRA-FineTuning/alpaca-qlora/alpaca_qlora_finetuning_cpu.py

+5-6
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
from datasets import load_dataset
4040
import accelerate
4141

42-
from transformers import LlamaTokenizer
42+
from transformers import AutoTokenizer
4343
from peft import (
4444
get_peft_model_state_dict,
4545
set_peft_model_state_dict,
@@ -198,13 +198,12 @@ def train(
198198
model = model.to("cpu")
199199
print(f"Model moved to rank {os.environ.get('LOCAL_RANK')}")
200200

201-
tokenizer = LlamaTokenizer.from_pretrained(base_model)
201+
tokenizer = AutoTokenizer.from_pretrained(base_model)
202202
print(f"Tokenizer loaded on rank {os.environ.get('LOCAL_RANK')}")
203203

204-
tokenizer.pad_token_id = (
205-
0 # unk. we want this to be different from the eos token
206-
)
207-
tokenizer.padding_side = "left" # Allow batched inference
204+
# For Llama family
205+
if tokenizer.pad_token is None:
206+
tokenizer.pad_token = tokenizer.eos_token
208207

209208
print(model)
210209

python/llm/example/GPU/LLM-Finetuning/LoRA/alpaca_lora_finetuning.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -180,10 +180,9 @@ def train(
180180
tokenizer = AutoTokenizer.from_pretrained(base_model, trust_remote_code=True)
181181
print(f"Tokenizer loaded on rank {os.environ.get('LOCAL_RANK')}")
182182

183-
tokenizer.pad_token_id = (
184-
0 # unk. we want this to be different from the eos token
185-
)
186-
tokenizer.padding_side = "left" # Allow batched inference
183+
# For Llama family
184+
if tokenizer.pad_token is None:
185+
tokenizer.pad_token = tokenizer.eos_token
187186

188187
print(model)
189188

python/llm/example/GPU/LLM-Finetuning/QA-LoRA/alpaca_qalora_finetuning.py

+3-5
Original file line numberDiff line numberDiff line change
@@ -192,11 +192,9 @@ def train(
192192
tokenizer = AutoTokenizer.from_pretrained(base_model, trust_remote_code=True)
193193
print(f"Tokenizer loaded on rank {os.environ.get('LOCAL_RANK')}")
194194

195-
tokenizer.pad_token_id = (
196-
0 # unk. we want this to be different from the eos token
197-
)
198-
tokenizer.padding_side = "left" # Allow batched inference
199-
195+
# For Llama family
196+
if tokenizer.pad_token is None:
197+
tokenizer.pad_token = tokenizer.eos_token
200198
print(model)
201199

202200
# Prepare a IPEX-LLM compatible Peft model

python/llm/example/GPU/LLM-Finetuning/QLoRA/alpaca-qlora/alpaca_qlora_finetuning.py

+3
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,9 @@ def train(
192192

193193
tokenizer = AutoTokenizer.from_pretrained(base_model, trust_remote_code=True)
194194
print(f"Tokenizer loaded on rank {os.environ.get('LOCAL_RANK')}")
195+
# For Llama family
196+
if tokenizer.pad_token is None:
197+
tokenizer.pad_token = tokenizer.eos_token
195198
print(model)
196199

197200
# Prepare a IPEX-LLM compatible Peft model

0 commit comments

Comments
 (0)