Optimum 文档

量化

您正在查看 main 版本,该版本需要从源码安装。如果您想要常规 pip 安装,请查看最新的稳定版本 (v1.24.0)。
Hugging Face's logo
加入 Hugging Face 社区

并获取增强的文档体验

开始使用

量化

ORTQuantizer

class optimum.onnxruntime.ORTQuantizer

< >

( onnx_model_path: Path config: typing.Optional[ForwardRef('PretrainedConfig')] = None )

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

compute_ranges

< >

( )

计算量化范围。

fit

< >

( 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

< >

( model_or_path: typing.Union[ForwardRef('ORTModel'), str, pathlib.Path] file_name: typing.Optional[str] = None )

参数

  • model_or_path (Union[ORTModel, str, Path]) — 可以是以下之一:
    • 已保存的导出的 ONNX 中间表示 (IR) 模型的路径,例如,`./my_model_directory/.
    • 或者 ORTModelForXX 类,例如,ORTModelForQuestionAnswering
  • file_name(Optional[str], 默认为 None) — 覆盖默认模型文件名,从 "model.onnx" 更改为 file_name。 这允许您从同一存储库或目录加载不同的模型文件。

从 ONNX 模型文件或 ORTModel 实例化 ORTQuantizer

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: 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 to None) — 用于远程文件的 HTTP Bearer 授权的令牌。如果为 True,将使用运行 huggingface-cli login 时生成的令牌 (存储在 huggingface_hub.constants.HF_TOKEN_PATH 中)。

创建用于训练后静态量化校准步骤的校准 datasets.Dataset

partial_fit

< >

( 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 to None) — 要量化的运算符类型列表。
  • batch_size (int, defaults to 1) — 收集量化范围值时使用的批次大小。 默认为 1。
  • use_external_data_format (bool, defaults to False) — 是否使用外部数据格式来存储大小 >= 2Gb 的模型。
  • use_gpu (bool, defaults to False) — 收集量化范围值时是否使用 GPU。
  • force_symmetric_range (bool, defaults to False) — 是否强制量化范围对称。

执行校准步骤并收集量化范围,但不计算它们。

quantize

< >

( 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 to None) — 字典,将节点名称映射到其量化范围,仅在应用静态量化时使用和需要。
  • use_external_data_format (bool, defaults to False) — 是否使用外部数据格式来存储大小 >= 2Gb 的模型。
  • preprocessor (Optional[QuantizationPreprocessor], defaults to None) — 用于收集要包含或排除在量化之外的节点的前处理器。

根据 quantization_config 中定义的优化规范来量化模型。

< > 在 GitHub 上更新