兼具高精度与自动化双重优势:利用 AMD Quark ONNX 的 Auto-Search 探索最优量化策略

Jan 28, 2026

Auto-Search 作为内置于 AMD Quark ONNX 优化栈中的全新强大自动化量化探索引擎,现已正式推出。Auto-Search 能够智能处理日益复杂的量化策略选择工作,为不同模型、设备和部署场景匹配最优配置。在当今快速发展的 AI 生态系统中,推理效率直接影响用户体验和运营成本,自动化搜索最优量化参数已成为必然需求。现代 AI 工作负载不仅要求低延迟和高吞吐,还需要能够保持模型精度的压缩技术,以适配多样化架构和硬件后端。Auto-Search 正是为解决这一挑战而生,它提供了一个灵活、全自动化的系统,能在充分减少人工干预的情况下自动识别最有效的量化策略。

通过与 Quark 的量化功能紧密集成,Auto-Search 能自动探索精度格式、校准方法、微调技术和逐层量化策略,确保模型针对每个目标硬件的独特特性进行优化。

在本博客中,我们将介绍 Auto-Search,重点阐述其设计理念、架构和高级搜索功能。我们将逐步讲解系统工作流程,展示它如何简化 ONNX 模型的量化过程,并说明它如何对可复现、可扩展且生产就绪型模型实现优化。在目前阶段,Auto-Search 主要面向基于 AMD 锐龙 AI 处理器的 ONNX-to-ONNX 量化,而不针对基于 PyTorch 的工作流程。 

什么是 Quark?

AMD Quark 是一个专注于 AI 模型量化的开源模型优化库,旨在提升深度学习模型在各种部署场景中的性能表现。它支持多种硬件后端,包括 AMD 数据中心 GPU、CPU 和嵌入式 SoC。Quark 为训练后量化 (PTQ)、量化感知训练 (QAT) 和微调提供了统一的 API。Quark 可与 PyTorch 和 ONNX 生态系统无缝集成,使用户能够在云端、边缘和移动设备等多样化平台上优化模型以实现高效推理。

有关 Quark 的更多信息,请参阅 AMD Quark 模型优化库现已开源

为什么需要 Auto-Search? 

AMD Quark ONNX 提供了一整套量化工具,支持多种位宽选项,如 INT8、XINT8、INT16、INT4、BF16 和 FP16,同时支持多种量化方案,包括对称/非对称以及逐通道/逐张量量化。此外,它还支持多种校准方法,包括 MinMax、Percentile 和 LayerWisePercentile,以及 AdaQuant 和 AdaRound 等微调技术。尽管这些功能潜力巨大,但要找到最优的量化组合绝非易事。

手动量化过程缓慢、不可预测且难以规模化

手动量化之所以困难,源于多个因素。首先,搜索空间庞大,而且多个参数之间相互作用,这导致复杂度呈指数级上升。此外,模型精度的敏感性可能是一个重大难题,特别是对于注意力机制、逐通道卷积和 NAS 模型等架构而言,因为它们在非最优量化组合下容易出现性能下降。硬件差异性使问题变得越发复杂,最优量化策略会因模型是运行在 CPU、GPU 还是 NPU 上而有所不同。最后,模型类型也至关重要,不同的模型(如 CNN、Transformer 和 LLM)需要不同的量化方法才能实现最优性能。

AutoSearch 开创了自动化量化探索的先河,而 Quark ONNX 的 Auto-Search 在此基础上进一步增加了更多强大功能。它支持带条件参数的分层搜索空间、多种采样算法(TPE、随机、网格、GPS 等)以及并行测试执行。它还支持强大的检查点机制、恢复功能和可重现的结果,可确保可靠性,同时通过自定义目标函数提供高度灵活性。

值得注意的是,Auto-Search 中采用了几种高级采样算法。Tree-structured Parzen Estimator (TPE) 是一种用于超参数调优的贝叶斯优化算法,它通过分别对较好配置和较差配置的分布情况进行建模来提升性能,不仅可以实现高效的探索-利用权衡、支持自然处理条件性和分层搜索空间,而且还能扩展到高维混合参数空间。此外,我们开发了一种基于网格的采样策略,专为适配搜索空间的分层结构而设计。这种设计允许采样器系统地探索分层结构的不同层级,同时保留参数之间的依赖关系。我们将这一模块视为整个框架的核心组件,因为它对于实现高效、结构化地探索分层搜索空间至关重要。

这些功能共同将 Auto-Search 变为一个高性能、自动化的量化优化引擎,可在不同模型、设备和部署环境中无缝运行。

Auto-Search 架构与工作流程

图 1.Auto-Search 示意图

该系统为通过量化和微调优化 AI 模型提供了一个精简的自动化框架。整个工作流程始于简单的用户/API 调用,用户需要指定模型路径、数据读取器、搜索空间和约束条件,以便为整个优化过程设定执行背景。

