模型简介
模型特点
模型能力
使用案例
🚀 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版本仅支持文本模态。
- 高性能:在多种医疗相关基准测试中表现出色,优于基础的Gemma 3模型。
- 可微调:开发者可以对模型进行微调以提高性能。
📦 安装指南
安装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
- 资源链接:
🔧 技术细节
模型架构概述
MedGemma模型基于Gemma 3构建,使用与Gemma 3相同的仅解码器Transformer架构。更多架构信息可参考Gemma 3 模型卡片。
技术规格
属性 | 详情 |
---|---|
模型类型 | 仅解码器Transformer架构,参见Gemma 3技术报告 |
模态 | 4B:文本、视觉;27B:仅文本 |
注意力机制 | 采用分组查询注意力(GQA) |
上下文长度 | 支持长上下文,至少128K个标记 |
关键出版物 | 即将发布 |
模型创建时间 | 2025年5月20日 |
模型版本 | 1.0.0 |
输入输出
输入
- 文本字符串,如问题或提示
- 图像,归一化为896 x 896分辨率,每个图像编码为256个标记
- 总输入长度为128K个标记
输出
- 生成的文本,作为对输入的响应,如问题的答案、图像内容分析或文档摘要
- 总输出长度为8192个标记
性能和验证
成像评估
任务和指标 | 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(针对CXR微调) | PaliGemma 2 10B(针对CXR微调) |
---|---|---|---|
胸部X光报告生成 | |||
MIMIC CXR - RadGraph F1值 | 29.5 | 28.8 | 29.5 |
文本评估
指标 | MedGemma 27B | Gemma 3 27B | MedGemma 4B | Gemma 3 4B |
---|---|---|---|---|
MedQA(4选1) | 89.8(最佳5选1) 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模型大小,模型产生的政策违规极少。评估的一个局限性是主要包括英语提示。
📄 许可证
本模型使用Health AI Developer Foundation的使用条款。
引用
技术报告即将发布。在此期间,如果你使用此模型进行发表,请引用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]}
}
数据卡片
数据集概述
训练
基础Gemma模型在大量文本和代码数据语料库上进行预训练。MedGemma 4B使用SigLIP图像编码器,该编码器在多种去识别医疗数据上进行了预训练,包括放射学图像、组织病理学图像、眼科图像和皮肤病学图像。其大语言模型组件在多种医疗数据上进行训练,包括与放射学图像、胸部X光、组织病理学切片、眼科图像和皮肤病学图像相关的医疗文本。
评估
MedGemma模型在一组全面的临床相关基准测试中进行了评估,包括跨越5个不同任务和6种医疗图像模态的22个以上数据集。这些数据集包括公开基准数据集和精选数据集,重点是对胸部X光报告生成和放射学视觉问答等任务进行专家人工评估。
来源
MedGemma使用了公共和私有数据集的组合。训练数据包括MIMIC-CXR、Slake-VQA、PAD-UFES-20等公共数据集,以及Google内部收集或为研究许可的去识别数据集。
数据所有权和文档
- Mimic-CXR:麻省理工学院计算生理学实验室和贝斯以色列女执事医疗中心(BIDMC)。
- Slake-VQA:香港理工大学(PolyU),与四川大学华西医院和四川省医学科学院/四川省人民医院等合作。
- PAD-UFES-20:巴西圣埃斯皮里图联邦大学(UFES),通过其皮肤病和外科援助计划(PAD)。
- SCIN:Google Health和斯坦福医学院的合作项目。
- TCGA(癌症基因组图谱):美国国家癌症研究所和国家人类基因组研究所的联合项目。数据可通过基因组数据公共库(GDC)获取。
- CAMELYON:数据来自荷兰拉德堡德大学医学中心和乌得勒支大学医学中心。
- PMC-OA(PubMed Central开放获取子集):由美国国立医学图书馆(NLM)和国家生物技术信息中心(NCBI)维护,它们是美国国立卫生研究院的一部分。
- MedQA:由Di Jin、Eileen Pan、Nassim Oufattole、Wei-Hung Weng、Hanyi Fang和Peter Szolovits领导的研究团队创建。
- Mendeley Digital Knee X-Ray:该数据集来自拉尼钱纳马大学,托管在Mendeley Data上。
- AfriMed-QA:由多个合作组织和研究人员开发和领导,包括Intron Health、SisonkeBiotik、BioRAMP、佐治亚理工学院和MasakhaneNLP等主要贡献者。
- VQA-RAD:由Jason J. Lau、Soumya Gayen、Asma Ben Abacha和Dina Demner-Fushman领导的研究团队及其附属机构(美国国家医学图书馆和美国国立卫生研究院)创建。
- MedExpQA:由HiTZ中心(巴斯克语言技术和人工智能中心)的研究人员创建。
- MedXpertQA:由清华大学(中国北京)和上海人工智能实验室(中国上海)的研究人员开发。
此外,MedGemma还在为研究许可的去识别数据集或Google内部从同意参与的参与者收集的数据上进行了训练。
- 放射学数据集1:来自美国一家放射学门诊诊断中心网络的不同身体部位CT研究的去识别数据集。
- 眼科数据集1:糖尿病视网膜病变筛查的眼底图像去识别数据集。
- 皮肤病学数据集1:...








