在刚刚结束的魔乐社区GeekDay上海站上,魔乐社区贡献者、昇腾优秀开发者丁一超带来了题为《如何入门大模型从量化到评测》的分享。作为一名从企业IT工作之余投身AI技术的开发者,他用亲身经历证明:量化并非高不可攀的技术壁垒,而是一条有章可循的实践路径。

本文将系统梳理丁一超的分享内容与采访心得,涵盖MindStudio-ModelSlim工具链的使用、一键量化操作、敏感层分析、vLLM Ascend部署、AISBench评测执行,以及他一路走来的成长经验与避坑指南。

646af124832abaeb52db1f9fbc64b81e.jpg
魔乐社区贡献者 丁一超


01 认识MindStudio-ModelSlim

MindStudio ModelSlim(昇腾模型压缩工具,msModelSlim),一个以加速为目标、压缩为技术、昇腾为根本的亲和压缩工具。包含量化和压缩等一系列推理优化技术,旨在加速大语言稠密模型、MoE模型、多模态理解模型、多模态生成模型等。

  • 核心功能:昇腾 AI 模型开发用户可以灵活调用Python API接口,适配算法和模型,完成精度性能调优,并支持导出不同格式模型,通过MindIE、vLLM Ascend等推理框架在昇腾AI处理器上运行。
  • 代码仓地址:https://gitcode.com/Ascend/msmodelslim

安装步骤

  1. 克隆代码仓:
    git clone https://gitcode.com/Ascend/msmodelslim

2. 进入目录并执行安装脚本:

cd msmodelslimbash install.sh

3. 安装accelerate依赖:

pip install accelerate

注意:如果后续修改或添加了新算法,需要重新配置,否则新算法可能无法正确加载。

02 msModelSlim量化操作

1. 一键量化

471604db8b14ccd5b97845a2f0f05aea.png

对于大多数常见模型,可以使用一键量化命令快速进行模型量化操作。参考代码仓:
https://gitcode.com/Ascend/msmodelslim/tree/master/example

量化命令(以W8A8为例):

msmodelslim quant --model_path {浮点权重路径} --
save_path {W8A8量化权重路径} --device npu--
model_type {模型类型}  --quant_type w8a8 --
trust_remote_code True
  • 浮点权重路径:原始模型路径
  • W8A8量化路径:量化后的模型路径
  • 模型类型:参考
https://gitcode.com/Ascend/msmodelslim/blob/master/config/config.ini

更多示例可参考代码仓中的 example 文件夹。

丁一超在采访中特别提到:“ 代码仓里面有文档,有简单的example,也有最佳实践的案例。开发者只要参考一下这些资料,自己也可以很轻松地上手量化。”

一键量化脚本参考文件夹:

image.png

v0量化配置文件参考格式

image.png

v1量化配置文件参考格式

image.png

2. 敏感层分析

量化并非对所有层都友好,某些“敏感层”量化后会对模型精度产生较大影响。通过敏感层分析,可以识别出这些层,并在量化配置中对它们进行特殊处理(如保持FP16精度)。

分析命令:

    --model_type Qwen3-Next-80B-A3B-Instruct \
    --model_path /path/to/your/model \
    --device npu \
    --metrics std \
    --topk 20 \
    --trust_remote_code False
  • –topk 20:表示输出前20个最敏感的层。一般建议设置为15层左右。

  • 分析工具的使用方法详见代码仓:
    https://gitcode.com/Ascend/msmodelslim/blob/master/docs/zh/feature_guide/sensitive_layer_analysis/analyze_api_usage.md

3. 精细化量化配置

若需更精细的控制(如选择量化算法、指定排除层),可以使用YAML配置文件。

执行命令:

msmodelslim quant --model_path {原始模型路径} --
    --save_path {量化后模型存放路径} --
    --device npu--
    --model_type {模型类型}--
    --config_path {yaml配置文件路径} --
    --trust_remote_code True

配置文件中可以指定量化标签(如W8A8的位数)、是否开启偏差校正、以及选择四种量化算法之一。关于算法的详细介绍,可参考官方文档。

03 模型部署与评测

1. 使用 vLLM Ascend 部署量化模型

量化完成后,需要使用支持昇腾的推理框架来部署模型。以下是以vLLM Ascend 为例的服务化启动命令。

