Prhub

#43144 Remove additional dead code as a follow-up to #42889

原始 PR 作者 dsikka 合并时间 2026-05-20 22:01 文件变更 2 提交数 4 评论 0 代码增减 +13 / -108

执行摘要

移除压缩张量量化中的稀疏性死代码并添加弃用警告

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

值得合并,因为它清除了长期废弃的代码路径。但应确认 DeprecationWarning 是否真为警告(当前使用 raise 可能导致异常),建议改为 warnings.warn。

讨论亮点

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

实现拆解

  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 量化 modified 7.35
tests/quantization/test_compressed_tensors.py 测试 modified 3.42

关键符号

_parse_sparsity_config from_config CompressedTensorsConfig.__init__

关键源码片段

vllm/model_executor/layers/quantization/compressed_tensors/compressed_tensors.py data-contract

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

# 在 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 test-coverage

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

# 测试辅助函数,移除 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 已移除
    )

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

潜在的兼容性风险:任何在模型中包含 sparsity_config 的用户将首次收到 DeprecationWarning,但不会立即破坏加载流程(因为 _parse_sparsity_config 仍返回空值)。但当前实现使用 raise DeprecationWarning,可能导致模型加载流程中断,与温和弃用的意图不符,存在异常风险。

影响范围:使用压缩张量量化并带有稀疏性配置的模型。影响程度:这些用户会收到弃用警告,未来可能需要迁移到无稀疏性模型。对不涉及稀疏性的用户无影响。

接口变更 弃用警告实现方式风险

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论