模型概述
模型特點
模型能力
使用案例
🚀 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時,應使用自己的專有數據進行微調,並在未公開或未提供給非機構研究人員的數據集上進行驗證,以降低數據汙染風險。








