@@ -109,6 +109,11 @@ def parse_args():
109109 action = "store_true" ,
110110 help = "Load model in 4bit" ,
111111 )
112+ parser .add_argument (
113+ "--left_padding" ,
114+ action = "store_true" ,
115+ help = "Force left padding, needed for models like chatglm3-6b" ,
116+ )
112117 parser .add_argument (
113118 "--limit" ,
114119 type = int ,
@@ -311,14 +316,25 @@ def main():
311316 model .merge_and_unload ()
312317 print ("Merge complete." )
313318
314- tokenizer = AutoTokenizer .from_pretrained (
315- args .model ,
316- revision = args .revision ,
317- trust_remote_code = args .trust_remote_code ,
318- use_auth_token = args .use_auth_token ,
319- truncation_side = "left" ,
320- padding_side = "right" , # padding on the right is needed to cut off padding in `complete_code`
321- )
319+ if args .left_padding :
320+ # left padding is required for some models like chatglm3-6b
321+ tokenizer = AutoTokenizer .from_pretrained (
322+ args .model ,
323+ revision = args .revision ,
324+ trust_remote_code = args .trust_remote_code ,
325+ use_auth_token = args .use_auth_token ,
326+ padding_side = "left" ,
327+ )
328+ else :
329+ # used by default for most models
330+ tokenizer = AutoTokenizer .from_pretrained (
331+ args .model ,
332+ revision = args .revision ,
333+ trust_remote_code = args .trust_remote_code ,
334+ use_auth_token = args .use_auth_token ,
335+ truncation_side = "left" ,
336+ padding_side = "right" ,
337+ )
322338 if not tokenizer .eos_token :
323339 if tokenizer .bos_token :
324340 tokenizer .eos_token = tokenizer .bos_token
0 commit comments