先说一句类脑计算这个词最近出现的频率确实高但大多数人聊起来还是停留在模仿大脑这种模糊说法上。过去几年我一直在关注这个方向也陆续上手做过一些脉冲神经网络的实验。今天不打算堆术语就从一个开发者的视角出发把类脑计算的概念、现状、难点以及未来可能的方向讲透。这篇内容适合正在观望的技术同学、做边缘计算或嵌入式方向的工程师也适合想了解这套技术到底能不能落地的产品负责人。读完你至少能回答三个问题类脑计算和深度学习到底有什么本质区别现在做到什么程度了以及如果真的想切入应该从哪儿下手。1. 类脑计算到底是什么从传统计算的瓶颈说起1.1 传统冯·诺依曼架构的短板过去七八十年计算机几乎都遵循冯·诺依曼架构也就是把存储单元和运算单元分开数据需要不断在内存和处理器之间搬运。早期这没什么问题因为CPU主频和内存速度差距不大。但到了今天处理器算力翻了几百倍内存带宽却远远跟不上这就形成了一个著名的存储墙。我打个比方你请了一个超级大厨CPU但他的食材全部放在隔壁仓库每次做一道菜都要跑过去取一趟菜做得再快时间全耗在路上了。大模型时代这个问题更严重。训练一个千亿参数模型大量时间其实花在数据的搬进搬出上计算单元经常处于等数据的状态。为了缓解这个问题行业里用了各种办法加大缓存、搞HBM高带宽内存、做异构计算但这些都是在仓库到大厨的路上想办法并没有改变存储和计算分离这个根本结构。还有一个问题是功耗。大脑的功耗大概只有20瓦左右却能完成极其复杂的认知任务。而一个GPU跑大规模推理动不动就是几百瓦甚至上千瓦。这种数量级的差距不是靠制程工艺微缩就能追上的需要从根本上改变计算范式。1.2 类脑计算的三层理解架构、算法、器件类脑计算不是一个单一的技术点它至少有三个层面的含义。第一层是计算架构也就是模仿大脑的神经元和突触结构把计算和存储融合在一起让每个神经元都自带存储能力做成存算一体。这样就不需要频繁搬运数据了架构层面的瓶颈直接被绕开。第二层是算法模型也就是用脉冲神经网络SNN来替代或部分替代当前的人工神经网络ANN。ANN传递的是连续的实数值而SNN传递的是离散的脉冲事件这些脉冲在时间轴上稀疏地出现有事件才计算没事件就空闲天然适合低功耗场景。第三层是器件实现也就是用什么物理器件来模拟神经元和突触的行为。这里有传统的CMOS电路方案也有忆阻器、相变存储等新型器件方案。每一层都有各自的难点比如算法层要解决怎么训练SNN的问题器件层要解决工艺一致性和寿命问题。1.3 快速对比传统计算与类脑计算的关键差异为了更直观地说明差异我整理了一个对比表大家可以直接保存下来。维度传统深度学习计算类脑计算信息表示连续实数值脉冲事件序列计算模式密集矩阵乘加稀疏事件驱动存储方式存储与计算分离存算一体运行机制时钟同步驱动异步事件驱动代表硬件GPU / TPU神经形态芯片能效表现较高功耗极低功耗擅长的场景离线训练、高精度任务在线学习、实时感知当前成熟度工业级成熟研究与原型阶段表格里有个细节值得多说一句传统计算的时钟同步驱动就像一群人踩着统一的鼓点走路哪怕你不需要动也要跟着节拍抬脚。而类脑计算的异步事件驱动更像是真实对话你说我才回应不说我就待机。这个差异直接决定了功耗的下限。2. 类脑计算的研究现状多个方向都在加速2.1 神经形态芯片从学术实验走向工程原型如果把类脑计算比作一辆新车算法是发动机芯片就是底盘。这几年芯片方向的进展非常快已经出现了好几个有代表性的原型系统。一类是基于数字电路的方案比如有些研究团队设计了大规模脉冲神经网络处理器把数百万个神经元和数十亿个突触集成到一颗芯片上。这类方案工艺成熟容易和现有CMOS产线兼容是目前最接近实用化的路线。另一类是基于模拟电路或新型器件的方案比如用忆阻器阵列实现突触权重的在线调节。这类方案的优点是能效更高每一个突触的更新都发生在存储单元本地但问题也很明显器件的一致性、耐久性和量产良率还没有完全解决。我见过一些实验室的原型系统小规模跑演示没问题一放大规模或者做长周期测试漂移和劣化问题就冒出来了。从产业界来看已经有一些创业公司和大型半导体厂商投入了这个方向。有些产品主打边缘端的超低功耗推理有些主打类脑芯片的云侧集群。不过整体来看这些芯片的软件生态还不够完善绝大部分开发者拿到手之后学习成本依然很高。2.2 脉冲神经网络从训练难走向混合训练SNN一直以来的痛点是怎么训练。传统ANN可以用反向传播梯度下降因为计算图是连续的、可微的。但SNN里神经元是脉冲式的脉冲发放过程不可微梯度很难回传。早期的做法是用ANN训练好权重再转换成SNN精度损失比较明显。近几年出现了代理梯度方法用连续函数去近似脉冲函数的梯度直接在SNN上做反向传播训练效果提升了一个大台阶。这里有个我踩过的坑代理梯度的形状非常影响训练效果。最开始我按论文里默认的矩形函数做训练结果小数据集上勉强能收敛一换稍微复杂的数据集就不稳定。后来改成钟形代理梯度并调整了脉冲发放的阈值效果才明显改善。这类细节论文里很少讲清楚需要在实践中逐一试。另一个趋势是ANN和SNN的混合架构让同一个模型里既有连续激活的层也有脉冲激活的层。比如视觉前端用SNN做事件相机的数据处理后面接几层ANN做分类。这种混合思路在实际工程里很实用既能利用SNN的低功耗稀疏计算又能保留ANN在复杂任务上的精度。2.3 国内外研究梯队与典型平台从全球研究布局来看类脑计算已经形成一个相当活跃的交叉学科领域。国外最突出的是以神经形态芯片为核心的项目群其中包括一些面向大脑皮层模拟的超大规模项目试图在芯片上还原整个大脑级别的神经网络动态主要用于神经科学研究和计算原型的验证。工业界方面一些大型科技公司也推出了类脑芯片的开发套件支持SNN的训练与部署。国内这个方向同样发展很快既有高校和科研院所在做器件、架构和算法的基础研究也有不少创业公司在推动工具链和场景落地。特别值得留意的是国内在忆阻器等新型器件上的进展已经有团队在实验室里做出了大规模阵列原型能够实现比传统方案更高效率的向量矩阵运算。不过说实话这个领域目前还存在明显的墙里墙外现象做器件的很少深入搞算法做算法的对器件工艺了解有限。两边各发各的论文但真正能贯通上下游的团队很少。这也是为什么会用软件和硬件协同设计的人越来越吃香。2.4 当前进展的能力边界哪些能做哪些还不行我给一个诚实的现状评估。能做的主要有三类事情第一类是低功耗的感知任务比如关键词唤醒、事件相机目标识别、震动信号分类等这些任务相对简单、实时性强、功耗预算严苛非常适合类脑方案实测下来通常比传统MCU方案能效高出数倍。第二类是稀疏事件流数据处理比如脑电、心电、工业设备振动传感器这类信号天然就是事件流用SNN处理很自然。第三类是做在线增量学习因为类脑架构里突触的本地更新机制可以让系统在新数据到来时快速调整而不需要像深度学习那样做全量重训。还做不了的事情也很清楚大规模高质量图像识别不行复杂自然语言理解不行长时间高精度数值计算更不行。说白了类脑计算不适合做什么都管的通才它是帮你在特定场景下把能效拉到极致的偏科生。认清这个边界方向才不会跑偏。3. 落地难点论文里的效果和工程里的差距3.1 算法与硬件的协同设计难题类脑计算最核心的难点不是硬件本身而是算法和硬件怎么协同。传统深度学习里算法可以完全脱离硬件开发模型在GPU上跑框架和硬件之间有成熟的抽象层。但类脑计算不一样你设计一个SNN模型时必须同步考虑目标芯片支持的神经元类型、脉冲编码方式、突触更新规则和片上内存布局。这就像建筑师在设计一栋房子的时候同时还要兼职建材供应商得知道自己能拿到什么砖、什么水泥。这种紧耦合导致两个直接后果。一个是复现性差同一个SNN模型在两种不同架构的类脑芯片上的实现逻辑可能完全不同换一个硬件平台基本要重写一堆代码。另一个是调优成本高模型精度、延迟、功耗三个目标互相制约改一个参数经常牵一发动全身。想做好协同设计需要对神经科学基础、算法设计能力和硬件架构知识都有足够深的理解这种复合型人才能找到的很少。3.2 开发工具链的现状与上手成本我个人认为工具链是目前类脑计算落地最大的卡点。你训练一个传统深度学习模型PyTorch跑起来就行生态里什么都有。但跑SNN的流程是先写脉冲神经元模块然后选代理梯度方法再适配目标硬件的指令集和内存布局最后还要处理模型量化、脉冲编码等一连串问题。现在已经有几个开源的SNN仿真框架可以在GPU上模拟SNN的训练过程也有部分芯片厂商提供自己的SDK。但整体体验和深度学习框架相比还有差距。举个例子我在做事件相机目标识别项目时训练阶段在仿真框架里效果不错一部署到真实芯片上发现神经元参数在不同硬件单元之间的一致性不够好导致结果波动。这个问题在仿真里根本看不出来只能靠大量硬件测试去校准。不过好消息是工具链正在快速改善已经有团队在做中间的编译层让模型描述和硬件解耦。如果你现在打算入坑我建议别等生态完全成熟先在仿真框架里把算法跑熟理解SNN的行为逻辑硬件平台随时可以迁移。3.3 评测标准缺失导致的各说各话类脑计算领域一个尴尬的现实是大家都在用自己的基准和数据集展示效果很难横向比较。传统深度学习有ImageNet、GLUE、SQuAD这些公开基准模型之间的对比非常透明。到了类脑计算这边有的工作拿MNIST展示精度有的用DVS手势数据集有的用自定义的传感器事件流。任务难度差异巨大只看数字根本没有可比性。这就给做技术选型的人带来了实际困扰。你去看某个类脑芯片的宣传指标它的功耗是基于特定的稀疏网络结构测出来的换成你的业务模型真实功耗可能是宣传值的几倍。更麻烦的是SNN在不同脉冲编码方式下表现差异极大同样的网络用速率编码和用延迟编码精度和功耗完全是两套结果。所以你现在看到很多类脑芯片的指标含金量要打个问号。行业里已经开始有人呼吁建立统一的评测标准和基准数据集但这个事情短期内很难落地因为这背后还牵涉到不同技术路线的利益。对普通开发者来说我的建议是拿到任何类脑平台的指标先问清楚三个问题测试模型是什么脉冲编码是什么任务精度阈值是多少。三个问题都答得清楚指标才有参考价值。3.4 我能实际做什么三个尽快上手的方向说了这么多难点还是要给真正想动手的人指几条路。第一个方向是事件相机数据处理这是目前类脑计算最适合切入的场景。事件相机输出的是异步事件流传统深度学习算法处理起来非常别扭而SNN处理事件流是天然强项。你可以买一块事件相机开发板配合一个开源SNN框架跑一个简单的目标检测或者手写数字分类任务从数据流到模型训练到硬件部署完整走一遍。第二个方向是超低功耗的语音关键词识别。现在终端设备的唤醒词功能很常见但传统方案在电池供电设备上功耗压力很大。SNN可以做稀疏脉冲驱动计算平时几乎不耗电检测到唤醒词才启动完整处理链路。这个场景的商业价值很明确已经有公司在做对应的专用芯片。第三个方向是做脑电和生理信号处理。脑电、肌电、心电这些信号本身就是脉冲序列和SNN的信息表达方式天然的契合。你可以收集公开的脑电数据集尝试用SNN做睡眠分期、癫痫检测等任务对比传统CNN方法在能耗和精度上的差异。这类工作兼顾学术价值和工程意义发论文和做产品都有空间。4. 未来展望类脑计算可能走向何方4.1 从专用芯片走向通用智能加速器我判断未来五到十年类脑芯片会经历一个从专用到通用的演进过程。现在的类脑芯片大多围绕特定的任务类型设计比如视觉感知或者音频识别通用性较差。但随着架构设计和编译工具链的成熟会出现支持多种脉冲编码方式和可重构神经网络结构的通用类脑加速器。这类加速器既能跑SNN也能兼容部分ANN推理让开发者可以根据任务特性灵活选择计算范式。这种通用化趋势对开发者是个值得期待的信号意味着不用再为每个场景重写底层代码。我也看到一些芯片架构已经在往可重构方向走比如动态配置神经元的膜时间常数、突触更新规则以及网络拓扑结构。这种灵活性一旦成熟类脑计算就有机会成为边缘计算基础设施的一部分而不是某个特定场景的小众方案。4.2 类脑计算与感知、机器人、边缘场景的深度融合实时性和低功耗是机器人计算最核心的诉求而这也是类脑计算最擅长的领域。未来我比较看好类脑计算在无人机、仿生机器人、可穿戴设备这些场景的落地。比如无人机避障传统方案需要把摄像头图像连续传入GPU做处理功耗和时延都很高。用事件相机加SNN的方案只有画面发生变化的时候才触发计算平时几乎不消耗资源响应速度还能更快。另一个值得关注的方向是脑机接口和神经调控设备。这类设备本身接收的就是神经信号传统计算机处理这些信号需要大量的数据转换而类脑芯片可以直接与神经信号交互形成闭环。目前已经有实验团队在做癫痫的实时检测和干预控制未来这类技术成熟后医疗场景的想象力会很大。4.3 生态是关键工具链、数据集、评测体系技术能不能普及生态往往比硬件本身更重要。类脑计算要走出实验室必须解决三个生态问题。第一个是工具链标准化让模型可以像PyTorch一样一次写好、多地部署。现在已经有一些国际开源社区在做SNN和图神经网络的融合框架方向是对的只是成熟度还不够。第二个是高质量数据集尤其是带时间戳的事件流数据集目前公开可用的还太少。第三个是评测体系的公正化需要行业内共同认可的标准任务集和统一度量方式。这一点我感触特别深传统深度学习之所以发展这么快PyTorch和ImageNet功不可没。类脑计算现在缺的就是自己的PyTorch和ImageNet。好消息是已经有相当多的年轻开发者开始关注并用开源方式推进这个方向每次我在技术社区看到有人分享SNN项目经验都会觉得这个生态真的在慢慢长起来。4.4 对普通开发者意味着什么学习路线和几点准备如果你看了上面的分析想切入类脑计算我根据自己的经验给几点具体建议。第一步是打基础搞清楚脉冲神经元的数学模型常用的有LIFleaky integrate-and-fire模型等理解膜电位、阈值、不应期这几个概念到底是什么意思。第二步是上手工具从开源的SNN仿真框架开始在GPU上跑一个简单的图像分类任务把训练、转换、推理的完整流程走通。第三步是找一个垂直场景做实验哪怕是一个很小的任务比如用一个SNN对传感器数据进行异常检测也会逼着你把很多细节啃明白。配套的知识储备上最好对事件相机的基本原理有所了解同时保持对新型器件和架构动态的关注。我不建议一上来就啃脑科学的书籍对一个工程向的开发者来说先把计算范式的转变理解清楚比了解生物细节更实际。等你真的把SNN跑熟练了再回头补充神经科学知识会自然很多知道什么需要看什么不必深究。另外编程语言方面Python目前还是主流常用的科学计算库基本够用有嵌入式开发经验会更有优势因为很多实际类脑部署都在边缘端完成。如果你能同时看懂IC设计的基本概念应该会有更多发展的机会。5. 踩过几次坑之后的一点成都体会这次梳理类脑计算的概念和现状也算是对我自己过去一年多学习的一个复盘。踩过的坑不少核心的一点收获是类脑计算不是一个靠看新闻就能掌握方向的技术它需要你把手弄脏实际跑过SNN的训练看过脉冲发放的动态过程换过编码方式经历过硬件部署后精度掉坑才会真正理解它和深度学习的差异到底在哪里。如果非要再分享一个小技巧我会说刚开始做SNN项目时不要贪心做大而全的任务找一个非常小的、数据量可控的事件流任务哪怕是识别三五个手势先完整跑通整个链路再逐步扩大范围。类脑计算现在的成熟度还不足以支撑跨大场景的复杂任务但把一个小场景做扎实、吃透反而能积累出可迁移的实战能力。后续如果工具链和评测体系越来越完善类脑计算在边缘端和感知端的价值会越来越明显。对正在观望的开发者我的态度是别等生态完全成熟再进场那会错过最早积累经验的红利期。找一个感兴趣的场景先从这个周末开始动手吧。
阅读完成 · 觉得有帮助?