Image-Text-to-Text
MLX
Safetensors
gemma4
mlx-vlm
4-bit precision
quantized
affine
snowfox
conversational
Instructions to use MichaelAnthony/gemma4-e2b-Snowfox-MLX-4bit with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use MichaelAnthony/gemma4-e2b-Snowfox-MLX-4bit with MLX:
# Make sure mlx-vlm is installed # pip install --upgrade mlx-vlm from mlx_vlm import load, generate from mlx_vlm.prompt_utils import apply_chat_template from mlx_vlm.utils import load_config # Load the model model, processor = load("MichaelAnthony/gemma4-e2b-Snowfox-MLX-4bit") config = load_config("MichaelAnthony/gemma4-e2b-Snowfox-MLX-4bit") # Prepare input image = ["http://images.cocodataset.org/val2017/000000039769.jpg"] prompt = "Describe this image." # Apply chat template formatted_prompt = apply_chat_template( processor, config, prompt, num_images=1 ) # Generate output output = generate(model, processor, formatted_prompt, image) print(output) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Pi
How to use MichaelAnthony/gemma4-e2b-Snowfox-MLX-4bit with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "MichaelAnthony/gemma4-e2b-Snowfox-MLX-4bit"
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "mlx-lm": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "MichaelAnthony/gemma4-e2b-Snowfox-MLX-4bit" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent
How to use MichaelAnthony/gemma4-e2b-Snowfox-MLX-4bit with Hermes Agent:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "MichaelAnthony/gemma4-e2b-Snowfox-MLX-4bit"
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default MichaelAnthony/gemma4-e2b-Snowfox-MLX-4bit
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use MichaelAnthony/gemma4-e2b-Snowfox-MLX-4bit with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "MichaelAnthony/gemma4-e2b-Snowfox-MLX-4bit"
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "MichaelAnthony/gemma4-e2b-Snowfox-MLX-4bit" \ --custom-provider-id mlx-lm \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
Keep vision/audio towers dense (fix image understanding)
Browse files- README.md +18 -15
- model-00001-of-00001.safetensors +2 -2
- model.safetensors.index.json +0 -0
README.md
CHANGED
|
@@ -35,19 +35,23 @@ tokenizer needed by MLX-VLM.
|
|
| 35 |
|
| 36 |
## What is quantized
|
| 37 |
|
| 38 |
-
- **
|
| 39 |
-
multimodal
|
| 40 |
-
packed `uint32` `weight` (8 values per word, low nibble
|
| 41 |
-
`scales`/`biases`.
|
| 42 |
-
- **
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 46 |
|
| 47 |
## Package contents
|
| 48 |
|
| 49 |
-
- `model-00001-of-00001.safetensors` (
|
| 50 |
-
in a single shard (~
|
| 51 |
- `model.safetensors.index.json`: complete shard map.
|
| 52 |
- `config.json` (with `quantization` + `quantization_config`), `generation_config.json`,
|
| 53 |
`processor_config.json`, tokenizer files, and `chat_template.jinja`.
|
|
@@ -57,13 +61,12 @@ tokenizer needed by MLX-VLM.
|
|
| 57 |
The conversion host has no Apple-Silicon MLX runtime, so the quantized package
|
| 58 |
was structurally validated before upload:
|
| 59 |
|
| 60 |
-
- 1,951 source tensors mapped with no missing or extra keys;
|
| 61 |
-
|
| 62 |
- Quantized weight format matches the MLX affine contract: 4-bit values packed
|
| 63 |
8-per-`uint32` (low nibble first), dequantization `scale * q + bias`, group 64.
|
| 64 |
-
- Round-trip dequantization of sampled layers
|
| 65 |
-
|
| 66 |
-
4-bit precision (max relative error ≈ 5%).
|
| 67 |
|
| 68 |
**Apple-Silicon MLX-VLM inference has not been run.** Treat this as a
|
| 69 |
structurally validated quantization pending a real Apple-Silicon text / image /
|
|
|
|
| 35 |
|
| 36 |
## What is quantized
|
| 37 |
|
| 38 |
+
- **280 language-model layers** (`q/k/v/o` projections, MLP gate/up/down,
|
| 39 |
+
the multimodal embedding projections, and the large embeddings) are 4-bit
|
| 40 |
+
affine quantized: packed `uint32` `weight` (8 values per word, low nibble
|
| 41 |
+
first) + float16 `scales`/`biases`.
|
| 42 |
+
- **The vision tower and audio tower are left in float16 (dense)** — matching
|
| 43 |
+
MLX-VLM's `convert --quantize`, which skips multimodal modules. Their QAT
|
| 44 |
+
`ClippableLinear` layers carry input/output clipping parameters
|
| 45 |
+
(`input_max`/`input_min`/`output_max`/`output_min`) that must not be
|
| 46 |
+
affine-quantized, so they stay dense and are loaded as regular `nn.Linear`.
|
| 47 |
+
- The dense per-layer input embedding (`embed_tokens_per_layer`) **is**
|
| 48 |
+
quantized here, so the language model stays compact without exceeding the
|
| 49 |
+
Metal buffer cap.
|
| 50 |
|
| 51 |
## Package contents
|
| 52 |
|
| 53 |
+
- `model-00001-of-00001.safetensors` (3,550,670,830 bytes): the 4-bit MLX model
|
| 54 |
+
in a single shard (~3.55 GB total).
|
| 55 |
- `model.safetensors.index.json`: complete shard map.
|
| 56 |
- `config.json` (with `quantization` + `quantization_config`), `generation_config.json`,
|
| 57 |
`processor_config.json`, tokenizer files, and `chat_template.jinja`.
|
|
|
|
| 61 |
The conversion host has no Apple-Silicon MLX runtime, so the quantized package
|
| 62 |
was structurally validated before upload:
|
| 63 |
|
| 64 |
+
- 1,951 source tensors mapped with no missing or extra keys; 280 language-model
|
| 65 |
+
layers quantized; vision/audio towers left dense.
|
| 66 |
- Quantized weight format matches the MLX affine contract: 4-bit values packed
|
| 67 |
8-per-`uint32` (low nibble first), dequantization `scale * q + bias`, group 64.
|
| 68 |
+
- Round-trip dequantization of sampled layers reproduces the source weights to
|
| 69 |
+
within 4-bit precision.
|
|
|
|
| 70 |
|
| 71 |
**Apple-Silicon MLX-VLM inference has not been run.** Treat this as a
|
| 72 |
structurally validated quantization pending a real Apple-Silicon text / image /
|
model-00001-of-00001.safetensors
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:38de6d49e4d9cf80c90e5d739705f7bcebeeb29f851a3e30c8e78d7982eaeb13
|
| 3 |
+
size 3550670830
|
model.safetensors.index.json
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|