Optimum 文档
Ryzen AI IPU 量化
并获得增强的文档体验
开始使用
Ryzen AI IPU 量化
请参考指南 如何应用量化 以了解如何使用以下类来量化针对 Ryzen AI IPU 的模型。
使用 Vitis AI 量化器
RyzenAIOnnxQuantizer
class optimum.amd.ryzenai.RyzenAIOnnxQuantizer
< source >( onnx_model_path: Path config: typing.Optional[ForwardRef('PretrainedConfig')] = None )
处理在 huggingface.co/models 上共享的模型的 RyzenAI 量化过程。
from_pretrained
< source >( model_or_path: typing.Union[str, pathlib.Path] file_name: typing.Optional[str] = None )
从 ONNX 模型文件实例化 RyzenAIOnnxQuantizer
。
get_calibration_dataset
< source >( 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
< source >( 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
class optimum.amd.ryzenai.QuantizationConfig
< source >( 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 量化参数的配置类。