Qwen3.8-27B-Escha-W2-Vision
Qwen3.8-27B-Escha-W2-Vision is an experimental community-built vision-language hybrid that combines:
- the 2-bit Escha-W2 language model from EschaLabs/Qwen3.8-27B-Escha-W2; and
- the complete, unmodified visual encoder and multimodal projector from Qwen/Qwen3.8-27B.
The result brings image understanding back to the compact Escha checkpoint. No training or fine-tuning was performed: this repository is a component-level checkpoint reconstruction using two derivatives of the same Qwen3.8-27B base model.
Experimental community release. This repository is not an official Qwen or Escha Labs release and is not endorsed by either project. No formal vision benchmark results are published for this hybrid.
Weight size breakdown
| Component | Tensor data | Decimal size |
|---|---|---|
| Escha-W2 language model, embeddings and head | 10,152,675,712 bytes | 10.15 GB |
| Official Qwen visual encoder and merger | 921,460,192 bytes | 0.92 GB |
| Combined model weights | 11,074,135,904 bytes | 11.07 GB |
Model summary
| Item | Value |
|---|---|
| Architecture | Qwen3_5ForConditionalGeneration |
| Language model | Qwen3.8-27B, Escha mixed 2/3-bit W2 format |
| Vision encoder | Official Qwen3.8 visual tower, 333 tensors |
| Vision precision | BF16 on disk; the Escha launch configuration below serves it as FP16 |
| Interface | OpenAI-compatible SGLang server |
| Training performed for this release | None |
Qwen3.8-27B-Escha-W2-Vision
├── model.language_model.* ← EschaLabs W2 language weights
├── lm_head.* ← EschaLabs int8-as-stored head
└── model.visual.* ← official Qwen BF16 visual encoder + merger
The Escha SGLang fork already constructs the visual module with
quant_config=None, so the Escha quantizer is applied only to the language model.
The visual weights load through the standard unquantized path.
Requirements
This checkpoint does not load in a stock Transformers pipeline because the language weights use Escha's custom quantization format and CUDA kernels. Use the official dense Escha runtime:
- Linux x86-64
- NVIDIA GPU with compute capability
sm_80or newer - Python 3.12
- PyTorch 2.9.x with CUDA 12.8
- EschaLabs/escha-runtime-qwen3dense
Installation
# Download this hybrid checkpoint.
hf download centraly/Qwen3.8-27B-Escha-W2-vision \
--local-dir ./Qwen3.8-27B-Escha-W2-vision
# Download the official Escha dense runtime bundle.
hf download EschaLabs/escha-runtime-qwen3dense \
--local-dir ./escha-runtime-qwen3dense
# Create the pinned runtime required by the Escha wheel.
python3.12 -m venv .venv
source .venv/bin/activate
pip install -U pip wheel
pip install "torch==2.9.*" \
--index-url https://download.pytorch.org/whl/cu128
pip install ./escha-runtime-qwen3dense/sglang/escha-*.whl
Sanity-check the installation:
python -c "import torch,escha,sglang; print(torch.cuda.is_available(), hasattr(torch.ops.escha, 'escham_decode_gemv'), sglang.__version__)"
Serving with image input
Two independent switches are required:
SGLANG_VLM_TEXT_ONLY=0constructs the visual tower.--enable-multimodalenables SGLang's image preprocessing and request path.
Start the server:
SGLANG_VLM_TEXT_ONLY=0 \
MODEL=./Qwen3.8-27B-Escha-W2-vision \
SERVED_NAME=Qwen3.8-27B-Escha-W2-vision \
bash ./escha-runtime-qwen3dense/sglang/serve.sh --enable-multimodal
Tune the runtime's memory, context and concurrency settings for the target hardware and workload.
The server listens on http://127.0.0.1:30000/v1 by default. Keep it bound to
localhost unless you add authentication and appropriate network controls.
Confirm that image understanding is active:
curl -s http://127.0.0.1:30000/model_info | python -m json.tool
The response should contain:
{
"has_image_understanding": true,
"model_type": "qwen3_5",
"architectures": ["Qwen3_5ForConditionalGeneration"]
}
OpenAI-compatible image request
Install the OpenAI Python client if needed with pip install openai, then send an
ordinary image_url request. HTTP(S) URLs and base64 data URLs are supported by
the server.
from openai import OpenAI
client = OpenAI(base_url="http://127.0.0.1:30000/v1", api_key="local")
response = client.chat.completions.create(
model="Qwen3.8-27B-Escha-W2-vision",
messages=[
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"
},
},
{"type": "text", "text": "Describe this image precisely."},
],
}
],
max_tokens=256,
temperature=0,
extra_body={"chat_template_kwargs": {"enable_thinking": False}},
)
print(response.choices[0].message.content)
Text-only requests continue to work through the same endpoint.
Checkpoint construction and provenance
The release was built reproducibly as follows:
- Start with
EschaLabs/Qwen3.8-27B-Escha-W2at revisionb1fff11fb1606a0ba6965f4c76751cfabe64d5c4. - Read the official
Qwen/Qwen3.8-27Bindex at revision1d4bf0f2ff6012fd82039f2fa52739d0dd7c60c0. - Extract every tensor whose name starts with
model.visual.from official shardmodel-00001-of-00018.safetensors. - Save those 333 tensors unchanged as
model-vision-bf16.safetensors. - Add the vision shard to the Escha safetensors index and include the official image/video processor configuration files.
The two Escha language shards, tokenizer, chat template and generation settings
are unchanged. HYBRID_PROVENANCE.json provides machine-readable details.
Intended use
This release is intended for:
- experimentation with a compact Qwen3.8 VLM;
- image description, visual question answering and multimodal prototyping;
- evaluating whether Escha-W2 language quantization remains useful with the original Qwen visual encoder.
It is not intended as evidence of production readiness, safety certification or vision benchmark parity with the original BF16 model.
Limitations and safety
- This hybrid has not been trained or calibrated after combining the components.
- No standardized evaluation results are included with this release.
- The compatible video processor configuration is included, but this release does not claim direct video-request support.
- Vision-language quality may differ from both source repositories, especially on OCR, spatial reasoning, fine-grained recognition, long videos and multilingual prompts.
- The language model remains heavily quantized; cross-modal reasoning can expose quantization errors not visible in text-only evaluations.
- The model inherits biases, inaccuracies and safety limitations from its source models. Users are responsible for evaluating outputs for their application.
- Do not rely on the model for high-stakes medical, legal, financial or safety decisions, or for inferring sensitive personal traits from images.
Files
| File | Purpose |
|---|---|
model-00001-of-00002.safetensors |
Escha-W2 language weights, shard 1 |
model-00002-of-00002.safetensors |
Escha-W2 language weights, shard 2 |
model-vision-bf16.safetensors |
Official Qwen visual encoder and merger |
model.safetensors.index.json |
Combined 3-shard tensor index |
preprocessor_config.json |
Official Qwen image processor configuration |
video_preprocessor_config.json |
Official Qwen video processor configuration |
config.json |
Qwen3.8 multimodal architecture plus Escha quantization metadata |
HYBRID_PROVENANCE.json |
Machine-readable component and revision provenance |
License and attribution
This repository is distributed under the Apache License 2.0, consistent with both
source repositories. See LICENSE and NOTICE.md.
Credit belongs to the Qwen team for Qwen3.8-27B and to Escha Labs for the Escha-W2 checkpoint, custom quantization format and serving runtime.
- Downloads last month
- 84