Views
No views yet
| Metric | Base Gemma-3N | Medical Gemma-3N | Improvement |
|---|---|---|---|
| First Aid Accuracy | 36.15% | 71.54% | +35.39% |
| Medical Terminology | Limited | Comprehensive | Clinical-grade |
| Emergency Response | Generic | Specialized | Professional |
| Offline Performance | Standard | Optimized | Edge-ready |
pip install torch transformers accelerate1from transformers import AutoModelForCausalLM, AutoTokenizer
2import torch
3
4# Load model and tokenizer
5model_name = "ericrisco/medical-gemma-3n-4b"
6tokenizer = AutoTokenizer.from_pretrained(model_name)
7model = AutoModelForCausalLM.from_pretrained(
8 model_name,
9 torch_dtype=torch.float16,
10 device_map="auto"
11)
12
13# Medical consultation example
14def ask_medical_question(question):
15 prompt = f"<start_of_turn>user\n{question}<end_of_turn>\n<start_of_turn>model\n"
16
17 inputs = tokenizer.encode(prompt, return_tensors="pt")
18
19 with torch.no_grad():
20 outputs = model.generate(
21 inputs,
22 max_new_tokens=512,
23 temperature=0.7,
24 do_sample=True,
25 pad_token_id=tokenizer.eos_token_id
26 )
27
28 response = tokenizer.decode(outputs[0], skip_special_tokens=True)
29 return response.split("<start_of_turn>model\n")[-1]
30
31# Example usage
32question = "What should I do if someone is having a heart attack?"
33response = ask_medical_question(question)
34print(response)1from transformers import TextIteratorStreamer
2from threading import Thread
3
4def stream_medical_response(question):
5 prompt = f"<start_of_turn>user\n{question}<end_of_turn>\n<start_of_turn>model\n"
6 inputs = tokenizer.encode(prompt, return_tensors="pt")
7
8 streamer = TextIteratorStreamer(tokenizer, skip_special_tokens=True)
9
10 generation_kwargs = dict(
11 inputs=inputs,
12 streamer=streamer,
13 max_new_tokens=512,
14 temperature=0.7,
15 do_sample=True,
16 pad_token_id=tokenizer.eos_token_id
17 )
18
19 thread = Thread(target=model.generate, kwargs=generation_kwargs)
20 thread.start()
21
22 generated_text = ""
23 for new_text in streamer:
24 generated_text += new_text
25 print(new_text, end="", flush=True)
26
27 return generated_text
28
29# Stream response
30question = "How do I treat severe bleeding?"
31stream_medical_response(question)Base Gemma-3N: 36.15% accuracy (47/130)
Medical Gemma-3N: 71.54% accuracy (93/130)
Improvement: +35.39% absolute gain1@misc{medical_gemma_3n,
2 title={Medical Gemma-3N: Emergency Medical Assistant for Offline Healthcare},
3 author={Eric Risco},
4 year={2025},
5 url={https://huggingface.co/ericrisco/medical-gemma-3n-4b},
6 note={Fine-tuned on 86,667 medical Q&A pairs for emergency assistance}
7}