Optimum 文档

Ryzen AI IPU 量化

您正在查看的是需要从源码安装。如果您希望进行常规 pip 安装,请查看最新的稳定版本 (v1.27.0)。
Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

Ryzen AI IPU 量化

请参阅指南 如何应用量化,以了解如何使用以下类来量化针对 Ryzen AI IPU 的模型。

使用 Vitis AI Quantizer

RyzenAIOnnxQuantizer

class optimum.amd.ryzenai.RyzenAIOnnxQuantizer

< >

( onnx_model_path: Path config: typing.Optional[ForwardRef('PretrainedConfig')] = None )

处理 huggingface.co/models 上共享模型的 RyzenAI 量化过程。

from_pretrained

< >

( model_or_path: typing.Union[str, pathlib.Path] file_name: typing.Optional[str] = None )

参数

  • model_or_path (Union[str, Path]) — 可以是:
    • 已保存的导出 ONNX 中间表示 (IR) 模型路径,例如 `./my_model_directory/.
  • file_name(Optional[str], 默认为 None) — 将默认模型文件名从 "model.onnx" 覆盖为 file_name。这允许您从同一仓库或目录加载不同的模型文件。

从 ONNX 模型文件实例化 RyzenAIOnnxQuantizer

get_calibration_dataset

< >

( dataset_name: str num_samples: int = 100 dataset_config_name: typing.Optional[str] = None dataset_split: typing.Optional[str] = None preprocess_function: typing.Optional[typing.Callable] = None preprocess_batch: bool = True seed: typing.Optional[bool] = 2016 token: bool = None streaming: bool = False )

参数

  • dataset_name (str) — Hugging Face Hub 上数据集仓库的名称,或包含要加载用于校准步骤的数据文件的本地目录的路径。
  • num_samples (int, 默认为 100) — 构成校准数据集的最大样本数。
  • dataset_config_name (Optional[str], 默认为 None) — 数据集配置的名称。
  • dataset_split (Optional[str], 默认为 None) — 用于执行校准步骤的数据集拆分。
  • preprocess_function (Optional[Callable], 默认为 None) — 加载数据集后应用于每个示例的处理函数。
  • preprocess_batch (bool, 默认为 True) — preprocess_function 是否应分批处理。
  • seed (int, 默认为 2016) — 用于打乱校准数据集的随机种子。
  • token (bool, 默认为 False) — 是否使用运行 transformers-cli login 时生成的 token(某些数据集如 ImageNet 需要)。

创建校准 datasets.Dataset 以用于训练后静态量化校准步骤。

量化

< >

( quantization_config: QuantizationConfig dataset: Dataset save_dir: typing.Union[str, pathlib.Path] batch_size: int = 1 file_suffix: typing.Optional[str] = 'quantized' )

参数

  • quantization_config (QuantizationConfig) — 包含与量化相关的参数的配置。
  • save_dir (Union[str, Path]) — 量化模型应保存到的目录。
  • file_suffix (Optional[str], 默认为 "quantized") — 用于保存量化模型的文件后缀。
  • calibration_tensors_range (Optional[Dict[str, Tuple[float, float]]], 默认为 None) — 将节点名称映射到其量化范围的字典,仅在应用静态量化时使用和必需。

根据 quantization_config 中定义的优化规范对模型进行量化。

QuantizationConfig

class optimum.amd.ryzenai.QuantizationConfig

< >

( format: QuantFormat = <QuantFormat.QDQ: 1> calibration_method: CalibrationMethod = <PowerOfTwoMethod.MinMSE: 1> activations_dtype: QuantType = <QuantType.QUInt8: 1> activations_symmetric: bool = True weights_dtype: QuantType = <QuantType.QInt8: 0> weights_symmetric: bool = True enable_dpu: bool = True )

参数

  • is_static (bool) — 是否应用静态量化或动态量化。
  • format (QuantFormat) — 目标 RyzenAI 量化表示格式。对于面向运算符 (QOperator) 格式,所有量化运算符都有自己的 ONNX 定义。对于面向张量 (QDQ) 格式,通过插入 QuantizeLinear / DeQuantizeLinear 运算符来量化模型。
  • calibration_method (CalibrationMethod) — 选择用于使用校准数据集计算激活量化参数的方法。
  • activations_dtype (QuantType, 默认为 QuantType.QUInt8) — 用于激活的量化数据类型。
  • activations_symmetric (bool, 默认为 False) — 是否对激活应用对称量化。
  • weights_dtype (QuantType, 默认为 QuantType.QInt8) — 用于权重的量化数据类型。
  • weights_symmetric (bool, 默认为 True) — 是否对权重应用对称量化。
  • enable_dpu (bool, 默认为 True) — 确定是否生成适用于 DPU 的量化模型。如果设置为 True,量化过程将创建一个针对 DPU 计算优化的模型。

QuantizationConfig 是处理所有 RyzenAI 量化参数的配置类。

< > 在 GitHub 上更新