268 lines
11 KiB
Markdown
268 lines
11 KiB
Markdown
|
|
---
|
|||
|
|
license: gemma
|
|||
|
|
pipeline_tag: image-text-to-text
|
|||
|
|
tags:
|
|||
|
|
- vision
|
|||
|
|
- gemma
|
|||
|
|
- llama.cpp
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# <span style="color: #7FFF7F;">Gemma-3 4B Instruct GGUF Models</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
## How to Use Gemma 3 Vision with llama.cpp
|
|||
|
|
|
|||
|
|
To utilize the experimental support for Gemma 3 Vision in `llama.cpp`, follow these steps:
|
|||
|
|
|
|||
|
|
1. **Clone the lastest llama.cpp Repository**:
|
|||
|
|
```bash
|
|||
|
|
git clone https://github.com/ggml-org/llama.cpp.git
|
|||
|
|
cd llama.cpp
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
|
|||
|
|
2. **Build the Llama.cpp**:
|
|||
|
|
|
|||
|
|
Build llama.cpp as usual : https://github.com/ggml-org/llama.cpp#building-the-project
|
|||
|
|
|
|||
|
|
Once llama.cpp is built Copy the ./llama.cpp/build/bin/llama-gemma3-cli to a chosen folder.
|
|||
|
|
|
|||
|
|
3. **Download the Gemma 3 gguf file**:
|
|||
|
|
|
|||
|
|
https://huggingface.co/Mungert/gemma-3-4b-it-gguf/tree/main
|
|||
|
|
|
|||
|
|
Choose a gguf file without the mmproj in the name
|
|||
|
|
|
|||
|
|
Example gguf file : https://huggingface.co/Mungert/gemma-3-4b-it-gguf/resolve/main/google_gemma-3-4b-it-q4_k_l.gguf
|
|||
|
|
|
|||
|
|
Copy this file to your chosen folder.
|
|||
|
|
|
|||
|
|
4. **Download the Gemma 3 mmproj file**
|
|||
|
|
|
|||
|
|
https://huggingface.co/Mungert/gemma-3-4b-it-gguf/tree/main
|
|||
|
|
|
|||
|
|
Choose a file with mmproj in the name
|
|||
|
|
|
|||
|
|
Example mmproj file : https://huggingface.co/Mungert/gemma-3-4b-it-gguf/resolve/main/google_gemma-3-4b-it-mmproj-bf16.gguf
|
|||
|
|
|
|||
|
|
Copy this file to your chosen folder.
|
|||
|
|
|
|||
|
|
5. Copy images to the same folder as the gguf files or alter paths appropriately.
|
|||
|
|
|
|||
|
|
In the example below the gguf files, images and llama-gemma-cli are in the same folder.
|
|||
|
|
|
|||
|
|
Example image: image https://huggingface.co/Mungert/gemma-3-4b-it-gguf/resolve/main/car-1.jpg
|
|||
|
|
|
|||
|
|
Copy this file to your chosen folder.
|
|||
|
|
|
|||
|
|
6. **Run the CLI Tool**:
|
|||
|
|
|
|||
|
|
From your chosen folder :
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
llama-gemma3-cli -m google_gemma-3-4b-it-q4_k_l.gguf --mmproj google_gemma-3-4b-it-mmproj-bf16.gguf
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
Running in chat mode, available commands:
|
|||
|
|
/image <path> load an image
|
|||
|
|
/clear clear the chat history
|
|||
|
|
/quit or /exit exit the program
|
|||
|
|
|
|||
|
|
> /image car-1.jpg
|
|||
|
|
Encoding image car-1.jpg
|
|||
|
|
Image encoded in 46305 ms
|
|||
|
|
Image decoded in 19302 ms
|
|||
|
|
|
|||
|
|
> what is the image of
|
|||
|
|
Here's a breakdown of what's in the image:
|
|||
|
|
|
|||
|
|
**Subject:** The primary subject is a black Porsche Panamera Turbo driving on a highway.
|
|||
|
|
|
|||
|
|
**Details:**
|
|||
|
|
|
|||
|
|
* **Car:** It's a sleek, modern Porsche Panamera Turbo, identifiable by its distinctive rear design, the "PORSCHE" lettering, and the "Panamera Turbo" badge. The license plate reads "CVC-911".
|
|||
|
|
* **Setting:** The car is on a multi-lane highway, with a blurred background of trees, a distant building, and a cloudy sky. The lighting suggests it's either dusk or dawn.
|
|||
|
|
* **Motion:** The image captures the car in motion, with a slight motion blur to convey speed.
|
|||
|
|
|
|||
|
|
**Overall Impression:** The image conveys a sense of speed, luxury, and power. It's a well-composed shot that highlights the car's design and performance.
|
|||
|
|
|
|||
|
|
Do you want me to describe any specific aspect of the image in more detail, or perhaps analyze its composition?
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
# <span id="testllm" style="color: #7F7FFF;">🚀 If you find these models useful</span>
|
|||
|
|
|
|||
|
|
Please click like ❤️ . Also I’d really appreciate it if you could test my Network Monitor Assistant at 👉 [Network Monitor Assitant](https://readyforquantum.com).
|
|||
|
|
💬 Click the **chat icon** (bottom right of the main and dashboard pages) . Choose a LLM; toggle between the LLM Types TurboLLM -> FreeLLM -> TestLLM.
|
|||
|
|
|
|||
|
|
### What I'm Testing
|
|||
|
|
I'm experimenting with **function calling** against my network monitoring service. Using small open source models. I am into the question "How small can it go and still function".
|
|||
|
|
🟡 **TestLLM** – Runs **Phi-4-mini-instruct** using phi-4-mini-q4_0.gguf , llama.cpp on 6 threads of a Cpu VM (Should take about 15s to load. Inference speed is quite slow and it only processes one user prompt at a time—still working on scaling!). If you're curious, I'd be happy to share how it works! .
|
|||
|
|
|
|||
|
|
### The other Available AI Assistants
|
|||
|
|
🟢 **TurboLLM** – Uses **gpt-4o-mini** Fast! . Note: tokens are limited since OpenAI models are pricey, but you can [Login](https://readyforquantum.com) or [Download](https://readyforquantum.com/download/?utm_source=huggingface&utm_medium=referral&utm_campaign=huggingface_repo_readme) the Quantum Network Monitor agent to get more tokens, Alternatively use the TestLLM .
|
|||
|
|
🔵 **HugLLM** – Runs **open-source Hugging Face models** Fast, Runs small models (≈8B) hence lower quality, Get 2x more tokens (subject to Hugging Face API availability)
|
|||
|
|
|
|||
|
|
|
|||
|
|
## **Choosing the Right Model Format**
|
|||
|
|
|
|||
|
|
Selecting the correct model format depends on your **hardware capabilities** and **memory constraints**.
|
|||
|
|
|
|||
|
|
### **BF16 (Brain Float 16) – Use if BF16 acceleration is available**
|
|||
|
|
- A 16-bit floating-point format designed for **faster computation** while retaining good precision.
|
|||
|
|
- Provides **similar dynamic range** as FP32 but with **lower memory usage**.
|
|||
|
|
- Recommended if your hardware supports **BF16 acceleration** (check your device’s specs).
|
|||
|
|
- Ideal for **high-performance inference** with **reduced memory footprint** compared to FP32.
|
|||
|
|
|
|||
|
|
📌 **Use BF16 if:**
|
|||
|
|
✔ Your hardware has native **BF16 support** (e.g., newer GPUs, TPUs).
|
|||
|
|
✔ You want **higher precision** while saving memory.
|
|||
|
|
✔ You plan to **requantize** the model into another format.
|
|||
|
|
|
|||
|
|
📌 **Avoid BF16 if:**
|
|||
|
|
❌ Your hardware does **not** support BF16 (it may fall back to FP32 and run slower).
|
|||
|
|
❌ You need compatibility with older devices that lack BF16 optimization.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### **F16 (Float 16) – More widely supported than BF16**
|
|||
|
|
- A 16-bit floating-point **high precision** but with less of range of values than BF16.
|
|||
|
|
- Works on most devices with **FP16 acceleration support** (including many GPUs and some CPUs).
|
|||
|
|
- Slightly lower numerical precision than BF16 but generally sufficient for inference.
|
|||
|
|
|
|||
|
|
📌 **Use F16 if:**
|
|||
|
|
✔ Your hardware supports **FP16** but **not BF16**.
|
|||
|
|
✔ You need a **balance between speed, memory usage, and accuracy**.
|
|||
|
|
✔ You are running on a **GPU** or another device optimized for FP16 computations.
|
|||
|
|
|
|||
|
|
📌 **Avoid F16 if:**
|
|||
|
|
❌ Your device lacks **native FP16 support** (it may run slower than expected).
|
|||
|
|
❌ You have memory limtations.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### **Quantized Models (Q4_K, Q6_K, Q8, etc.) – For CPU & Low-VRAM Inference**
|
|||
|
|
Quantization reduces model size and memory usage while maintaining as much accuracy as possible.
|
|||
|
|
- **Lower-bit models (Q4_K)** → **Best for minimal memory usage**, may have lower precision.
|
|||
|
|
- **Higher-bit models (Q6_K, Q8_0)** → **Better accuracy**, requires more memory.
|
|||
|
|
|
|||
|
|
📌 **Use Quantized Models if:**
|
|||
|
|
✔ You are running inference on a **CPU** and need an optimized model.
|
|||
|
|
✔ Your device has **low VRAM** and cannot load full-precision models.
|
|||
|
|
✔ You want to reduce **memory footprint** while keeping reasonable accuracy.
|
|||
|
|
|
|||
|
|
📌 **Avoid Quantized Models if:**
|
|||
|
|
❌ You need **maximum accuracy** (full-precision models are better for this).
|
|||
|
|
❌ Your hardware has enough VRAM for higher-precision formats (BF16/F16).
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### **Summary Table: Model Format Selection**
|
|||
|
|
|
|||
|
|
| Model Format | Precision | Memory Usage | Device Requirements | Best Use Case |
|
|||
|
|
|--------------|------------|---------------|----------------------|---------------|
|
|||
|
|
| **BF16** | Highest | High | BF16-supported GPU/CPUs | High-speed inference with reduced memory |
|
|||
|
|
| **F16** | High | High | FP16-supported devices | GPU inference when BF16 isn’t available |
|
|||
|
|
| **Q4_K** | Low | Very Low | CPU or Low-VRAM devices | Best for memory-constrained environments |
|
|||
|
|
| **Q6_K** | Medium Low | Low | CPU with more memory | Better accuracy while still being quantized |
|
|||
|
|
| **Q8** | Medium | Moderate | CPU or GPU with enough VRAM | Best accuracy among quantized models |
|
|||
|
|
|
|||
|
|
|
|||
|
|
## **Included Files & Details**
|
|||
|
|
|
|||
|
|
### `google_gemma-3-4b-it-bf16.gguf`
|
|||
|
|
- Model weights preserved in **BF16**.
|
|||
|
|
- Use this if you want to **requantize** the model into a different format.
|
|||
|
|
- Best if your device supports **BF16 acceleration**.
|
|||
|
|
|
|||
|
|
### `google_gemma-3-4b-it-f16.gguf`
|
|||
|
|
- Model weights stored in **F16**.
|
|||
|
|
- Use if your device supports **FP16**, especially if BF16 is not available.
|
|||
|
|
|
|||
|
|
### `google_gemma-3-4b-it-bf16-q8.gguf`
|
|||
|
|
- **Output & embeddings** remain in **BF16**.
|
|||
|
|
- All other layers quantized to **Q8_0**.
|
|||
|
|
- Use if your device supports **BF16** and you want a quantized version.
|
|||
|
|
|
|||
|
|
### `google_gemma-3-4b-it-f16-q8.gguf`
|
|||
|
|
- **Output & embeddings** remain in **F16**.
|
|||
|
|
- All other layers quantized to **Q8_0**.
|
|||
|
|
|
|||
|
|
### `google_gemma-3-4b-it-q4_k_l.gguf`
|
|||
|
|
- **Output & embeddings** quantized to **Q8_0**.
|
|||
|
|
- All other layers quantized to **Q4_K**.
|
|||
|
|
- Good for **CPU inference** with limited memory.
|
|||
|
|
|
|||
|
|
### `google_gemma-3-4b-it-q4_k_m.gguf`
|
|||
|
|
- Similar to Q4_K.
|
|||
|
|
- Another option for **low-memory CPU inference**.
|
|||
|
|
|
|||
|
|
### `google_gemma-3-4b-it-q4_k_s.gguf`
|
|||
|
|
- Smallest **Q4_K** variant, using less memory at the cost of accuracy.
|
|||
|
|
- Best for **very low-memory setups**.
|
|||
|
|
|
|||
|
|
### `google_gemma-3-4b-it-q6_k_l.gguf`
|
|||
|
|
- **Output & embeddings** quantized to **Q8_0**.
|
|||
|
|
- All other layers quantized to **Q6_K** .
|
|||
|
|
|
|||
|
|
### `google_gemma-3-4b-it-q6_k_m.gguf`
|
|||
|
|
- A mid-range **Q6_K** quantized model for balanced performance .
|
|||
|
|
- Suitable for **CPU-based inference** with **moderate memory**.
|
|||
|
|
|
|||
|
|
### `google_gemma-3-4b-it-q8.gguf`
|
|||
|
|
- Fully **Q8** quantized model for better accuracy.
|
|||
|
|
- Requires **more memory** but offers higher precision.
|
|||
|
|
|
|||
|
|
|
|||
|
|
# Gemma 3 model card
|
|||
|
|
|
|||
|
|
**Model Page**: [Gemma](https://ai.google.dev/gemma/docs/core)
|
|||
|
|
|
|||
|
|
**Resources and Technical Documentation**:
|
|||
|
|
|
|||
|
|
* [Gemma 3 Technical Report][g3-tech-report]
|
|||
|
|
* [Responsible Generative AI Toolkit][rai-toolkit]
|
|||
|
|
* [Gemma on Kaggle][kaggle-gemma]
|
|||
|
|
* [Gemma on Vertex Model Garden][vertex-mg-gemma3]
|
|||
|
|
|
|||
|
|
**Terms of Use**: [Terms][terms]
|
|||
|
|
|
|||
|
|
**Authors**: Google DeepMind
|
|||
|
|
|
|||
|
|
## Model Information
|
|||
|
|
|
|||
|
|
Summary description and brief definition of inputs and outputs.
|
|||
|
|
|
|||
|
|
### Description
|
|||
|
|
|
|||
|
|
Gemma is a family of lightweight, state-of-the-art open models from Google,
|
|||
|
|
built from the same research and technology used to create the Gemini models.
|
|||
|
|
Gemma 3 models are multimodal, handling text and image input and generating text
|
|||
|
|
output, with open weights for both pre-trained variants and instruction-tuned
|
|||
|
|
variants. Gemma 3 has a large, 128K context window, multilingual support in over
|
|||
|
|
140 languages, and is available in more sizes than previous versions. Gemma 3
|
|||
|
|
models are well-suited for a variety of text generation and image understanding
|
|||
|
|
tasks, including question answering, summarization, and reasoning. Their
|
|||
|
|
relatively small size makes it possible to deploy them in environments with
|
|||
|
|
limited resources such as laptops, desktops or your own cloud infrastructure,
|
|||
|
|
democratizing access to state of the art AI models and helping foster innovation
|
|||
|
|
for everyone.
|
|||
|
|
|
|||
|
|
### Inputs and outputs
|
|||
|
|
|
|||
|
|
- **Input:**
|
|||
|
|
- Text string, such as a question, a prompt, or a document to be summarized
|
|||
|
|
- Images, normalized to 896 x 896 resolution and encoded to 256 tokens
|
|||
|
|
each
|
|||
|
|
- Total input context of 128K tokens for the 4B, 12B, and 27B sizes, and
|
|||
|
|
32K tokens for the 1B size
|
|||
|
|
|
|||
|
|
- **Output:**
|
|||
|
|
- Generated text in response to the input, such as an answer to a
|
|||
|
|
question, analysis of image content, or a summary of a document
|
|||
|
|
- Total output context of 8192 tokens
|
|||
|
|
|
|||
|
|
|
|||
|
|
## Credits
|
|||
|
|
|
|||
|
|
Thanks [Bartowski](https://huggingface.co/bartowski) for imartix upload. And your guidance on quantization that has enabled me to produce these gguf file.
|