2022年末,随着ChatGPT 3.5的横空出世,让原本有些沉寂的人工智能技术再次成为人们关注的焦点。大批大型软件企业和科技创业公司,都在投入资源研发生成式大语言模型(以下简称“大模型”或“LLM”),一时间ChatGPT、Gemini、Llama等大模型竞相问世,呈现“百模大战”的繁荣场面。
大语言模型在训练和推理阶段,需要庞大的算力支持,GPU作为这两个阶段运算中重要的运算芯片,其需求量随着大语言模型的火爆而迅速提升,甚至出现供不应求的局面。受益于需求扩大,GPU芯片主要供应商英伟达(NVIDIA)的股价也快速升高。2020年7月10日,英伟达以2513.14亿美元的市值,首次超越英特尔2481.55亿美元的市值,成为全球市值最高的芯片企业。2024年4月9日,英伟达总市值达到2.1万亿美元,超越亚马逊、谷歌、Meta、特斯拉等知名企业,仅次于微软和苹果公司,位居全球第三(图 1)。
图 1 美股市值最高的20家公司和思科公司市值(单位:十亿美元)
注:本图中前20位公司(微软~宝洁)是按照当日总市值进行排名。思科公司当日市值在美股市场排名45位,列入图中是文中分析思科数据所需。
资料来源:东方财富Choice数据(数据获取时间2024/4/9)
如果熟悉互联网发展的历史,很多人可能会将英伟达联想到互联网爆发初期的思科(Cisco)。20世纪90年代末,互联网在美国快速普及,路由器、交换机等网络设备需求量暴涨,思科作为该行业的领军企业,其市值也随之水涨船高。2000年3月思科的市值达到5550亿美元,成为全球市值最高的公司。然而随着2001年互联网泡沫的破灭,思科的市值也随之下跌。今天思科市值大约为1953亿美元,虽然仍是巨头企业,但与互联网平台、云计算类型的微软、谷歌、亚马逊、Meta等企业超万亿美元的市值相比,已经有了很大的差距。
因此,有观点认为,网络时代成就的是软件、平台类企业,因为它们可以通过网络效应获得超额收益。硬件企业虽然重要,但由于需求量有限,经过早期快速普及阶段的需求爆发后,总需求趋于平稳,硬件企业难以获得超额收益,将进入平稳增长期,如英特尔、高通等亦是如此。
英伟达是否会与思科发展的轨迹相似,不能简单类地将AI时代与互联网时代、GPU与路由器进行类比,而是需要回答以下三个问题。
以LLM为代表的AI技术,对算力的庞大需求是否会延续?
在AI运算中,短期内是否会出现比GPU更加高效的芯片?
英伟达在当前生态中,是否可以被替代?
本文以下的内容,将对上述问题做出探讨。
大语言模型:
昙花一现,还是变革前夜?
英伟达能否持续高增长,一个关键因素是市场对GPU的需求是否会持续。从行业看,当前对GPU需求最大的行业,当属AI相关行业。2016年AlphaGO的推出,可以看作现代AI发展的元年。英伟达的市值从2016年开始攀升,直到2022年超越英特尔市值时,营收上依然低于英特尔(图 2)。这是因为这一时期AI应用的场景较为有限,主要包括客户分类、生产质量改进、供应链优化、金融风控、图像识别、语音识别等。由于场景的限制,部署的企业有限,大多集中在金融、消费、媒体和制造业等。同时这类分析式的AI对算力的需求较传统分析工具有所提高,但并非爆发式的增长。
图 2 英伟达与英特尔的市值、营收对比
资料来源:东方财富Choice数据
2022年末ChatGPT 3.5推出,大语言模型展现出强大的语言生成和理解能力。在自然语言生成、程序编码、机器翻译等领域展现出巨大的应用前景,吸引了行业巨头和新创公司纷纷入局。相比分析式人工智能专用性较强的范围,大语言模型几乎在所有行业都能应用。大语言模型接近人类的自然语言理解能力,使其应用呈现出与过去AI产品三个显著的不同。
一是大模型可能成为继操作系统之后新的底层应用。大模型的生成能力,可以大幅简化应用程序的开发周期;而一些简单的功能,甚至可以做到在终端直接生成相应的功能,无需安装独立应用。在2024世界移动通信大会(MWC 2024)上,德国电信展示了一款完全由大模型驱动的概念手机,用户只需输入“发送图片、推荐旅行目的地”等指令,就可用实现相应的功能,无需安装地图、照片等独立应用。
二是大模型可以代替人类操作员,通过代理(Agent)连接到其他专业应用中直接进行操作。由于大模型具有思维链的能力,能够理解上下文并进行对话,由此可以实现由大模型对执行结果的跟踪并进行改进。如微软的AutoGen开发框架可以为大模型设定不同的角色,使每个角色拥有不同的知识背景和目标约束,通过角色之间的自动对话和反馈,不断进行功能改进,以实现预期的结果(图 3)。
图 3 一个数据分析的AutoGen流程
资料来源:With Autogen, Microsoft Simplifies Putting Large Language Models to Real Work(www.bigtechwire.com)
三是,大语言模型可以通过RAG、微调和迁移学习等技术,根据具体应用场景进行定制和优化,使其可以适应各种不同的业务需求和数据情况,形成行业专属大模型或知识库系统。如彭博(Bloomberg)基于开源的BLOOM大模型,使用公司超过7 000亿词例(Tokens)的大型金融训练语料库进行训练,开发了一个专用的金融大语言模型——Bloomberg GPT,实现了市场情绪分析、新闻分类和问题回答等功能。
从本质上说,大模型是一个存储了神经网络权重的参数文件,其所具备的推理、知识检索、代码生成等功能都依赖于神经网络参数的质量。因此大模型的性能具有“0 or all”的特点,即要么全面领先,要么全面落后,很难做到在某几个领域领先。因为如果需要专业领域的模型,使用先进的大模型进行微调训练即可,无需进行重新开发,赢家通吃的效应非常明显。
从行业竞争趋势看,虽然OpenAI的ChatGPT依然处于头部位置,但从多项测试表现看,谷歌、Meta、亚马逊、微软、Mistral AI、xAI等公司的产品也在逐步缩小与OpenAI的差距。在此格局下,当前大模型厂商依然会继续大规模投入GPU算力,进行大模型的训练,以期望在竞争中胜出。从图 4我们可以看到,大模型在算力上的竞争依然在持续。因此从行业发展看,大模型对英伟达GPU仍将在相当一段时期内保持大量的需求。
图 4 主要大模型训练阶段消耗的算力
注:petaFLOP指每秒进行1000万亿次数学运算
资料来源:Epoch (2023) – with minor processing by Our World in Data. “Training dataset size” [dataset]. Epoch, “Large Language Model Performance and Compute” [original data].
CPU:昔日王者,
为何失位AI时代?
在英伟达市值暴涨之前,英特尔是芯片行业市值和营收最高的企业。微软和英特尔的“Wintel”联盟曾被认为是最成功的产业组合。英特尔的辉煌,在于在现代计算机架构中,CPU(全称Central Processing Unit,中央处理单元)是整个系统的核心控制单元,居于整个产业链最为核心的位置。
现代计算机的架构设计,采用的是冯·诺依曼架构(图 5),计算机由输入设备、输出设备、存储器、运算器和控制器构成,其中控制器和运算器的功能一般由CPU来实现。早期的CPU受限于工艺水平,无法集成大量的晶体管,因此CPU在指令集上做了取舍,首要满足通用运算所需要的逻辑运算和整型运算所需的性能,浮点运算能力则较为薄弱。为弥补CPU的这一劣势,英特尔推出了8087数学协处理器,通过设计专门的硬件架构和指令集来提升浮点运算性能,以帮助CPU更好地执行对数、指数、三角函数等科学运算。
图 5 冯·诺依曼计算机架构
资料来源:维基百科
但分离式的设计只是权宜之计,硬件上的分离,使得协处理器与CPU之间的数据交换存在极大的延迟,拖累了计算机系统的整体运行速度。此后CPU的发展思路是不断增加晶体管数量,扩展更多的控制功能,以及提升更强的算力。
1989年英特尔发布了80486 CPU,集成了120万个晶体管,增加了浮点运算的组件和指令集,整合了数学协处理器,CPU进行科学运算终于不再需要辅助芯片的支持。1996年英特尔发布了Pentium MMX CPU,增加了一组新的硬件用于提升CPU处理多媒体的效率,并添加一组MMX指令集用于操作上述硬件。Pentium MMX为英特尔后期CPU的升级迭代确定了基本的方向,即面向用户需求,在CPU内增加相应功能的硬件,并通过发布相应的指令集实现对硬件的操作,实现功能的扩展和增强。
除了在技术上不断保持领先外,英特尔深知生态的重要性。CPU性能(特别是新指令集)的发挥十分依赖操作系统的支持,英特尔与微软保持密切的合作关系,微软Windows操作系统率先支持英特尔的指令集,充分发挥CPU的新特性,获得比竞争对手同期产品更好的性能表现。因此,相比竞争对手AMD,英特尔CPU更受科学研究、工业等专业领域用户的青睐。
“Wintel联盟”可以说是在事实上主导了个人计算机行业的发展,直到AI时代的到来。AI训练带来了前所未有的算力需求,计算机的运算核心开始从CPU向GPU迁移。在CPU的发展过程中,整合了多种运算单元,但GPU始终无法完全整合。这是因为CPU的功能主要是执行通用计算,通用运算主要是整数类型运算,而当前AI相关的运算则以浮点运算为主。在计算机的设计中,浮点数和整数计算不能共通,因此即便CPU增加了大量浮点运算单元也不能用于整数运算,这会造成CPU功能和成本的极大浪费,这对于CPU厂商显然是不可接受的。
因此英特尔、AMD的CPU只是集成了基础的GPU单元,以满足普通用户对图像、视频处理的基础需求。如果用户需要更强大的GPU算力,再根据需求搭配相应的GPU,对用户和CPU厂商而言都是更加经济的行为。
所以从硬件架构和商业行为看,CPU厂商都不太可能提供具有强大AI算力的CPU。在AI时代CPU的失位,并非技术落后,而是行业算力迁移的自然结果。
GPU新王登基:
游戏中诞生的生产力
在计算机演进过程中,被中国家长视为“洪水猛兽”的游戏行业,却催生了AI产业最重要的软、硬件产品——CUDA和GPU。
1995年,微软公司推出Windows 95这一划时代的操作的系统,个人计算机迎来图形操作界面。图形界面的出现大大降低了计算机学习门槛,计算机开始从专业用户走向大众市场。在Windows 95系统中,微软做出了一个看似“不务正业”的选择,即开发Direct X API接口,为游戏开发人员提供一个统一的图形和多媒体处理接口,减少兼容性问题,简化开发流程,并提高游戏的性能和质量。通过Direct X,游戏厂商可以在Windows平台快速开发出画面精美的游戏,此举即吸引了游戏厂商的支持,也获得了个人用户对Windows电脑的青睐。
电脑游戏的蓬勃发展,意外推动了GPU对AI算法的强力支持。这是因为游戏图像的渲染是通过生成大量的多边形(通常采用的是三角形)组合来实现的。图 6展示的古墓丽影游戏角色劳拉的画质进步,可以看到左侧的第一代游戏画面的人物有明显的棱角(使用了约300个多边形),右侧第十代游戏中的人物形象已十分接近真人效果(使用了超过20万个多边形)。
图 6 古墓丽影游戏角色劳拉的画质进步
资料来源:www.gmly.com
游戏中多边形的运算有三个特点。一是,多边形一个顶点的坐标包括x、y、z三个维度的数据,再加上颜色等信息,图像数据构成了矩阵。物体的运动变化,就是矩阵的运算。二是,游戏中物体的移动并不规则,因此游戏数据要采用浮点数存储和运算。三是,游戏场景设计往往非常复杂,需要大规模的并行运算。
为满足运行游戏的性能需求,GPU制造商采取了和CPU不同的设计模式。以矩阵乘法为例,矩阵运算可以拆分成多个独立的计算步骤,无需区分先后顺序,因此可以并行运算。GPU的设计就对此特征采取了优化,即设计大量小核心,可以并行运行数千个线程,每个线程只执行简单的数值运算(图 7)。
图 7 GPU矩阵运算示意图
资料来源:英伟达官方网站(www.nvidia.cn)
GPU的这种大规模并行运算的特性,让黄仁勋思考,能否让那些大规模数值运算也通过GPU来运行?
英伟达的策略是,为开发人员提供一个通用的程序开发平台,使程序员在主流开发语言中,能够直接调用相关函数,而无需关注硬件层面的实现。这促成了英伟达CUDA(Compute Unified Device Architecture,统一计算设备架构)的推出。CUDA包括编程语言、编译系统和函数库三个层次。程序员可以继续使用熟悉的C、Python等语言编写程序,对GPU资源的调度由编译系统完成,程序员只需关注程序的逻辑,这大幅降低了基于GPU程序开发的难度。
2012年,多伦多大学荣誉教授Geoffry Hinton和他的团队使用CUDA技术开发的图像识别软件AlexNet参加ImageNet ILSVRC图片识别挑战赛,以惊人的优势获胜(速度超过第二名数十倍,错误率比第二名低了10%)。这次比赛成为了黄仁勋的突破口,业界开始重视英伟达的CUDA技术,并与之共同推广计算生态。在工业领域,如流体力学、有限元分析、油气开发等领域纷纷使用CUDA加速软件的运行,将原先需要数天才能得结果的工作,缩短到几个小时即可得出结果。在AI领域,Google、Meta等公司与英伟达合作推出基于CUDA加速的TensorFlow等底层AI技术。
CUDA为英伟达奠定了技术基础,而真正推动英伟达爆发式增长的,则是大模型研发的“军备竞赛”。图 8是一个大模型推理过程中一个阶段的可视化图形,可以看到基于神经网络算法的大模型是庞大的矩阵运算,这正是英伟达GPU最为擅长的运算类型。大模型动辄数百亿的训练参数,带来算力的庞大需求,使得GPU接替CPU,成为AI时代最为基础的算力设施。
图 8 nano-gpt神经网络运算部分可视化
资料来源:bbycroft.net
CUDA最强的护城河是软件和芯片的协同设计。从软件技术上看AMD所支持的开源OpenCL具有和CUDA相似的功能,并且可以运行在其他GPU之上。但要真正挑战CUDA还很遥远,CUDA有着数十年的高性能程序库的积累,以及基于这些程序库上面社区开发的各种高性能框架代码,要进行大规模的替换显然不太可能。而在高端GPU领域,目前还没有任何一家厂商的芯片算力能与英伟达相抗衡。
从产业生态看,英伟达更像“Wintel”联合体,居于AI时代的主导位置。正如打破“Wintel”联盟的是智能手机,要打破英伟达在AI时代的地位,可能需要一个全新的行业出现。
异构计算崛起,
英伟达还能辉煌多久?
2023年12月英特尔宣布推出全新的酷睿Ultra系列CPU,在CPU内部集成了NPU(Neural Processing Unit,神经网络处理单元),用于加速神经网络计算,以便在本地更快速地运行AI程序。几乎在同一时期,AMD在其新的锐龙8000系列CPU中也提出了Ryzen AI的概念,通过集成NPU加速AI运算。
除了PC芯片两大巨头之外,专注手机芯片的高通也推出了骁龙X Elite/Plus CPU,以ARM架构更加高效的能效比为差异化优势,进军PC市场。而苹果电脑则以M系列芯片统一内存架构的优势,在需要大量GPU显存的推理场景取得优势。
竞争对手的纷纷入局,英伟达的领先优势是否可以持续?
分析这一问题,需要区分大模型的两个阶段,即训练阶段和推理阶段。训练阶段是大模型的研发阶段,在这个阶段,模型会通过输入数据进行多次迭代,不断调整模型参数,以使模型能够更好地拟合数据并提高预测准确性。这个过程需要大量的计算资源。推理阶段是指在模型训练完成后,将其应用于实际数据进行预测或推断的阶段,也就是应用阶段。在推理阶段,模型接收输入数据,并利用之前学习到的参数和规律来进行预测、分类、生成等任务。推理阶段通常需要较少的计算资源,因为模型的参数已经在训练阶段被确定,不需要进行参数更新。
上述厂商推出的芯片主要用于大模型推理阶段的加速。在现阶段,大模型的推理工作主要由服务器端来提供服务,算力负载集中在服务器端。因此大模型企业对英伟达的GPU有大量的需求,以支持海量用户的推理请求。但这一趋势在发生变化,大模型落地应用的一个重要场景是智能助理(Agent),这需要个人电脑或手机在一定程度上摆脱对网络的依赖,具备在本地运行大模型的能力。
要实现大模型本地推理的算力,CPU异构运算的方式可能会逐步成为主流,即“CPU+内置GPU+NPU”的方式,这和历史上CPU+数学协处理器的方式比较类似。短期内大模型以神经网络为核心算法不会发生大的变化,完全可以采用专门硬件(NPU)来加速运算。大模型的本地化运行,在一定程度上会减少大模型厂商对英伟达CPU的需求。
但是在训练阶段,大模型的规模法则(Scaling Law)依然存在,即大模型的性能与训练规模依然正相关(图 9)。此外,现在的大模型主要集中在自然语言处理方面,多模态大模型还未充分发展,大模型要成为真正的通用人工智能,还需要实现多模态的能力,这相比现在的训练,需要更加庞大的GPU算力。
图 9 大模型MMLU测试成绩与训练数据规模关系
资料来源:Epoch (2023) – with minor processing by Our World in Data. “Training dataset size” [dataset]. Epoch, “Large Language Model Performance and Compute” [original data].
注:MMLU是一个大规模、多任务的语言理解项目,旨在评估和提升语言模型在各种语言理解任务上的能力,包括历史、文学、科学、数学等。MMLU并不能完全代表大语言模型的性能。
从大模型训练过程看,未来大模型的算力竞赛依然会持续相当长的一段时间,对GPU会存在大量的需求,这一市场基本被英伟达所垄断,可以预测英伟达的高速增长依然会持续。
在推理阶段,英特尔和AMD的异构CPU会逐渐成为主流。双方的技术路线也比较一致,预计会保持现有的竞争格局。值得注意的是高通(ARM架构CPU)的入局。ARM多核心、低功耗的架构,在过去依赖单核性能的时代是其一大劣势。而在今天操作系统和软件对多线程的优化越来越成熟,多线程运算需求越来越大,ARM架构将逐渐获得更多的应用场景(超级计算机富岳采用的就是ARM架构的CPU)。苹果M系列CPU的优势是统一内存架构,显存与内存不做区分,这在PC内存普遍配置较低的时代具有一定的优势。但随着PC异构计算的推广、内存配置的增加,苹果的这一优势难以持续,AI时代苹果面临的挑战似乎更加严峻。