模型概述
模型特點
模型能力
使用案例
🚀 medgemma-27b-text-it GGUF模型
medgemma-27b-text-it GGUF模型是基於特定量化方法和技術生成的模型,適用於多種硬件環境和應用場景,尤其在醫療文本處理方面具有顯著優勢。該模型提供了多種量化版本,可根據不同的硬件能力和內存限制進行選擇,同時還提供了詳細的使用示例和技術細節,方便開發者快速上手和深入瞭解。
🚀 快速開始
若要使用MedGemma模型,可參考以下步驟快速在本地GPU上運行模型。若要大規模使用該模型,建議使用Model Garden創建生產版本。
首先,安裝Transformers庫。從transformers 4.50.0版本開始支持Gemma 3。
$ 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)
✨ 主要特性
- 超低比特量化:引入了針對超低比特模型(1 - 2比特)的精度自適應量化方法,在Llama - 3 - 8B上有經基準測試驗證的改進。
- 多模型格式支持:提供了多種模型格式,如BF16、F16、量化模型等,可根據硬件能力和內存限制進行選擇。
- 醫療文本處理能力:基於Gemma 3架構,針對醫療文本和圖像理解進行了訓練,在醫療知識和推理的文本基準測試中表現出色。
📦 安裝指南
安裝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)
📚 詳細文檔
模型生成細節
該模型使用llama.cpp在提交版本f5cd27b7
時生成。
超低比特量化與IQ - DynamicGate(1 - 2比特)
最新的量化方法為超低比特模型(1 - 2比特)引入了精度自適應量化,在Llama - 3 - 8B上有經基準測試驗證的改進。該方法使用特定層策略,在保持極高內存效率的同時保留準確性。
基準測試環境
所有測試在Llama - 3 - 8B - Instruct上進行,使用:
- 標準困惑度評估管道
- 2048令牌上下文窗口
- 所有量化使用相同的提示集
方法
- 動態精度分配:
- 前/後25%的層 → IQ4_XS(選定層)
- 中間50% → IQ2_XXS/IQ3_S(提高效率)
- 關鍵組件保護:
- 嵌入/輸出層使用Q5_K
- 與標準1 - 2比特量化相比,誤差傳播減少38%
量化性能比較(Llama - 3 - 8B)
量化方式 | 標準困惑度 | DynamicGate困惑度 | 困惑度變化 | 標準大小 | DG大小 | 大小變化 | 標準推理速度 | DG推理速度 |
---|---|---|---|---|---|---|---|---|
IQ2_XXS | 11.30 | 9.84 | -12.9% | 2.5G | 2.6G | +0.1G | 234s | 246s |
IQ2_XS | 11.72 | 11.63 | -0.8% | 2.7G | 2.8G | +0.1G | 242s | 246s |
IQ2_S | 14.31 | 9.02 | -36.9% | 2.7G | 2.9G | +0.2G | 238s | 244s |
IQ1_M | 27.46 | 15.41 | -43.9% | 2.2G | 2.5G | +0.3G | 206s | 212s |
IQ1_S | 53.07 | 32.00 | -39.7% | 2.1G | 2.4G | +0.3G | 184s | 209s |
關鍵改進
- IQ1_M:困惑度大幅降低43.9%(從27.46降至15.41)
- IQ2_S:困惑度降低36.9%,僅增加0.2GB
- IQ1_S:儘管是1比特量化,但準確性提高39.7%
權衡
- 所有變體的大小有適度增加(0.1 - 0.3GB)
- 推理速度相近(差異<5%)
使用場景
- 將模型裝入GPU顯存
- 內存受限的部署
- 可容忍1 - 2比特誤差的CPU和邊緣設備
- 超低比特量化研究
選擇正確的模型格式
選擇正確的模型格式取決於硬件能力和內存限制。
BF16(Brain Float 16) - 若有BF16加速支持則使用
- 一種16位浮點格式,專為更快計算設計,同時保留良好的精度。
- 提供與FP32相似的動態範圍,但內存使用更低。
- 若硬件支持BF16加速(檢查設備規格),推薦使用。
- 與FP32相比,適合高性能推理且內存佔用減少。
使用場景:
- 硬件具有原生BF16支持(如較新的GPU、TPU)。
- 希望在節省內存的同時獲得更高精度。
- 計劃將模型重新量化為其他格式。
避免使用場景:
- 硬件不支持BF16(可能會回退到FP32並運行較慢)。
- 需要與缺乏BF16優化的舊設備兼容。
F16(Float 16) - 比BF16更廣泛支持
- 一種16位浮點格式,精度高,但值的範圍比BF16小。
- 在大多數支持FP16加速的設備上工作(包括許多GPU和一些CPU)。
- 數值精度略低於BF16,但通常足以用於推理。
使用場景:
- 硬件支持FP16但不支持BF16。
- 需要在速度、內存使用和準確性之間取得平衡。
- 在為FP16計算優化的GPU或其他設備上運行。
避免使用場景:
- 設備缺乏原生FP16支持(可能運行比預期慢)。
- 有內存限制。
量化模型(Q4_K、Q6_K、Q8等) - 用於CPU和低顯存推理
量化可在儘可能保持準確性的同時減小模型大小和內存使用。
- 低比特模型(Q4_K) - 最適合最小內存使用,可能精度較低。
- 高比特模型(Q6_K、Q8_0) - 準確性更好,但需要更多內存。
使用場景:
- 在CPU上運行推理,需要優化模型。
- 設備顯存低,無法加載全精度模型。
- 希望在保持合理準確性的同時減少內存佔用。
避免使用場景:
- 需要最高準確性(全精度模型更適合)。
- 硬件有足夠的顯存用於更高精度的格式(BF16/F16)。
極低比特量化(IQ3_XS、IQ3_S、IQ3_M、Q4_K、Q4_0)
這些模型針對極端內存效率進行了優化,適用於低功耗設備或大規模部署,其中內存是關鍵限制因素。
- IQ3_XS:超低比特量化(3比特),具有極端內存效率。
- 使用場景:最適合超低內存設備,即使Q4_K也太大的情況。
- 權衡:與高比特量化相比,準確性較低。
- IQ3_S:小塊大小,實現最大內存效率。
- 使用場景:最適合低內存設備,IQ3_XS過於激進的情況。
- IQ3_M:中等塊大小,比IQ3_S準確性更好。
- 使用場景:適用於低內存設備,IQ3_S限制太大的情況。
- Q4_K:4比特量化,具有逐塊優化以提高準確性。
- 使用場景:最適合低內存設備,Q6_K太大的情況。
- Q4_0:純4比特量化,針對ARM設備進行了優化。
- 使用場景:最適合基於ARM的設備或低內存環境。
模型格式選擇總結表
模型格式 | 精度 | 內存使用 | 設備要求 | 最佳使用場景 |
---|---|---|---|---|
BF16 | 最高 | 高 | 支持BF16的GPU/CPU | 減少內存的高速推理 |
F16 | 高 | 高 | 支持FP16的設備 | BF16不可用時的GPU推理 |
Q4_K | 中低 | 低 | CPU或低顯存設備 | 內存受限環境 |
Q6_K | 中等 | 適中 | 內存較多的CPU | 量化模型中準確性較好 |
Q8_0 | 高 | 適中 | 有足夠顯存的CPU或GPU | 量化模型中準確性最佳 |
IQ3_XS | 非常低 | 非常低 | 超低內存設備 | 極端內存效率和低準確性 |
Q4_0 | 低 | 低 | ARM或低內存設備 | llama.cpp可針對ARM設備進行優化 |
包含文件及詳情
文件名 | 詳情 |
---|---|
medgemma-27b-text-it-bf16.gguf |
模型權重保存為BF16。若要將模型重新量化為不同格式,使用此文件。設備支持BF16加速時最佳。 |
medgemma-27b-text-it-f16.gguf |
模型權重保存為F16。設備支持FP16,尤其是BF16不可用時使用。 |
medgemma-27b-text-it-bf16-q8_0.gguf |
輸出和嵌入保持為BF16,其他層量化為Q8_0。設備支持BF16且需要量化版本時使用。 |
medgemma-27b-text-it-f16-q8_0.gguf |
輸出和嵌入保持為F16,其他層量化為Q8_0。 |
medgemma-27b-text-it-q4_k.gguf |
輸出和嵌入量化為Q8_0,其他層量化為Q4_K。適合內存有限的CPU推理。 |
medgemma-27b-text-it-q4_k_s.gguf |
最小的Q4_K變體,以準確性為代價減少內存使用。最適合極低內存設置。 |
medgemma-27b-text-it-q6_k.gguf |
輸出和嵌入量化為Q8_0,其他層量化為Q6_K。 |
medgemma-27b-text-it-q8_0.gguf |
完全Q8量化模型,準確性更好。需要更多內存,但提供更高精度。 |
medgemma-27b-text-it-iq3_xs.gguf |
IQ3_XS量化,針對極端內存效率進行了優化。最適合超低內存設備。 |
medgemma-27b-text-it-iq3_m.gguf |
IQ3_M量化,提供中等塊大小以提高準確性。適用於低內存設備。 |
medgemma-27b-text-it-q4_0.gguf |
純Q4_0量化,針對ARM設備進行了優化。最適合低內存環境。優先使用IQ4_NL以獲得更好的準確性。 |
測試模型
如果覺得這些模型有用,請點擊“點贊”!同時,可幫助測試AI驅動的網絡監控助手,進行量子就緒安全檢查: 免費網絡監控器
測試方法
選擇AI助手類型:
TurboLLM
(GPT - 4o - mini)HugLLM
(Hugginface開源)TestLLM
(僅實驗性CPU)
測試內容
正在測試小型開源模型在AI網絡監控方面的極限,具體包括:
- 針對即時網絡服務的函數調用
- 模型可以多小,同時仍能處理:
- 自動化Nmap掃描
- 量子就緒檢查
- 網絡監控任務
TestLLM - 當前實驗模型(llama.cpp在2個CPU線程上)
- 零配置設置
- 加載時間≥30s(推理慢,但無API成本)
- 尋求幫助! 如果對邊緣設備AI感興趣,讓我們合作!
其他助手
- TurboLLM - 使用gpt - 4o - mini進行:
- 創建自定義cmd處理器,在免費網絡監控代理上運行.net代碼
- 即時網絡診斷和監控
- 安全審計
- 滲透測試(Nmap/Metasploit)
- 通過登錄或下載集成了AI助手的免費網絡監控代理獲得更多令牌
- HugLLM - 最新開源模型:
- 在Hugging Face推理API上運行
示例命令
"Give me info on my websites SSL certificate"
"Check if my server is using quantum safe encyption for communication"
"Run a comprehensive security audit on my server"
- '"Create a cmd processor to .. (what ever you want)" 注意,需要安裝免費網絡監控代理才能運行.net代碼。這是一個非常靈活和強大的功能,請謹慎使用!
🔧 技術細節
模型架構概述
MedGemma模型基於Gemma 3構建,使用與Gemma 3相同的僅解碼器變壓器架構。有關架構的更多信息,請參考Gemma 3 模型卡片。
技術規格
屬性 | 詳情 |
---|---|
模型類型 | 僅解碼器變壓器架構,參見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模型在所有測試的僅文本健康基準測試中均優於各自的基礎Gemma模型。
指標 | MedGemma 27B | Gemma 3 27B | MedGemma 4B | Gemma 3 4B |
---|---|---|---|---|
MedQA (4 - op) | 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 27B結果,使用測試時縮放來提高性能。
倫理和安全評估
評估方法
評估方法包括結構化評估和相關內容政策的內部紅隊測試。紅隊測試由多個不同團隊進行。
📄 許可證
本項目使用Health AI Developer Foundations使用條款。若要在Hugging Face上訪問MedGemma,需要審查並同意該使用條款。請確保已登錄Hugging Face並點擊下方按鈕,請求將立即處理。 確認許可證



