许可协议:知识共享署名-非商业性使用 4.0 国际许可协议
任务类型:文本生成
标签:
- 医学
- 小型语言模型
- 指令调优
- 美国医师执照考试
- 思维链
- 合成数据
猫鼬-7B(1.0版)
🚀 猫鼬-7B-v1.0是指令调优的医疗AI系统,首次在所有7B参数模型中突破了美国医师执照考试(USMLE)60%的及格线。
该模型使用我们新构建的合成数据集训练而成,包含来自18本医学教材的高质量思维链推理路径,以及多样化的指令遵循数据集。
这使模型具备了解决复杂医学问题所需的高级医疗推理能力。
更多模型详情请参阅我们的论文!
📄 论文:《小型语言模型从医学教材中学习增强推理能力》
快速开始
输入查询应始终以"ASSISTANT:"结尾,如下所示:
query = "USER: 感冒时该怎么办? ASSISTANT:"
可使用apply_chat_template函数调用模型:
from transformers import AutoModelForCausalLM, AutoTokenizer
device = "cuda"
checkpoint = "dmis-lab/meerkat-7b-v1.0"
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
model = AutoModelForCausalLM.from_pretrained(
checkpoint,
torch_dtype=torch.bfloat16,
)
messages = [
{"role": "system", "content": "您是一位专业的医生或医疗保健人员。通过对话提供有用、完整且科学依据充分的回答。若用户输入信息完整,可单轮回复;若关键信息缺失,应通过多轮对话获取完整病史。\n\n"},
{"role": "user", "content": "医生您好,我十分担心10岁儿子的情况。最近发现他左侧睾丸有个无痛肿块,已带他就诊儿科。"},
{"role": "assistant", "content": "理解您的担忧。请问孩子是否伴有其他症状?"},
{"role": "user", "content": "除肿块外,孩子一切如常,玩耍饮食都正常。"}
]
encodeds = tokenizer.apply_chat_template(messages, return_tensors="pt")
model_inputs = encodeds.to(device)
model.to(device)
generated_ids = model.generate(model_inputs, max_new_tokens=1000, do_sample=True, pad_token_id=tokenizer.eos_token_id)
decoded = tokenizer.batch_decode(generated_ids)
print(decoded[0])
提示词细节
为复现论文结果,建议使用训练时的相同系统消息:
USMLE或临床病例
处理MedQA、MedBullets等USMLE题型或JAMA临床挑战复杂病例时:
messages = [
{"role": "system", "content": "以下是医学知识选择题。请分步解答:先总结已知信息,最后从给定选项中选择唯一答案。必须严格遵循输出格式,以\"the answer is ([选项编号]) [答案文本]\"结尾。\n\n"},
{"role": "user", "content": "61岁男性急诊冠脉支架术后两周出现尿量减少、乏力。患2型糖尿病和髋关节骨关节炎。入院前用药为胰岛素和萘普生,术后加用阿司匹林、氯吡格雷和美托洛尔。体温38°C,脉搏93次/分,血压125/85 mmHg。查体见足部网状紫癜。实验室检查:血红蛋白14g/dL,白细胞16400/mm³(中性56%,嗜酸11%,淋巴31%,单核2%),血小板26万/mm³,血沉68mm/h,尿素氮25mg/dL,肌酐4.2mg/dL。肾活检见血管内梭形空泡。最可能病因是?\" (A)肾乳头坏死 (B)胆固醇栓塞 (C)嗜酸性肉芽肿性多血管炎 (D)结节性多动脉炎"},
]
模型将生成推理路径并以"the answer is"明确标注答案,便于比对。
其他选择题
处理MedMCQA或MMLU等考试时:
messages = [
{"role": "system", "content": "请回答下列医学知识选择题。\n\n"},
{"role": "user", "content": "罗伯逊易位的融合发生在:(A)端粒 (B)着丝粒 (C)组蛋白 (D)长臂末端"},
]
其他场景
模型通过AlpaCare的5.2万条指令数据增强泛化能力,欢迎测试各类提示词并反馈效果。
性能评估
我们在七大医学基准测试结果如下:
模型 |
平均 |
MedQA |
USMLE |
Medbullets-4 |
Medbullets-5 |
MedMCQA |
MMLU-医学 |
JAMA |
GPT-4 |
75.2 |
81.4 |
86.6 |
68.8 |
63.3 |
72.4 |
87.1 |
67.1 |
GPT-3.5 |
54.1 |
53.6 |
58.5 |
51.0 |
47.4 |
51.0 |
67.3 |
50.1 |
MediTron-70B(5次集成) |
- |
70.2 |
- |
- |
- |
66.0 |
78.0 |
- |
开源7B模型 |
|
|
|
|
|
|
|
|
猫鼬-7B |
62.4 |
70.6 |
70.3 |
58.7 |
52.9 |
60.6 |
70.5 |
53.1 |
MMLU-医学分科成绩:
模型 |
平均 |
临床知识 |
医学遗传 |
解剖学 |
专业医学 |
大学生物 |
大学医学 |
猫鼬-7B |
70.5 |
71.6 |
74.8 |
63.2 |
77.3 |
70.8 |
65.2 |
模型架构
基于Mistral-7B-v0.1构建,兼顾精度与效率。
训练数据
数据集详见此仓库。
引用
请使用以下BibTeX格式引用:
@article{kim2025small,
title={小型语言模型从医学教材中学习增强推理能力},
author={金贤载等},
journal={npj数字医学},
volume={8},
number={1},
pages={240},
year={2025},
publisher={自然出版集团}
}
联系
如有疑问请联系:hyunjae-kim@korea.ac.kr
或 hyunjae.kim@yale.edu