欢迎加入替代计算俱乐部。今晚始于我和一位密友的晚餐,他向我提出了一个发人深省的问题:如果你只能向这些超级智能的外星人提一个问题,你会问什么?我们当时在思考如何解答能源危机。我心想戴森球或核聚变之类的答案或许显而易见,但更有趣的是他们如何进行浮点运算。我认为我们已深陷硬件与软件、特别是硬件架构与优化器协同演化的“兔子洞”中。我自2012年左右开始从事深度学习,接下来我将分享过去十四年间的一些见解。
大约在2012年AlexNet问世之前,卷积神经网络(CNN)占据主导地位直到2019或2020年。当时,我的公司Focal Systems曾获得Nvidia的资助以赢得某项比赛。据我了解,Jensen Huang直到2020年才真正重视AI;在此之前,硅谷的热点是加密货币和SPF(社交欺诈防护),这些领域更赚钱。因此,他主要关注每瓦特算力(FLOPS)的提升,特别是针对非内存带宽受限的CNN和以太坊。
2020年后,随着GPT-3甚至GPT-2的兴起,Transformer架构对内存容量和带宽的巨大需求引起了重视。Nvidia推出了Ampere架构,重心从计算效率转向内存容量和带宽。由于注意力机制的时间复杂度为N的平方倍,这种指数级增长解释了原因。只要产生足够的浮点运算,能耗问题似乎被暂时搁置了。这是硬件架构与优化器实时协同演化的结果,但每瓦特算力在过去两年已趋于停滞。
我们需要新的方向。我在博士期间一直思考大脑的工作原理及替代方案。我认为十年后我们将不再使用反向传播算法,因此我开始研究其他领域。要达到人类水平智能,每吉弗洛普的成本必须大幅降低。人脑仅消耗约20瓦特电力,却能完成今晚演讲者所提及的惊人任务。目前芯片领域出现分化:训练芯片与推理芯片各自专注不同目标,但仍主要围绕Transformer架构。
这些新设计可能大量使用SRAM而非HBM,但这未必必要。人脑主要是前馈的。任何认为大脑执行反向传播的观点都站不住脚,因为那需要神经元先正向 firing 再逆向 firing,甚至关闭大脑以更新突触权重。这显然没有发生。虽然赫布学习等模型存在“权值传递问题”,即前向传播后需通过不同路径返回且权重必须完全相等,但在加入激活机制并让两者接收相同信号后虽可行,但这只是循环图,无需保留激活值。
大脑中还存在一些化学效应和时序问题。另一个鲜为人知的事实是大脑中存在大量抑制机制。皮层柱在大脑中广泛重复出现,周围环绕着强烈的抑制作用,使每个组件能独立学习。这带来了希望:利用大脑经过四十五亿年进化已验证的方案,如Tony Watts所探讨的。Sean将讲述教大脑玩《毁灭战士》,Ilker则介绍光学计算,我认为光可能是正确的答案。
我们在数据中心用光通信,经开关转为电子信号指引路径,再转回光,通过DAC转换后再次发光。在此过程中消耗了99.9%的能源后再转回光,最后通过ADC转换。为何不全程使用光?那样将瞬间完成且零能耗。
我想外星人大概就是这么做的,但我对各种想法持开放态度。神经计算显然既令人兴奋又酷炫,而类脑计算方面也有位演讲者将就此展开讨论。这基本上是在模拟大脑在模拟电路中运作的方式,同样非常酷。但我们还没说完,因为如果我们要在这些底物上进行反向传播,是行不通的。因为在光中存储比特非常昂贵且困难,Ilker稍后会详细讲解这一点。
这些特性真的很有趣:在光中进行计算每吉弗洛普的成本极低,几乎免费且量大管饱;但难点在于存储。此外还有非可微性、激活函数等问题。相比之下,显存每GB的成本非常高昂,而光与神经计算的带宽几乎是瞬时的——尽管仅用铜线的类脑计算可能也能做到。这些方案各有不同的特性,我博士期间一直在研究替代优化器。
在我了解反向传播之前,存在许多其他学习过程。我好奇非基于梯度的方法能走多远,于是找来一本零阶优化教材,在博士前六个月里实现了其中的每一种方法。当时的设定是训练一个十亿参数的LSTM进行下一个词元预测,目标就是找到效果最好的更新规则。最终表现最佳的是SPSA算法,除了James Ball及其学生外鲜为人知。
如果你记得微积分入门知识:对某个模型参数theta进行随机方向上的微小扰动(半径为epsilon),分别计算加法和减法的前向传播,得到有限差分。然后沿该随机方向按有限差分的比例更新参数,重复多次扰动取平均。如果差分接近零则不缩放该方向;若差分巨大,则大幅调整。这被称为有限差分法或SPSA中心差分法。
这种方法最酷的地方在于没有梯度,因此可以完美优化非连续的0-1损失景观。以著名的“函数”为例,反向传播会很快陷入局部极小值;而零阶优化能迅速找到这个非利普希茨碗底的最低点。有了好的优化器,接下来就是架构和算力问题。我尝试过LSTM和Transformer,但Transformer是为反向传播和GPU并行训练设计的。
我将提交一篇名为“体细胞稀疏优化混合专家”的论文,灵感来自皮层柱概念。我们将Common Crawl数据集通过TF-IDF和SVD聚类,将n个集群的parquet文件分发给全球n块GPU。每块GPU训练一个小型专家(如41K参数的LSTM)。测试时汇总所有模型,通过路由器进行混合。这类似于MoE,但由多个小模型组成而非单层前馈网络。
这种架构的优势在于:随着模型变大,梯度估计误差会线性恶化,导致训练十亿参数级大模型所需的扰动次数极多且不可行。但如果将模型分片,每个专家的大小限制了梯度噪声的上限。因此每步只需约64次甚至更少的扰动即可正常工作,完全可行。
我们在三个维度上发现了缩放定律:已知增加批次大小可减少梯度噪声;此前未知的是,模型分片越多效果越好。反向传播之所以失效是因为前向传播成本高昂;而在光计算中,光束运算几乎免费。在神经元或模拟电路中功耗也极低。我很期待这次演讲能让我的博士研究变得有价值,否则若无人成功,我的努力将毫无意义。
接下来介绍三位演讲者。Ilker是瑞士洛桑联邦理工学院(EPFL)的博士,从事光学AI计算研究已有五六年。他是这一概念的前沿思想家之一。
去年我在斯坦福大学担任博士后,在那里我有幸结识了Aloc。他在电子工程领域拥有博士学位,曾从事半导体和纳米光学研究,随后成为一位极具成功的风险投资人,目前管理着一支15亿美元的基金。这没什么大不了的(意指很厉害)。他主要关注前沿和早期阶段的项目,我也经常与他们交流。你知道的,Aloc非常聪明,任何我们抛给他的概念他都能立刻理解(gro是get the gist的口语化表达)。因此,他提议进行神经形态计算方面的合作。
接着Sean也加入了我们,他在纽约的聚会上出现。他拥有神经形态计算硕士学位,目前是一家名为Parasma的酷炫公司的CEO。我曾问他:“这名字是什么意思?是不是有什么深层含义,或者某个我不了解的神经科学术语?”他回答说:“不,这只是《Dota》(一款游戏)里的一个物品。”这挺有趣的。好了,Aloc,请开始你的演讲。非常感谢。
正如France刚才很好地介绍的那样,我们今天大部分的数据通信都依赖于光学技术,我们知道这对于该目的非常高效。但今天我想提出一个想法:如何利用光进行计算?其优势是什么?面临的挑战有哪些?作为一个用例,我将以我们的研究为例,展示我们如何编程光传播以实现基于扩散的图像生成。众所周知,光子在携带信息方面表现出色,这就是为什么我们拥有“光子学”这一领域的原因。
通信是其主要应用之一。目前,AI数据中心机架之间的几乎所有传输都通过光纤完成。因此,信息以光子形式传输,99%的大陆间数据传输也是光学的。为什么?答案很简单,源于基础物理学。与电子相比,光子具有约10,000倍的更低损耗和10,000倍更大的带宽。这就是为什么当我们今天想要传输超过一米的信息时,我们通常将其转换为光子并通过光纤发送的原因。
既然光学具有如此低的损耗和高带宽,为什么我们不也使用光子来处理信息呢?我们看到的技术现状是:历史上,电子处理器一直使用高精度的32位或64位表示来进行信息处理,然后将这些符号转换为低位深(如两级或四级),再通过光学传输。但最近随着AI的出现,我们发现实际上我们可以使用越来越低的位精度来完成我们的任务,从而执行更多操作、速度更快。
与此同时,光学通信能够支持越来越大的位深,因此我们可以看到这两个领域之间正在出现一个接口。光学在计算目的上的另一个基本优势是:根据定义,它具有大规模并行性,因为光子之间不相互作用。因此,在给定空间内,尽可能多的光束可以共存而互不影响。另一方面,在电路中,我们必须为每个信号部分定义不同的路径。
让我们快速比较一下电子计算的原理。通常我们做的是:例如对于矩阵向量乘法运算,我们对导线充电,用晶体管影响这些导线,然后放电。在计算的每一步中,我们都要消耗能量。因此,对于n维输入和n维输出,我们的能耗通常与n的平方成正比(n²)。
在光学方面,新兴研究中的一般做法是:我们可以直接将输入信息调制到许多调制器上,并让它通过设计的权重掩膜传播。这样,该操作的权重可以被动地调制光束,而不消耗任何额外的主动能量。最后,计算结果可以通过物理方式在探测器上求和,并且这些总和值可以直接在这些探测器上读出。因此,前提条件是输入或输出单元的数量(称为n)与能耗相关,而不是n的平方。
但如果这如此完美,为什么我们没有到处都使用光学计算?它为何没有普及?目前有许多公司正试图使其成为现实,并且他们也取得了非常具有竞争力的成果。例如Lightmatter展示了一种电光PCIe板卡,其计算能力与GPU相当,在能效方面也是如此。如果你仔细查看他们的能耗预算,你会发现光子学所消耗的只是整个完整能源预算的一小部分。
为什么?这个答案实际上告诉我们光学计算面临的挑战是什么。一个问题是,今天我们的数据或模型存储在数字电子存储器中。如果你想将它们转移到光学处理单元,其中一个挑战是:我们需要付出巨大的代价将数字信息转换为模拟信号,然后再进入光学领域。
一旦我们完成计算,我们必须回到那些存储器或传输信息,这就要求我们将光再次转换为模拟信号,然后进入数字领域。我们为此付出了巨大的代价,这在预算分解中也有所体现。另一项支出是:为了编程这些设备并保持其校准和精确,我们还必须主动消耗能量来放置参数或进行控制。
对于AI负载而言,更大的挑战在于:被动光学支持大规模线性运算。但是当我们想要进行非线性激活函数时,它们需要额外的机制。与晶体管或数字电子的情况相比,它们并不那么容易实现。我们的一次尝试是使用多模光纤中非常强烈的短脉冲光,那里的光电相互作用产生了光学非线性。但正如你所见,这使得实现这些非线性激活增加了另一层复杂性。
因此,第一部分的主要收获是:为了在光学计算机上运行有用的计算演示,我们必须仔细选择用例和算法,以便与电子相比创造出切实的优势。作为尝试这一点,我将谈谈我在EPFL以前的实验室中与Google合作的一篇论文(NeurIPS),我们试图承担图像生成的任务。
基于扩散模型的生成过程,我们希望通过编程光传播来实现去噪或作为生成的推理单元。首先简要介绍基于扩散的生成模型,以交代背景。它们的工作原理是:在训练神经网络后,将数据的随机分布映射到目标数据分布上。这些数据可以是像素、动作项目或视频等模型通过训练好的神经网络对这些随机分布进行逐步变换,从而将其转化为期望的数据分布。对于图像而言,我们可以看到初始状态是一组随机像素通过反复在该随机像素集上应用神经网络,我们可以生成清晰且逼真的图像。
我们的观点是,在此任务中使用通用电子硬件会产生巨大的冗余,因为我们在通用硬件上反复使用同一个训练好的神经网络。有时为了生成单张图像的单个采样,这一过程可能重复上千次。因此我们提议采用专用且被动的器件,让光在该器件内的传播物理特性来执行扩散过程中的一个步骤。通过迭代这一架构或在光学系统上重复操作,我们可以从随机像素分布出发,仅依靠物理过程的作用,即可生成来自目标数据集的新样本。
其工作原理如何?让我们更仔细地观察系统。这主要取决于物理规律的定义以及所需的主要组件:我们需要了解其工作原理,并拥有操控它的方法。不幸的是,目前我们仍使用反向传播来实现这一点,但未来或许会有所改变。目标是在神经网络案例中定义一个目标函数,并设计物理系统以执行手头任务。我们将噪声样本提供给该物理系统,希望获得这些图像中的预测噪声项。
随着光在系统中传播,最终得到的是图像的滤波版本。通过反复使用这一过程,我们可以减去噪声项,并最终利用系统生成清晰的图像。系统中的层主要是调制光相位的透明片。当光束穿过这一组层级时发生衍射,只有我们希望保留的信息得以传输。光学的一个关键特性是难以编程或改变权重,因此我们的生成算法正是围绕这一特点设计的。
与数字神经网络随时间添加激活操纵不同,我们创建了不同的子调度单元集合。假设我们在10,00个时间步长中进行操作,我们将这些步骤划分为每100步为一个子单元。对于每个包含100个步骤的子单元,我们保持参数固定。这意味着如果拥有十个这样的设备,我们可以对其中一个使用100次,然后将激活传递到下一个设备上。
再次使用该设备100次,以此类推。在整个过程中,无需更改物理硬件上的任何权重,我们就能完成不同噪声和去噪的程序。目前由于参数数量有限,我们在MNIST数字或Fashion MNIST等小型数据集上进行了展示。但我们可以清楚地看到,该模型或光学器件的行为类似于扩散模型,从随机分布开始,逐渐生成与原始数据集相似的图像。
通过图像生成的质量指标可以看出,我们同时具备了多样性和高质量,这由FID值的降低所证明。但另一个更有趣的特性是:当我们考察系统参数数量与行为的关系时,例如增加系统中衍射层的数量或改变每层像素的数量。我们发现,与数字神经网络相比,它表现出类似的幂律缩放行为。
这意味着随着我们增加更多参数,预计这些模型将以类似的方式扩展。正如大家所知,光学计算的优势在于:随着增加更多参数,能耗的缩放更为理想。我们还表明,通过添加这些额外参数,图像质量性能可以按预期得到提升。那么结论是什么?
我们将这个小型模型与在商业GPU上运行的性能相当的数字神经网络进行了比较。结果显示,在生成单张图像时,使用我们的光学系统在能耗性能上具有显著优势。(注:此处有星号说明我们假设权重是被动式的,即通过微制造这些权重层并放置到位。一旦训练完成,它们就固定不变且永恒一致,这目前很容易实现。)
在我们的实验实施中,我们采用了一种更简单的原型制作方法。我们使用了一种称为空间光调制器的设备,这通常也用于投影仪中。通过将其与镜子耦合,我们实际上展示了可以在单个设备上执行深度网络操作。观察我们的相机图像和输入激光分布,我们可以就地执行反向传播并更新权重,从而无需经历微制造的各个阶段并重试。
这为我们提供了原型制作该系统的有效手段。当然,未来在讨论实用的光学计算单元时,我们希望制造这些层并将其放置到位。文献已经表明这是相当可行的。最后,我想在本演示中提出的观点是:我们证明了光传播可以被编程以应用于特定的AI任务,即基于扩散的图像生成去噪。我相信光学计算的机会在于共同设计硬件和算法。
在我们的案例中,我们手动调整了生成算法,并确保反复使用相同的权重多次,以便真正利用光学的优势领域。我认为使这项技术更加实用的下一个里程碑是演示端到端的系统,并做到这一点。
非常大规模的模型,比如十亿参数规模的模型。这样我们才能真正声称这些能效优势或延迟优势在系统扩展时依然存在。而且,我可以说明的是,我们展示了第一个前提:当我们增加更多参数时,预计它们的性能也会提升,就像在数字神经网络案例中一样。非常感谢。
抱歉,很好。>> 我在 Lightmatter 工作过,那是第一个 AI 光子加速器硅基芯片。我工作的一个挑战正是关于数模转换器(DAC)和模数转换器(ADC),也就是负责光子计算子系统的那个部分。基本上,它将是大多数张量运算的卸载引擎。其中一个问题主要是 ADC 和 DAC 的分辨率,也就是精度,这最终会影响随时间推移在运行环境中预测的正确性。当时有一个项目……我其实不能谈论那个,但后来观察到那是 Lightmatter 最终转向 HBM(高带宽内存)互连的原因。>> 嗯,某种程度上他们停止了关于多光谱计算研究分支的工作。
是的,我同意。完全同意。当传输到光学系统的参数数量或数据量相对于参数量很大时,优势通常会被劣势所掩盖。所以我相信这种硬件的第一种方法不是像 CPU 那样的通用计算硬件,而是更像 ASIC(专用集成电路)类型的应用特定方法。在那里,我们可以真正最小化你提到的位深度、精度或数据率。
那么对于反向传播,你们实际上是如何做到的?因为你说我可以做前向传递,反复击中相同的……比如多次进行 F 传递。我做我的外层循环,对于扩散模型迭代 T 次。然后我需要向后传播。你们是如何翻转它并让光束反向发送的?它是如何工作的?
在这方面也有一些工作。但在我们的案例中,我们实际上校准了一个完全数字孪生体,反向传播发生在数字电子学中,而这目前通常是最大的瓶颈。
所以还有另一件事……基本上扩散模型是一个在每个步骤都强制使用教师信号的 RNN(循环神经网络)。所以如果移除那个,就没有像 L1、L2 直到 L10, LT 这样的层级。你可以完全把它当作 RNN 来处理。你们尝试过吗?从 ADC/DAC 读取数据和计算损失的角度来看,这样做有什么优势吗?我还没有尝试过,但我同意这也是另一个非常有趣的未来方向。因为我认为光学的作用取决于我们与电子或数字环境接口的规模大小。在这种情况下,如果我们能找到一种方法在光学系统或模拟系统中让信息循环更长时间、更多时间步长,那么我认为真正的优势将不仅仅是我们展示的七倍,而是可以扩展到数百甚至更多。
我非常好奇如果你们尝试使用大得多的权重来做这件事,制造相关组件的实际物理挑战是什么?它是如何扩展的?我们会遇到什么样的瓶颈?
嗯,从制造角度来看,我认为它使用与电子学非常相似的技术栈。人们展示了通过蚀刻和沉积等简单的化学操作,制造是可以实现的。当然,光的波长比电子长,所以单元尺寸稍大一些,但我认为这些都是可以解决的挑战。也许一个限制是非线性特性。因为如果你想要非常大的参数数量,我们在数字案例中受益于构建深度网络,而在这种情况下我们需要非线性。所以这里的非线性实际上是反馈到调制器上。因此我们应该想出便宜的方法来实现这种非线性,或者进行大规模运算并找到一个有用的模型。我认为挑战在于构建非常深的网络以增加参数数量。谢谢。
谢谢。 >> 只是一个小问题。电子比可见光的典型波长小得多。所以这类光子芯片是否受限于这种尺寸?光学计算中的理论最小单元尺寸是多少?人们有尝试使其更小吗?
是的。嗯,人们在利用空间方面肯定试图探索不同的方向。所以在电子学中,正如我们讨论的带宽较小。所以例如,许多人采取的一种方法是使用相同的单元尺寸(微米级),而不是电子晶体管中的纳米级。但例如,他们使用了所谓的光复用技术(WDM)。这意味着你有数百种不同的波长,并且有方法在每个波长上编码不同的权重,以便你可以在波长维度上进行复用,而不是在空间维度上。但本质上这是正确的……是的,特征尺寸应该更大以便与可见光相互作用。谢谢。
所以我是传统的计算机架构师。嗯,我的问题是:看起来我们有基于光学的处理单元和基于光学互连的技术。你们对传统计算中的基于光学存储有什么看法?我们在这上面工作了大约 70-80 年,并取得了显著进展。但如果我们能实现基于光学的存储,我们就可以完全绕过 ADC(模数转换器)。你们对此有什么看法?
我肯定认为这也是该技术最大的瓶颈之一。嗯,所以实际上光学作为你知道的 CD、DVD 是归档存储或长期存储的伟大介质。它运作得相当好,并且有许多不同的方法来实现这一点。当然我认为挑战在于如何快速且廉价地在光学域中写入和读取内存。历史上对此有很多尝试,全息记忆是一种……光折变材料也有这方面的尝试。但我认为到目前为止,没有任何一种像电子学那样便宜和易于获取。这就是为什么电子学实际上仍然是主要计算介质的原因之一。但我会说,例如我们采取应用特定和固定权重的原因是因为……
确实如此,因为在光学域中重写或保持权重非常昂贵。另一条研究路线正在探索相变材料,它们既用于电子学也用于光学领域,这或许能解决这一问题。虽然已有尝试,但没有任何一种方案像基于电子的NAND存储器那样主流且易于使用。谢谢。
嗨,我有一个问题:你们是否考虑过非线性?光很难实现非线性,但我好奇你们是否研究过偏振滤光片。它们几乎具有三角函数关系,如果组合多个偏振滤光片,是否像傅里叶利用三角学构建任意信号那样发挥作用?我认为这是个不错的主意。偏振是另一个维度,光有不同的自由度:强度是一个我们已使用的相位也是一个;但偏振是其中之一。任何操作最终都会体现在振幅域,我们的传感器通常将其检测为非线性响应。
我认为这很好,但需要考虑能深入多少。一旦调制偏振,我们会得到非线性响应;但如果要构建深层神经网络,它必须在每一层发挥作用。我不确定过滤后如何继续保持非线性。>> 至少我个人不知道这方面的重大研究,但这可能非常有趣。是的。谢谢。谢谢大家。你们可以在我之后继续交流。
我是Aloque,今天我们要讨论神经形态计算。被告知只有10分钟,我会尽量控制时间。简单介绍一下我自己:我是风投公司Standard的联合创始人兼合伙人,管理资产15亿美元,专注于早期技术公司。新型计算机是我职业生涯中一贯关注的主题,我认为现在是构建新电脑的最佳时机。
关于资历:我在德克萨斯大学奥斯汀分校获得电子工程本科学位,在斯坦福大学获得硕士和博士学位。我的研究和工作经验集中在半导体、光子学和纳米材料上。我离开学术界是因为当时我认为这些东西永远找不到用途,但看现在……
要开始讨论神经形态计算,必须先吹捧一下大脑。它是奇迹,是进化的工程杰作。它具备语言、推理和创造力等多重属性;是多模态的,能实时处理视觉、听觉和物理实体交互。你可以与人对话,大脑会预计算回复内容,响应时间在毫秒到几百毫秒之间。它是一个非凡的计算机,终身学习,没有上下文窗口限制,不断适应和学习新事物——包括进化未曾准备过的汽车和电脑。
它只需从几个例子中学习。我最喜欢的例子是:如果你给16岁的人看一两次停车标志,他们就能以极高的准确率永远识别它。但自动驾驶汽车需要多少不同角度、图片和阴影的停车标志才能可靠识别?数量巨大。这再次证明了它是工程的奇迹。更令人惊奇的是,它仅运行在约20瓦的功率下,相当于一个iPhone充电器。
在1980年代后期,随着神经生物学对大脑工作原理理解的进步以及电子技术的突破,我们可以大规模制造芯片和电路。人们开始思考这两个领域应该交汇,从大脑工作原理中学习如何设计电路和芯片。加州理工学院的Carver Mead是半导体行业的教父之一,他在80年代末创造了“神经形态”一词,他的团队做了大量开创性工作,剖析大脑工作原理并将其映射到电路模型中。
那么什么是神经形态计算?最高层面上,它是关于我们能否借用大脑的组织原则来设计用于计算的电路和芯片。深入该领域会发现许多人对其定义不同,根据目标拉伸定义以包含或排除特定内容。但我们可以抽象出大脑运作的一些高层原则作为神经形态计算的概念锚点。第一个属性是记忆与计算的交织。在大脑中,连接具有记忆和权重,直接参与计算而非仅仅中继信号。这在数字电子学中是不存在的独特之处。
通信和状态转换几乎通过事件发生,在大脑中称为脉冲(spikes)。这是一个连续机器,接收感官输入并生成、传播脉冲。这是驱动事物的引擎;脉冲本身是奇异的现象,在我们其他计算方式中没有完美的对应物。如果将其视为电路,它是混合信号的:部分数字,部分……
模拟信号,它们以一种独特的方式结合在一起,这就是大脑的工作方式。我会通过一个玩具模型更深入地探讨其工作原理,因为这确实是一个迷人的概念。随着学习和经验的积累,大脑的结构和功能都会发生变化。就像你在学习过程中,大脑会不断重新连接自身一样。
当我们制造芯片时,它们是固定不变的。因此,这种大脑能够根据经验在逻辑甚至物理层面上随时间自我适应的想法,是一种非凡的现象。人们曾试图将从大脑中获得的知识应用于芯片设计,当然,“神经网络”这个名字显然向这一概念致敬。
我想稍微深入探讨一下脉冲神经元的玩具模型,这就是我所指的这种既非完全模拟也非完全数字的奇怪行为。如果你像我一样是个电路爱好者,你可以将其视为一个漏电电容器;当积累的电荷超过一定阈值时,它会发出类似数字信号的脉冲。
这些脉冲基本上就像脉冲串,脉冲进入并在神经元膜上积累电荷,但随后会随时间泄漏和消散。你会看到这些曲线,开始时有一个脉冲,然后下降。但如果同时有足够多的脉冲进入,使得神经元膜上积累的电荷迅速超过某个阈值,神经元就会发出一个脉冲。
如果不够多,它就会放松并重置。我们并没有这样的电路。从某种意义上说它是模拟的,因为有这些衰减和泄漏;但从某种意义上说它也是数字的,因为它以离散的方式发出脉冲。这些脉冲发生的时间关系非常重要,这是一个连续变量。
脉冲的幅度也非常重要。这就是正在你大脑中反复发生的情况之一,这也是人们探索的各种核心概念之一:我们能否在电子学中实现这一点?我之前提到的观点是,人们试图思考大脑的哪些部分实际上可以应用于有用的计算。
神经网络是最著名的例子,它当然受到大脑启发,但也就仅此而已。当我们思考现代人工智能和神经网络时,一些概念绝对是受神经科学启发的并借鉴自生物学。其中包括由大量相互连接的神经元组成的大型网络。
随着我们学习,我们将这些学习成果表现为这些神经元之间连接强度的变化。当我们思考信息如何编码在这些网络中时,许多神经元的模式是我们容纳知识片段和信息片段的方式。
然而,类脑计算中的一个共同主题是:数字电子学非常出色,我们非常擅长制造、扩展它们并使其并行化。事实证明,回归原生并利用这一高级概念及其在数字硅中的实现方式,才是所有真正创新发生的地方。
当你查看现代人工智能时,你会看到反向传播、Transformer注意力机制等概念,以及如何在数字硬件上大规模训练它们。这些都没有映射到大脑中的内容。因此,我们已经在某种程度上偏离了轨道,我们正在以硅基神经网络的本地表现形式做事,而不是忠于大脑。
对我来说,这可能是我在类脑计算中得到的最大启示:大脑是终极的硬件协同设计模型,软件和硬件合二为一,并以一种独特的方式共同进化。因此,如果你要提取其中的一部分并尝试应用于其他计算基底或其他类型的物理机制,你必须非常小心。
因为也许某些概念在高层面上适用,但事实证明,那些适合该形态的因素可能是将其推向下一个水平并改进它的正确方式。那么,类脑计算今天处于什么状态?在我看来,到2026年,我们仍然 squarely 在研发领域。
我认为我们正在试图解决这种匹配问题:我们可以从大脑中发现的什么中汲取适当程度的灵感,并将其与某种物理实现相结合,看看我们是否真的能从中创造出奇迹。目前人们正在探索三种高层面的理念或前提:
其中一些是我们观察到一个问题,认为通过利用这些生物学洞察有机会解决它。另一些人则是想出了一些具有奇怪属性的新玩具,也许我们可以通过将它们与从生物学中推导出的东西结合起来来利用这些奇怪的属性。
首先,人们观察到大脑仅消耗20瓦特能量,极其节能。现代人工智能在能效方面并不那么高效,因此想法是从这一特性中汲取一些东西,以使人工智能更加节能。
目前正在尝试的一些思想是混合存储和计算。人们正在探索用于训练和推理的模拟想法。在这里,我要强调类脑计算的定义,因为人们现在思考混合存储和计算的方式完全是数字化的。例如,你可以将SRAM与逻辑电路结合使用。
DMatrix是一家在此方面做得很好的初创公司,几周前在Hot Chips会议上有一个很棒的演讲。IBM也在这方面做了一些工作。但这完全是数字化的。所以,这算是类脑计算吗?如果你持有非常广泛的观点认为交织的内存和……
计算被视为神经形态的。此外,在边缘端思考不同类型的芯片和硬件时,它们需要感知、反应并适应环境。我们可以从大脑持续的感知机制中汲取灵感,并将其应用于无人机上的传感器等实时执行任务的设备吗?因此,人们正在研究脉冲神经网络。能否像传统方式那样训练基于脉冲的神经网络呢?能否实现设备端学习,让网络根据感知到的信息自我改进?以及我们是否能像大脑那样进行事件驱动的计算呢?
英特尔在这方面可能做了最多的工作。他们从研发实验室推出了一款芯片,并展示了一架能够自主飞行的无人机。最后是我之前提到的新工具:我们拥有光子学,以及一系列由半导体研发实验室多年来开发出的奇异电子器件。例如阻变存储器、忆阻器等,还有耦合振荡器这样的电路构想。所有这些系统都展现出非常有趣的新物理特性和新特征,它们具有模拟属性和非线性特性。
那么问题来了:我们能否以这些系统作为当前的技术基础,围绕其特定的物理行为建立模型,从而协同设计出具有有趣结果或特性的东西?这是对该领域的高层概览。我认为这是一个非常有趣的领域,它一直是灵感的源泉,尽管其中只有零星的部分在实际应用中呈现出类似大脑的结构。对我来说,这仍然是一个开放性问题:我们最终能否做到这一点?
但我认为这依然是一个非常值得探索的研究方向。想想神经网络吧,它们在存在的大部分时间里都相当沉寂,后来我们才弄清楚如何使它们变得有用。因此,这类事物都需要一个孕育期。作为研究方向,它极具吸引力,但你需要耐心并稍许运气。以下是一些我发现对后续方向很有用和有帮助的资源。就此,谢谢。
你好,感谢你的到来。我的问题是:鉴于你在神经形态计算领域所见的一切,你认为目前最有前景的初创公司、项目或方向是什么?
我认为我必须使用“神经形态”这一非常宽泛的定义来回答这个问题。我想,许多被视为高度受大脑启发的技术仍然处于早期阶段。我认为这可能涉及存储与计算的融合,或者纯粹数字化的方式。Dmatrix 是一家这样的初创公司,感觉它们现在已经可行、有效,可以制造并量产,看起来市场能够接受。这可能在某种程度上是一种回避性的回答,因为它不涉及真正的科幻内容。
在科幻领域,我认为有几家非常雄心勃勃的初创公司。例如 Naveen Ralph 的公司试图在纯硅基中实现耦合振荡器,他们坚持的一个约束是必须能够大规模制造这些器件。虽然其产生的动态和物理特性非常有趣,但这确实是一个很有前景的方向。不过,他是那种能够筹集足够资金去实现这一目标的人。
谢谢。感谢那场精彩的演讲,我学到了很多。从 Dmatrix 在 Hot Chips 上的演示来看,其创新基本上类似于共封装技术,将 SRAM 等存储单元在内存层级上更靠近解码端的计算单元。随着我们触及解码瓶颈,他们试图解决这一问题。我的问题是:这基本上增加了封装的面积,意味着在相同数量的数据中心内服务器数量减少。你认为神经形态领域目前是否有针对包装效率的创新来解决这一问题?我不确定这是否算作解决该问题的神经形态方法。
我认为有很多有趣的解决方案来解决这个问题。归根结底,互连的电容远大于晶体管的栅极电容。因此,你大部分的能量消耗都用于在广阔的网络中移动比特,而不是翻转单个晶体管的比特。我个人认为光电子学将是解决这一问题的途径。
如果我只提一个问题:我发现神经形态的目标似乎是开发电路、模拟或光学器件等,以超越大脑并变成类似大脑的东西。这就像试图用许多直线来估算正弦波一样:近似正弦波的最好方法就是使用正弦波。如果我们真的试图模仿大脑,那就直接使用大脑吧?直接利用神经元是神经形态最好的希望吗?
这是一个很好的问题。我想我们很快会有相关的演讲来探讨这一点。 那是一个过渡话题。 是的,不,这是一个有趣的问题。我认为大脑存在局限性:我们在计算机上能做的事情远比在大脑上做的好得多。例如,计算机的时钟速度远快于大脑的处理能力。即使在存储方面,检索等任务虽然较难,但计算机拥有无限的存储容量,而生物体存在局限。因此这是可能的,但问题在于:如果我们能做到,能否规模化?也许可以。
这确实是我们尚未深入探索的一个研究方向。非常感谢这场精彩的演讲。大家好,我叫阿伦。您在讨论下一代计算系统的构建时,谈到了很多软硬件协同优化的内容。我注意到两者的迭代周期都在不断缩短、压缩。您认为,是先在软件中迭代模型,然后选择最能支持该模型的硬件平台更重要;还是先找到最好的硬件平台,再围绕它设计模型更为关键?
这是一个很好的问题。虽然“看情况”听起来像是个推脱的回答,但事实确实如此。我认为这取决于您的出发点:如果您是从对某个系统物理特性的洞察开始,例如我们非常擅长制造光学计算机,并且深刻理解该系统的约束条件及其优势所在。在这种情况下,我们不能盲目地将模型架构直接应用其中,而必须在系统的能力与局限范围内进行设计。
反之,如果您是采取另一种角度,即您拥有独特的架构并认为它能发挥巨大作用,那么您需要选择最佳的物理实现方式来将其落地。因此,这主要取决于您的切入点是从硬件特性出发还是从软件架构出发。感谢您的演讲。我的问题是,我们的电子设备大多基于硅基材料,而大脑本质上是碳基的。您认为缺乏这方面的研究是否导致我们必须从大脑中汲取灵感,并在硅基设备上模拟其功能?
我们在硅上进行计算确实非常擅长。因此,如果我们要将其镜像为某种电子电路,那么使用硅是合理的。但随着时间推移,芯片中采用的材料变得越来越复杂和独特,这一趋势应继续下去。据悉,今晚有一支团队将发表演讲,他们正在研究以钻石作为基底材料——这也是碳的一种形式。因此,我不主张过分纠结于硅与碳的对立,关键在于作为电子器件的实现方式,而硅恰好是我们目前的主力材料。
好的,我们还有时间回答最后一个问题。我对神经形态计算中可能未被提及的一个因素很感兴趣,那就是噪声与可重复性在计算中的作用。在传统硅基计算的比特层面,由于并行性等机制,计算的意图是确保结果可重复或极其接近可重复。然而,大脑在某种程度上并不试图在下层实现完美的低层级计算的可重复性。我很好奇这在您描述的领域乃至更广泛的思想讨论中扮演什么角色?
这是一个非常棒的问题。即使在数字计算内部,确定性也是一个很有趣的话题。随着浮点精度达到极限,这变得尤为复杂。我观察到的一种尝试是热力学计算,这与早期杰夫·辛顿研究的玻尔兹曼机类似。这是一种模拟电路方法,核心思想是如何让噪声为我们所用。难点在于我们需要利用部分噪声而非全部,且系统内部引入的噪声可能会使情况变得模糊。
要回答这个问题,我认为这是一个值得深入思考的方向,目前已有研究在利用这一点进行深层探讨。正如 SPSA 所强调的,只要噪声是可重复的且基于相同的种子,它实际上是完全可学习的。如果使结果可重复两次,就可以进行前向差分;若需中心差分则需三次。主要问题在于如何实现可重复性。我在斯坦福大学与著名神经科学家肖·德拉曼合作时,他提到无法解释如何获得可重复的种子向量。这或许是零阶方法在生物学上不可行的主要原因。好问题,我们继续进入神经形态或脑启发的话题。
大家好。有些人可能看过人脑细胞玩《毁灭战士》(Doom)的视频,这是我与 Cortical Labs 合作完成的工作。他们将脑细胞置于芯片上,而我负责编写相关算法。我今天的目标是分享一些思考:我们将此视为一个动力系统问题,而不是试图用矩阵乘法等固有计算来强行套用大脑。我们希望将其作为一种输入输出机器来处理,即通过特定的刺激产生智能,从而获得具有计算价值的输出。
一个粗略的例子是我们如何与脑细胞交流,这主要通过电刺激实现。在《毁灭战士》游戏中,存在游戏状态变量(如弹药、生命值等标量向量)以及屏幕图像。我们将这些变量编码为一组刺激信号,例如确定在哪个通道进行刺激。
这种二维多电极阵列以及幅度、频率等参数,让我们能够控制所有这些变量。正如我们在渗漏积分放电神经元中所见,情况并非完全相同。但这些神经元确实会随时间积累电荷并产生脉冲。在《毁灭战士》(Doom)的这个特定实例中,我们将这些脉冲解码为游戏中的具体动作。这就是我们如何从这些细胞中获得有用计算能力的方法。
我想简要谈谈之前的一些工作。抱歉,这部分内容可能有点小。四年前,Corticle 公司让脑细胞玩《乒乓》(Pong)。与《毁灭战士》相比,《乒乓》是一款相对简单的游戏。这意味着我们可以硬编码所需的编解码方式。特别是对于《乒乓》,他们确定了最佳的编码通道,刺激这些通道能产生更多样化的输出。这使得解码器能够更清晰地区分输出区域,从而移动挡板到球预计会到达的位置。
这很大程度上是一个手工设计的过程,因为《乒乓》是低比特游戏,所以可以做到这一点。而《毁灭战士》则困难得多,因为它是一款 3D 游戏(尽管早期的 Doom 类似 2D)。在《乒乓》中只有一个球和一个挡板,而在《毁灭战士》中则有多个敌人需要击杀。当然,《毁灭战士》的动作空间要大得多,不再是简单的上下移动挡板,而是包含侧移、转向、攻击和移动等多种联合动作。
我们需要考虑这些因素,这使得对 59 个通道上的 54 种不同动作进行编解码或手工映射变得几乎不可能,因为某些神经元可能位于相似的通道上,导致行为高度耦合。我们意识到,对于更复杂的任务,如果要扩展到大模型级别的智能,编解码必须端到端地学习。我们需要学会如何刺激大脑,并学习如何将神经信号转换为有用的计算动作。
我们最初采用的是闭环 PPO(近端策略优化)架构,这是一种强化学习算法。我们有《毁灭战士》、编码器以及解码器。编码将观察转化为神经培养物的刺激,脉冲随后发送给解码器并转换为游戏动作。我们稍后会讨论为什么使用 Critic(评论家),主要是为了保持对细胞反馈的稳定性。我们需要随时间提供反馈,告知其表现好坏。
我们发现 PPO 中的 Critic 与我们所需的反馈方式特别契合。感知流程大致如下:我们获取《毁灭战士》的观察数据,通过神经硬件编码,将所有脉冲发送给解码器,然后每隔约 2000 步更新一次。编码器网络大致如下:我们将图像输入卷积神经网络(CNN),并将其与标量观察数据拼接,然后通过多层感知机(MLP)输出每个通道应刺激的频率和幅度。
如果我没记错代码的话,这是开源的,大家可以后续查看。在这个特定版本中,它只选择频率和幅度,没有选择通道。但在随后的实验中,我们尝试让 MLP 选择不同的刺激通道,从而赋予编码器网络更多的自由度。这就是最终呈现的样子:我们可以看到编码电信号,特别是绿色部分。我们向这些电极发送不同的频率和幅度,希望这种设置能充分涵盖游戏状态,使神经元能够据此行动。
这至少比我们手动编程要好得多。为了获得进一步的高级智能(如 GPT-2 及以上水平),我们需要做类似的事情:无法手动编码五万个词汇,必须依靠学习。我们可以控制的变量是频率和幅度。由于梯度无法通过多电极阵列反向传播,我们必须采用某种形式的随机刺激训练编码器。例如使用 Beta 采样来确定最佳的刺激幅度和频率。
这与储备池计算(Reservoir Computing)有很大不同,主要区别在于培养物本身在不断变化。每次发送特定频率和幅度的信号都会以不同方式改变培养物的结构,因此其性能难以预测。从这个意义上说,Beta 采样也是细胞策略学习算法的一部分。这改变了细胞的物理结构及其随时间变化的输出,系统中的每个活动部分都在积极影响细胞处理信息和给出输出的方式。
解码器我们使用了线性读出(Linear Readout)。起初我们在解码器上遇到了一些问题,将其设置得过大。我们意识到如果将脉冲置零且偏置足够大,解码器可以自我游玩。因此,我们将解码器大幅缩小,并进行了一系列消融实验,以确认脉冲本身确实携带了玩游戏的信息。
随后我们将线性解码器的偏置设为零,这种“线性读出”的方式效果更好,防止了解码器对任务过拟合,使其能够开始在游戏中取得进展。这一点尤为重要……
如果你的硅基解码器过拟合,最终发生的情况是细胞永远学不会。它们无需学习,可以保持随机行为,而解码器本身只需“玩游戏”。这一点尤为关键,我想强调一下,因为我认为初创公司和企业经常在此处犯错。从这些系统中榨取性能非常容易。你只需大规模放大解码器,对其运行反向传播,突然之间你就拥有了能做任何事、玩任何游戏的“脑细胞”。
最近我们在果蝇大脑中看到了这种情况。你有这些连接组,人们只是使用大规模放大的解码器。这从来不是果蝇在做什么,而是硅基芯片在做一切。所以我要说对此要非常小心,并在传播这一观点时保持谨慎。解码器看起来像是一组行为:前进、后退、无动作、向左和向右平移、左转和右转以及攻击。
在每个行动步骤中,我们对行动的联合概率进行 Softmax 运算。反馈是很多人误解的地方。媒体对此进行了广泛报道,但我认为没有一家机构说对了。他们对发生机制感到困惑。为了向细胞提供好或坏的反馈,我们通过异步和同步刺激来定义好坏。
根据卡尔·弗里斯顿的自由能原理,我们认为异步刺激是大脑想要避免的。你可以这样想:如果它做了坏事,给它异步刺激;如果它做了好事,给它同步刺激。然而,因为我们以强化学习的方式进行操作,这带来了一个独特的问题:起初它表现得很差。在游戏开始时,它真的很糟糕,做了很多会给予负向刺激的事情。
我们目前的细胞还不够好,无法进行长期的信用分配。所以我们必须预测“惊奇度”。我们在硅基解码器中使用评论家(critic)来判断它距离硅基评论家的偏差有多大,这个特定行动有多令人惊讶,并根据惊奇度缩放我们的反馈。
如果它预期某个动作会是好的,但实际上选了一个很差的,我们就给予负向反馈。这允许我们以更平等的方式调节反馈,我们不会持续用负向刺激它,而是让它随时间建立连接。它建立这些连接的方式是最小化对硅基评论家的“惊奇度”。
当然,我们对每种行为都有不同的刺激模式。我们在网站上展示了这一点,它以某种方式具有交互性。你实际上可以看到通道亮起并看到不同的模拟策略。同步的显然是同步的,而异步用于负向反馈时,它们会在随机时间以不同频率 firing。
在此基础上,我们还根据惊奇度进行缩放。我们在之前的惊奇度之上,使用时间差分误差(TD error)随时间继续根据惊奇度进行缩放。这种特定的缩放作用于频率和幅度。因此,我们不仅有由评论家调节的奖励符号,还改变了发送给这些细胞的反馈的频率和幅度。
在此图中,我们有用于反馈的不同通道和用于编码的不同通道。我不确定代码是否完全相同。但请务必查看 GitHub 上的代码。我想这是我的最后一张幻灯片。如果你有任何问题……
是的,我对正负信号感到好奇。似乎不同的频率像电流一样施加在神经元上或其他什么?我也很好奇,比如当你应用 40Hz 信号时感觉如何?对于神经元来说,负向和正向到底意味着什么?
神经元本身并不感到“糟糕”。你知道的,它们没有痛觉感受器。我们没有向这些细胞引入任何有害毒素。当我提到正向和负向反馈时,那是相对于游戏而言的。如果它在游戏中做了坏事,而我们不想让它做那个动作,我们就发送异步反馈以强化我们不希望它执行该特定动作。
大脑本身——至少在这种文化中,并不优化于感觉好或感觉坏。它优化的是减少文化本身的熵。
所以像 40Hz 这样的不同信号会增加文化的熵?是的,我想它想要减少获得这种高熵刺激的次数。基本上,它希望降低接收异步刺激的速度。它会自我组织以防止这种情况发生。
明白了,这很有道理。如果你说缩放惊奇度是指缩放 TD 误差吗?是的。你没有静态的奖励模型本身,所以你正在改变奖励模型本身。它是如何达到平衡的?
我认为这是有趣的地方。它永远不会达到平衡。我实际上在幻灯片里忘了提到这一点,但你可以认为你有两个动态系统在某种程度上争夺控制权。你的敌人是熵。熵会破坏这两个系统,推动它们趋向半吸引子状态。
在我们的代码中,我们实际上做了一些称为熵惩罚的事情。这在策略优化(PO)中非常异常。传统上在强化学习中,你实际上希望有一点熵奖励以便开始探索周围的空间。我们积极地惩罚熵,因为我们发现这很有帮助,并且细胞提供了足够的熵。
你可以认为这是两个动态系统在随时间推移推动自己产生越来越好的输出。关于样本效率,我们从未真正将其测量到导线级别,但这就是它使用刺激时的样子。它与你在现实生活中从眼睛和耳朵获得的真实电信号有多大不同?
我认为……
非常不同。我想这样来界定这个问题:我们将此作为一种材料,并在此处稍作延伸。我认为人类智能并非为计算而优化。我们是为生存优化的,你知道的,是为了繁殖和我们种族的存续。但我们并非为计算而优化。只是恰好我们运作的基本底物非常好,是智能的良好宿主。所以我会说,这与传统的输入相比会有很大不同——它可能会进化到开始看起来相似的程度,这可能会有点可怕。但我的赌注是,它会继续分化,我们将看到的是在与我们自身智能相同的底物上涌现出一种不同形式的智能。
我可以问一个后续问题吗?你能用来自大脑的真实电信号进行训练,还是说那就像……你知道的,比如长出一些眼睛然后…… 是的,比如记录它,然后再放入一个人身上。
我认为有些人已经尝试过,因为你可以培养出像迷你眼球类器官这样的东西并连接到脑部。但我认为这会变得非常可怕,因为你基本上是在从头开始重建一个人类。
是的。 好的。谢谢。
这种方案的扩展性如何? 我认为这可能是我们要为自己回答的最难问题之一。在我看来,使用生物计算作为解决方案主要有两个问题:首先你需要在这些细胞上获得前沿水平的智能;其次,你需要弄清楚如何向全球数十亿人提供这种智能。
我们大致知道如何在细胞上获得智能,因为我们都是同一底物上的智能生物;但我们尚未看到的是分布式计算。我们根本还不知道该怎么做,所以关于可扩展性的一个糟糕答案是:我不知道它是否具备扩展性。但也许更好的回答是,我们正在努力寻找答案,并且我们已经组建了一支优秀的团队,致力于发现并为扩展这项技术迈出步伐。
谢谢。谢谢你。
谢谢。