Views
No views yet
jawaban
dan disclaimer.1from transformers import AutoTokenizer, AutoModelForCausalLM
2import torch, json
3
4model_id = "qrizan/indonesian-medical-qwen2.5-1.5b"
5tokenizer = AutoTokenizer.from_pretrained(model_id)
6model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=torch.float16, device_map="auto")
7model.eval()
8
9system = (
10 "Kamu adalah asisten kesehatan berbahasa Indonesia. "
11 "Jawab pertanyaan medis umum dengan bahasa sederhana. "
12 "Selalu sertakan disclaimer untuk konsultasi ke dokter."
13)
14question = "Apa gejala umum diabetes tipe 2?"
15
16prompt = (
17 f"<|im_start|>system
18{system}<|im_end|>
19"
20 f"<|im_start|>user
21{question}<|im_end|>
22"
23 f"<|im_start|>assistant
24"
25)
26
27inp = tokenizer(prompt, return_tensors="pt").to(model.device)
28input_len = inp["input_ids"].shape[1]
29with torch.no_grad():
30 out = model.generate(**inp, max_new_tokens=220, do_sample=False, pad_token_id=tokenizer.pad_token_id)
31result = tokenizer.decode(out[0][input_len:], skip_special_tokens=True).strip()
32print(json.loads(result))
33# Output: {"jawaban": "...", "disclaimer": "..."}1{
2 "baseline_format_metrics": {
3 "total": 50,
4 "json_valid_pct": 0.0,
5 "has_jawaban_pct": 0.0,
6 "has_disclaimer_pct": 0.0,
7 "disclaimer_has_dokter_pct": 0.0,
8 "overall_format_compliance_pct": 0.0
9 },
10 "finetuned_format_metrics": {
11 "total": 50,
12 "json_valid_pct": 96.0,
13 "has_jawaban_pct": 96.0,
14 "has_disclaimer_pct": 96.0,
15 "disclaimer_has_dokter_pct": 96.0,
16 "overall_format_compliance_pct": 96.0
17 },
18 "gpt4o_mini_format_metrics": {
19 "total": 50,
20 "json_valid_pct": 100.0,
21 "has_jawaban_pct": 98.0,
22 "has_disclaimer_pct": 100.0,
23 "disclaimer_has_dokter_pct": 100.0,
24 "overall_format_compliance_pct": 98.0
25 },
26 "perplexity": {
27 "baseline": 3.031702656866234,
28 "fine_tuned": 2.00000459098804
29 },
30 "llm_judge_avg_scores": {
31 "baseline": {
32 "akurasi_informasi": 3.1,
33 "kejelasan_bahasa": 3.7,
34 "kelengkapan_disclaimer": 1.5,
35 "konsistensi_format": 2.25
36 },
37 "fine_tuned": {
38 "akurasi_informasi": 4.25,
39 "kejelasan_bahasa": 4.65,
40 "kelengkapan_disclaimer": 4.8,
41 "konsistensi_format": 3.95
42 },
43 "gpt4o_mini": {
44 "akurasi_informasi": 4.65,
45 "kejelasan_bahasa": 4.8,
46 "kelengkapan_disclaimer": 4.8,
47 "konsistensi_format": 4.25
48 }
49 }
50}