🔥 最新动态
- [2026/05/28] 新增当前主流 LLM 网络量化、PTQ 算法支持,并提供 DeepSeek-V4 和 Qwen3.6-MoE 的一站式样例
- [2026/04/24] 新增 DeepSeek-V4 模型 INT8 量化支持
- [2026/04/17] 新增 HiFloat8 分位量化(Quantile)算法
- [2026/03/02] 新增 HiFloat8 数据直转(Cast)算法
- [2026/02/02] 新增 HiFloat8 / MXFP8 / MXFP4 数据量化
- [2025/12/22] AMCT 项目首次上线 🎉
🚀 概述
AMCT 是昇腾 NPU 原生的模型量化压缩工具。量化后模型体积减小,在昇腾 NPU 上启用低比特运算,显著提升推理性能。部署架构如下:
亮点为:
- 🎯 硬件亲和 —— 量化结果直接对接昇腾 NPU 低比特运算单元
- 🔢 多精度全栈 —— INT8 / INT4 / MXFP8 / MXFP4 / HiFloat8 任选
- 🚀 大模型就绪 —— 原生支持 DeepSeek-V3.2 / V4 等前沿模型
✨ 核心特性
| 特性类别 | 简介 |
|---|---|
| PTQ 量化算法 | Min-Max / AWQ / GPTQ / SmoothQuant 等训练后量化算法,详见 算法介绍 |
| HiFloat8 量化 | 华为自研 8-bit 浮点格式,锥形精度 + 大动态范围,详见 HiFloat8 介绍 |
| NPU 自定义算子 | 基于NPU的自研算子,Ascend C kernel 实现,详见 amct_ops |
| 大模型量化 | DeepSeek-V3.2 / V4 量化方案,详见 DeepSeek-V4 |
📊 性能收益
量化显著降低部署成本:
| 精度格式 | 仅权重(W) | 全量化(W+A) | 收益 |
|---|---|---|---|
| INT8 | ✅ Min-Max / AWQ / GPTQ | ✅ Min-Max / SmoothQuant | 体积 ↓50% · 吞吐 ↑ |
| INT4 | ✅ AWQ / GPTQ | ✅ FlatQuant | 体积 ↓75% · 低带宽友好 |
| HiFloat8 | ✅ Cast / Quantile / OFMR | ✅ Cast / Quantile / OFMR | 体积 ↓50% · 大动态范围 |
| MXFP8 | ✅ MXQuant | ✅ MXQuant | 体积 ↓50% · 高精度 |
| MXFP4 | ✅ MXQuant | ✅ MXQuant | 体积 ↓75% · 微缩浮点 |
📦 快速开始
环境要求
| 依赖 | 版本 |
|---|---|
| Python | >=3.9 |
| PyTorch | 2.7.1 或 2.1.0(需配套 torch_npu) |
| GCC / CMake / patch | ≥ 7.3 / ≥ 3.16(推荐 3.20) / ≥ 2.7 |
| CANN(Toolkit & Ops) | ≥ 8.5.0(需提前安装 NPU 驱动 / 固件) |
完整环境部署请参见 快速安装。
安装&验证
# 1. 拉取源码并安装依赖
git clone https://gitcode.com/cann/amct.git
# 2. 源码构建打包
cd amct
bash build.sh --torch
# 3. 安装(产物位于 build_out/)
# ${version} 从 build_out/ 目录中的文件名获取,如 amct_pytorch-1.1.0-py3-none-linux_aarch64.tar.gz
# ${arch} 为 CPU 架构,如 x86_64、aarch64
pip3 install build_out/amct_pytorch-${version}-py3-none-linux_${arch}.tar.gz --user
⚠️ 注意:若 pip 版本 > 25.2,安装命令需追加
--no-build-isolation,否则可能出现ModuleNotFoundError: No module named 'torch'。
# 验证 AMCT 安装
python3 -c "import amct_pytorch as amct; print(f'successfully installed AMCT ')"
更多构建选项与本地验证请参见 构建指南。
🏃 一站式平台快速体验
「一站式平台」是为开发者提供的 NPU 环境,内部已集成完整的 CANN 环境,可以直接使用。AMCT 针对该平台在相应样例 README 中提供了简化的「快速启动」路径,帮助用户最小步骤完成 NPU 推理体验。当前支持的模型正在持续扩展中,敬请关注:
| 实践 | 简介 |
|---|---|
| Qwen3.6-MoE | 在 Atlas A3 环境中完成 Qwen3.6-MoE 模型的量化、数据提取以及 PTQ,针对一站式平台场景提供标准启动流程和相关配置,帮助用户快速上手完成一次端到端 NPU 推理体验。 |
| DeepSeek-V4 | 在 Atlas A3 环境中完成 DeepSeek-V4 Flash 模型的单卡推理,针对一站式平台场景提供标准启动流程和相关配置,帮助用户快速上手完成一次端到端 NPU 推理体验。 |
📖 文档样例
| 主题 | 内容 |
|---|---|
| 压缩概念 | 量化、稀疏、蒸馏等基础概念 |
| LLM量化 | 面向大语言模型(LLM)的量化特性 |
| 压缩特性 | AMCT 支持的基础压缩特性 |
| API 文档 | 接口使用说明 |
| 算法介绍 | AWQ、GPTQ、SmoothQuant等算法原理 |
🔍 目录结构
amct/
├── amct_pytorch/ # PyTorch 量化压缩核心源码
│ ├── algorithms/ # 量化算法实现
│ ├── cli/ # 命令行入口
│ ├── common/ # 通用工具、模型和数据处理
│ ├── configs/ # 量化配置模板
│ ├── experimental/ # 实验特性(HiFloat8、DeepSeek 等)
│ ├── quantization/ # 量化数据类型与基础模块
│ └── workflows/ # LLM 量化、评估和部署流程
├── amct_ops/ # AMCT 自定义 NPU 算子
├── examples/ # 端到端样例与调用示例
├── tests/ # 单元测试
├── docs/ # 工具文档(概念、API、算法等)
├── cmake/ # CMake 构建配置
├── build.sh # 工程编译脚本
├── setup.py # Python 包打包入口
└── requirements.txt # Python 第三方依赖
❓ 常见问题
算法选择:何时使用 AWQ / GPTQ / SmoothQuant?
| 算法 | 适用场景 | 核心思路 |
|---|---|---|
| AWQ | 大模型 PTQ,追求低量化误差 | 感知激活的权重量化,保护 ~1% 显著权重 |
| GPTQ | 大模型 PTQ,强调逐层优化 | 基于海森矩阵的权重微调,最小化量化误差 |
| SmoothQuant | 激活分布困难场景 | 将激活量化难度迁移至权重,平滑激活异常值 |
| Min-Max | 入门场景,简单快速 | 直接取最大最小值计算量化因子 |
建议:大模型权重量化首选 AWQ 或 GPTQ;W8A8 全量化场景推荐 SmoothQuant;入门学习推荐 Min-Max。
量化后精度下降如何处理?
处理路径(按优先级):
- 调整校准数据量:增大
batch_num(推荐 batch_num × batch_size = 16 或 32) - 回退敏感层:识别量化敏感层(首层、尾层、参数量少的层),在配置中设置
quant_enable: false - 调整量化算法:分析模型数据分布特点,使用合适的量化算法
- 尝试量化感知训练(QAT):若 PTQ 无法满足精度,使用 QAT 重训练
安装时报 "ModuleNotFoundError: No module named 'torch'"?
原因:pip 版本 > 25.2,构建隔离导致 torch 未被识别。
解决方案:
# 方案 1:降低 pip 版本
pip install pip==25.2
# 方案 2:添加 --no-build-isolation
pip3 install amct_pytorch_${version}-linux-${arch}.tar.gz --user --no-build-isolation
💬 社区讨论
欢迎加入 AMCT 社区,参与讨论与交流:
| 平台 | 用途 |
|---|---|
| GitCode Issue | 问题反馈、功能建议、技术讨论 |
| GitCode Discussions | 经验分享、最佳实践、社区互动 |
| SIG Discussions | 技术决策、问题处理、项目落地 |
🤝 参与贡献
欢迎贡献代码、算法与文档,详见 贡献指南:
- 简单 bug 修复:直接提交 PR
- 新特性 / 接口变更:先在 Issue 中讨论方案,达成共识后再提交 PR
- 代码风格:C/C++ 遵循 Google 规范(基于
.clang-format),Python 遵循 PEP8;提交前启用pre-commit
🙏 致谢
感谢所有为 AMCT 做出贡献的开发者!
本项目受启发于以下开源项目:
- AWQ - 激活感知权重量化
- GPTQ - GPTQ 实现参考
- SmoothQuant - 平滑激活量化
- FlatQuant - 矩阵平坦量化
📝 许可证
本项目基于 Apache 2.0 协议开源。使用前请阅读 安全声明 与 免责声明。