模型简介
模型特点
模型能力
使用案例
🚀 medgemma-4b-it GGUF模型
medgemma-4b-it GGUF模型是基于特定技术生成的适用于医学领域的模型,可用于图像文本到文本的处理任务,在医学文本和图像理解方面有出色表现,能助力开发者加速构建医疗AI应用。
🚀 快速开始
若要在本地GPU上运行模型,可参考以下步骤快速上手。若需大规模使用模型,建议使用Model Garden创建生产版本。 首先,安装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)
✨ 主要特性
模型生成细节
该模型使用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和边缘设备
- 超低比特量化研究
选择正确的模型格式
选择正确的模型格式取决于硬件能力和内存限制。
属性 | 详情 |
---|---|
模型类型 | 仅解码器的Transformer架构,详见Gemma 3技术报告 |
训练数据 | MedGemma 4B的图像编码器使用SigLIP在多种去识别医疗数据上预训练,LLM组件在多种医疗数据上训练;MedGemma 27B仅在医疗文本上训练 |
模态 | 4B版本支持文本和视觉;27B版本仅支持文本 |
注意力机制 | 采用分组查询注意力(GQA) |
上下文长度 | 支持长上下文,至少128K令牌 |
关键出版物 | 即将发布 |
模型创建时间 | 2025年5月20日 |
模型版本 | 1.0.0 |
BF16(脑浮点16)
- 适用情况:若硬件支持BF16加速,推荐使用。这是一种16位浮点格式,旨在实现更快计算的同时保留良好精度,与FP32具有相似的动态范围,但内存使用更低,适用于高性能推理且内存占用低于FP32。
- 使用建议:若硬件具有原生BF16支持(如较新的GPU、TPU),希望在节省内存的同时获得更高精度,或计划将模型重新量化为其他格式,可使用BF16。若硬件不支持BF16(可能会回退到FP32并运行较慢),或需要与缺乏BF16优化的旧设备兼容,则避免使用。
F16(浮点16)
- 适用情况:比BF16更广泛支持。是一种16位浮点格式,精度较高,但取值范围小于BF16,适用于大多数支持FP16加速的设备(包括许多GPU和一些CPU),数值精度略低于BF16,但通常足以用于推理。
- 使用建议:若硬件支持FP16但不支持BF16,需要在速度、内存使用和准确性之间取得平衡,或在为FP16计算优化的GPU或其他设备上运行,可使用F16。若设备缺乏原生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设备进行优化 |
📦 安装指南
安装Transformers库,Gemma 3从transformers 4.50.0版本开始支持。
$ pip install -U transformers
💻 使用示例
基础用法
上述“快速开始”部分的代码示例即为基础用法,可帮助你在本地GPU上快速运行模型。
高级用法
若要大规模使用模型,建议使用Model Garden创建生产版本。
📚 详细文档
包含文件及详情
medgemma-4b-it-bf16.gguf
:模型权重以BF16格式保存,若要将模型重新量化为其他格式,或设备支持BF16加速,可使用此文件。medgemma-4b-it-f16.gguf
:模型权重以F16格式存储,若设备支持FP16,尤其是BF16不可用时,可使用此文件。medgemma-4b-it-bf16-q8_0.gguf
:输出和嵌入层保持为BF16,其他层量化为Q8_0,若设备支持BF16且需要量化版本,可使用此文件。medgemma-4b-it-f16-q8_0.gguf
:输出和嵌入层保持为F16,其他层量化为Q8_0。medgemma-4b-it-q4_k.gguf
:输出和嵌入层量化为Q8_0,其他层量化为Q4_K,适用于内存有限的CPU推理。medgemma-4b-it-q4_k_s.gguf
:最小的Q4_K变体,以牺牲准确性为代价减少内存使用,适用于极低内存设置。medgemma-4b-it-q6_k.gguf
:输出和嵌入层量化为Q8_0,其他层量化为Q6_K。medgemma-4b-it-q8_0.gguf
:完全Q8量化模型,准确性更好,但需要更多内存。medgemma-4b-it-iq3_xs.gguf
:IQ3_XS量化,针对极端内存效率进行了优化,适用于超低内存设备。medgemma-4b-it-iq3_m.gguf
:IQ3_M量化,提供中等块大小以提高准确性,适用于低内存设备。medgemma-4b-it-q4_0.gguf
:纯Q4_0量化,针对ARM设备进行了优化,适用于低内存环境,若追求更好的准确性,建议使用IQ4_NL。
模型信息
描述
MedGemma是Gemma 3的变体集合,针对医学文本和图像理解的性能进行了训练。开发者可使用MedGemma加速构建基于医疗保健的AI应用。目前,MedGemma有两种变体:4B多模态版本和27B纯文本版本。
- MedGemma 4B:利用SigLIP图像编码器,该编码器在多种去识别医疗数据(包括胸部X光、皮肤科图像、眼科图像和组织病理学切片)上进行了专门的预训练。其大语言模型(LLM)组件在多种医疗数据(包括放射学图像、组织病理学切片、眼科图像和皮肤科图像)上进行了训练。有预训练(后缀:
-pt
)和指令调优(后缀-it
)两个版本,指令调优版本是大多数应用的更好起点,预训练版本适用于希望更深入实验模型的用户。 - MedGemma 27B:仅在医学文本上进行训练,并针对推理时的计算进行了优化,仅作为指令调优模型提供。
MedGemma变体已在一系列临床相关基准测试中进行了评估,以展示其基线性能,包括开放基准数据集和精选数据集。开发者可对MedGemma变体进行微调以提高性能。
示例
可参考以下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]}
}
输入和输出
- 输入:文本字符串(如问题或提示)、图像。
- 输出:根据输入生成的文本。
🔧 技术细节
模型评估
MedGemma变体在一系列临床相关基准测试中进行了评估,包括开放基准数据集和精选数据集,以展示其基线性能。开发者可对MedGemma变体进行微调以提高性能。
技术报告
完整的技术报告即将发布。
📄 许可证
本模型的使用受Health AI Developer Foundation's terms of use约束。若要在Hugging Face上访问MedGemma,需要审查并同意该使用条款。请确保已登录Hugging Face并点击下方按钮,请求将立即处理。 确认许可证
其他说明
测试模型
若觉得这些模型有用,请点击“点赞”!同时,欢迎帮助测试AI驱动的网络监控助手,进行量子就绪安全检查: 免费网络监控器
测试方法: 选择一种AI助手类型:
TurboLLM
(GPT - 4o - mini)HugLLM
(Hugginface开源)TestLLM
(仅CPU实验性)
测试内容: 正在探索小型开源模型在AI网络监控中的极限,具体包括:
- 针对实时网络服务的函数调用。
- 模型在处理以下任务时可以多小:
- 自动Nmap扫描。
- 量子就绪检查。
- 网络监控任务。
TestLLM:当前的实验模型(llama.cpp在2个CPU线程上):
- 零配置设置。
- 加载时间约30秒(推理速度慢,但无API成本)。
- 寻求帮助!若对边缘设备AI感兴趣,欢迎合作!
其他助手:
- TurboLLM:使用gpt - 4o - mini进行以下操作:
- 创建自定义命令处理器,在免费网络监控代理上运行.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代码,这是一个非常灵活且强大的功能,请谨慎使用!