部署命令:

vllm serve {模型目录} \
  --served-model-name {自定义模型名} \
  --max-num-seqs 8 \
  --max-model-len 32768 \
  --max_num-batched-tokens 4096 \
  --trust-remote-code \
  --no-enable-prefix-caching \
  --allowed-local-media-path / \
  --gpu-memory-utilization 0.9 \
  --enforce-eager \
  --port 9000 \
  --quantization ascend
  • –served-model-name:自定义模型名称,后续评测时需要与此一致。
  • –max-model-len:模型最大长度,根据任务调整,过小可能影响评测结果。
  • –gpu-memory-utilization:GPU显存利用率,建议可以设置在0.9-0.95之间,
  • –quantization ascend:关键参数,声明启动的是昇腾量化模型。若启动原始模型,则省略此参数。

2. 使用 AISBench 进行模型评测

AISBench 是一个标准的模型评测工具,可以通过API方式访问已部署的模型服务。

安装:

git clone https://github.com/aisbench/benchmark.git  
# 推荐从GitHub拉取,若网速慢可使用代理如 https://gh.llkk.cc/
cd benchmark
pip install

-e
 ./ --use-pep517

如果觉得慢的话可以使用Gitee上的代码仓,gitee上的代码仓目前为镜像仓,可能更新会有所延迟。但是常规的使用应该是可以满足的。

git clone https://gitee.com/aisbench/benchmark.git 
cd benchmark
pip install -e ./ --use-pep517

下载数据集:

可以参考代码仓

https://github.com/aisbench/benchmark.git

相关路径

ais_bench/benchmark/configs/datasets

image.png

以aime2025 为例:

cd benchmark/ais_bench/datasets

wget http://opencompass.oss-cn-shanghai.aliyuncs.com/datasets/data/aime2025.zip

python3 -c "import zipfile; zipfile.ZipFile('aime2025.zip').extractall()"
rm aime2025.zip

其他数据集的组织结构和下载方式,可参考ais_bench/benchmark/configs/datasets 下每个数据集的 README 文件。

image.png

配置评测模型:

需要在Python配置文件中定义待评测的模型信息。

LLM模型配置示例:

from ais_bench.benchmark.models import VLLMCustomAPIChat
from ais_bench.benchmark.utils.postprocess.model_postprocessors import extract_non_reasoning_content

