Cerebras芯片实现Mistral秒级超快推理

banq


Cerebras芯片给 Mistral 的 Le Chat 带来了超快的推理功能。前几天,Mistral对他们的 Le Chat 网页界面(就是他们的 ChatGPT 版本)进行了一次大升级,其中一个特别厉害的功能就是性能的提升。

其实,这个性能提升是因为他们把模型放在了 Cerebras 的系统上运行,官方文档说:

Cerebras Inference 是全球最快的 AI 推理提供商,在Llama 3.3 70B、Llama 3.1 405B以及最近的DeepSeek R1 70B中创下了性能记录。

我们很高兴将我们的技术带入 Mistral——特别是旗舰 123B 参数 Mistral Large 2 模型。使用我们的 Wafer Scale Engine 技术,我们在文本查询中实现了每秒超过 1,100 个令牌。

这一性能得益于 Wafer Scale Engine 3 基于 SRAM 的推理架构与与 Mistral 研究人员合作开发的推测解码技术。

Cerebras 目前在推理性能上的无敌表现:

快速推理极大地改善了聊天和代码生成的用户体验——这是当今最流行的两个用例。在上面的例子中,Mistral Le Chat 立即完成了编码提示,而其他流行的 AI 助手则需要长达 50 秒才能完成。

什么是Cerebras 芯片?
Cerebras 芯片是由 Cerebras Systems 公司开发的一种专为人工智能和高性能计算设计的处理器。
Cerebras 芯片采用晶圆级设计,将整个晶圆作为单一芯片,面积远超传统芯片,集成了更多晶体管和计算核心。
芯片集成大容量高带宽内存,减少数据传输延迟,提升计算效率。
设计上注重低延迟,特别适合实时处理任务。

Cerebras CS-3 与 Nvidia B200:2024 款 AI 加速器对比

Cerebras CS-3
CS-3在Cerebras AI Day上发布,搭载了第三代Cerebras晶圆级引擎,拥有4万亿个晶体管。这个巨大的芯片包含90万个AI核心,通过片上结构连接,提供125 petaflops的AI计算性能。CS-3支持12TB到1.2PB的外部存储,能够轻松训练万亿参数模型。它的功耗为23kW,采用15U服务器设计,可在本地或云端使用。

Nvidia DGX B200
Nvidia B200“Blackwell”在GTC 2024上发布,是H100 GPU的继任者。B200由两个通过NVLink连接的GPU芯片组成,总共有2080亿个晶体管,提供4.4 petaflops的FP16 AI计算能力,并配备192GB内存。DGX B200有两种服务器形式:10U服务器配备8个B200 GPU,提供36 petaflops的计算能力和1.5TB内存,功耗为14.3 kW;全机架解决方案DGX NVL72通过NVLink连接72个B200 GPU,提供360 petaflops的计算能力,功耗为120kW。B200产品预计在2024年第四季度发货。

计算性能
CS-3凭借90万个专用AI核心,提供125 petaflops的FP16 AI计算性能。相比之下,单个B200 GPU提供4.4 petaflops,8个GPU的DGX B200提供36 petaflops。因此,单个CS-3的性能相当于约3.5个DGX B200服务器,但占用空间更小,功耗更低,编程模型也更简单。

内存
训练大型AI模型时,内存容量是关键。CS-3采用独特的内存架构,支持12TB到1.2PB的外部存储,远超B200 GPU的192GB内存。例如,1.2PB的CS-3可以训练24万亿参数的模型,内存容量是B200的6000倍,DGX B200的700倍,NVL72的80倍。

互连带宽
CS-3通过晶圆上布线连接90万个核心,提供27 PB/s的总带宽,远超DGX B200的14.4TB/s NVLink带宽。即使与全机架NVL72相比,CS-3的带宽也高出200倍。

能效
CS-3的功耗为23kW,DGX B200为14.3kW。但CS-3的性能更高,每瓦性能提升2.2倍,电力成本减少一半以上。

总结
Cerebras CS-3和Nvidia DGX B200都是强大的AI训练平台。CS-3在内存容量、计算性能和互连带宽上具有显著优势,尤其适合需要高效训练大型AI模型的团队。CS-3现已上市,能够满足大规模AI训练的需求。

为什么训练性能好的芯片在推理性能上却不太好?
推理是完全可并行的,它只是矩阵乘法,可以在非常专业的芯片上完成,包括放弃通常的二进制逻辑结构的模拟芯片。
而训练是一个并行化的瓶颈,因为它需要反向传播,这是一种链式规则微积分运算,而且更为复杂,因此它需要更传统的架构。

神经网络NN是由很多函数串联起来的,比如 f(g(h(x)))。在推理(和训练的前向传递)时,你是从内到外计算的,所以先算 h(x),然后用它算 g,再算 f。
在反向传递时,计算图的方向相反,你先对 f 求导,然后对 g,最后对 h。

当然,训练时也有很多并行化的方式。你可以按批次维度并行化,也可以把模型拆分到不同的 GPU 上,用流水线并行等等。
虽然你需要在某个时候同步并累积梯度,但除此之外,前向和反向传递其实很像。比如,线性层的反向传递其实就是两个矩阵乘法:一个用来计算权重的导数,另一个用来计算输入的导数,然后把这个梯度传给上一层继续计算。
所以,虽然有办法在某种程度上并行化训练,但计算导数显然比进行大量乘法更复杂……

NN 的前向传递非常简单,可以在专门的模拟硬件上完成,但梯度下降则不能。这就是为什么推理可以变得更加高效,而训练是瓶颈。

此外,训练的后向传递需要内存来存储和检索所有激活和梯度,而对于已经训练过的模型的推理不一定需要以可访问的方式保存该信息,它只需要将信号向前传递,这就是为什么可以使用模拟硬件或更简单的专用架构进行推理。