Optimum 文档

量化

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

并获取增强文档体验

开始使用

量化

ORTQuantizer

optimum.onnxruntime.ORTQuantizer

< >

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

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

compute_ranges

< >

( )

计算量化范围。

拟合

< >

( 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) — 执行校准步骤时要使用的数据集。
  • 校准配置 (~CalibrationConfig) — 包含与校准步骤相关的参数的配置。
  • 增强ONNX模型名称 (Union[str, Path], 默认为 "augmented_model.onnx") — 用于保存用于收集量化范围的增强模型的路径。
  • 要量化的算子 (Optional[List[str]], 默认为 None) — 要量化的算子类型的列表。
  • 批大小 (int, 默认为 1) — 收集量化范围值时使用的批大小。
  • 使用外部数据格式 (bool, 默认为 False) — 是否使用外部数据格式存储大小>= 2Gb的模型。
  • 使用GPU (bool, 默认为 False) — 是否在收集量化范围值时使用GPU。
  • 强制对称范围 (bool, 默认为 False) — 是否使量化范围对称。

执行校准步骤并计算量化范围。

从预训练加载

< >

( 模型或路径: typing.Union[ForwardRef('ORTModel'), str, pathlib.Path] 文件名: typing.Optional[str] = None )

参数

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

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

获取校准数据集

  • 数据集名称 (str) — Hugging Face Hub 上的数据集存储库名称,或包含要加载以用于校准步骤的数据文件的本地目录的路径。
  • 样本数量 (int, 默认为 100) — 构成校准数据集的样本的最大数量。
  • 数据集配置名称 (Optional[str], 默认为 None) — 数据集配置的名称。
  • 数据集分割 (Optional[str], 默认为 None) — 用于执行校准步骤的数据集的哪个分割。
  • 预处理函数 (Optional[Callable], 默认为 None) — 加载数据集后应用于每个示例的处理函数。
  • 是否批处理预处理 (bool, 默认为 True) — preprocess_function 是否应该被批处理。
  • 随机种子 (int, 默认为 2016) — 打乱校准数据集时使用的随机种子。
  • 使用身份验证令牌 (Optional[Union[bool,str]], 默认为 None) — 已弃用。请改用 token 参数。
  • 令牌 (Optional[Union[bool,str]], 默认为 None) — 用作远程文件 HTTP 载体身份验证的令牌。如果为 True,则使用运行 huggingface-cli login 时生成的令牌(存储在 huggingface_hub.constants.HF_TOKEN_PATH 中)。

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

部分拟合

  • 数据集 (Dataset) — 执行校准步骤时使用的数据集。
  • 校准配置 (CalibrationConfig) — 包含与校准步骤相关的参数的配置。
  • 增强ONNX模型名称 (Union[str, Path],默认为 "augmented_model.onnx") — 用于保存用于收集量化范围的增强模型的路径。
  • 要量化的算子 (Optional[List[str]],默认为 None) — 要量化的算子类型的列表。
  • 批次大小 (int,默认为 1) — 收集量化范围值时使用的批次大小。
  • 使用外部数据格式 (bool,默认为 False) — 是否使用外部数据格式存储大小>=2Gb的模型。
  • 使用GPU (bool,默认为 False) — 是否在收集量化范围值时使用GPU。
  • 强制对称范围 (bool,默认为 False) — 是否使量化范围对称。

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

量化

< >

( 量化配置: QuantizationConfig 保存目录: typing.Union[str, pathlib.Path] 文件后缀: typing.Optional[str] = 'quantized' 校准张量范围: typing.Union[typing.Dict[str, typing.Tuple[float, float]], NoneType] = None 使用外部数据格式: bool = False 预处理器: typing.Optional[optimum.onnxruntime.preprocessors.quantization.QuantizationPreprocessor] = None )

参数

  • 量化配置 (QuantizationConfig) — 包含与量化相关的参数的配置。
  • save_dir (Union[str, Path]) — 量化后的模型保存目录。
  • file_suffix (Optional[str], defaults to "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 上更新