amct:基于昇腾AI处理器的深度学习模型压缩工具包项目

AMCT是CANN提供的昇腾AI处理器亲和的模型压缩工具仓。

分支11Tags5
文件最后提交记录最后更新时间
docs: 修正 AGENTS.md 与实际不符的描述并刷新 gitcode-pr skill 至 v5 API Co-authored-by: fujun19<fujun19@hisilicon.com> # message auto-generated for no-merge-commit merge: !151 merge docs/fix-agents-md-mismatch into master docs: 修正 AGENTS.md 与实际不符的描述并刷新 gitcode-pr skill 至 v5 API Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: ## 描述 本 PR 修正仓库文档与实际不符之处,并刷新 gitcode-pr skill 文档至当前生效的 GitCode v5 API。 **1. 修正 AGENTS.md 多处与实际不符的描述** - 量化特性 W8A16/W8A8/W4A16 → 代码实际实现的 W8A8/W4A8/W4A4。 - 图压缩目录 amct_pytorch/graph_based_compression/(不存在)→ 实际 amct_pytorch/classic/graph_based/。 - NPU 算子目录 npu_ops/(不存在)→ 实际 amct_ops/。 - 纠正"裸跑 bash build.sh 即可构建"的错误说法:脚本仅在指定 --torch/--pkg/-u 时才真正构建,不带选项不产出任何分发包。 - 新增「安装 AMCT 到 Python 环境」:产物位于 build_out/,需 pip3 install 该 tar.gz 才能 import amct_pytorch,并补充 pip>25.2 需 --no-build-isolation、依赖 CANN>=8.5.0 等说明。 - 新增「Issue / PR 模板」指引,指向 .gitcode/ 下模板。 - Python 代码风格 PEP8 → 实际 pre-commit 使用的 ruff。 **2. 刷新 gitcode-pr skill 文档至 GitCode v5 API** - 评论/讨论/文件变更接口从 GitLab API v4 风格重写为 v5(/repos/owner/repo/... + access_token)。 迁移原因(已实测):v4(GitLab 兼容层)端点**覆盖不完整且不一致**——实测 .../merge_requests/{n}/discussions 返回 200 可用,但 .../merge_requests 列表返回 404 APIG.0101 The API does not exist;v5 接口完整一致,且与仓库自带的 references/gitcode_api.md(通篇 v5)对齐。注意:并非 v4 已废弃,而是 v5 才是当前完整可靠的官方接口。 - 新增单条评论详情、回复评论(discussions 端点)、POST 返回哈希 ID 等说明。 - 修正创建 PR 的 head 参数:跨 fork PR 须用完整仓库路径 source_owner/source_repo:branch,仅用 username:branch 会返回 400 BAD_REQUEST(本 PR 创建过程实测)。 - 移除 v4 遗留的 encoded_repo 死代码。 ## 如何测试 - 逐项核对 AGENTS.md 描述与仓库实际文件/目录/脚本,确认一致。 - 实机执行 bash build.sh --torch,成功产出 build_out/amct_pytorch-1.1.0-py3-none-linux_aarch64.tar.gz,与文档新写的产物路径和文件名格式一致。 - gitcode-pr 文档的 v5 接口与 head 格式在本 PR 创建过程中实测验证。 ## 文档更新 - 更新 AGENTS.md - 更新 .claude/skills/gitcode-pr/SKILL.md ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!1519 天前
docs: add English translation for all markdown documentation files Co-authored-by: sophia1213<sophie.chen@huawei.com> # message auto-generated for no-merge-commit merge: !143 merge master into master docs: add English translation for all markdown documentation files Created-by: sophia1213 Commit-by: sophia1213 Merged-by: cann-robot Description: ## 描述 更新英文非产品文档资料 ## 如何测试 根据最新的中文md资料进行测试 ## 文档更新 非docs目录下的所有xx_en.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!14319 天前
docs: clarify agent skills description(#90) Co-authored-by: fujun19<fujun19@hisilicon.com> # message auto-generated for no-merge-commit merge: !110 merge fix/issue-90 into master docs: clarify agent skills description(#90) Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: ## 描述 修复 .opencode/README.md 中 Agent skills 清单描述不准确的问题: - 将状态说明调整为“已勾选/未勾选”,与 GitCode 页面渲染后的复选框展示保持一致。 - 将 superpowers 的触发指令示例由 开发需求,要求…… 调整为 开发需求,要求<用户补充需求描述>,明确这里是用户补充内容占位,不是文档未完成。 关联 Issue:Closes #90 ## 如何测试 - 执行 git diff --check,确认 Markdown 修改没有空白格式问题。 - 人工检查 .opencode/README.md 中 skills 清单描述和触发指令示例,确认表达完整、一致。 ## 文档更新 更新了 .opencode/README.md。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!1101 个月前
docs: add English translation for all markdown documentation files Co-authored-by: sophia1213<sophie.chen@huawei.com> # message auto-generated for no-merge-commit merge: !143 merge master into master docs: add English translation for all markdown documentation files Created-by: sophia1213 Commit-by: sophia1213 Merged-by: cann-robot Description: ## 描述 更新英文非产品文档资料 ## 如何测试 根据最新的中文md资料进行测试 ## 文档更新 非docs目录下的所有xx_en.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!14319 天前
fix:修复 Qwen3.5-MoE/Qwen3.6-MoE 通过deploy导出权重时存在的weight_map异常情况 Co-authored-by: SwaggyAlex<zhangyi601@huawei.com> # message auto-generated for no-merge-commit merge: !165 merge master into master fix:修复 Qwen3.5-MoE/Qwen3.6-MoE 通过deploy导出权重时存在的weight_map异常情况 Created-by: SwaggyAlex Commit-by: SwaggyAlex Merged-by: cann-robot Description: ## 描述 通过iter_deploy_bindings函数对weight_map中的key进行重构 同时在Qwen3.6-MoE的一站式样例中增加deploy的步骤 ## 如何测试 <!--描述测试此改动的步骤和前提条件。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!1652 天前
chore: 清理 cmake/function 下未使用的构建文件 Co-authored-by: fujun19<fujun19@hisilicon.com> # message auto-generated for no-merge-commit merge: !158 merge chore/remove-unused-cmake-function into master chore: 清理 cmake/function 下未使用的构建文件 Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: ## 描述 接入 CANN 公共 cmake 仓后,本地 cmake/function/ 目录下的文件已不再被任何 CMakeLists.txt 或构建脚本引用,属于历史遗留死文件,本次予以清理: - function.cmake:定义的 protobuf_generate / install_package 在全仓无任何调用 - protobuf_sym_rename.cmakePROTOBUF_SYM_RENAME 变量在全仓无任何引用 - protobuf_3.14_change_version.patch:无任何 patch 应用逻辑引用此文件 当前构建已统一通过 cmake/fetch_cann_cmake.cmake 接入 cann-cmake/function/prepare.cmake,不再依赖这些本地副本。 ## 如何测试 - 全仓检索确认 function.cmake / protobuf_sym_rename / protobuf_3.14_change_version / PROTOBUF_SYM_RENAME / protobuf_generate / install_package 均无源码引用 - bash build.sh --pkg 可正常生成 amct 包 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!15812 天前
fix: 接通文档承诺的公开导入路径,保证文档示例可直接运行 Co-authored-by: fujun19<fujun19@hisilicon.com> # message auto-generated for no-merge-commit merge: !162 merge fix/doc-auto-calibration-import into master fix: 接通文档承诺的公开导入路径,保证文档示例可直接运行 Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: ## 描述 文档(README + 各 API 页)给出的多条公开导入路径在代码中并未接通:真实实现深埋在 amct_pytorch/classic/graph_based/amct_pytorch/... 下,而文档给的是简短公开路径,用户照文档 import 即报 ModuleNotFoundError。 以**文档用法为准**补建公开转发模块(均指向健康实现,不改动任何在用逻辑)。每条修复对应的文档出处如下: ### 1. amct_pytorch.common.auto_calibrationAutoCalibrationEvaluatorBase 等 6 个基类) 新建 amct_pytorch/common/auto_calibration/,接通以下文档用法: - docs/README.md:114 —— from amct_pytorch.common.auto_calibration import AutoCalibrationEvaluatorBase - docs/zh/api/accuracy_based_auto_calibration.md:140 —— 同上(自定义 evaluator 继承基类做基于精度的自动量化) ### 2. amct_pytorch.nn.module.quantization.*(5 个 QAT 类) 新建 amct_pytorch/nn/module/quantization/ 三层包 + 5 个转发子模块,接通: - docs/README.md:641-642, 695 —— Conv2dQAT / LinearQAT - docs/zh/api/Conv2dQAT.md:23,29,223,235 —— Conv2dQAT - docs/zh/api/Conv3dQAT.md:25,31,227 —— Conv3dQAT - docs/zh/api/ConvTranspose2dQAT.md —— ConvTranspose2dQAT - docs/zh/api/LinearQAT.md —— LinearQAT - docs/zh/api/QuantCalibrationOp.md —— QuantCalibrationOp ### 3. amct_pytorch.tensor_decomposeauto_decomposition / decompose_network) 新建 amct_pytorch/tensor_decompose/,接通: - docs/README.md:1912,1924,1937 —— auto_decomposition / decompose_network - docs/zh/api/auto_decomposition.md:71 —— from amct_pytorch.tensor_decompose import auto_decomposition - docs/zh/api/decompose_network.md:68 —— from amct_pytorch.tensor_decompose import decompose_network ### 4. amct_pytorch.common.auto_channel_pruneSensitivityBase / SearchChannelBase) 新建 amct_pytorch/common/auto_channel_prune/ 指向健康实现,并修正 README 笔误: - docs/README.md:1023 —— amct.common.auto_channel_prune.sensitivity_baseamct_pytorch.common.auto_channel_prune.sensitivity_base(包名 amctamct_pytorch) - docs/README.md:1040 —— amct.common.auto_prune.search_channel_baseamct_pytorch.common.auto_channel_prune.search_channel_base(包名修正 + 目录名 auto_pruneauto_channel_prune) - docs/README.md:1037 —— prose 中默认实现路径 auto_pruneauto_channel_prune 同步修正 ## 如何测试 隔离环境(torch 2.7.1 + NPU)实测: - 文档全部 10 条 amct_pytorch 导入语句逐条按原文执行通过 - 顶层 25 个 amct.* API 仍全部可达(新增包未破坏现有导入) - setuptools.find_packages() 可发现 6 个新建转发包,打包进 wheel 不会遗漏 ## 文档更新 修正 docs/README.mdamctamct_pytorchauto_pruneauto_channel_prune(共 3 处,含 1 处 prose 路径)。其余 API 页(accuracy_based_auto_calibration / Conv2dQAT / Conv3dQAT / ConvTranspose2dQAT / LinearQAT / QuantCalibrationOp / auto_decomposition / decompose_network)一字未改,靠新增转发模块接通。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!1627 天前
fix:修复 Qwen3.5-MoE/Qwen3.6-MoE 通过deploy导出权重时存在的weight_map异常情况 Co-authored-by: SwaggyAlex<zhangyi601@huawei.com> # message auto-generated for no-merge-commit merge: !165 merge master into master fix:修复 Qwen3.5-MoE/Qwen3.6-MoE 通过deploy导出权重时存在的weight_map异常情况 Created-by: SwaggyAlex Commit-by: SwaggyAlex Merged-by: cann-robot Description: ## 描述 通过iter_deploy_bindings函数对weight_map中的key进行重构 同时在Qwen3.6-MoE的一站式样例中增加deploy的步骤 ## 如何测试 <!--描述测试此改动的步骤和前提条件。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!1652 天前
【CANN体验官】Qwen2.5-3B HiFloat8 量化体验 Co-authored-by: Developer user<921918760@qq.com> # message auto-generated for no-merge-commit merge: !144 merge cann-experience-hifloat8 into master 【CANN体验官】Qwen2.5-3B HiFloat8 量化体验 Created-by: imaginationhh Commit-by: Developer user Merged-by: cann-robot Description: ## 描述 本 PR 为 CANN 体验官任务交付,提交至 experiment/task-book/amct_experience_imaginationhh/。 使用 AMCT(Ascend Model Compression Toolkit)对 **Qwen2.5-3B-Instruct** 执行 **HiFloat8** 量化,完成从环境搭建、量化脚本编写到 benchmark 结果输出的全流程体验,并对比量化前后精度、记录兼容性问题与优化建议。 **核心成果**: - 实现基于 amct_ops NPU 自定义 cast 算子的 HiFloat8 伪量化 Linear(npu_hifloat8_fakequant_linear.py),全程 NPU。 - wikitext2 全量(146 段)精度对比:FP16 PPL **8.5570** → HiFloat8 PPL **8.6724**,劣化仅 **+1.349%**。 - 交付 quantize.py(npu_op / cpu_sim / amct 三后端)、eval_common.pyrun.shREADME.mdresult_npuop_full.json。 **关键兼容性发现**:AMCT 内置 HIFP8_CAST_CFGtorch_npu.npu_quantize(hifloat8),在当前 CANN 9.1.0 因 aclnnQuantize 内核未编入 HiFloat8(DT_HIFLOAT8 not in [INT8,UINT8,INT32])而无法跑通;改用 amct_ops 独立 ascendc cast 算子绕过,成功实现真·NPU HiFloat8 伪量化。详见 README 第 5 节。 ## 如何测试 bash cd experiment/task-book/amct_experience_imaginationhh bash run.sh --model_path /path/to/Qwen2.5-3B-Instruct --backend npu_op 环境:Ascend 910B3,CANN 9.1.0,torch 2.7.1,torch_npu 2.7.1.post4。已通过 OAT 与 ruff 检查。 ## 文档更新 新增 experiment/task-book/amct_experience_imaginationhh/README.md,包含目录结构、环境说明、任务达成情况(量化输入/精度对比/执行指令)与体验反馈。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 代码重构 - [x] 其他,请描述:CANN 体验官任务交付(量化实践 + 兼容性反馈) See merge request: cann/amct!14419 天前
【PR】增加oat_check license检查脚本,用于检测OAT是否正确 Co-authored-by: zhangfands<18768316492@163.com> # message auto-generated for no-merge-commit merge: !126 merge master into master 【PR】增加oat_check license检查脚本,用于检测OAT是否正确 Created-by: zhangfands Commit-by: zhangfands Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1、oat的precommit从使用java的工具改为使用python,依赖python3.7以上版本,解决了用户需要额外下载安装jdk或者提升python版本的问题。 2、oat.xml文件支持放在/scripts/下,解决用户提出的根目录下配置文件过多的文件。同时向前兼容根目录下放配置文件的方式。 ## 如何测试 <!--描述测试此改动的步骤和前提条件。--> 无 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!12621 天前
fix:修复 Qwen3.5-MoE/Qwen3.6-MoE 通过deploy导出权重时存在的weight_map异常情况 Co-authored-by: SwaggyAlex<zhangyi601@huawei.com> # message auto-generated for no-merge-commit merge: !165 merge master into master fix:修复 Qwen3.5-MoE/Qwen3.6-MoE 通过deploy导出权重时存在的weight_map异常情况 Created-by: SwaggyAlex Commit-by: SwaggyAlex Merged-by: cann-robot Description: ## 描述 通过iter_deploy_bindings函数对weight_map中的key进行重构 同时在Qwen3.6-MoE的一站式样例中增加deploy的步骤 ## 如何测试 <!--描述测试此改动的步骤和前提条件。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!1652 天前
新增文件 .clang-format,保证格式规范统一 Co-authored-by: fujun19<fujun19@hisilicon.com> # message auto-generated for no-merge-commit merge: !61 merge amct_open-patch-2 into master 新增文件 .clang-format,保证格式规范统一 Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: ## 描述 新增文件 .clang-format,保证C++代码格式规范统一 ## 如何测试 自动规范提交代码格式 ## 文档更新 NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!612 个月前
[feat]: add amct llm Co-authored-by: w00852777<wanghui432@huawei.com> Co-authored-by: fujun19<fujun19@hisilicon.com> Co-authored-by: SwaggyAlex<zhangyi601@huawei.com> Co-authored-by: li_ting<liting73@hisilicon.com> # message auto-generated for no-merge-commit merge: !102 merge master into master [feat]: add amct llm Created-by: fujun19 Commit-by: SwaggyAlex;fujun19;wuranxx;li_ting;l00968832;lianghengyi;sophia1213;Hengyi Liang;w00852777 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本 PR 新增LLM量化工具模块,用于面向大语言模型的后训练量化、精度评估和部署产物导出,主要包括: 1. 新增并整理 LLM 量化工作流能力 - 新增 amct_pytorch/workflowsamct_pytorch/cli/llm,覆盖 PTQ、PTQ 数据提取、部署导出、评估等流程。 - 新增通用配置解析、数据处理、模型适配、量化应用、优化器等公共模块。 - 补充 Qwen、LongCat、DeepSeek、GLM 等 LLM 模型适配与量化模块。 2. 调整 AMCT PyTorch 包结构 - 引入 algorithmscommonquantizationworkflows 等更清晰的模块划分。 - 将 classic 图量化相关实现收敛到 amct_pytorch/classic/graph_based,保持历史能力可用。 - 修正安装包数据路径,确保 classic graph-based 相关 proto、so、配置等资源能正确打包。 3. 完善构建与测试能力 - build.sh -u 默认开启覆盖率采集。 - 新增 pyproject.toml,统一 pytest 与 coverage 配置。 - 调整 CMake UT 入口,使用 pytest 执行 tests/unit_testtests/amct_pytorch。 - 大幅补充算法、配置、LLM 模型适配、量化模块、workflow 等单元测试。 4. 更新依赖、文档和样例 - 补充 LLM 相关运行依赖,如 datasetsacceleratecompressed_tensorstorchaoeinops 等。 - 更新 README、算法说明、LLM 文档、快速安装和 PTQ 配置说明。 - 新增/整理一站式平台样例,包括 Qwen3.6-MoE、DeepSeek-V4 Flash,以及 PTQ、部署、评估、数据提取脚本。 - 将算法样例统一整理到 examples/algorithms 目录,提升样例可发现性和可维护性。 ## 如何测试 <!--描述测试此改动的步骤和前提条件。--> 已进行以下验证: 1. UT 与覆盖率验证 bash build.sh -u 结果: 1911 passed, 2 skipped, 1 xfailed, 371 warnings Coverage XML written to build/coverage.xml ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> - 更新根目录 README.md,补充 AMCT PyTorch 当前包结构、核心能力、一站式平台快速体验入口,并修正 amct_ops 文档链接。 - 更新 docs/AMCT_Pytorch_LLM.md,补充 LLM 量化流程说明,包括 PTQ 数据提取、PTQ 执行、部署导出和评估流程。 - 更新 docs/algorithm_brief.md,同步当前支持的量化算法说明。 - 更新 docs/context/ptq_config_param.md,修正配置示例引用路径,避免文档中的样例路径不可用。 - 更新 docs/quick_install.mddocs/README.md,同步依赖安装、构建验证和特性说明。 - 更新 examples/README.md,重新整理样例入口,明确算法样例与模型端到端样例的使用路径。 - 新增/完善 Qwen3.6-MoE 与 DeepSeek-V4 Flash 一站式平台样例文档,降低用户在 Atlas A3 环境中完成 NPU 推理体验的上手成本。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!10226 天前
新增pre-commit配置 Co-authored-by: annqr<qiuqianru@h-partners.com> # message auto-generated for no-merge-commit merge: !71 merge master-b into master 新增pre-commit配置 Created-by: annqr Commit-by: annqr Merged-by: cann-robot Description: ## 描述 新增pre-commit配置 ## 如何测试 <!--描述测试此改动的步骤和前提条件。--> ## 文档更新 CONTRIBUTING.md文件更新了pre-commit相关说明。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 代码重构 - [x] 其他,请描述:配置变更 See merge request: cann/amct!711 个月前
feat: 新增 --experimental 构建选项以打包实验特性代码 Co-authored-by: fujun19<fujun19@hisilicon.com> # message auto-generated for no-merge-commit merge: !167 merge worktree-feat+experimental-pkg-option into master feat: 新增 --experimental 构建选项以打包实验特性代码 Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: ## 描述 默认的 --pkg / --torch 构建排除 amct_pytorch/experimental/ 目录,新增 --experimental 标志,使用时将实验特性纳入分发包。 用法示例: bash bash build.sh --torch --experimental bash build.sh --pkg --experimental ## 如何测试 - bash build.sh --help 确认 --experimental 选项出现在帮助输出中 - bash build.sh --torch 产物中不含 amct_pytorch/experimental - bash build.sh --torch --experimental 产物中包含 amct_pytorch/experimental - ruff check / bash -n 语法检查通过,CodeArts Check 0 defects ## 文档更新 - AGENTS.md:补充 --experimental 构建示例 - examples/README.md / README_en.md:FlatQuant 标注实验特性,说明需要 --experimental 构建 - examples/algorithms/flatquant/README_CN.md / README_en.md:顶部加实验特性前置说明 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!1677 天前
build: use cann third party protobuf Co-authored-by: fujun19<fujun19@hisilicon.com> # message auto-generated for no-merge-commit merge: !124 merge fix/use-add-cann-third-party into master build: use cann third party protobuf Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: 关联 Issue:#121 ## 描述 将本仓 protobuf 三方依赖迁移到 cann-cmake 统一入口: - 使用 add_cann_third_party(protobuf) 替换本地 cmake/third_party/protobuf.cmake。 - 开启 ENABLE_OPEN_SRC,确保统一 protobuf 脚本创建 host_protocascend_protobuf_static 等目标。 - 将 proto 编译路径从旧的 build/protobuf_host/bin/protoc 切换为 $<TARGET_FILE:host_protoc>。 - 删除迁移后不再需要的本地 protobuf 脚本和 patch 文件。 ## 如何测试 - git diff --check - cmake -S . -B build_add_cann_third_party_default_check -DENABLE_TEST=OFF - cmake -S . -B build_add_cann_third_party_test_check -DENABLE_TEST=ON 说明:ENABLE_TEST=ON 配置过程中当前环境会打印已有的 torch_npu 后端符号错误 traceback,但 CMake 退出码为 0 并完成配置生成。 ## 文档更新 不涉及文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 代码重构 - [x] 其他,请描述:构建依赖迁移 See merge request: cann/amct!12424 天前
update CONRIBUTING.md for coding-standards Co-authored-by: fujun19<fujun19@hisilicon.com> # message auto-generated for no-merge-commit merge: !21 merge docs into master update CONRIBUTING.md for coding-standards Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: ## 描述 更新CONRIBUTING.md中关于特性代码风格及代码规范的说明链接 ## 如何测试 走读CONRIBUTING.md文档,描述无误 ## 文档更新 更新了CONRIBUTING.md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!214 个月前
docs: add English translation for all markdown documentation files Co-authored-by: sophia1213<sophie.chen@huawei.com> # message auto-generated for no-merge-commit merge: !143 merge master into master docs: add English translation for all markdown documentation files Created-by: sophia1213 Commit-by: sophia1213 Merged-by: cann-robot Description: ## 描述 更新英文非产品文档资料 ## 如何测试 根据最新的中文md资料进行测试 ## 文档更新 非docs目录下的所有xx_en.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!14319 天前
Initial commit5 个月前
docs: add English translation for all markdown documentation files Co-authored-by: sophia1213<sophie.chen@huawei.com> # message auto-generated for no-merge-commit merge: !143 merge master into master docs: add English translation for all markdown documentation files Created-by: sophia1213 Commit-by: sophia1213 Merged-by: cann-robot Description: ## 描述 更新英文非产品文档资料 ## 如何测试 根据最新的中文md资料进行测试 ## 文档更新 非docs目录下的所有xx_en.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!14319 天前
Initial commit5 个月前
【PR】增加oat_check license检查脚本,用于检测OAT是否正确 Co-authored-by: zhangfands<18768316492@163.com> # message auto-generated for no-merge-commit merge: !126 merge master into master 【PR】增加oat_check license检查脚本,用于检测OAT是否正确 Created-by: zhangfands Commit-by: zhangfands Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1、oat的precommit从使用java的工具改为使用python,依赖python3.7以上版本,解决了用户需要额外下载安装jdk或者提升python版本的问题。 2、oat.xml文件支持放在/scripts/下,解决用户提出的根目录下配置文件过多的文件。同时向前兼容根目录下放配置文件的方式。 ## 如何测试 <!--描述测试此改动的步骤和前提条件。--> 无 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!12621 天前
调整docs目录区分中英文 Co-authored-by: sophia1213<sophie.chen@huawei.com> # message auto-generated for no-merge-commit merge: !142 merge master into master 调整docs目录区分中英文 Created-by: sophia1213 Commit-by: sophia1213 Merged-by: cann-robot Description: ## 描述 docs目录区分中英文 ## 如何测试 根据最新的目录进行测试 ## 文档更新 docs目录下中的中文文档,移入docs/zh目录,后续英文在docs/en目录 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!14221 天前
docs: add English translation for all markdown documentation files Co-authored-by: sophia1213<sophie.chen@huawei.com> # message auto-generated for no-merge-commit merge: !143 merge master into master docs: add English translation for all markdown documentation files Created-by: sophia1213 Commit-by: sophia1213 Merged-by: cann-robot Description: ## 描述 更新英文非产品文档资料 ## 如何测试 根据最新的中文md资料进行测试 ## 文档更新 非docs目录下的所有xx_en.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!14319 天前
调整docs目录区分中英文 Co-authored-by: sophia1213<sophie.chen@huawei.com> # message auto-generated for no-merge-commit merge: !142 merge master into master 调整docs目录区分中英文 Created-by: sophia1213 Commit-by: sophia1213 Merged-by: cann-robot Description: ## 描述 docs目录区分中英文 ## 如何测试 根据最新的目录进行测试 ## 文档更新 docs目录下中的中文文档,移入docs/zh目录,后续英文在docs/en目录 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!14221 天前
docs: add English translation for all markdown documentation files Co-authored-by: sophia1213<sophie.chen@huawei.com> # message auto-generated for no-merge-commit merge: !143 merge master into master docs: add English translation for all markdown documentation files Created-by: sophia1213 Commit-by: sophia1213 Merged-by: cann-robot Description: ## 描述 更新英文非产品文档资料 ## 如何测试 根据最新的中文md资料进行测试 ## 文档更新 非docs目录下的所有xx_en.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!14319 天前
接入cann公共cmake仓 Co-authored-by: fujun19<fujun19@hisilicon.com> # message auto-generated for no-merge-commit merge: !78 merge public into master 接入cann公共cmake仓 Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: ## 描述 删除实际未使用到的cmakefile 接入cann公共cmake仓 ## 如何测试 bash build.sh --pkg生成amct包 ## 文档更新 更新了SECURITY.md文件 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!781 个月前
[feat] add DeepSeek-V3.2-Exp W8A8C8/W4A8C8 quantization support Co-authored-by: SwaggyAlex<zhangyi601@huawei.com> # message auto-generated for no-merge-commit merge: !3 merge master into master [feat] add DeepSeek-V3.2-Exp W8A8C8/W4A8C8 quantization support Created-by: SwaggyAlex Commit-by: SwaggyAlex Merged-by: cann-robot Description: # 描述 新增对DeepSeek-V3.2-Exp W8A8C8/W4A8C8的量化支持,提供逐block的calibration数据dump、模型训练、精度测验、权重转换脚本,以及使用说明文档 # 类型 [ ] Bug修复 [x] 新功能 [ ] 重构(即不是新增,也不是修改bug的代码改动) [x] 构建过程或辅助工具的变动 [x] 文档内容更新 # 使用说明 **使用前请在sh文件内设置对应模型路径、输出路径等变量** # calibration数据dump bash scripts/dump.sh # 模型训练 bash scripts/train.sh # ppl测算 bash scripts/val.sh # 量化权重输出 bash scripts/deploy.sh # CheckList: [x] 我的代码遵循这个项目的代码风格 [x] 我已经自己测试过我的代码 [x] 我已经更新了对应的文档 [x] 我已经在标题中正确使用了类型标签(例如:feat, fix, refactor, docs, test) # 其他信息 See merge request: cann/amct!35 个月前
feat: build.sh 按配置变更自动决定是否清理缓存 Co-authored-by: fujun19<fujun19@hisilicon.com> # message auto-generated for no-merge-commit merge: !173 merge feat/incremental-build into master feat: build.sh 按配置变更自动决定是否清理缓存 Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: ## 描述 原来每次构建都无条件删除 build/ 目录,导致无法利用增量编译,每次均为全量构建。 改为读取 CMakeCache.txt 中的关键编译参数(CMAKE_BUILD_TYPEENABLE_EXPERIMENTALENABLE_ASAN),仅在这些值发生变化时才清理缓存,其余情况复用已有构建产物。 用户无需感知清理时机,脚本自动判断: - 编译参数未变(包括混用 --torch/--pkg)→ 增量构建 - --build-type--experimental--asan 有变化 → 自动全量清理后重建 - 首次构建或 build/ 不存在 → 直接创建,正常构建 ## 如何测试 1. 执行 bash build.sh --torch,记录编译时间 2. 再次执行 bash build.sh --torch,确认复用缓存,编译时间明显缩短 3. 执行 bash build.sh --torch --build-type=Debug,确认输出 Build config changed, cleaning build cache... 并全量重建 4. 混用 bash build.sh --pkgbash build.sh --torch,确认无问题 ## 文档更新 无需更新文档。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!1731 天前
[feat] add DeepSeek-V3.2-Exp W8A8C8/W4A8C8 quantization support Co-authored-by: SwaggyAlex<zhangyi601@huawei.com> # message auto-generated for no-merge-commit merge: !3 merge master into master [feat] add DeepSeek-V3.2-Exp W8A8C8/W4A8C8 quantization support Created-by: SwaggyAlex Commit-by: SwaggyAlex Merged-by: cann-robot Description: # 描述 新增对DeepSeek-V3.2-Exp W8A8C8/W4A8C8的量化支持,提供逐block的calibration数据dump、模型训练、精度测验、权重转换脚本,以及使用说明文档 # 类型 [ ] Bug修复 [x] 新功能 [ ] 重构(即不是新增,也不是修改bug的代码改动) [x] 构建过程或辅助工具的变动 [x] 文档内容更新 # 使用说明 **使用前请在sh文件内设置对应模型路径、输出路径等变量** # calibration数据dump bash scripts/dump.sh # 模型训练 bash scripts/train.sh # ppl测算 bash scripts/val.sh # 量化权重输出 bash scripts/deploy.sh # CheckList: [x] 我的代码遵循这个项目的代码风格 [x] 我已经自己测试过我的代码 [x] 我已经更新了对应的文档 [x] 我已经在标题中正确使用了类型标签(例如:feat, fix, refactor, docs, test) # 其他信息 See merge request: cann/amct!35 个月前
chore: update amct graph package url Co-authored-by: fujun19<fujun19@hisilicon.com> # message auto-generated for no-merge-commit merge: !115 merge update_graph into master chore: update amct graph package url Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: ## 描述 更新 install_graph.shcann-amct-graph 包下载地址,从 20260131_newest9.0.0 包更新为 20260520_newest9.1.0 包,使打包流程获取最新 graph 兼容包。 ## 如何测试 - 清理构建缓存和生成物:build/build_out/amctgraph/dist/tmp/amct_pytorch.egg-infoamct_pytorch/graph_based_compression/lib/、测试日志/覆盖率和 __pycache__ - 执行:bash build.sh --pkg - 解压:build_out/cann-amct_9.0.0_linux-aarch64.tar.gz - 检查生成物目录结构 验证结果:构建退出码为 0,日志包含 Build success!package amct run successBuild finished。解压后确认 graph 包内容更新为 cann-amct_acl_9.1.0_linux-aarch64.runamct_onnx-0.24.0-py3-none-linux_aarch64.whl,且新包不再包含 amct_mindspore/。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 代码重构 - [x] 其他,请描述:更新构建辅助脚本中的外部 graph 包下载地址 See merge request: cann/amct!1151 个月前
[feat]: add amct llm Co-authored-by: w00852777<wanghui432@huawei.com> Co-authored-by: fujun19<fujun19@hisilicon.com> Co-authored-by: SwaggyAlex<zhangyi601@huawei.com> Co-authored-by: li_ting<liting73@hisilicon.com> # message auto-generated for no-merge-commit merge: !102 merge master into master [feat]: add amct llm Created-by: fujun19 Commit-by: SwaggyAlex;fujun19;wuranxx;li_ting;l00968832;lianghengyi;sophia1213;Hengyi Liang;w00852777 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本 PR 新增LLM量化工具模块,用于面向大语言模型的后训练量化、精度评估和部署产物导出,主要包括: 1. 新增并整理 LLM 量化工作流能力 - 新增 amct_pytorch/workflowsamct_pytorch/cli/llm,覆盖 PTQ、PTQ 数据提取、部署导出、评估等流程。 - 新增通用配置解析、数据处理、模型适配、量化应用、优化器等公共模块。 - 补充 Qwen、LongCat、DeepSeek、GLM 等 LLM 模型适配与量化模块。 2. 调整 AMCT PyTorch 包结构 - 引入 algorithmscommonquantizationworkflows 等更清晰的模块划分。 - 将 classic 图量化相关实现收敛到 amct_pytorch/classic/graph_based,保持历史能力可用。 - 修正安装包数据路径,确保 classic graph-based 相关 proto、so、配置等资源能正确打包。 3. 完善构建与测试能力 - build.sh -u 默认开启覆盖率采集。 - 新增 pyproject.toml,统一 pytest 与 coverage 配置。 - 调整 CMake UT 入口,使用 pytest 执行 tests/unit_testtests/amct_pytorch。 - 大幅补充算法、配置、LLM 模型适配、量化模块、workflow 等单元测试。 4. 更新依赖、文档和样例 - 补充 LLM 相关运行依赖,如 datasetsacceleratecompressed_tensorstorchaoeinops 等。 - 更新 README、算法说明、LLM 文档、快速安装和 PTQ 配置说明。 - 新增/整理一站式平台样例,包括 Qwen3.6-MoE、DeepSeek-V4 Flash,以及 PTQ、部署、评估、数据提取脚本。 - 将算法样例统一整理到 examples/algorithms 目录,提升样例可发现性和可维护性。 ## 如何测试 <!--描述测试此改动的步骤和前提条件。--> 已进行以下验证: 1. UT 与覆盖率验证 bash build.sh -u 结果: 1911 passed, 2 skipped, 1 xfailed, 371 warnings Coverage XML written to build/coverage.xml ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> - 更新根目录 README.md,补充 AMCT PyTorch 当前包结构、核心能力、一站式平台快速体验入口,并修正 amct_ops 文档链接。 - 更新 docs/AMCT_Pytorch_LLM.md,补充 LLM 量化流程说明,包括 PTQ 数据提取、PTQ 执行、部署导出和评估流程。 - 更新 docs/algorithm_brief.md,同步当前支持的量化算法说明。 - 更新 docs/context/ptq_config_param.md,修正配置示例引用路径,避免文档中的样例路径不可用。 - 更新 docs/quick_install.mddocs/README.md,同步依赖安装、构建验证和特性说明。 - 更新 examples/README.md,重新整理样例入口,明确算法样例与模型端到端样例的使用路径。 - 新增/完善 Qwen3.6-MoE 与 DeepSeek-V4 Flash 一站式平台样例文档,降低用户在 Atlas A3 环境中完成 NPU 推理体验的上手成本。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!10226 天前
[feat]: add amct llm Co-authored-by: w00852777<wanghui432@huawei.com> Co-authored-by: fujun19<fujun19@hisilicon.com> Co-authored-by: SwaggyAlex<zhangyi601@huawei.com> Co-authored-by: li_ting<liting73@hisilicon.com> # message auto-generated for no-merge-commit merge: !102 merge master into master [feat]: add amct llm Created-by: fujun19 Commit-by: SwaggyAlex;fujun19;wuranxx;li_ting;l00968832;lianghengyi;sophia1213;Hengyi Liang;w00852777 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本 PR 新增LLM量化工具模块,用于面向大语言模型的后训练量化、精度评估和部署产物导出,主要包括: 1. 新增并整理 LLM 量化工作流能力 - 新增 amct_pytorch/workflowsamct_pytorch/cli/llm,覆盖 PTQ、PTQ 数据提取、部署导出、评估等流程。 - 新增通用配置解析、数据处理、模型适配、量化应用、优化器等公共模块。 - 补充 Qwen、LongCat、DeepSeek、GLM 等 LLM 模型适配与量化模块。 2. 调整 AMCT PyTorch 包结构 - 引入 algorithmscommonquantizationworkflows 等更清晰的模块划分。 - 将 classic 图量化相关实现收敛到 amct_pytorch/classic/graph_based,保持历史能力可用。 - 修正安装包数据路径,确保 classic graph-based 相关 proto、so、配置等资源能正确打包。 3. 完善构建与测试能力 - build.sh -u 默认开启覆盖率采集。 - 新增 pyproject.toml,统一 pytest 与 coverage 配置。 - 调整 CMake UT 入口,使用 pytest 执行 tests/unit_testtests/amct_pytorch。 - 大幅补充算法、配置、LLM 模型适配、量化模块、workflow 等单元测试。 4. 更新依赖、文档和样例 - 补充 LLM 相关运行依赖,如 datasetsacceleratecompressed_tensorstorchaoeinops 等。 - 更新 README、算法说明、LLM 文档、快速安装和 PTQ 配置说明。 - 新增/整理一站式平台样例,包括 Qwen3.6-MoE、DeepSeek-V4 Flash,以及 PTQ、部署、评估、数据提取脚本。 - 将算法样例统一整理到 examples/algorithms 目录,提升样例可发现性和可维护性。 ## 如何测试 <!--描述测试此改动的步骤和前提条件。--> 已进行以下验证: 1. UT 与覆盖率验证 bash build.sh -u 结果: 1911 passed, 2 skipped, 1 xfailed, 371 warnings Coverage XML written to build/coverage.xml ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> - 更新根目录 README.md,补充 AMCT PyTorch 当前包结构、核心能力、一站式平台快速体验入口,并修正 amct_ops 文档链接。 - 更新 docs/AMCT_Pytorch_LLM.md,补充 LLM 量化流程说明,包括 PTQ 数据提取、PTQ 执行、部署导出和评估流程。 - 更新 docs/algorithm_brief.md,同步当前支持的量化算法说明。 - 更新 docs/context/ptq_config_param.md,修正配置示例引用路径,避免文档中的样例路径不可用。 - 更新 docs/quick_install.mddocs/README.md,同步依赖安装、构建验证和特性说明。 - 更新 examples/README.md,重新整理样例入口,明确算法样例与模型端到端样例的使用路径。 - 新增/完善 Qwen3.6-MoE 与 DeepSeek-V4 Flash 一站式平台样例文档,降低用户在 Atlas A3 环境中完成 NPU 推理体验的上手成本。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!10226 天前
feat: 新增 --experimental 构建选项以打包实验特性代码 Co-authored-by: fujun19<fujun19@hisilicon.com> # message auto-generated for no-merge-commit merge: !167 merge worktree-feat+experimental-pkg-option into master feat: 新增 --experimental 构建选项以打包实验特性代码 Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: ## 描述 默认的 --pkg / --torch 构建排除 amct_pytorch/experimental/ 目录,新增 --experimental 标志,使用时将实验特性纳入分发包。 用法示例: bash bash build.sh --torch --experimental bash build.sh --pkg --experimental ## 如何测试 - bash build.sh --help 确认 --experimental 选项出现在帮助输出中 - bash build.sh --torch 产物中不含 amct_pytorch/experimental - bash build.sh --torch --experimental 产物中包含 amct_pytorch/experimental - ruff check / bash -n 语法检查通过,CodeArts Check 0 defects ## 文档更新 - AGENTS.md:补充 --experimental 构建示例 - examples/README.md / README_en.md:FlatQuant 标注实验特性,说明需要 --experimental 构建 - examples/algorithms/flatquant/README_CN.md / README_en.md:顶部加实验特性前置说明 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!1677 天前
add amct_pytorch pkg Co-authored-by: fujun19<fujun19@hisilicon.com> Co-authored-by: fujun19<ikX6KxGSevEwXSku7b7TnwyZ> # message auto-generated for no-merge-commit merge: !19 merge amct_pytorch into master add amct_pytorch pkg Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: ## 描述 新增amct_pytorch部分功能开源,包含数据与权重低比特量化、张量分解、模型部署优化(主要为算子融合)等功能 https://www.hiascend.com/document/detail/zh/canncommercial/850/devaids/amct/atlasamct_16_0001.html ## 如何测试 bash build.sh --pkg构建出包 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!194 个月前

AMCT

Ascend Model Compression Toolkit

昇腾 NPU 原生模型压缩工具包

License CANN PyTorch

快速开始 · 特性 · 样例 · FAQ · 贡献


🔥 最新动态

  • [2026/05/28] 新增当前主流 LLM 网络量化、PTQ 算法支持,并提供 DeepSeek-V4Qwen3.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 上启用低比特运算,显著提升推理性能。部署架构如下:

AMCT 架构

亮点为:

  • 🎯 硬件亲和 —— 量化结果直接对接昇腾 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。

量化后精度下降如何处理?

处理路径(按优先级):

  1. 调整校准数据量:增大 batch_num(推荐 batch_num × batch_size = 16 或 32)
  2. 回退敏感层:识别量化敏感层(首层、尾层、参数量少的层),在配置中设置 quant_enable: false
  3. 调整量化算法:分析模型数据分布特点,使用合适的量化算法
  4. 尝试量化感知训练(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

更多问题请查阅 压缩特性文档 或在 Issue 中提问。

💬 社区讨论

欢迎加入 AMCT 社区,参与讨论与交流:

平台 用途
GitCode Issue 问题反馈、功能建议、技术讨论
GitCode Discussions 经验分享、最佳实践、社区互动
SIG Discussions 技术决策、问题处理、项目落地

🤝 参与贡献

欢迎贡献代码、算法与文档,详见 贡献指南

  • 简单 bug 修复:直接提交 PR
  • 新特性 / 接口变更:先在 Issue 中讨论方案,达成共识后再提交 PR
  • 代码风格:C/C++ 遵循 Google 规范(基于 .clang-format),Python 遵循 PEP8;提交前启用 pre-commit

🙏 致谢

感谢所有为 AMCT 做出贡献的开发者!

本项目受启发于以下开源项目:

📝 许可证

本项目基于 Apache 2.0 协议开源。使用前请阅读 安全声明免责声明

项目介绍

AMCT是CANN提供的昇腾AI处理器亲和的模型压缩工具仓。

定制我的领域