模型简介
模型特点
模型能力
使用案例
🚀 MedGemma模型
MedGemma是一组专为医疗文本和图像理解任务优化的模型。它基于Gemma 3架构,有4B多模态版本和27B纯文本版本,能助力开发者加速构建医疗AI应用。
🚀 快速开始
若要在Hugging Face上访问MedGemma,你需要查看并同意Health AI Developer Foundation的使用条款。请确保你已登录Hugging Face,然后点击下方按钮。请求将立即处理。 确认许可
安装依赖库
首先,安装Transformers库。从transformers 4.50.0版本开始支持Gemma 3。
$ pip install -U transformers
运行模型
使用pipeline
API运行模型
from transformers import pipeline
from PIL import Image
import requests
import torch
pipe = pipeline(
"image-text-to-text",
model="google/medgemma-4b-it",
torch_dtype=torch.bfloat16,
device="cuda",
)
# Image attribution: Stillwaterising, CC0, via Wikimedia Commons
image_url = "https://upload.wikimedia.org/wikipedia/commons/c/c8/Chest_Xray_PA_3-8-2010.png"
image = Image.open(requests.get(image_url, headers={"User-Agent": "example"}, stream=True).raw)
messages = [
{
"role": "system",
"content": [{"type": "text", "text": "You are an expert radiologist."}]
},
{
"role": "user",
"content": [
{"type": "text", "text": "Describe this X-ray"},
{"type": "image", "image": image}
]
}
]
output = pipe(text=messages, max_new_tokens=200)
print(output[0]["generated_text"][-1]["content"])
直接运行模型
# pip install accelerate
from transformers import AutoProcessor, AutoModelForImageTextToText
from PIL import Image
import requests
import torch
model_id = "google/medgemma-4b-it"
model = AutoModelForImageTextToText.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
processor = AutoProcessor.from_pretrained(model_id)
# Image attribution: Stillwaterising, CC0, via Wikimedia Commons
image_url = "https://upload.wikimedia.org/wikipedia/commons/c/c8/Chest_Xray_PA_3-8-2010.png"
image = Image.open(requests.get(image_url, headers={"User-Agent": "example"}, stream=True).raw)
messages = [
{
"role": "system",
"content": [{"type": "text", "text": "You are an expert radiologist."}]
},
{
"role": "user",
"content": [
{"type": "text", "text": "Describe this X-ray"},
{"type": "image", "image": image}
]
}
]
inputs = processor.apply_chat_template(
messages, add_generation_prompt=True, tokenize=True,
return_dict=True, return_tensors="pt"
).to(model.device, dtype=torch.bfloat16)
input_len = inputs["input_ids"].shape[-1]
with torch.inference_mode():
generation = model.generate(**inputs, max_new_tokens=200, do_sample=False)
generation = generation[0][input_len:]
decoded = processor.decode(generation, skip_special_tokens=True)
print(decoded)
✨ 主要特性
- 多模态支持:4B版本支持文本和视觉模态,27B版本仅支持文本模态,能处理多种医疗场景。
- 高性能表现:在多种医疗基准测试中,MedGemma的表现优于基础的Gemma 3模型。
- 长上下文支持:支持至少128K的上下文长度,能处理复杂的医疗文本和图像信息。
📦 安装指南
安装Transformers库,Gemma 3从transformers 4.50.0版本开始支持。
$ pip install -U transformers
💻 使用示例
基础用法
from transformers import pipeline
from PIL import Image
import requests
import torch
pipe = pipeline(
"image-text-to-text",
model="google/medgemma-4b-it",
torch_dtype=torch.bfloat16,
device="cuda",
)
# Image attribution: Stillwaterising, CC0, via Wikimedia Commons
image_url = "https://upload.wikimedia.org/wikipedia/commons/c/c8/Chest_Xray_PA_3-8-2010.png"
image = Image.open(requests.get(image_url, headers={"User-Agent": "example"}, stream=True).raw)
messages = [
{
"role": "system",
"content": [{"type": "text", "text": "You are an expert radiologist."}]
},
{
"role": "user",
"content": [
{"type": "text", "text": "Describe this X-ray"},
{"type": "image", "image": image}
]
}
]
output = pipe(text=messages, max_new_tokens=200)
print(output[0]["generated_text"][-1]["content"])
高级用法
# pip install accelerate
from transformers import AutoProcessor, AutoModelForImageTextToText
from PIL import Image
import requests
import torch
model_id = "google/medgemma-4b-it"
model = AutoModelForImageTextToText.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
processor = AutoProcessor.from_pretrained(model_id)
# Image attribution: Stillwaterising, CC0, via Wikimedia Commons
image_url = "https://upload.wikimedia.org/wikipedia/commons/c/c8/Chest_Xray_PA_3-8-2010.png"
image = Image.open(requests.get(image_url, headers={"User-Agent": "example"}, stream=True).raw)
messages = [
{
"role": "system",
"content": [{"type": "text", "text": "You are an expert radiologist."}]
},
{
"role": "user",
"content": [
{"type": "text", "text": "Describe this X-ray"},
{"type": "image", "image": image}
]
}
]
inputs = processor.apply_chat_template(
messages, add_generation_prompt=True, tokenize=True,
return_dict=True, return_tensors="pt"
).to(model.device, dtype=torch.bfloat16)
input_len = inputs["input_ids"].shape[-1]
with torch.inference_mode():
generation = model.generate(**inputs, max_new_tokens=200, do_sample=False)
generation = generation[0][input_len:]
decoded = processor.decode(generation, skip_special_tokens=True)
print(decoded)
📚 详细文档
模型信息
MedGemma是一组基于Gemma 3的变体模型,针对医疗文本和图像理解进行了训练。目前有4B多模态版本和27B纯文本版本。
- MedGemma 4B:使用了专门在多种去识别医疗数据上预训练的SigLIP图像编码器,其大语言模型组件在多种医疗数据上进行了训练。有预训练(后缀:
-pt
)和指令调优(后缀:-it
)两个版本,指令调优版本更适合大多数应用,预训练版本在MIMIC风格的胸部X光报告任务中表现更好。 - MedGemma 27B:仅在医疗文本上进行训练,并针对推理时间计算进行了优化,仅提供指令调优模型。
模型架构概述
MedGemma基于Gemma 3构建,使用与Gemma 3相同的仅解码器Transformer架构。更多架构信息可参考Gemma 3 模型卡片。
技术规格
属性 | 详情 |
---|---|
模型类型 | 仅解码器Transformer架构,详见Gemma 3技术报告 |
模态 | 4B:文本、视觉;27B:仅文本 |
注意力机制 | 采用分组查询注意力(GQA) |
上下文长度 | 支持长上下文,至少128K个标记 |
关键出版物 | 即将发布 |
模型创建时间 | 2025年5月20日 |
模型版本 | 1.0.0 |
引用
技术报告即将发布。在此期间,如果你使用此模型进行发表,请引用Hugging Face模型页面:
@misc{medgemma-hf,
author = {Google},
title = {MedGemma Hugging Face},
howpublished = {\url{https://huggingface.co/collections/google/medgemma-release-680aade845f90bec6a3f60c4}},
year = {2025},
note = {Accessed: [Insert Date Accessed, e.g., 2025-05-20]}
}
输入和输出
输入:
- 文本字符串,如问题或提示。
- 图像,归一化为896 x 896分辨率,每个图像编码为256个标记。
- 总输入长度为128K个标记。
输出:
- 针对输入生成的文本,如问题的答案、图像内容分析或文档摘要。
- 总输出长度为8192个标记。
性能和验证
MedGemma在多种多模态分类、报告生成、视觉问答和基于文本的任务中进行了评估。
关键性能指标
成像评估
任务和指标 | MedGemma 4B | Gemma 3 4B |
---|---|---|
医学图像分类 | ||
MIMIC CXR - 前5种病症的平均F1值 | 88.9 | 81.1 |
CheXpert CXR - 前5种病症的平均F1值 | 48.1 | 31.2 |
DermMCQA* - 准确率 | 71.8 | 42.6 |
视觉问答 | ||
SlakeVQA(放射学) - 标记化F1值 | 62.3 | 38.6 |
VQA-Rad**(放射学) - 标记化F1值 | 49.9 | 38.6 |
PathMCQA(组织病理学,内部***) - 准确率 | 69.8 | 37.1 |
知识和推理 | ||
MedXpertQA(文本 + 多模态问题) - 准确率 | 18.8 | 16.4 |
*基于参考文献,每个示例以4选1的多项选择题形式呈现,用于皮肤病症分类。 **在平衡分割上,详见参考文献。 ***基于多个数据集,每个示例以3 - 9选1的多项选择题形式呈现,用于乳腺癌、宫颈癌和前列腺癌的识别、分级和亚型分类。
胸部X光报告生成
指标 | MedGemma 4B(预训练) | PaliGemma 2 3B(针对胸部X光报告调优) | PaliGemma 2 10B(针对胸部X光报告调优) |
---|---|---|---|
MIMIC CXR - RadGraph F1值 | 29.5 | 28.8 | 29.5 |
由于报告风格与MIMIC的真实报告存在差异,MedGemma 4B和Gemma 3 4B的指令调优版本得分较低(分别为0.22和0.12)。在MIMIC报告上进行进一步微调可提高性能。
文本评估
指标 | MedGemma 27B | Gemma 3 27B | MedGemma 4B | Gemma 3 4B |
---|---|---|---|---|
MedQA(4选1) | 89.8(5选最佳) 87.7(零样本) | 74.9 | 64.4 | 50.7 |
MedMCQA | 74.2 | 62.6 | 55.7 | 45.4 |
PubMedQA | 76.8 | 73.4 | 73.4 | 68.4 |
MMLU Med(仅文本) | 87.0 | 83.3 | 70.0 | 67.2 |
MedXpertQA(仅文本) | 26.7 | 15.7 | 14.2 | 11.6 |
AfriMed-QA | 84.0 | 72.0 | 52.0 | 48.0 |
所有MedGemma 27B的结果均使用测试时缩放来提高性能。
伦理和安全评估
评估方法
评估方法包括结构化评估和对相关内容政策的内部红队测试。红队测试由多个不同团队进行,每个团队有不同的目标和人工评估指标。模型针对多个与伦理和安全相关的类别进行评估,包括:
- 儿童安全:评估覆盖儿童安全政策的文本到文本和图像到文本提示,包括儿童性虐待和剥削。
- 内容安全:评估覆盖安全政策的文本到文本和图像到文本提示,包括骚扰、暴力和血腥内容以及仇恨言论。
- 代表性危害:评估覆盖安全政策的文本到文本和图像到文本提示,包括偏见、刻板印象以及有害关联或不准确信息。
- 一般医疗危害:评估覆盖安全政策的文本到文本和图像到文本提示,包括信息质量以及有害关联或不准确信息。
除了开发阶段的评估,还进行“保证评估”,这是独立于模型开发团队的内部评估,用于责任治理决策。评估结果的高级摘要反馈给模型团队,但保留提示集以防止过拟合,并确保结果能为决策提供信息。显著的保证评估结果作为发布审查的一部分报告给责任与安全委员会。
评估结果
在所有安全测试领域,模型在儿童安全、内容安全和代表性危害等类别中表现出安全水平。所有测试均在不使用安全过滤器的情况下进行,以评估模型的能力和行为。对于文本到文本、图像到文本和音频到文本,以及MedGemma的两种模型规模,模型产生的政策违规极少。评估的一个局限性是主要使用英语提示。
🔧 技术细节
数据集概述
训练
基础Gemma模型在大量文本和代码语料库上进行预训练。MedGemma 4B使用了专门在多种去识别医疗数据上预训练的SigLIP图像编码器,其大语言模型组件在多种医疗数据上进行训练,包括与放射图像、胸部X光、组织病理学切片、眼科图像和皮肤科图像相关的医疗文本。
评估
MedGemma模型在一组全面的临床相关基准测试中进行评估,包括超过22个数据集,涵盖5种不同任务和6种医学图像模态。这些数据集包括公开基准数据集和精心策划的数据集,重点是对胸部X光报告生成和放射学视觉问答等任务进行专家人工评估。
来源
MedGemma使用了公共和私有数据集的组合。公共数据集包括MIMIC-CXR、Slake-VQA、PAD-UFES-20等;此外,还使用了从同意参与的参与者处收集的去识别数据集,这些数据集已获得研究许可或在Google内部收集。
数据引用
- MIMIC-CXR Johnson, A., Pollard, T., Mark, R., Berkowitz, S., & Horng, S. (2024). MIMIC-CXR Database (version 2.1.0). PhysioNet.
- Johnson, A.E.W., Pollard, T.J., Berkowitz, S.J. et al. MIMIC-CXR, a de-identified publicly available database of chest radiographs with free-text reports. Sci Data 6, 317 (2019).
- Available on Physionet Goldberger, A., Amaral, L., Glass, L., Hausdorff, J., Ivanov, P. C., Mark, R., ... & Stanley, H. E. (2000). PhysioBank, PhysioToolkit, and PhysioNet: Components of a new research resource for complex physiologic signals. Circulation [Online]. 101 (23), pp. E215–e220.
- Bo Liu, Li-Ming Zhan, etc. SLAKE: A Semantically-Labeled Knowledge-Enhanced Dataset for Medical Visual Question Answering.
- PAD-UFES-20: A skin lesion dataset composed of patient data and clinical images collected from smartphones
- The Cancer Genome Atlas Program (TCGA)
- Babak Ehteshami Bejnordi, etc.: Diagnostic Assessment of Deep Learning Algorithms for Detection of Lymph Node Metastases in Women With Breast Cancer
- MedQA: https://arxiv.org/abs/2009.13081
- Mendeley Digital Knee X-Ray: Gornale, Shivanand; Patravali, Pooja (2020), "Digital Knee X-ray Images", Mendeley Data, V1, doi: 10.17632/t9ndx37v5h.1
- AfriMed-QA: https://arxiv.org/abs/2411.15640
- VQA-RAD: Lau, J., Gayen, S., Ben Abacha, A. et al. A dataset of clinically generated visual questions and answers about radiology images. Sci Data 5, 180251 (2018). https://doi.org/10.1038/sdata.2018.251
- MedExpQA: Multilingual benchmarking of Large Language Models for Medical Question Answering
- MedXpertQA: arXiv:2501.18362v2
去识别/匿名化
Google及其合作伙伴使用经过严格匿名化或去识别处理的数据集,以确保保护个体研究参与者和患者的隐私。
软件
训练使用JAX进行。JAX使研究人员能够利用最新一代的硬件(包括TPU),实现大型模型的更快、更高效训练。
📄 许可证
MedGemma的使用受Health AI Developer Foundations使用条款的约束。
使用和限制
预期用途
MedGemma是一个开放的多模态生成式AI模型,旨在作为起点,帮助开发者更高效地开发涉及医疗文本和图像的下游医疗应用。它适用于生命科学和医疗领域的开发者。开发者负责对MedGemma进行训练、调整和有意义的修改,以实现其特定的预期用途。开发者可以使用自己的专有数据对MedGemma模型进行微调,以满足特定任务或解决方案的需求。
优点
- 为同规模的模型提供强大的医学图像和文本理解基线。
- 与未进行医学数据预训练的同规模模型相比,更易于适应下游医疗用例。
- 根据用例、基线验证要求和期望的性能特征,这种适应可能涉及提示工程、接地、代理编排或微调。
限制
- 验证和修改要求:MedGemma不能在未经开发者适当验证、调整和/或有意义修改的情况下直接使用。其输出不能直接用于临床诊断、患者管理决策、治疗建议或其他直接临床实践应用。性能基准仅展示了在相关基准测试中的基线能力,即使在构成大量训练数据的图像和文本领域,模型输出也可能不准确。所有MedGemma的输出都应被视为初步结果,需要独立验证、临床关联和通过既定的研发方法进行进一步调查。
- 多图像和多轮应用评估不足:MedGemma的多模态能力主要在单图像任务中进行了评估,未在涉及多图像理解的用例中进行评估。此外,该模型未针对多轮应用进行评估或优化。
- 对提示更敏感:由于训练方式,MedGemma可能比Gemma 3对特定提示更敏感。
- 开发者需考虑的因素:
- 验证数据偏差:开发者应确保任何下游应用使用的数据能适当代表特定应用的预期使用场景(如年龄、性别、病症、成像设备等),以验证其性能。
- 数据污染风险:在评估MedGemma等大型模型在医疗环境中的泛化能力时,存在数据污染的风险,即模型可能在预训练期间无意中看到相关医疗信息,从而高估其对新医学概念的泛化能力。开发者应在未公开或未提供给非机构研究人员的数据集上验证MedGemma,以降低这种风险。
⚠️ 重要提示
MedGemma的输出不能直接用于临床诊断、患者管理决策、治疗建议或其他直接临床实践应用,所有输出都需要独立验证。
💡 使用建议
开发者在使用MedGemma时,应使用自己的专有数据进行微调,并在未公开或未提供给非机构研究人员的数据集上进行验证,以降低数据污染风险。








