最近,以ChatGPT为首的生成类模型已经成为了人工智能的新热点,硅谷的微软、谷歌等都纷纷大举投资此类技术(微软100亿美元入股ChatGPT背后的OpenAI,谷歌也于近日发布了自研的BARD模型),而在中国以百度等为代表的互联网科技公司也纷纷表示正在研发此类技术并且将于近期上线。
以ChatGPT为代表的生成类模型有一个共同的特点,就是使用了海量数据做预训练,并且往往会搭配一个较为强大的语言模型。语言模型主要的功能是从海量的现有语料库中进行学习,在经过学习之后可以理解用户的语言指令,或者更进一步根据用户的指令去生成相关的文字输出。
生成类模型大致可以分成两大类,一类是语言类生成模型,另一类是图像类生成模型。语言类生成模型以ChatGPT为代表,如前所述其语言模型不仅可以学习理解用户指令的意义(例如,“写一首诗,李白风格的”),而且在经过海量数据训练之后,还能够根据用户的指令生成相关的文字(在上例中就是写一首李白风格的诗)。这意味着ChatGPT需要有一个足够大的语言模型(Large Language Model,LLM)来理解用户的语言,并且能有高质量的语言输出——例如该模型必须能理解如何生成诗歌,如何生成李白风格的诗歌等等。这也意味着语言类生成式人工智能中的大语言模型需要非常多的参数,才能完成这类复杂的学习并且记住如此多的信息。以ChatGPT为例,其参数量高达1750亿(使用标准浮点数的话会占用700GB的存储空间),其语言模型之“大”可见一斑。
另一类生成类模型是以扩散模型(Diffusion)为代表的图像类生成模型,典型的模型包括来自OpenAI的Dalle,谷歌的ImaGen,以及目前最热门的来自Runway AI的Stable Diffusion。这类图像类生成模型同样会使用一个语言模型来理解用户的语言指令,之后根据这个指令来生成高质量的图像。与语言类生成模型不同的是,这里使用到的语言模型主要用语理解用户输入,而无需生成语言输出,因此参数量可以小不少(在几亿数量级),而图像的扩散模型的参数量相对而言也不大,总体而言参数量大约在几十亿数量级,但是其计算量并不小,因为生成的图像或者视频的分辨率可以很高。
生成类模型通过海量数据训练,可以产生前所未有的高质量输出,目前已经有了不少明确的应用市场,包括搜索、对话机器人、图像生成和编辑等等,未来可望会得到更多的应用,这也对于相关的芯片提出了需求。
01 生成类模型对于芯片的需求
如前所述,以ChatGPT为代表生成类模型需要在海量的训练数据中进行学习,才能实现高质量的生成输出。为了支持高效率训练和推理,生成类模型对于相关芯片也有自己的需求。
首先就是对于分布式计算的需求。ChatGPT这类语言类生成模型的参数量高达千亿,几乎不可能使用单机训练和推理,而必须大量使用分布式计算。在进行分布式计算时,对于机器之间的数据互联带宽,以及计算芯片对于这类分布式计算(例如RDMA)就有了很大的需求,因为很多时候任务的瓶颈可能并不在计算,而是在数据互联上面,尤其是在此类大规模分布式计算中,芯片对于分布式计算的高效率支持更加成为了关键。
其次是内存容量和带宽。虽然对于语言类生成模型分布式训练和推理不可避免,但是每个芯片的本地内存和带宽也将很大程度上决定单个芯片的执行效率(因为每个芯片的内存都被使用到了极限)。对于图像类生成模型来说,可以把模型(20GB左右)都放在芯片的内存中,但是随着未来图像生成类模型的进一步演进,它对于内存的需求可能也会进一步提升。在这个角度来看,以HBM为代表的超高带宽内存技术将会成为相关加速芯片的必然选择,同时生成类模型也会加速HBM内存进一步增大容量和增大带宽。除了HBM之外,CXL等新的存储技术加上软件的优化也有将在这类应用中增加本地存储的容量和性能,估计会从生成类模型的崛起中获得更多的工业界采用。
最后是计算,无论是语言类还是图像类生成类模型的计算需求都很大,而图像类生成模型随着生成分辨率越来越高以及走向视频应用,对于算力的需求可能会大大提升——目前的主流图像生成模型的计算量在20 TFlops左右,而随着走向高分辨率和图像,100-1000 TFLOPS的算力需求很有可能会是标准。
综上所述,我们认为生成类模型对于芯片的需求包括了分布式计算,存储以及计算,可谓是涉及了芯片设计的方方面面,而更重要的是如何把这些需求都以合理的方法结合到一起来确保某一个单独的方面不会成为瓶颈,这也将会成为一个芯片设计系统工程的问题。
02 GPU和新AI芯片,谁更有机会
生成式模型对于芯片有了新的需求,对于GPU(以Nvidia和AMD为代表)和新AI芯片(以Habana,GraphCore为代表),谁更有机会能抓住这个新的需求和市场?
首先,从语言类生成模型来看,由于参数量巨大,需要很好的分布式计算支持,因此目前在这类生态上已经有完整布局的GPU厂商更有优势。这是一个系统工程问题,需要完整的软件和硬件解决方案,而在这个方面,Nvidia已经结合其GPU推出了Triton解决方案。Triton支持分布式训练和分布式推理,可以把一个模型分成多个部分到不同的GPU上去处理,从而解决参数量过大一个GPU的主存无法容纳的问题。未来无论是直接使用Triton,还是在Triton的基础上做进一步开发,都是拥有完整生态的GPU更加方便一点。从计算上来看,由于语言类生成模型的主要计算就是矩阵计算,而矩阵计算本身就是GPU的强项,因此从这一点来看新的AI芯片相比GPU的优势并不明显。
从图像类生成模型来看,这类模型的参数量虽然也很大但是比语言类生成模型要小一到两个数量级,此外其计算中还是会大量用到卷积计算,因此在推理应用中,如果能做非常好的优化的话,AI芯片可能有一定机会。这里的优化包括大量的片上存储来容纳参数和中间计算结果,对于卷积以及矩阵运算的高效支持等。
总体来说,目前这一代AI芯片在设计的时候主要针对的是更小的模型(参数量在亿级别,计算量在1TOPS级别),而生成模型的需求相对而言还是比原来的设计目标要大不少。GPU在设计时以效率为代价换取了更高的灵活度,而AI芯片设计则是反其道而行之,追求目标应用的效率,因此我们认为在未来一两年内,GPU仍将会在此类生成式模型加速中独占鳌头,但是随着生成式模型设计更加稳定,AI芯片设计有时间能追赶上生成式模型的迭代后,AI芯片有机会从效率的角度在生成式模型领域超越GPU。