开发者
资源
[object Object][object Object]

Flash Attention 3(FA3)量化,类似Attention量化,不同之处在于DeepSeek使用MLA算法,k rope的取值变化过大,不适合量化。因此此量化方式将k的非rope张量量化为8bit,k的rope张量不量化。目前使用的量化方案是perhead量化。通过对k的部分量化来减少KV Cache的显存占用,优化decode阶段attention算子的速度,提升吞吐。

[object Object]

FA3量化搭配W8A8量化后权重目录结构:

[object Object]
  • 量化输出包含:权重文件quant_model_weight_w8a8.safetensors和权重描述文件quant_model_description.json。
  • 目录中的其余文件为推理时所需的配置文件,不同模型略有差异。

以下展示了量化后权重描述文件quant_model_description.json中的部分内容:

[object Object]

和W8A8量化权重相比:新增fa_quant_type描述字段;新增self_attn字段及下面包含的内容;input_scale用于将q,k特征量化为int8类型;deq_scale用于将q,k输出反量化成浮点类型。

图 1 FA3量化权重推理时流程

表 1 float16权重量化后dtype及shape信息(假设原始权重的shape为[n, k])

[object Object]undefined
[object Object]
  1. 请参见,安装msModelSlim工具。

  2. 请参见,完成DeepSeek-V3/R1运行前必检内容

  3. 进入“msmodelslim/example/DeepSeek/”目录,执行如下量化命令。

    [object Object]

    FA3量化权重的quant_model_description.json中应包含"fa_quant_type": "FAKQuant"键值对。

[object Object]
  1. 开启KV Cache NZ格式。

    • 纯模型推理时:在“${ATB_SPEED_HOME_PATH}/atb_llm/conf/config.json”中将“enable_nz”设置为“true”。

    • 服务化推理时:在“{MindIE安装目录}/mindie_llm/conf/config.json”的"ModelConfig"字段下添加“enable_nz”字段,如下所示:

      [object Object]
    [object Object]
  2. 您可以使用以下指令执行对话测试,推理内容为"What's deep learning?"。

    [object Object]