Views
No views yet
Intelligence isn't about scale. It's about precision.

Qwen/Qwen2.5-VL-3B-Instruct, Apollo-VL brings data-center-grade multimodal understanding and structured visual reasoning to consumer-grade hardware, including 8GB-class MacBooks and single NVIDIA T4 GPUs.Qwen2.5-VL-3B-Instruct is a capable generalist, Apollo-VL is purpose-built for precision and structured visual analysis.Apollo-VL-Massive-Dataset, a unified multimodal dataset created by combining and standardizing high-quality examples from LLaVA-NeXT and The Cauldron. This ensures robust performance across documents, charts, diagrams, OCR, and mathematical reasoning."Analyze this chart carefully. I need to know the exact percentage growth between Q2 and Q3. Please think step-by-step and explain your mathematical logic before giving the final answer."
To determine the percentage growth between Q2 and Q3, we need to follow these steps:1. Identify the revenue values for Q2 and Q3 from the chart.
- Q2: $200k
- Q3: $350k
2. Calculate the difference in revenue between Q3 and Q2.Difference = Q3 Revenue − Q2 RevenueDifference = $350k − $200k = $150k3. Calculate the growth rate.Growth Rate = (Difference / Q2 Revenue) × 100%Growth Rate = ($150k / $200k) × 100% = 75%Final Answer: The company's revenue grew by 75% from Q2 to Q3.