流水线的核心是 Auto-Search 核心引擎,它会动态探索量化策略、评估参数组合,并为每个模型确定最优配置。配置解析器 (Config Parser) 为该引擎提供支持,验证输入并解析依赖关系,以确保执行顺畅、无错误。

搜索空间构建器 (Search Space Builder) 支持分层式和条件化搜索定义,允许系统仅探索相关的参数组合。模型/数据加载器 (Model/Data Loader) 负责处理 ONNX 模型加载和校准数据准备,可简化模型集成。

搜索后端 (Search Backend) 使用 TPE、GPS、随机、网格或自定义采样器等方法驱动探索。随后,评估模块 (Evaluation Module) 会评估每个候选配置,该模块通过执行量化、推理和指标计算来评估精度和效率。

对于长时间运行或分布式运行的场景,检查点管理器 ( Checkpoint Manager) 会提供强大的暂停和恢复能力。最后,可视化工具会生成交互式图表,直观展示优化历史曲线、参数重要性和关键的相关关系。

上述这些组件共同构成了一个灵活、可扩展且高效的流水线,不仅能自动执行量化探索,还能提供清晰明确、切实可行的指导意见,帮助经过优化的 AI 模型在各类硬件和应用场景中落地部署。

用法示例

此处提供了一个简单示例,旨在演示如何使用预定义的搜索空间启动 Auto-Search。有关详细使用方法,请参阅使用 Automatic Search Pro 进行模型量化 — AMD Quark 0.11 文档针对 Resnet50 的 Quark ONNX 量化教程 — AMD Quark 0.11 文档

 

		import copy 
from quark.onnx import AutoSearchPro, get_auto_search_config 

def get_model_input(): 
    pass 
    # return model_input_path 

def prepare_datareader(): 
    pass 
    # return calib_data_reader 

# Get auto search pre-defined config  
# Available auto search config: "XINT8_SEARCH", "A8W8_SEARCH", "A16W8_SEARCH" 
auto_search_config_name = "XINT8_SEARCH" 
quant_config = copy.deepcopy(get_auto_search_config(auto_search_config_name)) 
 
# Prepare model and calibration data reader 
quant_config["model_input"] = get_model_input() 
quant_config["calib_data_reader"] = prepare_datareader() 

# Start auto search 
auto_search_pro_ins = AutoSearchPro(quant_config) 
best_params = auto_search_pro_ins.run() 


	
图像缩放
图 2.优化历史曲线
图 2.优化历史曲线

优化历史曲线展示了目标值在迭代过程中的变化情况。目标值反映了浮点 ONNX 模型与量化模型之间的精度差异。默认情况下,目标值通过计算浮点 ONNX 模型输出与量化模型输出间的 L2 距离得出。此图有助于直观了解收敛速度、稳定性以及搜索策略的有效性。

图像缩放
图 3.参数重要性
图 3.参数重要性

参数重要性图表量化了每个超参数对模型整体性能的相对贡献。柱状越高表示该参数对目标指标的影响越大。该图表直观地展示了哪些参数需要优先调优,而哪些参数的影响微乎其微。形状

 应用场景和用途

Auto-Search 支持多种模型和部署场景。

对于 CNN 模型,搜索空间设计可能因模型结构的具体特征和当前任务而异。例如,逐深度模型可能需要同时尝试逐张量和逐通道的量化策略,以确定最优配置。此外,调整超参数(如 CLE 中的剪裁阈值、学习率等)可能会进一步提升性能。在对象检测任务中,自动化搜索空间设计可以帮助识别最适合排除的区域或组件,从而简化模型、提升效率并确保达成目标精度。

对于基于 Transformer 的模型(如 ViT、DeiT、BERT 和 TinyLlama),由于其独特的架构特点,或许可以借助 SmoothQuant、Layerwise Percentile 等专用量化技术。这些方法可以显著增强量化效果,让这些架构同时实现速度和精度优化。

Auto-Search 在实现混合精度部署方面也发挥着关键作用。对于轻量级模型,AdaRound 和 AdaQuant 等技术是自动化搜索空间设计中特别有价值的候选方案,有助于实现模型性能和精度双重优化。

总结

Quark Auto-Search 可实现更智能、硬件感知的量化探索,并通过多处理进程和多 GPU 执行加快评估速度。它通过一种可泛化、可扩展的搜索语言,确保构建出一个可靠的生产级流水线。凭借强大的检查点机制、可复现的结果以及交互式可视化能力,Quark Auto-Search 摆脱繁琐的手动量化流程,带来自动化、可扩展的企业级优化框架,能够无缝适配各类模型架构和目标硬件

展望未来,该框架将持续扩展,在多个方面做出改进。计划的增强功能包括:完整的 Quark Torch 支持、对 QAT 超参数的自动搜索以及图级优化搜索。此外,还将持续完善生态系统集成,例如与 Olive 等项目合作,以确保实现更广泛的兼容性和工作流程协同。 

致谢

衷心感谢 AMD Quark 团队及 AI 软件团队等合作团队的指导和支持。

 

Related Blogs