概述#

Kaiwu-PyTorch-Plugin (KPP)#

Kaiwu-PyTorch-Plugin(KPP)是一个 PyTorch 插件,用于在相干光量子计算机上训练和评估玻尔兹曼机(Boltzmann Machine, BM)及其受限形式(Restricted Boltzmann Machine, RBM)。它通过 Kaiwu SDK 调用量子硬件执行玻尔兹曼分布采样,其余计算(如参数更新)在标准 PyTorch 流程中完成。

1. 设计目标#

  • 在保持 PyTorch 原生编程体验的前提下,接入光量子采样能力。

  • 支持标准 BM/RBM 模型的定义、训练与推理。

  • 提供可扩展接口,便于替换采样方法或能量函数。

2. 功能特性#

模型支持

标准 RBM 和全连接 BM。

层配置

可见层与隐藏层维度可自定义。

采样方式

负相采样通过 Kaiwu SDK 在相干光量子计算机上执行。

PyTorch 集成

模型参数为 torch.nn.Parameter,支持自动微分、GPU 加速,并可与其他 PyTorch 模块组合使用。

3. 扩展机制#

  • 能量函数(如 Ising 形式)与采样器解耦。

  • 用户可通过实现标准接口替换采样策略(例如切换为经典 MCMC 或其他后端)。

  • 支持自定义能量项,适用于非标准 BM 变体。

4. 示例用例#

  • 手写数字生成(基于 MNIST 的 RBM 训练)

  • Q-VAE(量子变分自编码器)训练流程

5. 适用用户#

研究人员

验证量子采样对能量模型训练的影响。

开发者

构建混合经典-量子生成模型。

教育者与学生

教学玻尔兹曼机原理与量子采样实践。

6. 典型使用流程#

使用 Kaiwu-PyTorch-Plugin 进行能量神经网络训练的典型流程如下:

  1. 数据准备:加载并预处理训练数据,转换为模型输入格式

  2. 模型定义:实例化 RBM 或 BM 模型,设置可见层和隐藏层维度

  3. 优化器配置:使用 PyTorch 优化器(如 SGD、Adam)管理模型参数

  4. 训练循环

    • 从训练数据计算隐藏层表示(正相)

    • 使用采样器从模型分布生成样本(负相)

    • 计算目标函数并反向传播梯度

    • 更新模型参数

  5. 模型评估:使用训练好的模型进行特征提取、分类或生成任务

import torch
from torch.optim import SGD
from kaiwu.torch_plugin import RestrictedBoltzmannMachine
from kaiwu.classical import SimulatedAnnealingOptimizer

# 1. 准备数据
x = torch.randint(0, 2, (batch_size, num_visible)).float()

# 2. 定义模型
rbm = RestrictedBoltzmannMachine(num_visible, num_hidden)

# 3. 配置优化器和采样器
optimizer = SGD(rbm.parameters(), lr=0.01)
sampler = SimulatedAnnealingOptimizer()

# 4. 训练循环
for epoch in range(num_epochs):
    h = rbm.get_hidden(x)           # 正相:计算隐藏层
    s = rbm.sample(sampler)         # 负相:模型采样

    optimizer.zero_grad()
    loss = rbm.objective(h, s)      # 计算目标函数
    loss.backward()                 # 反向传播
    optimizer.step()                # 更新参数

7. 引用方式#

如果 Kaiwu-PyTorch-Plugin 对您的学术研究有帮助,欢迎引用:

@software{KaiwuPyTorchPlugin,
    title = {Kaiwu-PyTorch-Plugin},
    author = {{QBoson Inc.}},
    year = {2024},
    url = {https://github.com/QBoson/Kaiwu-pytorch-plugin}
}

相关研究论文:

@article{QuantumBoostedDeepLearning,
    title = {Quantum-Boosted High-Fidelity Deep Learning},
    author = {{QBoson Research Team}},
    year = {2025},
    url = {https://arxiv.org/pdf/2508.11190}
}