jajmangold commited on
Commit
d711add
·
verified ·
1 Parent(s): cd9229a

docs: honest model card (validation status + fleet-specific perf caveat)

Browse files
Files changed (1) hide show
  1. README.md +13 -41
README.md CHANGED
@@ -17,57 +17,29 @@ tags:
17
  - 4-bit
18
  ---
19
 
20
- # Qwen-Image — fni8 (int4)
21
 
22
- An int8/int4 quantization of [`Qwen/Qwen-Image`](https://huggingface.co/Qwen/Qwen-Image)
23
- to the `.fni8` format, for the [fni8](https://github.com/jajmangold/fni8) DP4A kernels
24
- on NVIDIA Volta (sm_70) GPUs (Tesla V100 and CMP 100-210). It is a derivative of the
25
- parent model; its license and acceptable uses follow the parent, linked above.
26
 
27
- ## Files
28
 
29
- | file | precision | scheme | size |
30
- |------|-----------|--------|------|
31
- | `Qwen__Qwen-Image.dit.b4.fni8` | int4 | int4 per-group W4A8 (int8 activations) | 10.92 GB |
32
 
33
- `.b8.` files are int8, `.b4.` files are int4. Download the one you want. The bytes are
34
- the resident dp4a VRAM layout, so loading is a memory-map and copy with no dequantize
35
- or repack step.
36
 
37
- ## How to use
 
38
 
39
- Load with [ComfyUI-fni8](https://github.com/jajmangold/ComfyUI-fni8), which runs the diffusion transformer through the dp4a kernels inside ComfyUI (`UnetLoaderFNI8`). The text encoder and VAE are unchanged.
40
 
41
- ## What was quantized
42
-
43
- - Linear and attention weights go to int8 (per-row) or int4 (per-group), with fp32
44
- scales. Norms, embeddings, and the MoE router are kept in fp16.
45
- - Source dtype: `bfloat16`. Non-quantized tensors are stored fp16, upcast to fp32 only where fp16 would overflow.
46
- - Target hardware is sm_70, where the fp16 tensor cores are firmware-limited, so the
47
- integer `__dp4a` path is used for the matmuls.
48
-
49
- ## Intended use and scope
50
-
51
- - For inference with the fni8 runtimes above, on Volta (sm_70) GPUs.
52
- - Out of scope: other GPU architectures (the kernels require sm_70), and anything the
53
- parent model's license does not permit. It is a derivative, not a new model.
54
 
55
  ## Limitations
56
 
57
- - Quantization is lossy. int8 and especially int4 outputs differ from the fp16/bf16
58
- parent, and the difference varies by model and task.
59
- - This repository does not include per-model accuracy or benchmark measurements.
60
- Evaluate on your own task before relying on it.
61
- - Any capabilities, biases, and risks of the parent model carry over. See the parent
62
- model card for those.
63
-
64
- ## License
65
-
66
- Follows the parent model (`apache-2.0`). This is a
67
- derivative quantization, not a relicense.
68
 
69
  ---
70
 
71
- Part of the fni8 stack: [kernels](https://github.com/jajmangold/fni8) ·
72
- [LLM serving](https://github.com/jajmangold/fni8-serve) ·
73
- [ComfyUI DiTs](https://github.com/jajmangold/ComfyUI-fni8).
 
17
  - 4-bit
18
  ---
19
 
20
+ # Qwen-Image — fni8 (int8/W4A8 dp4a, Volta sm_70)
21
 
22
+ Diffusion transformer (DiT), quantized from [`Qwen/Qwen-Image`](https://huggingface.co/Qwen/Qwen-Image). Repackaged to the **`.fni8`** resident format (~31.4 GB (int4 DiT)) for the [fni8](https://github.com/jajmangold/fni8) **W8A8/W4A8 DP4A** kernels on **NVIDIA Volta (sm_70)** — Tesla V100 / CMP 100-210.
 
 
 
23
 
24
+ ## Status
25
 
26
+ **Validated:** end-to-end ComfyUI-fni8 sanity pass (a one-step output that is finite and non-constant — a sanity check, not a quality benchmark). **Performance is fleet-specific.** All fni8 speedups are measured on the CMP 100-210 mining-card fleet, where the fp16 tensor cores are firmware-gimped. These numbers do **not** transfer to a real Tesla V100 (whose fp16 tensor cores would beat dp4a).
 
 
27
 
28
+ ## Format
 
 
29
 
30
+ - **Weights:** int4 per-group W4A8 (int8 activations), fp32 scales, resident dp4a VRAM layout.
31
+ - **Why dp4a:** sm_70 has no int8 tensor cores, so the matmul contraction runs on the `__dp4a` CUDA-core intrinsic. On the CMP 100-210 fleet (whose fp16 tensor cores are firmware-limited) dp4a is the fast path, not a compromise.
32
 
33
+ ## How to run
34
 
35
+ [ComfyUI-fni8](https://github.com/jajmangold/ComfyUI-fni8) is the runtime (`UnetLoaderFNI8` runs the diffusion transformer through the dp4a kernels; the text encoder and VAE are unchanged). fni8-serve is for LLMs only and does not load this model.
 
 
 
 
 
 
 
 
 
 
 
 
36
 
37
  ## Limitations
38
 
39
+ - Quantization is lossy: int8 (and especially int4) outputs differ from the fp16/bf16 parent, and the difference varies by task.
40
+ - Capabilities, biases, and risks of the parent model carry over — see the parent card.
41
+ - This is a derivative quantization, not a relicense; the parent model's license and acceptable uses apply.
 
 
 
 
 
 
 
 
42
 
43
  ---
44
 
45
+ Part of the fni8 stack: [kernels](https://github.com/jajmangold/fni8) · [LLM serving](https://github.com/jajmangold/fni8-serve) · [ComfyUI DiTs](https://github.com/jajmangold/ComfyUI-fni8).