Views
No views yet

RuntimeError: swa_k_cache page stride 37376 is smaller than DSV4 page width 37440KV_CACHE_DTYPE, MAX_MODEL_LEN,
GPU_MEMORY_UTILIZATION and VLLM_DSV4_PADDED_NVFP4 all leave it at 37376, because
none of them apply to the tensor actually being rejected.vllm/models/deepseek_v4/nvidia/b12x.py, accepts the profiling tensor
instead of aborting on it:1# A profiling/dummy cache is allocated contiguously at the unpadded record size
2# before the packed pool exists. It is never read for real data, so flatten it to
3# the [pages, page_bytes] contract; real packed views are strided and always
4# exceed page_nbytes.
5if byte_cache.ndim == 3 and byte_cache.is_contiguous() and page_stride_nbytes < page_nbytes:
6 flat = byte_cache.reshape(int(byte_cache.shape[0]), -1)
7 if int(flat.shape[1]) < page_nbytes:
8 pad = torch.zeros((int(flat.shape[0]), page_nbytes - int(flat.shape[1])),
9 dtype=flat.dtype, device=flat.device)
10 flat = torch.cat([flat, pad], dim=1)
11 return flatVLLM_DSV4_PADDED_NVFP4=0. That silences the check by
changing the cache record format, the server starts cleanly, and every reply is fluent
nonsense. Ask the model a text-only question before you trust an image answer.KV_CACHE_DTYPE and
VLLM_DSV4_PADDED_NVFP4 with a bare export, not ${VAR:-default}, so anything you
put in compose for those two is silently overwritten. And the server binds port 8000
regardless of VLLM_PORT.1environment:
2 MODEL_PATH: /models/tp1-vision
3 MAX_MODEL_LEN: "32768"
4 MAX_NUM_SEQS: "1"
5 GPU_MEMORY_UTILIZATION: "0.92"
6 KV_CACHE_DTYPE: nvfp4_ds_mla
7 VLLM_DSV4_PADDED_NVFP4: "1"
8 DSV4_VISION_TOWER: /vision/tower/deepencoder_v2_tower.safetensors
9 DSV4_VISION_ADAPTER: /vision/adapter/merged-004800-5af0c5.pt
10 DSV4_VISION_TILES: "2"1import base64, json, urllib.request
2
3b64 = base64.b64encode(open("photo.jpg", "rb").read()).decode()
4body = json.dumps({
5 "model": "deepseek-v4-flash-vision",
6 "max_tokens": 60,
7 "messages": [{"role": "user", "content": [
8 {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64," + b64}},
9 {"type": "text", "text": "Describe this image in one short sentence."}]}],
10}).encode()
11r = json.load(urllib.request.urlopen(urllib.request.Request(
12 "http://localhost:8000/v1/chat/completions", body,
13 {"Content-Type": "application/json"}), timeout=280))
14print(r["choices"][0]["message"]["content"])| mean overlap | 40.8% |
| scoring >=30%, meaning recognisably the same scene | 60% |
laptop on a desk A laptop computer sits on a desk with a mouse and keyboard. 100%
kitchen A kitchen with a white refrigerator and a wooden cabinet. 75%
phone case A woman with a Hello Kitty phone case. 71%
tennis court A group of people are standing on a tennis court. 67%
skier A man in a red jacket is skiing down a snowy hill. 60%
cat on laptop A black cat is sitting on a laptop computer. 60%
street sign A red and white sign that says "DOLS" is on a pole. 33%
two runners A man in a green shirt is running with a white shirt man. 0%