Image-Text-to-Text
MLX
Core ML
Safetensors
Transformers
llava_qwen2
text-generation
fastvlm
mlx-vlm
conversational
custom_code
vision-language
multimodal
apple-silicon
quantized
7B
q4 / 4-bit quantized
4-bit precision
4-bit precision
q4
Instructions to use dbaek111/fastvlm-7b-mlx-q4 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use dbaek111/fastvlm-7b-mlx-q4 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("dbaek111/fastvlm-7b-mlx-q4") config = load_config("dbaek111/fastvlm-7b-mlx-q4") # 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) - Transformers
How to use dbaek111/fastvlm-7b-mlx-q4 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="dbaek111/fastvlm-7b-mlx-q4", trust_remote_code=True) messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# Load model directly from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained("dbaek111/fastvlm-7b-mlx-q4", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- vLLM
How to use dbaek111/fastvlm-7b-mlx-q4 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "dbaek111/fastvlm-7b-mlx-q4" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "dbaek111/fastvlm-7b-mlx-q4", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/dbaek111/fastvlm-7b-mlx-q4
- SGLang
How to use dbaek111/fastvlm-7b-mlx-q4 with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "dbaek111/fastvlm-7b-mlx-q4" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "dbaek111/fastvlm-7b-mlx-q4", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "dbaek111/fastvlm-7b-mlx-q4" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "dbaek111/fastvlm-7b-mlx-q4", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Pi
How to use dbaek111/fastvlm-7b-mlx-q4 with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "dbaek111/fastvlm-7b-mlx-q4"
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "mlx-lm": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "dbaek111/fastvlm-7b-mlx-q4" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use dbaek111/fastvlm-7b-mlx-q4 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 "dbaek111/fastvlm-7b-mlx-q4"
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 dbaek111/fastvlm-7b-mlx-q4
Run Hermes
hermes
- OpenClaw new
How to use dbaek111/fastvlm-7b-mlx-q4 with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "dbaek111/fastvlm-7b-mlx-q4"
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 "dbaek111/fastvlm-7b-mlx-q4" \ --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"
- Docker Model Runner
How to use dbaek111/fastvlm-7b-mlx-q4 with Docker Model Runner:
docker model run hf.co/dbaek111/fastvlm-7b-mlx-q4
Update benchmark tables with 512px and 1024px comparison
Browse files
README.md
CHANGED
|
@@ -63,25 +63,44 @@ python -m mlx_vlm.generate \
|
|
| 63 |
|
| 64 |
## Benchmark
|
| 65 |
|
| 66 |
-
|
| 67 |
|
| 68 |
-
-
|
|
|
|
| 69 |
- Prompt: `Describe what is visible for pedestrian wayfinding in one short sentence. Do not list categories. Do not mention anything you cannot see. Keep under 30 words.`
|
| 70 |
- Max tokens: `64`
|
| 71 |
- Temperature: `0.0`
|
| 72 |
-
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
|
| 77 |
-
|
|
| 78 |
-
| fastvlm-0.5b-mlx-
|
| 79 |
-
| fastvlm-
|
| 80 |
-
| fastvlm-
|
| 81 |
-
| fastvlm-1.5b-mlx-
|
| 82 |
-
|
|
| 83 |
-
| fastvlm-
|
| 84 |
-
| fastvlm-7b-mlx-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 85 |
|
| 86 |
## Compatibility
|
| 87 |
|
|
|
|
| 63 |
|
| 64 |
## Benchmark
|
| 65 |
|
| 66 |
+
Benchmarked on an Apple Silicon Mac with the patched FastVLM `mlx-vlm` workflow.
|
| 67 |
|
| 68 |
+
- Task: pedestrian wayfinding captioning
|
| 69 |
+
- Images: three local test images resized to 512px and 1024px long edge
|
| 70 |
- Prompt: `Describe what is visible for pedestrian wayfinding in one short sentence. Do not list categories. Do not mention anything you cannot see. Keep under 30 words.`
|
| 71 |
- Max tokens: `64`
|
| 72 |
- Temperature: `0.0`
|
| 73 |
+
- Timing: model loaded once per image set, then three images processed sequentially
|
| 74 |
+
|
| 75 |
+
### Model Selection
|
| 76 |
+
|
| 77 |
+
| Model | Size | Precision | Avg 512px | Avg 1024px | Load | Recommended use |
|
| 78 |
+
|---|---:|---|---:|---:|---:|---|
|
| 79 |
+
| fastvlm-0.5b-mlx-q4 | 819M | q4 | 0.338s | 0.370s | 2.82s | Smallest and fastest; rough real-time captions |
|
| 80 |
+
| fastvlm-0.5b-mlx-q8 | 1.1G | q8 | 0.419s | 0.414s | 2.57s | Fast, with richer captions than 0.5B q4 |
|
| 81 |
+
| fastvlm-0.5b-mlx-fp16 | 1.6G | fp16 | 0.435s | 0.421s | 2.79s | Small FP16 baseline |
|
| 82 |
+
| fastvlm-1.5b-mlx-q4 | 1.4G | q4 | 0.447s | 0.464s | 2.65s | Best real-time balance for pedestrian wayfinding |
|
| 83 |
+
| fastvlm-1.5b-mlx-q8 | 2.2G | q8 | 0.552s | 0.541s | 2.68s | More detail while staying sub-second |
|
| 84 |
+
| fastvlm-1.5b-mlx-fp16 | 3.8G | fp16 | 0.636s | 0.557s | 3.08s | 1.5B FP16 reference variant |
|
| 85 |
+
| **fastvlm-7b-mlx-q4** | **4.9G** | **q4** | **1.263s** | **1.241s** | **3.04s** | **Best quality/latency tradeoff among 7B variants** |
|
| 86 |
+
| fastvlm-7b-mlx-q8 | 8.0G | q8 | 1.497s | 1.495s | 3.85s | Higher precision 7B, slower than q4 |
|
| 87 |
+
| fastvlm-7b-mlx-fp16 | 15G | fp16 | 1.834s | 1.874s | 45.48s | Full precision reference; expensive to load |
|
| 88 |
+
|
| 89 |
+
### Per-Image Timing
|
| 90 |
+
|
| 91 |
+
Each cell is `img1 / img2 / img3` inference time in seconds.
|
| 92 |
+
|
| 93 |
+
| Model | 512px images | 1024px images |
|
| 94 |
+
|---|---:|---:|
|
| 95 |
+
| fastvlm-0.5b-mlx-q4 | 0.318 / 0.353 / 0.343 | 0.374 / 0.370 / 0.366 |
|
| 96 |
+
| fastvlm-0.5b-mlx-q8 | 0.393 / 0.465 / 0.400 | 0.424 / 0.387 / 0.431 |
|
| 97 |
+
| fastvlm-0.5b-mlx-fp16 | 0.394 / 0.490 / 0.421 | 0.430 / 0.395 / 0.437 |
|
| 98 |
+
| fastvlm-1.5b-mlx-q4 | 0.454 / 0.458 / 0.430 | 0.465 / 0.472 / 0.456 |
|
| 99 |
+
| fastvlm-1.5b-mlx-q8 | 0.591 / 0.611 / 0.453 | 0.594 / 0.552 / 0.477 |
|
| 100 |
+
| fastvlm-1.5b-mlx-fp16 | 0.701 / 0.709 / 0.496 | 0.520 / 0.635 / 0.516 |
|
| 101 |
+
| **fastvlm-7b-mlx-q4** | **1.161 / 1.330 / 1.297** | **1.081 / 1.343 / 1.298** |
|
| 102 |
+
| fastvlm-7b-mlx-q8 | 1.364 / 1.639 / 1.487 | 1.341 / 1.712 / 1.432 |
|
| 103 |
+
| fastvlm-7b-mlx-fp16 | 1.561 / 2.041 / 1.902 | 1.595 / 2.277 / 1.749 |
|
| 104 |
|
| 105 |
## Compatibility
|
| 106 |
|