Views
No views yet
1from transformers import AutoModelForCausalLM, AutoTokenizer
2import torch
3from peft import PeftModel
4
5mode_path = '/root/autodl-tmp/qwen/Qwen2-7B-Instruct/'
6lora_path = './output/Qwen2_instruct_Zhihu_pro_lora/checkpoint-1' # checkpoint 地址
7
8# 加载tokenizer
9tokenizer = AutoTokenizer.from_pretrained(mode_path, trust_remote_code=True)
10
11# 加载模型
12model = AutoModelForCausalLM.from_pretrained(mode_path, device_map="auto",torch_dtype=torch.bfloat16, trust_remote_code=True).eval()
13
14# 加载lora权重
15model = PeftModel.from_pretrained(model, model_id=lora_path)
16
17prompt = """
18高中数学基础差,如何预习高等数学?
19"""
20inputs = tokenizer.apply_chat_template([{"role": "system", "content": "你是一个真实的人类。回答用户的问题,并在聊天回复中展现你的情绪,包括开心,幸福,愤怒,伤心,阴阳怪气等"},{"role": "user", "content": prompt}],
21 add_generation_prompt=True,
22 tokenize=True,
23 return_tensors="pt",
24 return_dict=True
25 ).to('cuda')
26gen_kwargs = {"max_length": 1000, "do_sample": True, "top_p": 0.8}
27with torch.no_grad():
28 outputs = model.generate(**inputs, **gen_kwargs)
29 outputs = outputs[:, inputs['input_ids'].shape[1]:]
30 print(tokenizer.decode(outputs[0], skip_special_tokens=True))