← 最新论文
🤖 machine learning

Spiking Neural Network inference on FPGAs with hls4ml

本文介绍了 hls4ml 工具箱的一个扩展,该扩展能够实现经由 PyTorch 训练的脉冲神经网络(SNN)在 FPGA 上的时钟驱动部署,并通过在 Heidelberg Spiking Digits 数据集上的演示,实现了低延迟的实时推理。

原作者: Barry M. Dillon

发布于 2026-06-10
📖 1 分钟阅读☕ 轻松阅读

原作者: Barry M. Dillon

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

以下是使用简单语言和日常类比对该论文进行的解释。

核心思想:教数字大脑学会“喷射”而非“说话”

想象你有一个传统的计算机大脑(人工神经网络),它通过连续、平滑的数字流进行交流,就像电台播放一首持续不断的歌曲。现在,想象另一种类型的大脑(脉冲神经网络或 SNN),它的交流方式就像黑暗房间里的一群人。他们不是在说话,而是在发生特定事件时才发出一种声音(一个“脉冲”)。在没有声音的间隙,他们保持沉默。

这种“脉冲式”方法非常适合处理基于时间的信息(如音频或传感器数据),因为它具有天然的效率:如果没有任何有趣的事情发生,大脑就会保持安静,消耗极少的能量。

问题所在:
通常,这些“脉冲式”大脑是为特殊的定制硬件(比如专门制作的乐器)设计的,这些硬件运行着自己独特的规则。然而,许多现实世界的科学机器(如粒子探测器或医疗扫描仪)已经在使用名为 FPGA 的标准强大芯片。这些芯片就像是工程师可以重新编程的“乐高套装”,但它们习惯于“平滑电台式”的计算风格,而不是“脉冲人群式”的风格。

解决方案:
Barry Dillon,这篇论文的作者,搭建了一座桥梁。他更新了一个名为 hls4ml 的流行工具(它充当翻译官),使其现在可以将 Python 中训练好的“脉冲式”大脑,转化为标准 FPGA 可以理解并运行的指令。

它是如何工作的:工厂流水线

为了让这套系统在标准芯片上运行,作者必须改变“脉冲式”大脑的行为方式。

  1. 时钟驱动的工厂:

    • 普通的脉冲大脑: 运作起来像一个混乱的人群。如果有人喊叫,整个房间会立即做出反应。它是异步的(没有固定的时间表)。
    • 这个新的 FPGA 大脑: 运作起来像一条工厂流水线。每秒钟,铃声会响一次(时钟)。铃声响起时,每个工人检查笔记、更新状态,并将包裹传递给下一个人。即使没有人喊叫,流水线依然在移动。
    • 为什么? 因为标准的 FPGA 是为了在严格的时钟下运行而构建的。作者让脉冲大脑与这个时钟同步步调,以便它能融入现有的工厂工作流中。
  2. 神经元的“记忆”:

    • 在普通计算机中,神经元就像一个计算器:你给它数字,它给你答案,然后它就忘记了一切。
    • 在这个脉冲大脑中,神经元就像一个带漏口的桶
      • 当一个“脉冲”(水)进来时,桶会变满。
      • 如果桶太满了(达到阈值),它就会倒出一桶水(发出一个脉冲)并重置。
      • 但即使它没有触发,水位(内部状态)也会保留到下一刻。
    • 作者的工具会在 FPGA 芯片内部追踪这种“水位”,以便大脑能够记住几秒钟前发生的事情。
  3. “读出”(决策者):

    • 在大脑处理完一段数据(例如一段 1.4 秒的语音数字)后,它需要做出决定。
    • 论文测试了两种决策方式:
      • 脉冲计数(Spike Count): 计算最终神经元喊叫了多少次。
      • 膜电位读出(Membrane Readout): 检查最终的桶有多满,即使它们没有喊叫。
    • 结果: 检查“桶的填充度”(膜电位读出)被证明比仅仅计算喊叫次数更准确。

实验:教大脑识别数字

作者使用名为 SHD (Heidelberg Spiking Digits) 的数据集测试了这个新系统。

  • 任务: 计算机听取人们用英语和德语朗读数字(0–9)的录音。
  • 输入: 音频被转换为一系列“脉冲”(类似于声音的摩斯电码)。
  • 设置: 他们构建了一个简单的、只有一个 64 个神经元隐藏层的微型大脑。
  • 训练: 他们使用标准的 Python 库 (snnTorch) 来训练大脑,并使用了名为量化感知训练 (QAT) 的技术。把 QAT 想象成教大脑使用一个只有大刻度(低精度)而不是细微毫米刻度(高精度)的尺子来进行数学运算。这为大脑在 FPGA 上运行做好了准备,因为 FPGA 更倾向于使用简单的数学运算来节省空间。

结果:快速、准确且高效

论文报告了一些令人印象深刻的数据:

  • 速度: FPGA 处理一个 1.4 秒音频剪辑的时间约为 34 微秒。这非常快——比人类眨眼的速度还要快。
  • 准确率: 即使为了适应芯片而简化了数学运算(使用低精度),大脑在测试集上的准确率仍保持在 74% 左右(识别所说的数字)。这与复杂的高精度版本非常接近。
  • 资源节省: 通过使用低精度(更简单的数学),他们在芯片上节省了大量空间。这就像打包行李:如果你把衣服卷得很紧(低精度),你就能在更小的包里装下同样多的东西。
  • 保真度: 芯片的行为与计算机模拟几乎完全一致(超过 98% 的一致性),证明了该翻译工具运行正确。

这意味着什么(以及它目前还没能做到的)

  • 它能做什么: 它证明了你可以将一个在 Python 中训练好的现代“脉冲式”AI 模型,部署到标准的科学硬件(FPGA)上,而无需构建定制的、奇特的芯片。这为这些高效、对时间敏感的大脑被用于实时科学仪器打开了大门。
  • 它目前还不能做什么(尚未实现):
    • 它不会仅仅因为数据是稀疏的就自动节省功耗。因为芯片运行在严格的时钟下,即使神经元处于沉默状态,它仍在进行数学运算。作者指出,未来的更新可以添加“闸门”来停止无意义的计算,从而节省功耗,但这在本文中尚未涉及。
    • 它目前仅支持一种特定类型的脉冲神经元(即 Leaky Integrate-and-Fire 或 LIF)。
    • 它目前是为固定时间窗口(如 1.4 秒的剪辑)设计的,尚不支持无限长的可变长度流。

总结: 作者构建了一个翻译器,允许“脉冲式”、对时间敏感的 AI 大脑在标准的、时钟驱动的计算机芯片上运行。他们通过一个数字识别任务测试了该系统,并且效果既快速又准确,证明了这种新型 AI 今天就可以部署在现实世界的科学设备中。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →