Optimum 文档

Ryzen AI IPU 量化

您正在查看 main 版本,该版本需要从源代码安装。如果您想要常规 pip 安装,请查看最新的稳定版本 (v1.24.0)。
Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

Ryzen AI IPU 量化

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

使用 Vitis AI 量化器

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 时生成的令牌(对于某些数据集(如 ImageNet)是必需的)。

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

quantize

< >

( 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") — 用于保存量化模型的 file_suffix。
  • 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 量化参数的配置类。

< > Update 在 GitHub 上更新