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 )
从 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
类 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
) — 是否应用静态量化或动态量化。 - activations_dtype (
QuantType
, defaults toQuantType.QUInt8
) — 用于激活的量化数据类型。 - activations_symmetric (
bool
, defaults toFalse
) — 是否对激活应用对称量化。 - weights_dtype (
QuantType
, defaults toQuantType.QInt8
) — 用于权重的量化数据类型。 - weights_symmetric (
bool
, defaults toTrue
) — 是否对权重应用对称量化。 - enable_dpu (
bool
, defaults toTrue
) — 确定是否生成适合 DPU 的量化模型。如果设置为 True,则量化过程将创建一个针对 DPU 计算优化的模型。
QuantizationConfig 是处理所有 RyzenAI 量化参数的配置类。