🚀 法国医疗助手MedGemma 4B - IT
本模型是一款专为提供精准的法语医疗简短回复而优化的微调版本。它基于 google/medgemma - 4b - it 基础模型进行微调,经过训练后,能够在保证医学准确性的同时,给出简洁(最多 2 - 3 句话)的回答。
✨ 主要特性
属性 |
详情 |
模型类型 |
文本生成 |
基础模型 |
google/medgemma - 4b - it |
语言 |
法语 🇫🇷 |
专业化方向 |
精准的医疗简短回复 |
技术 |
直接微调 |
参数 |
约 40 亿 |
📦 安装指南
pip install transformers torch accelerate bitsandbytes
💻 使用示例
基础用法
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
model_id = "Sadou/medgemma-4b-it-french-medical-assistant"
device = "cuda" if torch.cuda.is_available() else "cpu"
model = AutoModelForCausalLM.from_pretrained(
model_id,
quantization_config=BitsAndBytesConfig(load_in_4bit=True),
device_map="auto",
torch_dtype=torch.bfloat16,
)
tokenizer = AutoTokenizer.from_pretrained(model_id)
def generate_medical_response(question, max_length=500, temperature=0.2):
messages = [
{
"role": "system",
"content": "Tu es un assistant médical expert. Réponds toujours en français de manière claire et précise."
},
{
"role": "user",
"content": question
}
]
inputs = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
input_len = inputs["input_ids"].shape[-1]
with torch.inference_mode():
outputs = model.generate(
**inputs,
max_new_tokens=max_length,
do_sample=True,
temperature=temperature,
pad_token_id=tokenizer.eos_token_id,
)
response = tokenizer.decode(outputs[0][input_len:], skip_special_tokens=True)
return response.strip()
question = "Comment traiter une migraine ?"
response = generate_medical_response(question)
print(f"问题: {question}")
print(f"回答: {response}")
高级用法
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model_id = "Sadou/medgemma-4b-it-french-medical-assistant"
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=torch.bfloat16)
tokenizer = AutoTokenizer.from_pretrained(model_id)
question = "Comment traiter une migraine ?"
messages = [
{"role": "system", "content": "Tu es un assistant médical expert."},
{"role": "user", "content": question}
]
inputs = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt")
outputs = model.generate(inputs, max_new_tokens=200, temperature=0.7)
response = tokenizer.decode(outputs[0][inputs.shape[-1]:], skip_special_tokens=True)
print(response)
示例输出
输入:"Comment traiter une migraine ?"(如何治疗偏头痛?)
输出:"Prenez un antalgique (paracétamol 1g ou ibuprofène 600mg) dès les premiers signes. Reposez-vous dans un endroit sombre et silencieux avec une compresse froide sur le front. Si migraines fréquentes (>4/mois), consultez pour un traitement préventif."(出现症状时立即服用止痛药(1 克扑热息痛或 600 毫克布洛芬)。在黑暗安静的地方休息,额头敷上冷毛巾。如果偏头痛频繁发作(每月超过 4 次),请咨询医生进行预防性治疗。)
📚 详细文档
⚠️ 重要提示
本模型仅用于提供一般信息,不能替代专业的医疗咨询。在遇到医疗紧急情况时,请立即联系急救服务。
📄 许可证
本项目采用 Apache 2.0 许可证。
👨💻 作者
Sadou BARRY
本模型旨在提高法语医疗信息的可获取性 🇫🇷