import torchfrom peft import PeftModelfrom transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig base_id = "Qwen/Qwen2.5-3B-Instruct"adapter_id = "745H1N/ZERO-Kin1" # this repobnb = BitsAndBytesConfig(load_in_4bit=True, bnb_4bit_quant_type="nf4", bnb_4bit_compute_dtype=torch.float16, bnb_4bit_use_double_quant=True)tok = AutoTokenizer.from_pretrained(base_id)model = PeftModel.from_pretrained( AutoModelForCausalLM.from_pretrained(base_id, quantization_config=bnb, device_map="auto"), adapter_id)model.eval() prompt = ( "以下の財務データ(表)と文章を読み、質問に答えてください。\n" "計算は正確に行い、最終的な答えのみを出力してください(説明や単位の補足は最小限)。\n\n" + pre_text + "\n[表]\n" + table + "\n" + post_text + "\n" + "[質問] " + question + "\n[答え] ")inputs = tok(prompt, return_tensors="pt", truncation=True, max_length=1280).to(model.device)out = model.generate(**inputs, max_new_tokens=160, do_sample=False, pad_token_id=tok.eos_token_id)text = tok.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True)answer = text.strip().split("\n")[-1] # the final answer is the LAST line