Views
No views yet
1from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
2import torch
3
4# Quantization config
5bnb_config = BitsAndBytesConfig(
6 load_in_4bit=True,
7 bnb_4bit_compute_dtype=torch.float16,
8 bnb_4bit_use_double_quant=True,
9 bnb_4bit_quant_type="nf4",
10)
11
12# Load model
13model = AutoModelForCausalLM.from_pretrained(
14 "LeeKayn/Vistral-7B-Medical-Chat-v2",
15 quantization_config=bnb_config,
16 torch_dtype=torch.float16,
17 device_map="auto",
18 trust_remote_code=True
19)
20
21tokenizer = AutoTokenizer.from_pretrained("LeeKayn/Vistral-7B-Medical-Chat-v2", trust_remote_code=True)
22
23# Generate
24def ask_medical_question(question):
25 prompt = f"<s>[INST] Bạn là bác sĩ chuyên khoa. Hãy trả lời câu hỏi y tế sau một cách chính xác: {question} [/INST]"
26 inputs = tokenizer(prompt, return_tensors="pt")
27
28 with torch.inference_mode():
29 outputs = model.generate(
30 **inputs,
31 max_new_tokens=512,
32 temperature=0.1,
33 do_sample=True,
34 pad_token_id=tokenizer.eos_token_id
35 )
36
37 response = tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True)
38 return response.strip()
39
40# Ví dụ
41answer = ask_medical_question("Triệu chứng của bệnh tiểu đường là gì?")
42print(answer)