# PR #43144 完整报告

- 仓库：`vllm-project/vllm`
- 标题：Remove additional dead code as a follow-up to #42889
- 合并时间：2026-05-20 22:01
- 原文链接：http://prhub.com.cn/vllm-project/vllm/pull/43144

---

# 执行摘要

- 一句话：移除压缩张量量化中的稀疏性死代码并添加弃用警告
- 推荐动作：值得合并，因为它清除了长期废弃的代码路径。但应确认 DeprecationWarning 是否真为警告（当前使用 raise 可能导致异常），建议改为 warnings.warn。

# 功能与动机

PR body 指出，这是对 PR #42889 的后续清理，旨在移除稀疏性相关工具 / 死代码，并添加弃用警告以告知用户该功能已被移除。

# 实现拆解

1. 从 CompressedTensorsConfig 的构造函数和 from_config 类方法中移除 sparsity_scheme_map 和 sparsity_ignore_list 参数及其初始化。
2. 修改 _parse_sparsity_config 类方法：当检测到非空稀疏配置时，不返回有效数据而是抛出 DeprecationWarning，且调用处忽略返回值。
3. 删除不再使用的 supports_cutlass_24 符号。
4. 同步更新测试辅助函数 _make_ct_config，移除传入的 sparsity 参数。

关键文件：
- `vllm/model_executor/layers/quantization/compressed_tensors/compressed_tensors.py`（模块 量化；类别 source；类型 data-contract；符号 supports_cutlass_24, _parse_sparsity_config, sparsity_scheme_map, sparsity_ignore_list）: 核心量化配置文件，移除了稀疏性支持和死代码，并添加弃用警告。
- `tests/quantization/test_compressed_tensors.py`（模块 测试；类别 test；类型 test-coverage）: 测试文件同步更新，移除稀疏性相关参数以匹配新接口。

关键符号：_parse_sparsity_config, from_config, CompressedTensorsConfig.__init__

## 关键源码片段

### `vllm/model_executor/layers/quantization/compressed_tensors/compressed_tensors.py`

核心量化配置文件，移除了稀疏性支持和死代码，并添加弃用警告。

```python
# 在 from_config 中，不再解析稀疏性配置为有效参数
@classmethod
def from_config(cls, config: dict[str, Any]) -> "CompressedTensorsConfig":
    # ... 其他解析
    quant_format = cast(str, config.get("format"))
    target_scheme_map = cls._quantization_scheme_map_from_config(config=config)

    # 调用 _parse_sparsity_config 仅用于产生弃用警告
    cls._parse_sparsity_config(config=config)

    return cls(
        target_scheme_map=target_scheme_map,
        ignore=ignore,
        quant_format=quant_format,
        config=config,
        transform_config=config.get("transform_config"),
        kv_cache_scheme=config.get("kv_cache_scheme"),
    )

@classmethod
def _parse_sparsity_config(cls, config: dict[str, Any]):
    """解析稀疏性配置，若存在则发出弃用警告。"""
    sparsity_config: SparsityCompressionConfig = config.get(SPARSITY_CONFIG_NAME)
    if sparsity_config:
        sparse_scheme_map = {
            target: sparsity_config
            for target in sparsity_config.targets or list()
        }
        if sparse_scheme_map:
            raise DeprecationWarning(
                "Sparsity support has been removed from compressed-tensors. "
                "Please use a model without sparsity configuration."
            )
    # 原返回值已不再使用，但为兼容性保留返回语句
    return {}, []

```

### `tests/quantization/test_compressed_tensors.py`

测试文件同步更新，移除稀疏性相关参数以匹配新接口。

```python
# 测试辅助函数，移除 sparsity 参数
def _make_ct_config(*, target: str = "Linear") -> CompressedTensorsConfig:
    """Build a minimal CompressedTensorsConfig with INT8 channel quant."""
    weight_quant = QuantizationArgs(
        num_bits=8,
        type=QuantizationType.INT,
        strategy=QuantizationStrategy.CHANNEL,
        symmetric=True,
        dynamic=False,
    )
    return CompressedTensorsConfig(
        target_scheme_map={
            target: {
                "weights": weight_quant,
                "input_activations": None,
                "format": "pack-quantized",
            }
        },
        ignore=[],
        quant_format="pack-quantized",
        # sparsity_scheme_map 和 sparsity_ignore_list 已移除
    )

```

# 评论区精华

本 PR 没有引发实质性 review 讨论，仅由机器人自动审查和合并者 approved。

- 暂无高价值评论线程

# 风险与影响

- 风险：潜在的兼容性风险：任何在模型中包含 sparsity_config 的用户将首次收到 DeprecationWarning，但不会立即破坏加载流程（因为 _parse_sparsity_config 仍返回空值）。但当前实现使用 raise DeprecationWarning，可能导致模型加载流程中断，与温和弃用的意图不符，存在异常风险。
- 影响：影响范围：使用压缩张量量化并带有稀疏性配置的模型。影响程度：这些用户会收到弃用警告，未来可能需要迁移到无稀疏性模型。对不涉及稀疏性的用户无影响。
- 风险标记：接口变更 , 弃用警告实现方式风险

# 关联脉络

- PR #42889 Previous sparsity removal PR: 本 PR 是该 PR 的后续清理步骤，继续移除稀疏性相关死代码。