跳转到内容
学习 > 学习文档
本文内容

3.1 适配参数精度(8bit整数)

量子采样真机使用精度控制策略

在使用相干光量子计算机真机执行量子采样任务时,需要将待求解的问题映射为Ising模型,而量子真机对输入的Ising矩阵的动态范围与精度有着严格的物理限制。

在实际应用中,这些输入矩阵往往来源于深度学习模型的权重参数,而训练过程中权重精度会不断增加,导致无法使用量子采样,故必须在模型训练阶段就对参数范围进行主动约束,并在矩阵生成后通过专用的精度预处理接口进行适配,确保输入矩阵的数据安全又高保真地匹配真机特性。

本教程将提供一些精度控制策略,帮助开发者在真机使用中能够稳定、高效地完成量子采样任务。

一、从参数初始化与训练过程控制精度(前置控制)

物理真机对极端值非常敏感,若网络权重发散,在量化为Ising矩阵时会导致失真,代码中可通过以下逻辑在经典训练阶段限制参数的量级:

  • 权重衰减: 通过设置weight_decay_rate = 0.0001引入L2正则化项,促使模型学习到分布更平滑、方差更小的参数矩阵,通过减少绝对值过大参数的出现来控制精度;

  • 动态等比例阈值缩放:每次通过优化器计算出新的权重后,通过提取偏置项和交互项的最大绝对值。一旦其超出预设的物理安全边界,代码会计算超出比例,并全量网络权重进行等比例压缩缩放。

二、矩阵生成后调用Kaiwu SDK的接口控制精度

在模型参数被转化为增广Ising矩阵后,下发真机前需要将其安全映射为真机支持的格式。

  • 数据放大与舍入对齐:在构建矩阵前,先对传入的交互项和偏置项统一进行放大和舍入操作(如np.round(interaction * 100, 1)),在浮点层面预先稳定数据量级;

  • 调用精度调节与自适应拆分接口:构建好ising矩阵后,首先调用kw.ising.adjust_ising_matrix_precision(ising_matrix, 20)接口对原始矩阵进行全局缩放与位宽调整。为了进一步适配真机的位宽限制并避免大矩阵失真,随后调用kw.preprocess.perform_precision_adaption_split(ising_matrix, param_bit=8)接口,在不超过8位参数精度的前提下对Ising矩阵进行自适应拆分;

  • PrecisonReducer: 此是结合了上述放大舍入和拆分两种方式的类,例如PrecisonReducer(optimizer, precision=8, truncated_precision=10),即先通过放大舍入降到10bit精度,再使用自适应拆分接口没有损失地降低到8bit精度。一般情况下使用该方法可更便捷地结合上述两种方式,保留更多的原矩阵信息。

在执行量子采样任务中,如果需要更高精度,请联系官方人员进行申请。

基于 MIT 许可发布