license: gemma
library_name: transformers
pipeline_tag: image-text-to-text
extra_gated_heading: 访问Hugging Face上的Gemma
extra_gated_prompt: 要访问Hugging Face上的Gemma,您需要审阅并同意Google的使用许可。请确保您已登录Hugging Face账号并点击下方按钮。请求将立即处理。
extra_gated_button_content: 确认许可
base_model: google/gemma-3-27b-pt
gemma-3-27b-it GGUF模型
如何使用llama.cpp运行Gemma 3视觉模型
要利用llama.cpp
对Gemma 3视觉模型的实验性支持,请按以下步骤操作:
-
克隆最新的llama.cpp仓库:
git clone https://github.com/ggml-org/llama.cpp.git
cd llama.cpp
-
构建Llama.cpp:
按常规方式构建llama.cpp:https://github.com/ggml-org/llama.cpp#building-the-project
构建完成后,将./llama.cpp/build/bin/llama-gemma3-cli
复制到指定文件夹。
-
下载Gemma 3的gguf文件:
https://huggingface.co/Mungert/gemma-3-4b-it-gguf/tree/main
选择名称中不包含mmproj
的gguf文件。
示例gguf文件:https://huggingface.co/Mungert/gemma-3-4b-it-gguf/resolve/main/google_gemma-3-4b-it-q4_k_l.gguf
将此文件复制到您的目标文件夹。
-
下载Gemma 3的mmproj文件:
https://huggingface.co/Mungert/gemma-3-4b-it-gguf/tree/main
选择名称中包含mmproj
的文件。
示例mmproj文件:https://huggingface.co/Mungert/gemma-3-4b-it-gguf/resolve/main/google_gemma-3-4b-it-mmproj-bf16.gguf
将此文件复制到您的目标文件夹。
-
将图像文件复制到与gguf文件相同的文件夹,或适当调整路径。
在以下示例中,gguf文件、图像和llama-gemma-cli位于同一文件夹。
示例图像:https://huggingface.co/Mungert/gemma-3-4b-it-gguf/resolve/main/car-1.jpg
将此文件复制到您的目标文件夹。
-
运行CLI工具:
在目标文件夹中执行:
llama-gemma3-cli -m google_gemma-3-4b-it-q4_k_l.gguf --mmproj google_gemma-3-4b-it-mmproj-bf16.gguf
聊天模式运行中,可用命令:
/image <路径> 加载图像
/clear 清除聊天记录
/quit 或 /exit 退出程序
> /image car-1.jpg
编码图像car-1.jpg
图像编码耗时46305毫秒
图像解码耗时19302毫秒
> 这张图片是什么
以下是图像内容的解析:
**主体:** 主要是一辆黑色保时捷Panamera Turbo在高速公路上行驶。
**细节:**
* **车辆:** 这是一辆流线型的现代保时捷Panamera Turbo,可通过其独特的尾部设计、"PORSCHE"字样和"Panamera Turbo"徽标识别。车牌号为"CVC-911"。
* **场景:** 车辆位于多车道高速公路上,背景模糊可见树木、远处建筑和多云天空。光线暗示可能是黄昏或黎明时分。
* **动态:** 图像捕捉到车辆运动状态,轻微动态模糊传达速度感。
**整体印象:** 图像传递出速度感、奢华感和力量感。这是一张构图精良的照片,突出了车辆的设计与性能。
是否需要我更详细描述图像的特定方面,或分析其构图?
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)
量化方式 |
标准PPL |
DynamicGate PPL |
Δ PPL |
标准大小 |
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 |
说明:
- PPL = 困惑度(数值越低越好)
- Δ PPL = 相比标准量化的百分比变化
- 速度 = 推理时间(CPU avx2,2048词元上下文)
- 大小差异反映混合量化开销
核心改进:
- 🔥 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当:
✔ 硬件原生支持BF16(如新款GPU/TPU)
✔ 需在节省内存的同时保持较高精度
✔ 计划将模型重新量化为其他格式
📌 避免BF16当:
❌ 硬件不支持BF16(可能回退至FP32导致速度变慢)
❌ 需兼容缺乏BF16优化的老旧设备
F16(Float 16)– 比BF16支持更广泛
- 16位浮点格式,精度较高但数值范围小于BF16
- 支持大多数具有FP16加速的设备(包括多数GPU和部分CPU)
- 数值精度略低于BF16,但通常足以满足推理需求
📌 选用F16当:
✔ 硬件支持FP16但不支持BF16
✔ 需要平衡速度、内存占用和准确性
✔ 在GPU或其他优化FP16计算的设备上运行
📌 避免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_M:中等分块,精度优于IQ3_S
-
Q4_K:4比特量化,采用分块优化提升精度
-
Q4_0:纯4比特量化,专为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设备优化 |
包含文件及详情
gemma-3-27b-it-bf16.gguf
- 模型权重保留为BF16格式
- 如需将模型重新量化为其他格式时使用
- 设备支持BF16加速时最佳
gemma-3-27b-it-f16.gguf
- 模型权重存储为F16格式
- BF16不可用时选用,尤其设备支持FP16时
gemma-3-27b-it-bf16-q8_0.gguf