前几天刷到一个视频,有人晒自己的电脑跑AI模型,显卡风扇转得跟直升机似的,评论区一堆人问:你这显卡多少钱?为啥非得用显卡?CPU不行吗?
这个问题问得好。我当初也这么想过,直到我自己试着跑了个开源模型,才明白那帮做AI的为啥成箱成箱地买显卡,跟囤大米似的。
先说个真事。我去年拿自己那台老电脑试跑一个叫LLaMA的模型,7B参数那种,算是最小的版本。电脑配置是i7-8700K,32G内存,一张GTX 1060 6G显卡。结果你猜怎么着?跑起来直接卡死,画面定格,鼠标动不了,最后只能按机箱重启键。后来换了个办法,只用CPU跑,能动了,但生成一句话要等40秒,中间我还泡了杯茶,回来它刚打完第一个句号。
问题出在哪?CPU和显卡干活的方式完全不同。
CPU就像一个大厨,什么菜都会做,但一次只能炒一个菜。显卡呢,像一千个小工,每个人只会切土豆丝,但一千个人同时切,一秒能切一堆。AI训练这件事,本质上就是把一个巨大的数学题拆成无数个超级简单的加减乘除,然后让几千几万个小工同时算。CPU这种大厨去干这活,等于让米其林三星主厨去切两万斤土豆,不仅慢,还浪费。
再说内存。普通电脑的内存,32G听起来不少吧?但一个像样的AI模型,参数文件动不动就几十G上百G。比如GPT-3有1750亿个参数,光把这些参数存进显存,就需要至少350G。普通显卡的显存才多少?RTX 4090顶配也就24G。所以搞AI的人只能把模型拆成碎片,分到不同显卡上,让它们协同工作。一块卡装不下,那就两块、四块、八块,甚至上千块。
我有个朋友在搞AI创业,他们公司租了16张A100显卡,80G显存那种,一张卡市价十万左右。16张就是一百六十万。我问他不心疼吗?他说心疼归心疼,但没这些卡,模型根本跑不动。他试过用8张卡训练一个130亿参数的模型,跑一次要三天,中间只要有一张卡温度过高降频,整个训练就得重来。后来换了16张卡,时间缩短到一天半,而且温度更稳,因为每张卡分摊的算力少了。
你可能觉得,那为啥不用云服务按小时租?确实可以,但训练一个中型模型,用云端显卡跑,费用大概在几十万到几百万人民币不等。OpenAI训练GPT-4,据估算用了上万张显卡,跑了几个月,电费加硬件折旧,烧掉的钱够买好几架私人飞机。
还有个更坑的事,叫显存溢出。我上次试跑一个叫Stable Diffusion的模型,就是那个画图的AI。我显卡是RTX 3080,显存10G,按理说够用。结果跑了一张1024×1024的图,到一半突然报错:CUDA out of memory。意思是显存满了,模型被挤死了。后来我把batch size调成1,一次只算一张图,勉强跑动,但速度慢得像蜗牛爬。那些能一次生成几十张图的大佬,背后都是插着好几张显卡,每张卡分几个批次,同时算。
有人说,那搞AI的人为啥不用专门的AI芯片,比如谷歌的TPU?答案是贵,而且不通用。TPU就像专门给特斯拉修的充电桩,你开别的车充不了。显卡呢,就像公共充电站,什么车都能充,而且技术生态成熟,各种框架都支持。所以即便显卡不是最完美的方案,但它是目前最现实的选择。
我认识一个做AI训练的哥们,他电脑桌旁边常年摆着一个工业风扇,对着机箱吹。他说他四张RTX 3090跑起来的时候,机箱温度能到85度,房间里跟蒸桑拿一样。冬天倒挺暖和,夏天只能光膀子干活。有一次他忘了开风扇,一张显卡直接烧了,那表情比失恋还痛苦。
说到底,AI训练需要那么多显卡,就是因为现在的AI模型实在太大太笨。它不像人脑那样能举一反三,它只能靠海量数据硬算。你给它看一亿张猫的照片,它才能勉强认出一只猫。这个学习过程,就是反复做数学题,每次算错就调整参数,再算,再调,直到算对为止。每一轮调整,显卡都在拼命算几十亿次乘法。没有几十上百张显卡,等你算完,黄花菜都凉了。
所以下次看到那些AI公司晒显卡墙,别觉得他们炫富。那是真的被逼无奈,就像建筑工地必须用挖掘机,你不能指望一帮人拿勺子挖地基。显卡就是AI世界的挖掘机,越多越好,越快越好,哪怕贵得离谱,也得咬牙上。
至于我们普通人,用用现成的AI工具就行了。跑模型的苦活累活,让那些显卡去扛吧。