| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
docs: 优化tests/amct_ops测试运行说明(#185) Co-authored-by: fujun19<fujun19@hisilicon.com> # message auto-generated for no-merge-commit merge: !268 merge fix/issue-185-svdquant-docs into master docs: 优化tests/amct_ops测试运行说明(#185) Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: ## 描述 将 tests/amct_ops 测试说明调整为通用单算子构建/运行模板,避免后续每新增一个算子都要在顶层测试 README 中补一组固定命令。 同时以 SVDQuant 作为需要特殊 SOC 参数的示例,说明 svd_quant 需使用 --soc ascend950 构建,并给出 staging 与 wheel 两种方式下运行 tests.amct_ops.test_svd_quant 的命令。中文和英文配套文档已同步更新。 关联 issue:#185 ## 如何测试 - rg -n "<op_name>|<test_module>|test_svd_quant|--soc ascend950 svd_quant|SVDQuant|ascend950" tests/amct_ops/README.md tests/amct_ops/README_en.md - git diff --check upstream/master..HEAD -- tests/amct_ops/README.md tests/amct_ops/README_en.md - bash -n amct_ops/ops_build.sh 未运行真实 SVDQuant 单元测试;该测试依赖 CANN、NPU 和 ascend950 SVDQuant 自定义算子环境。 ## 文档更新 更新 tests/amct_ops/README.md 和 tests/amct_ops/README_en.md。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!268 | 1 个月前 | |
fix: 修复 BCP 参数校验异常文案(#191) Co-authored-by: zhengpeiyang<zhengpeiyang@huawei.com> # message auto-generated for no-merge-commit merge: !298 merge fix/bcp-error-message into master fix: 修复 BCP 参数校验异常文案(#191) Created-by: zhengpeiyang Commit-by: zhengpeiyang Merged-by: cann-robot Description: ## 描述 本 PR 修复 BCP 剪枝参数校验中的错误异常文案。 该问题由日志规范复扫发现:上次扫描遗漏了以下位置中存在的问题: - amct_pytorch/classic/graph_based/amct_pytorch/custom_op/bcp/bcp_op.py:38 - amct_pytorch/classic/graph_based/amct_pytorch/custom_op/bcp/bcp_op.py:72 原异常文案包含日志规范黑名单词 Inner Error,且错误描述不够具体。 本次修改: - 将两处异常文案改为明确的英文参数校验失败描述; - 更新对应单元测试的异常匹配内容; - 这是对上次日志规范扫描遗漏问题的复扫补充修复; - 关联 Issue:#191(复扫遗漏补充修复)。 ## 如何测试 已执行 Python 语法检查和 git diff --check,均通过。 尝试执行目标单元测试: bash python3 -m pytest -q tests/amct_pytorch/testcase_python/custom_op/test_bcp.py -k "tensor_and_prune_axis_counts_must_match or channel_count_must_cover_prune_groups or prune_axis_must_be_within_tensor_rank" ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!298 | 1 个月前 | |
fix: 优化日志输出和错误描述(#191) Co-authored-by: zhengpeiyang<zhengpeiyang@huawei.com> # message auto-generated for no-merge-commit merge: !289 merge fix/amct-c07-b01 into master fix: 优化日志输出和错误描述(#191) Created-by: zhengpeiyang Commit-by: zhengpeiyang Merged-by: cann-robot Description: ## 描述 关联 Issue:#191 本 PR 解决以下日志问题类别: - 禁止自定义打印 - 缺少度量单位 - 错误描述不完整 - 冗余日志 ## 如何测试 本地 pre-commit、代码格式、拼写和 Python 语法检查已通过;CANN 工具链及 NPU 相关测试由 PR 流水线验证。 ## 文档更新 不涉及对外文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!289 | 1 个月前 | |
对既有MXFP8格式的模型权重转为BF16格式工具的功能补充 Co-authored-by: zhangj1an<jianmusings@gmail.com> Co-authored-by: Wujie_Fu<wujie_fu@u.nus.edu> # message auto-generated for no-merge-commit merge: !287 merge mxfp8_to_hif4 into master 对既有MXFP8格式的模型权重转为BF16格式工具的功能补充 Created-by: Wujie_Fu Commit-by: zhangj1an;Wujie_Fu Merged-by: cann-robot Description: ## 描述 主分支上目前暂不支持对于OCP格式的MXFP8解码到BF16功能。原因是代码会把uint8/int8的scale当浮点来还原(就是把scale直接转为bf16),但其实里面存储的是指数幂,需要用2^scale来还原。(参见 https://gitcode.com/cann/amct/issues/190) 这份PR按照OCP MXFP8( https://www.opencompute.org/documents/ocp-8-bit-floating-point-specification-ofp8-revision-1-0-2023-12-01-pdf-1 )的标准支持了解码功能。当输入的模型scale dtype是uint8/int8,而且weight dtype是float8_e4m3fn或者float8_e5m2时,就会检测为MXFP8格式,并路由到mxfp_impl.py做对应解码。经过调研,目前社区中没有其他的MXFP8格式需要支持。 ## 如何测试 首先去HF下载一份qwen3.5-9b的mxfp8模型权重, Lexter3000/Qwen3.5_9b_mxfp8。另外也下载好原版的BF16模型, Qwen/Qwen3.5-9B。 然后测试以下四种格式的精度: mxfp8 bf16 mxfp8反量化为bf16 mxfp8伪量化为hif4。在lm_eval框架上,测试结果显示mxfp8版本与mxfp8转bf16精度一致,符合预期。 | 任务 | bf16 | mxfp8 | mxfp8tobf16 | mxfp8tohif4 | |---|---|---|---|---| | boolq (acc) | 89.08 | 74.40 | 74.40 | 78.04 | | arc_easy (acc_norm) | 74.20 | 71.68 | 71.68 | 73.70 | | copa (acc) | 89.00 | 87.00 | 87.00 | 90.00 | | arc_challenge (acc_norm) | 55.89 | 53.92 | 53.92 | 54.78 | | piqa (acc_norm) | 80.09 | 80.20 | 80.20 | 78.62 | | sciq (acc_norm) | 96.00 | 93.90 | 93.90 | 94.10 | 可以用以下命令进行格式转换, ### 4.2 MXFP8 → bf16(tensorwise deploy) bash cd amct python -m amct_pytorch.cli.llm.deploy \ --granularity tensor --model_name qwen3_5 \ --model /<model_dir>/Qwen3.5-9B-MXFP8 \ --output_dir /<model_dir>/Qwen3.5-9B-mxfp8_to_bf16 ### 4.3 MXFP8 → HiF4 W4A4(两步 deploy) bash # step 1: mxfp8 -> bf16(和上一步相同) # step 2: blockwise bf16 -> hif4 python -m amct_pytorch.cli.llm.deploy \ --granularity block --model_name qwen3_5 \ --model /<model_dir>/Qwen3.5-9B-mxfp8_to_bf16 \ --output_dir /<model_dir>/Qwen3.5-9B-mxfp8_to_hif4 \ --eval_mode quant --quant_dtype hifp \ --quant_target mlp attn-linear \ --bit_config amct_pytorch/configs/w4a4.yaml ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!287 | 1 个月前 | |
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_protoc、ascend_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!124 | 4 个月前 | |
[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/workflows 与 amct_pytorch/cli/llm,覆盖 PTQ、PTQ 数据提取、部署导出、评估等流程。 - 新增通用配置解析、数据处理、模型适配、量化应用、优化器等公共模块。 - 补充 Qwen、LongCat、DeepSeek、GLM 等 LLM 模型适配与量化模块。 2. 调整 AMCT PyTorch 包结构 - 引入 algorithms、common、quantization、workflows 等更清晰的模块划分。 - 将 classic 图量化相关实现收敛到 amct_pytorch/classic/graph_based,保持历史能力可用。 - 修正安装包数据路径,确保 classic graph-based 相关 proto、so、配置等资源能正确打包。 3. 完善构建与测试能力 - build.sh -u 默认开启覆盖率采集。 - 新增 pyproject.toml,统一 pytest 与 coverage 配置。 - 调整 CMake UT 入口,使用 pytest 执行 tests/unit_test 与 tests/amct_pytorch。 - 大幅补充算法、配置、LLM 模型适配、量化模块、workflow 等单元测试。 4. 更新依赖、文档和样例 - 补充 LLM 相关运行依赖,如 datasets、accelerate、compressed_tensors、torchao、einops 等。 - 更新 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.md 与 docs/README.md,同步依赖安装、构建验证和特性说明。 - 更新 examples/README.md,重新整理样例入口,明确算法样例与模型端到端样例的使用路径。 - 新增/完善 Qwen3.6-MoE 与 DeepSeek-V4 Flash 一站式平台样例文档,降低用户在 Atlas A3 环境中完成 NPU 推理体验的上手成本。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!102 | 4 个月前 | |
fix: ensure pytest disables torch backend autoload(#174) Co-authored-by: fujun19<fujun19@hisilicon.com> # message auto-generated for no-merge-commit merge: !290 merge fix/174-pytest-env into master fix: ensure pytest disables torch backend autoload(#174) Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: ## 描述 修复 https://gitcode.com/cann/amct/issues/174。 - 在 pytest 根 conftest 中,于 import torch 前设置 TORCH_DEVICE_BACKEND_AUTOLOAD=0,确保直接 pytest 收集阶段不会自动加载 torch_npu 后端。 - 移除 pyproject.toml 中依赖未声明 pytest-env 插件的 env 配置,避免 Unknown config option: env 警告。 ## 如何测试 python3 -m pytest -c pyproject.toml --rootdir=. tests/unit_test/test_public_api.py --collect-only -q -W error::pytest.PytestConfigWarning python3 -c "import importlib.util, os, sys; os.environ.pop('TORCH_DEVICE_BACKEND_AUTOLOAD', None); sys.modules.pop('torch', None); spec = importlib.util.spec_from_file_location('amct_tests_conftest', 'tests/conftest.py'); module = importlib.util.module_from_spec(spec); spec.loader.exec_module(module); assert os.environ.get('TORCH_DEVICE_BACKEND_AUTOLOAD') == '0'; print(os.environ['TORCH_DEVICE_BACKEND_AUTOLOAD'])" ruff check pyproject.toml tests/conftest.py ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 代码重构 - [ ] 其他,请描述: See merge request: cann/amct!290 | 1 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 4 个月前 | ||
| 4 个月前 | ||
| 1 个月前 |