ImportError: cannot import name ‘float8_dynamic_activation_float8_weight’ from ‘torchao.quantization

用户在运行 Diffusers 的量化代码(如加载 Flux 模型并指定 TorchAoConfig("float8dq_e4m3_row") )时触发。Issue 引用了一篇较旧的 Hugging Face 博客文章(LoRA-fast)中的示例代码,但该代码中的旧 API 在 torchao >

ImportError: cannot import name 'float8_dynamic_activation_float8_weight' from 'torchao.quantization

ImportError: cannot import name ‘float8_dynamic_activation_float8_weight’ from ‘torchao.quantization

快速结论:该报错发生在 Diffusers 与新版 torchao(>= 0.15.0)不兼容时,优先排查 torchao 版本并降级到 0.14.x,或使用 Diffusers 最新版(>= 0.38.0)配合新的量化 API。

问题场景

用户在运行 Diffusers 的量化代码(如加载 Flux 模型并指定 TorchAoConfig("float8dq_e4m3_row"))时触发。Issue 引用了一篇较旧的 Hugging Face 博客文章(LoRA-fast)中的示例代码,但该代码中的旧 API 在 torchao >= 0.15.0 中被重命名,在 0.16.0 中彻底移除,导致 from torchao.quantization import float8_dynamic_activation_float8_weight 等旧 API 无法导入。

报错原文

File "...\site-packages\diffusers\quantizers\quantization_config.py", line 629, in _get_torchao_quant_type_to_method
    from torchao.quantization import (
ImportError: cannot import name 'float8_dynamic_activation_float8_weight' from 'torchao.quantization'

原因分析

可能原因:torchao 库在 0.15.0 版本中进行了破坏性 API 重构,将旧的小写函数名(如 float8_dynamic_activation_float8_weight)改为大写类名(如 Float8DynamicActivationFloat8WeightConfig)。较旧版本的 Diffusers(如 0.37.0)内部仍然尝试导入旧 API,因此与 torchao >= 0.15.0 不兼容。社区已确认新版本 Diffusers(如 0.38.0)已适配新版 torchao 的量化配置对象。

环境排查

  • torchao 版本:确认是否为 >= 0.15.0(尤其是 0.16.0 或更高)。
  • Diffusers 版本:确认版本号(Issue 中为 0.37.0),较新版本(>=0.38.0)已修复此兼容性。
  • Python 版本:Issue 中为 3.10.12,通常不影响,但需验证。
  • PyTorch 版本:Issue 中为 2.10.0(CUDA 13.0),确认 PyTorch 与 torchao 版本兼容。
  • 硬件:NVIDIA GeForce RTX 5090(CUDA 可用)。

解决步骤

  1. 降级 torchao(可优先尝试):将 torchao 降级到 0.14.x,以避免旧的 Diffusers 版本出现导入错误。
  2. 升级 Diffusers 到最新版:升级到 0.38.0 或更高版本(官方已适配新版 torchao API),参考 Diffusers 文档中 torchao 量化指南
  3. 使用新版量化 API:如果升级 Diffusers 后仍需要手动导入,改用新版类名(如 Float8DynamicActivationFloat8WeightConfig)替换旧函数名。
  4. 检验示例代码:避免依赖过时的博客教程,优先使用官方文档中的最新代码片段;对于旧博客,需同时回退博客中所有相关库版本到博客发布时的版本。

验证方法

重新运行触发报错的 Python 脚本(如 Issue 中加载 Flux 模型的代码),确保量化配置成功加载且不再出现 ImportError。如果使用旧版 Diffusers,确认降级 torchao 后导入正常;如果使用新版 Diffusers,确认 TorchAoConfig 支持传递字符串标识符(如 "float8dq_e4m3_row")且内部映射正常工作。

参考来源

huggingface/diffusers #13286

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

celebrityanime
celebrityanime
文章: 7304

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注