models = [
    dict(
        attr="service",
        type=VLLMCustomAPIChat,
        abbr='vllm-api-general-chat',
        path="/home/openmind/models/Qwen3.5-122B-A10B",
        model="qwen3.5",
        request_rate = 0,
        retry = 2,
        host_ip = "localhost",
        host_port = 9000,
        max_out_len = 32768,
        batch_size=16,
        trust_remote_code=False,
        generation_kwargs = dict(
            temperature = 0.5,
            top_k = 10,
            top_p = 0.95,
            seed = None,
            repetition_penalty = 1.03,
        ),
        pred_postprocessor=dict(type=extract_non_reasoning_content)
    )

VLM(多模态)模型配置示例:

from ais_bench.benchmark.models import VLLMCustomAPIChat
from ais_bench.benchmark.utils.postprocess.model_postprocessors import extract_non_reasoning_content

models = [
    dict(
        attr="service",
        type=VLLMCustomAPIChat,
        abbr="vllm-api-stream-chat",
        path="/home/openmind/models/Qwen2.5-VL-7B-Instruct-w8a8",  # 启动服务化的权重路径
        model="qwen2_5_vl",  # 启动服务化时的模型名称
        stream=True,
        request_rate=0,
        retry=2,
        api_key="",
        host_ip="localhost",
        host_port=9000,  # 端口
        url="",
        max_out_len=512,
        batch_size=8,
        trust_remote_code=False,
        generation_kwargs=dict(
            temperature=0.01,
            ignore_eos=False,
        ),
        pred_postprocessor=dict(type=extract_non_reasoning_content),
    )

04 踩坑经验与优化建议

1. 查看量化后模型大小:

image.png

量化后模型大小通常为原始模型的50%-60%。经验数据显示,多数模型量化后压缩率在50%-55%之间。若要精确查看,建议删除模型目录下的 .git 文件夹后再进行统计。

2. 确认量化类型:

cat Qwen3-Next-80B-A3B-Instruct-w8a8/quant_model_description.json

image.png

量化完成后,务必检查生成的 quant_model_description.json 文件,确认量化类型是否符合预期(如W8A8)。避免因配置错误导致实际执行了 CA8 等其他量化类型。

3. 环境依赖问题:

版本匹配:确保 torch 版本与 torch-npu 库的版本需要是一样的,例如 torch2.9.0对应的也必须是 torch2.9 ,当然可以是 torch2.9.0.rcX

4. 量化质量验证:

对量化后的多模态模型进行图片测试,目前实践表明不会出现乱码等严重质量问题。但业务中的精度损失(通常在1%-12%之间)需要根据具体场景评估。

5. 性能权衡:

量化虽能显著提升推理速度并降低显存占用,但可能会带来小幅精度损失。建议根据业务需求,在精度和性能之间做权衡。

05 对话丁一超:从企业 IT 到社区贡献者

从实战营入门,在比赛中成长

丁一超目前主要从事企业IT相关工作,包括ERP系统、网络运维等。在业余时间,他热衷于研究AI技术,特别是模型微调、量化和推理。

“最早知道大模型量化其实是在书生社区的一个实战营。”他回忆道,“那时候知道了模型其实可以通过量化减小大小,同时对于模型质量基本没什么损失。”

真正让他深入量化领域的,是魔乐社区去年的线上量化大赛。“那次比赛量化了各种各样大大小小的模型,也体验了简单的多模态模型的量化。通过比赛,我还学习到了vLLM Ascend的部署以及评测。”

魔乐社区:NPU算力是最大吸引力

谈及与魔乐社区的结缘,丁一超提到最早是在一个模型迁移大赛中,第一次知道了魔乐社区。

“国内其实有很多模型社区,魔乐社区最吸引我的地方是有NPU算力可以体验。既可以上传模型,又可以使用社区的NPU算力体验一下自己想在大模型上做的东西。”

在他看来,魔乐社区与其他技术社区最大的不同之处在于:“现在很少有模型社区有NPU算力。同时魔乐社区的上传和下载感觉也很方便,直接通过git操作就可以完成模型、数据集之类的上传更新操作。在魔乐社区也可以通过创建空间来创建好玩有趣的应用。”

给新手的建议:不要怕困难,先动手实践

对于刚入门量化的小白,丁一超给出了最真诚的建议:

“不要怕困难,先照着代码仓的example或者最佳实践,自己下载模型动手实践起来。等成功量化、部署、评测一个模型后,其实就会感觉这个技术并不会很难。”

他强调,多实践、多参与社区活动是成长的关键。“通过实践才能更好地去理解理论东西,单单看理论知识的话,对于某个技能的理解还是会比较干。”

看好国产算力生态

作为一名长期关注国产算力的开发者,丁一超对国产算力生态有着自己的观察和期待。

“个人是比较喜欢国产化算力,用过昇腾、沐曦、燧原、海光。昇腾是NPU,其他算是GPGPU。GPGPU上手不难,昇腾NPU会稍微复杂一点,但从2021年开始接触昇腾到现在,生态文档已经很全面了。社区现在也很活跃,基本上有问题都可以去社区或文档库找到答案。”

06 总结

本文全面介绍了使用 MindStudio-ModelSlim 和 AISBench 在魔乐社区平台进行大模型量化、部署及评测的全流程。从一键量化到敏感层分析,再到精细化的配置和部署,最后通过标准评测工具验证效果,为开发者提供了一条清晰的技术实践路径。

正如丁一超在采访最后所说的:“在魔乐社区你可以找到好玩的空间,积极参与活动还能体验到昇腾NPU算力。”

希望这些内容能帮助大家在实际业务中更好地应用模型量化技术,也期待更多开发者加入魔乐社区,共同推动国产算力生态的发展。

相关资源:

魔乐社区大模型量化专区:

https://modelers.cn/topics/quantization

· msModelSlim代码仓:

https://gitcode.com/Ascend/msmodelslim

· msModelSlim文档:

https://msmodelslim.readthedocs.io/

· AISBench代码仓:

https://github.com/aisbench/benchmark.git

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