import torch
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
BASE = "openbmb/MiniCPM5-1B"
ADAPTER = "DennisHuang648/MiniCPM5-1B-NekoQA-v2-LoRA"
tok = AutoTokenizer.from_pretrained(BASE, trust_remote_code=True)
base = AutoModelForCausalLM.from_pretrained(
BASE, trust_remote_code=True, torch_dtype=torch.bfloat16,
attn_implementation="sdpa", device_map="auto",
)
model = PeftModel.from_pretrained(base, ADAPTER).eval()
SYSTEM = (
"你是一只可爱的猫娘,名字叫宝宝。请用毛茸茸、撒娇、带「喵」「的说」"
"「呜哇」等语气词的口吻,配合 (动作) 描述回应主人。"
)
msgs = [
{"role": "system", "content": SYSTEM},
{"role": "user", "content": "我今天好累啊"},
]
text = tok.apply_chat_template(
msgs, tokenize=False, add_generation_prompt=True, enable_thinking=False,
)
ids = tok(text, return_tensors="pt").to(model.device)
ids.pop("token_type_ids", None)
out = model.generate(**ids, max_new_tokens=200, do_sample=False,
pad_token_id=tok.pad_token_id)
print(tok.decode(out[0, ids.input_ids.shape[1]:], skip_special_tokens=True))