You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+11Lines changed: 11 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -105,6 +105,8 @@
105
105
106
106
### Bug Fix
107
107
108
+
- Fixed `model_config.py`: `load_model()` VLM fallback did not trigger for models raising `"Unrecognized configuration class"` (e.g. Cohere2VisionForConditionalGeneration). Added the error pattern to `_vlm_hints`
109
+
- Fixed `gptq/_gptq.py`: Cholesky decomposition in `run_gptq` could fail with `LinAlgError` on ill-conditioned Hessians (observed on large VLMs at deeper layers). Extracted `_compute_inverse_hessian()` with progressive damping fallback (up to 5 retries, 10x damping increase per retry). No impact on normal operation
108
110
- Fixed `TypeError` in `QuantLinear.forward` when `S_qk` scaling was applied to MLP layers (`onecomp/pre_process/quant_models.py`)
109
111
- Fixed silent weight corruption in `GPTQLinear` when `qzero=0` was stored through the GPTQ v1 zero-point path (`onecomp/quantizer/gptq/gptq_layer.py`)
110
112
- Root cause: AutoGPTQ v1 stores `raw_zero - 1`, so `qzero=0` becomes `-1`; without masking, its sign-extended bits corrupted neighboring packed slots
@@ -113,6 +115,14 @@
113
115
- Added regression tests for per-slot pack corruption, packed/unpacked forward paths, the `gptq_v2` branch, and the `from_saved_state` path for GPTQ v1 tensors
114
116
-**NOTE**: If you have GPTQ models quantized with previous versions, please re-quantize them with this release, as they may contain corrupted internal data.
115
117
118
+
### Packaging
119
+
120
+
- Bumped minimum `transformers` requirement from `>=5.3.0` to `>=5.5.0` (`pyproject.toml`)
121
+
- Added `cu130` optional-dependency extra and the `pytorch-cu130` wheel index (`https://download.pytorch.org/whl/cu130`) for CUDA 13 hosts (e.g. NVIDIA B200) (`pyproject.toml`)
122
+
- Pinned the `vllm` extra to `vllm>=0.10` to prevent uv from falling back to legacy versions whose source build requires `CUDA_HOME` (`pyproject.toml`)
123
+
- Added uv `conflicts` declarations between the `vllm` extra and the `cpu` / `cu118` / `cu121` / `cu124` / `cu126` / `cu128` extras: vLLM `>=0.20` requires `torch>=2.10`, which is only published for `cu130`. This forces `vllm` to be installed only with `--extra cu130` and prevents silent fallback to a `vllm` version incompatible with `transformers>=5` at runtime (`pyproject.toml`)
124
+
- Restricted `tool.uv.environments` to `sys_platform == 'linux'` and `python_full_version >= '3.12', < '3.14'` to skip lock splits for unused Windows and out-of-range Python versions (`pyproject.toml`)
125
+
116
126
### Examples
117
127
118
128
- Added `example/example_custom_calibration.py`: Demonstrates `CalibrationConfig` with a custom calibration dataset (Python code snippets in `example/data/python_calibration.txt`). Quantizes TinyLlama with GPTQ 3-bit using both default C4 and custom Python-code calibration, then compares inference outputs across multiple prompts to show how calibration data choice affects quantization quality.
@@ -142,6 +152,7 @@
142
152
- Added `docs/api/quantizers/onebit.md` (OneBit API reference)
143
153
- Updated `mkdocs.yml` nav: added AutoBit/JointQ algorithm pages, OneBit API page; renamed Post-Process nav title to include Block-wise PTQ
144
154
- Added example script links to `docs/user-guide/pre-process.md`
155
+
- Added a Troubleshooting section to `docs/user-guide/vllm-inference.md` describing how to bypass the unconditional DeepGEMM (FP8) kernel warmup for non-FP8 quantization (GPTQ / DBF / Mixed-GPTQ) by setting `VLLM_USE_DEEP_GEMM=0` and `VLLM_DEEP_GEMM_WARMUP=skip`
The `uv sync` command creates a Python virtual environment and installs all dependent libraries.
125
126
126
127
The `--extra cu128` option installs the CUDA-enabled version of PyTorch (along with `torchvision` from the same CUDA index).
127
-
Replace `cu128` with the appropriate variant for your environment: `cpu`, `cu118`, `cu121`, `cu124`, `cu126`, or `cu128`.
128
+
Replace `cu128` with the appropriate variant for your environment: `cpu`, `cu118`, `cu121`, `cu124`, `cu126`, `cu128`, or `cu130`.
128
129
PyTorch will be automatically downloaded by `uv`, so you do not need to install it beforehand.
129
130
130
131
Adding `--extra dev` installs development tools (black, pytest, pylint).
131
132
Adding `--extra visualize` installs matplotlib for visualization features.
132
133
133
-
To use vLLM for serving quantized models, add `--extra vllm`:
134
+
To use vLLM for serving quantized models, add `--extra vllm` together with `--extra cu130`:
134
135
135
136
```bash
136
-
uv sync --extra cu128 --extra dev --extra visualize --extra vllm
137
+
uv sync --extra cu130 --extra dev --extra visualize --extra vllm
137
138
```
138
139
140
+
> **Note:**`--extra vllm` is only compatible with `--extra cu130`. Recent vLLM releases require `torch>=2.10`, whose wheels are only published for the `cu130` index. Combining `--extra vllm` with `cpu` / `cu118` / `cu121` / `cu124` / `cu126` / `cu128` is rejected by `uv` at lock time.
141
+
139
142
> **Note:**`--extra vllm` may take a long time on the first run if a pre-built `xformers` wheel is not available for your Python/CUDA combination (e.g. Python 3.13). Using Python 3.12 typically avoids this.
Replace `cu128` with the appropriate variant for your environment: `cpu`, `cu118`, `cu121`, `cu124`, `cu126`, or `cu128`.
177
+
Replace `cu128` with the appropriate variant for your environment: `cpu`, `cu118`, `cu121`, `cu124`, `cu126`, `cu128`, or `cu130`.
175
178
176
179
177
180
### Building Documentation Locally
@@ -209,8 +212,8 @@ OneComp-quantized models can be served with [vLLM](https://docs.vllm.ai/) via bu
209
212
Combined with [Open WebUI](https://github.com/open-webui/open-webui), you can chat with your quantized model through a ChatGPT-like browser interface — entirely on your local machine.
210
213
211
214
```bash
212
-
# uv users
213
-
uv sync --extra cu128 --extra vllm
215
+
# uv users (vLLM requires cu130; see Installation for details)
The `uv sync` command creates a virtual environment and installs all dependencies (including `torchvision` from the same CUDA index as PyTorch).
95
-
Replace `cu128` with the appropriate CUDA variant for your system: `cpu`, `cu118`, `cu121`, `cu124`, `cu126`, or `cu128`.
101
+
Replace `cu128` with the appropriate CUDA variant for your system: `cpu`, `cu118`, `cu121`, `cu124`, `cu126`, `cu128`, or `cu130`.
96
102
97
103
Adding `--extra dev` installs development tools (black, pytest, pylint).
98
104
Adding `--extra visualize` installs matplotlib for visualization features.
99
105
100
-
To use vLLM for serving quantized models, add `--extra vllm`:
106
+
To use vLLM for serving quantized models, add `--extra vllm` together with `--extra cu130`:
101
107
102
108
```bash
103
-
uv sync --extra cu128 --extra dev --extra visualize --extra vllm
109
+
uv sync --extra cu130 --extra dev --extra visualize --extra vllm
104
110
```
105
111
112
+
!!! note "vLLM requires the `cu130` extra"
113
+
Recent vLLM releases depend on `torch>=2.10`, whose wheels are only published for the `cu130` index. The `--extra vllm` declaration in `pyproject.toml` therefore conflicts with `cpu`, `cu118`, `cu121`, `cu124`, `cu126`, and `cu128`; combining any of these with `--extra vllm` is rejected by `uv` at lock time.
114
+
106
115
!!! warning
107
116
Do **not** install vLLM with `uv pip install vllm` after `uv sync`. Packages installed via `uv pip` are not tracked by the lockfile and will be removed or overwritten by subsequent `uv sync` or `uv run` commands. Always use `--extra vllm` instead.
Copy file name to clipboardExpand all lines: docs/user-guide/vllm-inference.md
+27-2Lines changed: 27 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,10 +20,11 @@ vLLM is available as an optional dependency:
20
20
=== "uv (recommended)"
21
21
22
22
```bash
23
-
uv sync --extra cu128 --extra vllm
23
+
uv sync --extra cu130 --extra vllm
24
24
```
25
25
26
-
Replace `cu128` with your CUDA variant (`cu118`, `cu121`, `cu124`, `cu126`, or `cu128`).
26
+
!!! note "Use `cu130`; older CUDA extras are rejected"
27
+
Recent vLLM releases depend on `torch>=2.10`, whose wheels are only published for the `cu130` PyTorch index. `pyproject.toml` therefore declares `--extra vllm` as conflicting with `cpu`, `cu118`, `cu121`, `cu124`, `cu126`, and `cu128`; combining any of those with `--extra vllm` will fail at lock time. Use `--extra cu130` for vLLM workflows.
27
28
28
29
=== "pip"
29
30
@@ -218,3 +219,27 @@ Select the model from the dropdown at the top of the chat screen and start a con
218
219
| Variable | Default | Description |
219
220
|----------|---------|-------------|
220
221
|`ONECOMP_DBF_NAIVE_LINEAR`|`0`| Set to `1` to force the naive (non-GemLite) kernel for DBF inference. Useful for debugging or when GemLite is unavailable. |
222
+
223
+
## Troubleshooting
224
+
225
+
### `RuntimeError: DeepGEMM backend is not available or outdated`
226
+
227
+
vLLM unconditionally runs a DeepGEMM (FP8) kernel warmup at engine startup, even for non-FP8 quantization such as GPTQ, DBF, or Mixed-GPTQ. When the optional [`deep_gemm`](https://github.com/deepseek-ai/DeepGEMM) package is not installed, the warmup fails with:
228
+
229
+
```
230
+
RuntimeError: DeepGEMM backend is not available or outdated. Please install or update the `deep_gemm` to a newer version to enable FP8 kernels.
231
+
```
232
+
233
+
OneComp-quantized models do not require DeepGEMM. Disable the FP8 kernel path before launching vLLM:
234
+
235
+
```bash
236
+
export VLLM_USE_DEEP_GEMM=0
237
+
export VLLM_DEEP_GEMM_WARMUP=skip
238
+
239
+
# Then launch vllm as usual
240
+
vllm serve ./your-quantized-model
241
+
# or
242
+
python your_vllm_script.py
243
+
```
244
+
245
+
Both variables are read directly by vLLM; OneComp does not interpret them.
0 commit comments