Optimum 文档
量化
并获取增强的文档体验
开始使用
量化
ORTQuantizer
class optimum.onnxruntime.ORTQuantizer
< source >( onnx_model_path: Path config: typing.Optional[ForwardRef('PretrainedConfig')] = None )
处理 huggingface.co/models 上共享模型的 ONNX Runtime 量化过程。
计算量化范围。
fit
< source >( dataset: Dataset calibration_config: CalibrationConfig onnx_augmented_model_name: typing.Union[str, pathlib.Path] = 'augmented_model.onnx' operators_to_quantize: typing.Optional[typing.List[str]] = None batch_size: int = 1 use_external_data_format: bool = False use_gpu: bool = False force_symmetric_range: bool = False )
参数
- dataset (
Dataset
) — 执行校准步骤时使用的数据集。 - calibration_config (
~CalibrationConfig
) — 包含与校准步骤相关的参数的配置。 - onnx_augmented_model_name (
Union[str, Path]
, 默认为"augmented_model.onnx"
) — 用于保存增强模型的路径,该模型用于收集量化范围。 - operators_to_quantize (
Optional[List[str]]
, 默认为None
) — 要量化的算子类型列表。 - batch_size (
int
, 默认为 1) — 收集量化范围值时使用的批次大小。 - use_external_data_format (
bool
, 默认为False
) — 是否使用外部数据格式来存储模型,该模型的大小 >= 2Gb。 - use_gpu (
bool
, 默认为False
) — 在收集量化范围值时是否使用 GPU。 - force_symmetric_range (
bool
, 默认为False
) — 是否强制量化范围对称。
执行校准步骤并计算量化范围。
from_pretrained
< source >( model_or_path: typing.Union[ForwardRef('ORTModel'), str, pathlib.Path] file_name: typing.Optional[str] = None )
从 ONNX 模型文件或 ORTModel
实例化 ORTQuantizer
。
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: int = 2016 use_auth_token: typing.Union[bool, str, NoneType] = None token: typing.Union[bool, str, NoneType] = None )
参数
- 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) — 随机种子,用于在混洗校准数据集时使用。 - use_auth_token (
Optional[Union[bool,str]]
, 默认为None
) — 已弃用。请改用token
参数。 - token (
Optional[Union[bool,str]]
, defaults toNone
) — 用于远程文件的 HTTP Bearer 授权的令牌。如果为True
,将使用运行huggingface-cli login
时生成的令牌 (存储在huggingface_hub.constants.HF_TOKEN_PATH
中)。
创建用于训练后静态量化校准步骤的校准 datasets.Dataset
。
partial_fit
< source >( dataset: Dataset calibration_config: CalibrationConfig onnx_augmented_model_name: typing.Union[str, pathlib.Path] = 'augmented_model.onnx' operators_to_quantize: typing.Optional[typing.List[str]] = None batch_size: int = 1 use_external_data_format: bool = False use_gpu: bool = False force_symmetric_range: bool = False )
参数
- dataset (
Dataset
) — 用于执行校准步骤的数据集。 - calibration_config (
CalibrationConfig
) — 包含与校准步骤相关参数的配置。 - onnx_augmented_model_name (
Union[str, Path]
, defaults to"augmented_model.onnx"
) — 用于保存增强模型的路径,该模型用于收集量化范围。 默认为"augmented_model.onnx"
。 - operators_to_quantize (
Optional[List[str]]
, defaults toNone
) — 要量化的运算符类型列表。 - batch_size (
int
, defaults to 1) — 收集量化范围值时使用的批次大小。 默认为 1。 - use_external_data_format (
bool
, defaults toFalse
) — 是否使用外部数据格式来存储大小 >= 2Gb 的模型。 - use_gpu (
bool
, defaults toFalse
) — 收集量化范围值时是否使用 GPU。 - force_symmetric_range (
bool
, defaults toFalse
) — 是否强制量化范围对称。
执行校准步骤并收集量化范围,但不计算它们。
quantize
< source >( quantization_config: QuantizationConfig save_dir: typing.Union[str, pathlib.Path] file_suffix: typing.Optional[str] = 'quantized' calibration_tensors_range: typing.Optional[typing.Dict[str, typing.Tuple[float, float]]] = None use_external_data_format: bool = False preprocessor: typing.Optional[optimum.onnxruntime.preprocessors.quantization.QuantizationPreprocessor] = None )
参数
- quantization_config (
QuantizationConfig
) — 包含与量化相关的参数的配置。 - save_dir (
Union[str, Path]
) — 量化模型应保存到的目录。 - file_suffix (
Optional[str]
, defaults to"quantized"
) — 用于保存量化模型的 file_suffix。 默认为"quantized"
。 - calibration_tensors_range (
Optional[Dict[str, Tuple[float, float]]]
, defaults toNone
) — 字典,将节点名称映射到其量化范围,仅在应用静态量化时使用和需要。 - use_external_data_format (
bool
, defaults toFalse
) — 是否使用外部数据格式来存储大小 >= 2Gb 的模型。 - preprocessor (
Optional[QuantizationPreprocessor]
, defaults toNone
) — 用于收集要包含或排除在量化之外的节点的前处理器。
根据 quantization_config
中定义的优化规范来量化模型。