Downloads · 30 days
16
23% of all-time downloads
freeai-org/Scalpel-VL-1.8B
Scalpel-VL-1.8B is a image-text-to-text model from freeai-org. Use it for the image-text-to-text task on the model card, and read the license before you ship it in a product. It is set up for transformers. The card lists the license as apache-2.0.
Scalpel-VL-1.7B is a structurally pruned and recovery-trained vision-language model based on the Qwen3-VL-2B-Instruct architecture. It is the Round 7 postrecoverymodel produced by Scalpel.
Downloads · 30 days
16
23% of all-time downloads
All-time downloads
69
Public
Parameters
1.8B
3.6 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors3.6 GB · 100%
From the Hugging Face model README
Scalpel-VL-1.7B is a structurally pruned and recovery-trained
vision-language model based on the Qwen3-VL-2B-Instruct architecture. It is
the Round 7 post_recovery_model produced by
Scalpel.
Seven language decoder layers were physically removed from the original
28-layer model. The remaining 21-layer student was recovered after every
pruning round using a fixed reference teacher, final-logit knowledge
distillation, and merged all-linear LoRA adapters.
The checkpoint contains 1,775,180,032 parameters. The repository name uses the parameter count rounded down to one decimal place: 1.7B.
| Item | Value |
|---|---|
| Architecture | Qwen3-VL |
| Task | Image-text-to-text |
| Parameters | 1,775,180,032 |
| Weight dtype | BF16 |
| Language decoder layers | 21 (originally 28) |
| Removed original layers | 7, 8, 9, 12, 13, 14, 23 |
| Layer reduction | 25.0% |
| Parameter reduction | 16.56% |
| Recovery dataset | ScalpelBench |
| Recovery method | Final-logit CE + KL distillation with merged LoRA |
| License | Apache-2.0 |
The removed-layer list above records the current-to-original layer mapping for the seven completed pruning rounds.
At each round, Scalpel:
all-linear LoRA parameters on the pruned student;Recovery used the approximately 0.1B-token ScalpelBench instruction-response mixture, covering English, Chinese, mathematical reasoning, and code. The experiment partitions the mixture into ten deterministic token-balanced parts; this Round 7 checkpoint has completed recovery on parts 1 through 7.
The following measurements use the complete 1,568-sample ScalpelBench
validation split with 276,216 supervised tokens and a maximum sequence length
of 1,536. Macro score is 100 times the macro average of teacher-forced token
accuracy over English, Chinese, Math, and Code. It is an internal controlled
metric, not an Open LLM Leaderboard score.
| Model | Params | Layers | PPL ↓ | Token accuracy ↑ | Macro score ↑ | Supervised tokens/s ↑ | Peak CUDA MiB ↓ |
|---|---|---|---|---|---|---|---|
| Reference | 2.128B | 28 | 4.9731 | 68.54% | 70.40 | 4,523.69 | 8,699.04 |
| Scalpel-VL-1.7B | 1.775B | 21 | 4.2919 | 66.12% | 67.50 | 5,567.23 | 6,878.06 |
Under this evaluation setup, the pruned checkpoint uses 16.56% fewer parameters, has 25% fewer language layers, achieves 23.07% higher supervised token throughput, and reduces peak CUDA allocation by 20.93%. Throughput and memory numbers are hardware- and software-dependent and should not be treated as universal deployment guarantees.
Install a Transformers version that supports Qwen3-VL, then load the model and processor directly from the Hub:
import torch
from transformers import AutoProcessor, Qwen3VLForConditionalGeneration
model_id = "freeai-org/Scalpel-VL-1.7B"
model = Qwen3VLForConditionalGeneration.from_pretrained(
model_id,
dtype=torch.bfloat16,
device_map="auto",
)
processor = AutoProcessor.from_pretrained(model_id)
messages = [
{
"role": "user",
"content": [
{
"type": "image",
"image": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg",
},
{"type": "text", "text": "Describe this image."},
],
}
]
inputs = processor.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
with torch.inference_mode():
generated_ids = model.generate(**inputs, max_new_tokens=128)
generated_ids = [
output_ids[len(input_ids):]
for input_ids, output_ids in zip(inputs.input_ids, generated_ids)
]
print(processor.batch_decode(generated_ids, skip_special_tokens=True)[0])
For lower-memory inference, select an attention implementation and dtype that are supported by your hardware. This repository contains merged full-model weights; no separate LoRA adapter is required.
This checkpoint is intended for research on structured pruning, post-pruning recovery, knowledge distillation, and efficient multimodal inference.
@misc{wu2026catellectvl2bvisionlanguagemodeledgebased,
title = {Catellect-VL-2B: A Vision-Language Model for Edge-Based Feline Behavior Understanding},
author = {YuHang Wu and HaoXian Liu and Jia Tao},
year = {2026},
eprint = {2608.22070},
archivePrefix = {arXiv},
primaryClass = {cs.CE},
url = {https://arxiv.org/abs/2608.22070}
}
Qwen3-VL is licensed and attributed according to its original model card.