Optimum 文件
Ryzen AI IPU 量化
並獲得增強的文件體驗
開始使用
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 )
從 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
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 量化引數的配置類。