Optimum 文档

Ryzen AI IPU 量化

您正在查看 main 版本,需要从源代码安装. 如果你想使用常规的 pip install,请查看最新的稳定版本 (v1.23.1).
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: Optional = None )

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

from_pretrained

< >

( model_or_path: Union file_name: Optional = 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: Optional = None dataset_split: Optional = None preprocess_function: Optional = None preprocess_batch: bool = True seed: Optional = 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

量化

< >

( quantization_config: QuantizationConfig dataset: Dataset save_dir: Union batch_size: int = 1 file_suffix: Optional = '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

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) — 是否应用静态量化或动态量化。
  • calibration_method (CalibrationMethod) — 使用校准数据集计算激活量化参数时选择的方法。
  • activations_dtype (QuantType, defaults to QuantType.QUInt8) — 用于激活的量化数据类型。
  • activations_symmetric (bool, defaults to False) — 是否对激活应用对称量化。
  • weights_dtype (QuantType, defaults to QuantType.QInt8) — 用于权重的量化数据类型。
  • weights_symmetric (bool, defaults to True) — 是否对权重应用对称量化。
  • enable_dpu (bool, defaults to True) — 确定是否生成适合 DPU 的量化模型。如果设置为 True,则量化过程将创建一个针对 DPU 计算优化的模型。

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

< > 在 GitHub 上更新