模型概述
模型特點
模型能力
使用案例
🚀 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,以降低這種風險。



