模型简介
模型特点
模型能力
使用案例
🚀 MedGemma模型卡片
MedGemma是基于Gemma 3开发的一系列模型变体,经过专门训练,在医学文本和图像理解方面表现出色。它为开发者提供了强大的基础,有助于加速构建基于医疗保健的AI应用程序。
🚀 快速开始
安装依赖库
首先,安装Transformers库。Gemma 3从transformers 4.50.0版本开始支持。
$ pip install -U transformers
运行模型
使用pipeline
API运行模型
from transformers import pipeline
import torch
pipe = pipeline(
"text-generation",
model="google/medgemma-27b-text-it",
torch_dtype=torch.bfloat16,
device="cuda",
)
messages = [
{
"role": "system",
"content": "You are a helpful medical assistant."
},
{
"role": "user",
"content": "How do you differentiate bacterial from viral pneumonia?"
}
]
output = pipe(text=messages, max_new_tokens=200)
print(output[0]["generated_text"][-1]["content"])
直接运行模型
# pip install accelerate
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "google/medgemma-27b-text-it"
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
tokenizer = AutoTokenizer.from_pretrained(model_id)
messages = [
{
"role": "system",
"content": "You are a helpful medical assistant."
},
{
"role": "user",
"content": "How do you differentiate bacterial from viral pneumonia?"
}
]
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():
generation = model.generate(**inputs, max_new_tokens=200, do_sample=False)
generation = generation[0][input_len:]
decoded = tokenizer.decode(generation, skip_special_tokens=True)
print(decoded)
✨ 主要特性
- 多模态能力:支持文本和图像输入,可处理多种医学相关任务,如视觉问答、文本医学问题解答等。
- 高性能表现:在多个医学知识和推理的文本基准测试中,MedGemma模型优于其对应的基础Gemma模型。
- 可定制性:开发者可以使用自己的专有数据对MedGemma模型进行微调,以适应特定的任务或解决方案。
📦 安装指南
安装Transformers库,Gemma 3从transformers 4.50.0版本开始支持。
$ pip install -U transformers
💻 使用示例
基础用法
from transformers import pipeline
import torch
pipe = pipeline(
"text-generation",
model="google/medgemma-27b-text-it",
torch_dtype=torch.bfloat16,
device="cuda",
)
messages = [
{
"role": "system",
"content": "You are a helpful medical assistant."
},
{
"role": "user",
"content": "How do you differentiate bacterial from viral pneumonia?"
}
]
output = pipe(text=messages, max_new_tokens=200)
print(output[0]["generated_text"][-1]["content"])
高级用法
# pip install accelerate
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "google/medgemma-27b-text-it"
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
tokenizer = AutoTokenizer.from_pretrained(model_id)
messages = [
{
"role": "system",
"content": "You are a helpful medical assistant."
},
{
"role": "user",
"content": "How do you differentiate bacterial from viral pneumonia?"
}
]
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():
generation = model.generate(**inputs, max_new_tokens=200, do_sample=False)
generation = generation[0][input_len:]
decoded = tokenizer.decode(generation, skip_special_tokens=True)
print(decoded)
📚 详细文档
模型信息
描述
MedGemma是基于Gemma 3开发的一系列模型变体,经过专门训练,在医学文本和图像理解方面表现出色。目前有两种变体:4B多模态版本和27B纯文本版本。
如何使用
可参考以下Colab笔记本获取使用MedGemma的示例:
模型架构概述
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]}
}
输入和输出
输入
- 文本字符串,如问题或提示
- 总输入长度为128K个标记
输出
- 对输入的生成文本响应,如问题的答案、图像内容分析或文档摘要
- 总输出长度为8192个标记
性能和验证
MedGemma在一系列不同的多模态分类、报告生成、视觉问答和基于文本的任务中进行了评估。
关键性能指标
文本评估
MedGemma 4B和纯文本MedGemma 27B在一系列纯文本医学知识和推理基准测试中进行了评估。
指标 | MedGemma 27B | Gemma 3 27B | MedGemma 4B | Gemma 3 4B |
---|---|---|---|---|
MedQA (4-op) | 89.8 (best-of-5) 87.7 (0-shot) | 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 (text only) | 87.0 | 83.3 | 70.0 | 67.2 |
MedXpertQA (text only) | 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模型在一组全面的临床相关基准测试中进行了评估,包括跨越5个不同任务和6种医学图像模态的22个以上数据集。这些包括开放基准数据集和精选数据集,重点是对胸部X光报告生成和放射学视觉问答等任务进行专家人工评估。
来源
MedGemma使用了公共和私有数据集的组合。公共数据集包括MIMIC-CXR、Slake-VQA、PAD-UFES-20等。此外,还使用了从谷歌内部收集的去识别数据集,包括放射学、眼科、皮肤病学和病理学数据集。
数据所有权和文档
详细列出了各个数据集的所有权和相关文档信息,包括MIMIC-CXR、Slake-VQA、PAD-UFES-20等公共数据集,以及谷歌内部使用的去识别数据集。
数据引用
列出了各个数据集的引用信息,包括MIMIC-CXR、Slake-VQA、PAD-UFES-20等。
去识别/匿名化
谷歌及其合作伙伴使用经过严格匿名化或去识别处理的数据集,以确保保护个体研究参与者和患者隐私。
软件
训练使用JAX进行。JAX允许研究人员利用最新一代硬件,包括TPU,以更快、更高效地训练大型模型。
📄 许可证
本模型使用的许可证为Health AI Developer Foundations使用条款。
使用和限制
预期用途
MedGemma是一个开放的多模态生成式AI模型,旨在作为一个起点,使开发者能够更高效地开发涉及医学文本和图像的下游医疗保健应用程序。它适用于生命科学和医疗保健领域的开发者。开发者负责对MedGemma进行训练、调整和有意义的修改,以实现其特定的预期用途。
优点
- 为同规模的模型提供强大的医学图像和文本理解基线。
- 与未进行医学数据预训练的类似规模模型相比,更易于适应下游医疗保健用例。
- 根据用例、基线验证要求和期望的性能特征,这种适应可能涉及提示工程、接地、代理编排或微调。
限制
- MedGemma在没有开发者进行适当验证、调整和/或有意义修改的情况下,不应用于特定用例。
- MedGemma生成的输出不应用于直接指导临床诊断、患者管理决策、治疗建议或任何其他直接临床实践应用。
- 性能基准显示了模型在相关基准测试中的基线能力,但即使对于构成大量训练数据的图像和文本领域,也可能出现不准确的模型输出。
- MedGemma的多模态能力主要在单图像任务上进行了评估,未在涉及多图像理解的用例中进行评估。
- MedGemma未针对多轮应用进行评估或优化。
- MedGemma的训练可能使其比Gemma 3对使用的特定提示更敏感。
开发者在调整MedGemma时应考虑以下因素:
- 验证数据中的偏差:与任何研究一样,开发者应确保任何下游应用使用的数据能够适当代表特定应用的预期使用场景(如年龄、性别、病情、成像设备等),以验证性能。
- 数据污染问题:在医学背景下评估像MedGemma这样的大型模型的泛化能力时,存在数据污染的风险,即模型可能在预训练期间无意中看到相关医学信息,从而可能高估其对新医学概念的泛化能力。开发者应在未公开或未提供给非机构研究人员的数据集上验证MedGemma,以降低这种风险。



