Kiel-2-VQA
Kiel-2-VQA is a high-performance multimodal vision-language model fine-tuned from the Qwen2.5-VL architecture. It is engineered to excel in Visual Question Answering (VQA), complex document and chart analysis, dense OCR data extraction, and fine-grained visual localization. As part of the Kiel AI suite, it serves as the core intelligence engine for high-precision image understanding and multimodal chat workflows.
Model Details
- Developed by: KielTech
- Base Model: unsloth/qwen2.5-vl-7b-instruct-unsloth-bnb-4bit
- Model Type: Multimodal Causal Language Model (
Qwen2_5_VLForConditionalGeneration) - Language(s): English
- License: Apache 2.0
- Quantization: 4-bit optimized (BNB NF4) for high-throughput, memory-efficient inference
- Hugging Face Hub: kiel2/Kiel-2-VQA
Key Capabilities
- Visual Question Answering & Reasoning: Deep comprehension of photographs, diagrams, UI layouts, and illustrations to answer complex user queries.
- Document, Table & Chart Parsing: Advanced layout understanding for structured data extraction from invoices, receipts, charts, and technical documents.
- High-Accuracy OCR: Robust text recognition across multiple fonts, orientations, and scales.
- Spatial Localization: Precise identification of object coordinates and visual elements within images.
How to Get Started with the Model
You can load and run Kiel-2-VQA directly using Hugging Face transformers and bitsandbytes for memory-efficient execution:
import torch
from transformers import Qwen2_5_VLForConditionalGeneration, AutoProcessor
from PIL import Image
import requests
MODEL_ID = "kiel2/Kiel-2-VQA"
print("Loading Kiel-2-VQA processor and model...")
processor = AutoProcessor.from_pretrained(MODEL_ID, trust_remote_code=True)
model = Qwen2_5_VLForConditionalGeneration.from_pretrained(
MODEL_ID,
torch_dtype=torch.bfloat16,
device_map="auto",
trust_remote_code=True
)
model.eval()
# Prepare an image and a text query
image_url = "[https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/car.jpg](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/car.jpg)"
image = Image.open(requests.get(image_url, stream=True).raw)
conversation = [
{
"role": "user",
"content": [
{"type": "image", "image": image},
{"type": "text", "text": "Describe the key elements and setting of this image in detail."},
],
}
]
# Apply chat template
text_prompt = processor.apply_chat_template(
conversation, tokenize=False, add_generation_prompt=True
)
# Process inputs
inputs = processor(
text=[text_prompt],
images=[image],
padding=True,
return_tensors="pt"
).to(model.device)
# Generate response
with torch.no_grad():
output_ids = model.generate(**inputs, max_new_tokens=256)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(inputs.input_ids, output_ids)
]
response = processor.batch_decode(
generated_ids, skip_special_tokens=True, clean_up_tokenization_spaces=True
)[0]
print("Model Response:\n", response)
Citation
Code snippet
@misc{kiel2-Kiel-2-VQA-2026,
author = {KielTech},
title = {Kiel-2-VQA: High-Performance Multimodal Vision-Language Model},
year = {2026},
publisher = {Hugging Face},
journal = {Hugging Face Repository},
howpublished = {\url{[https://huggingface.co/kiel2/Kiel-2-VQA](https://huggingface.co/kiel2/Kiel-2-VQA)}}
}