lmms-eval evaluation harness.| Model | Lab / Org | Params | AI2D (Diagrams) | ChartQA (Charts) | OCRBench (Document OCR) | VRAM (FP16) |
|---|---|---|---|---|---|---|
| 🚀 Apollo-VL-Edge-3B (Ours) | Pluto AI Labs | 3.0B | 77.98% | 78.60% | 786 | ~5.8 GB |
| Qwen2.5-VL-3B-Instruct | Alibaba Qwen | 3.0B | 78.00% | 78.50% | 785 | ~5.8 GB |
| InternVL2-4B | OpenGVLab | 4.2B | 76.20% | 78.40% | 768 | ~8.4 GB |
| Phi-3.5-Vision-Instruct | Microsoft | 4.2B | 75.40% | 76.20% | 695 | ~8.5 GB |
| InternVL2-2B | OpenGVLab | 2.2B | 73.60% | 74.80% | 712 | ~4.5 GB |
| PaliGemma 2-3B | 3.0B | 70.50% | 71.00% | 650 | ~6.0 GB |
ChartQA)OCRBench)AI2D)| Format | File Size | Recommended VRAM | Target Hardware | Precision Loss |
|---|---|---|---|---|
| FP16 (Native) | ~6.0 GB | 6 GB | RTX 3060/4060, Apple M1/M2/M3 (8GB+ RAM) | Baseline |
| GGUF Q8_0 | ~3.3 GB | 4 GB | RTX 3050, Apple M-Series (8GB RAM), Laptops | < 0.3% |
| GGUF Q6_K | ~2.6 GB | 3.5 GB | Consumer GPUs, High-RAM Mobile | < 0.8% |
| GGUF Q4_K_M | ~1.9 GB | 2.5 GB | Embedded Edge Devices, Mobile, CPU-only | < 2.1% |
💡 Deployment Recommendation: For production OCR and critical document parsing, FP16 or GGUF Q8_0 is recommended to preserve fine visual patch features. For mobile and low-memory edge deployments, Q4_K_M delivers a 4× speedup with minimal reasoning degradation.
lmms-eval suite:1# Clone evaluation framework
2git clone --depth 1 https://github.com/EvolvingLMMs-Lab/lmms-eval.git
3
4cd lmms-eval && pip install -e .
5
6# Run standard benchmark suite
7python3 -m lmms_eval \
8 --model qwen2_5_vl \
9 --model_args pretrained=Pluto-AI-Labs/Apollo-VL-Edge-3B,dtype=float16 \
10 --tasks mathvista_testmini_cot,chartqa,ai2d,ocrbench \
11 --batch_size 1 \
12 --log_samples \
13 --output_path ./eval_logs/apollo_vl_edge_3b1Image Input
2 │
3 ▼
4Qwen2.5-VL Vision Encoder
5 │
6 │ (Frozen)
7 ▼
8Vision-Language Projector
9 │
10 ▼
11Qwen2.5-VL 3B Language Model
12 │
13 │ (QLoRA Fine-tuned)
14 ▼
15Structured Visual Analysis
16 │
17 ▼
18Final Response| Parameter | Configuration |
|---|---|
| Base Model | Qwen/Qwen2.5-VL-3B-Instruct |
| Training Method | QLoRA |
| Quantization | 4-bit NF4 |
| Fine-Tuning | LoRA / PEFT |
| Vision Encoder | Frozen |
| Hardware | 2× NVIDIA Tesla T4 |
| Training Platform | Kaggle |
| Epochs | 1 |
| Training Steps | 10,098 |
| Dataset | Apollo-VL-Massive-Dataset |
| Dataset Size | 161,562 rows |
| Primary Release | FP16 |
q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_projApollo-VL-Massive-Dataset. The dataset combines and standardizes two high-quality open-source multimodal datasets into a unified training format.| Data Source | Rows | Focus Areas |
|---|---|---|
| LLaVA-NeXT | 62,359 | General multimodal visual instruction data |
| The Cauldron | 99,203 | Documents, charts, diagrams, OCR, VQA, structured reasoning |
| Total Unified Rows | 161,562 | Unified multimodal instruction data |
1import torch
2
3from transformers import Qwen2_5_VLForConditionalGeneration, AutoProcessor
4from qwen_vl_utils import process_vision_info
5
6# Load model
7model = Qwen2_5_VLForConditionalGeneration.from_pretrained(
8 "Pluto-AI-Labs/Apollo-VL-Edge-3B",
9 torch_dtype=torch.float16,
10 device_map="auto",
11)
12
13# Load processor
14processor = AutoProcessor.from_pretrained(
15 "Pluto-AI-Labs/Apollo-VL-Edge-3B"
16)
17
18# Synchronize chat template for local inference
19if processor.chat_template is None:
20 processor.chat_template = processor.tokenizer.chat_template
21
22messages = [
23 {
24 "role": "user",
25 "content": [
26 {
27 "type": "image",
28 "image": "path/to/your/image.png"
29 },
30 {
31 "type": "text",
32 "text": "Analyze this image carefully. Think step-by-step before answering."
33 },
34 ],
35 }
36]
37
38# Apply chat template
39text = processor.apply_chat_template(
40 messages,
41 tokenize=False,
42 add_generation_prompt=True
43)
44
45# Process visual information
46image_inputs, video_inputs = process_vision_info(messages)
47
48# Prepare inputs
49inputs = processor(
50 text=[text],
51 images=image_inputs,
52 videos=video_inputs,
53 padding=True,
54 return_tensors="pt"
55).to("cuda")
56
57# Generate
58with torch.no_grad():
59 output_ids = model.generate(
60 **inputs,
61 max_new_tokens=512
62 )
63
64# Decode
65output_text = processor.batch_decode(
66 output_ids,
67 skip_special_tokens=True
68)[0]
69
70print(output_text)1llama-server \
2 -m Apollo-VL-Edge-3B-Q4_K_M.gguf \
3 --mmproj mmproj-Apollo-VL-Edge-3B-f16.ggufFor complex visual reasoning, FP16 or Q8_0 is recommended to preserve the model's chain-of-thought capabilities.
1@misc{apollo_vl_edge_3b,
2 title = {Apollo-VL-Edge-3B: Elite Visual Reasoning on Edge Hardware},
3 author = {Siddharth N.R. and Pluto AI Labs},
4 year = {2026},
5 howpublished = {Hugging Face},
6 url = {https://huggingface.co/Pluto-AI-Labs/Apollo-VL-Edge-3B}
7}