模型简介
模型特点
模型能力
使用案例
🚀 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并点击下方按钮,请求将立即处理。 确认许可证



