2024年9月20日

事实上,我们现在的“神经网络”是用简单的数学公式模拟“神经元”(和它们之间的连接),然后堆海量的简单计算单元提供海量的算力来完成计算。

我们可以把一组运放串起来,利用阻值模拟神经元对某个连接的衰减程度;然后输入信号,它的输出就会按这些信号的总影响而变动了。

学过点电路的都知道,其实单个三极管/场效应管都可以等效为一个运放。只是它的伏安特性曲线不太理想罢了(不像运放,几乎是直线):

剩下要解决的问题就是如何动态的控制接入电阻了。这其实可以利用场效应管(类似SSD存储单元)的特性,通过在基区存储的电荷量控制它的导通状态……

假设100个晶体管可以模拟一个神经元(以及50个连接),那么500亿的集成度就相当于50亿个参数的神经网络。和GPU模拟几十亿参数需要在热烘烘的风扇声中运转许久不同,这个东西可以在几个纳秒内完成一次计算!

当然,和数字电路能达到的精度相比,模拟集成电路的精度一直是个严重的、难以解决的问题。比如QLC的SSD,一共才2^4=16个状态,速度、寿命已经大受影响了。

另一方面,我们的人工神经网络本身也还远未成熟,整体架构一直在变化、调整中;训练模型也需要随时观察、调整,以避免训练走入死胡同。而直接用晶体管模拟神经元会锁死网络架构,除非有人想办法改良了基础结构……

比如,上面的纯模拟方案可以看作牺牲规模换速度;但实际上,或许几个纳秒出结果并不重要,规模更重要——那么,是否可以“以晶体管/运放为模拟CPU”,辅以AD-DA转换电路以及数字锁存器,从而在一颗芯片上集成几百万甚至几千万、几亿个“模拟CPU核心”(而不是堆叠海量晶体管做ALU),从而更高效的支持神经网络计算呢?

总之,想要真的做出来,这个东西需要克服的技术困难还非常非常多。尤其是,过去人类只大力发展了能大量出货、赚钱的数字集成电路,模拟电路发展不大,集成度一直不高;想要实现“模拟电子脑”,显然还有很长的路要走。

当然,上面只是我个人的胡乱猜测,或许压根没什么可能性。外行胡扯而已,或许只有火箭烧水洗煤水准……

总之,如今我们用GPU跑AI,并不是因为GPU就是最终极、最适合AI的设计方案,而是它足够灵活、是如今能得到的最便宜最强大的算力芯片而已。

在AI的研究、探索阶段,利用已有软硬件基础设施,尝试尽可能多的方向,这是更重要的。当这个领域发展成熟后,一定会有更优化、更直接、更强大、更高效的专用芯片方案,彻底解决AI的规模难题和功耗难题。

发表评论

邮箱地址不会被公开。 必填项已用*标注