Midjourney 承认使用 TPU 致研究倒退一年

Midjourney 承认因使用谷歌 TPU 导致研究进度倒退一年,团队后悔没有坚持用英伟达芯片。切换硬件带来的软件兼容性问题和调试困难是主因,这证明了英伟达 CUDA 生态的巨大优势。


硬换芯片的代价:Midjourney 白干一年

做东西最怕什么?最怕做到一半发现工具拿错了。Midjourney 这帮人,就是搞那个很能画画的人工智能的团队,最近在网上倒了一肚子苦水。

他们说,因为之前没有死心塌地只用英伟达的芯片,非要去试试谷歌家的 TPU,结果整个研究的进度活生生被拖慢了一年。

一年啊朋友们,这时间都够那只著名的甲虫再火一轮了。

核心意思就这一句话:在人工智能这个行当里,换个芯片不是换个螺丝钉那么简单,它就像让你突然扔掉惯用的右手去吃饭,不别扭才怪。

省小钱可能亏大时间

为啥要换芯片?往往是听说新芯片更便宜或者在某些特定情况下跑得更快。但你得想明白,你真正宝贵的是研究人员的脑子和他们写代码的时间。Midjourney 这次交的学费,就是买了一个巨大的教训:硬件本身的那点差价,跟软件生态带来的麻烦比起来,简直不值一提。

研究团队的日常就是折腾代码

搞研究不像咱们装个游戏机,插上卡带就能玩。

他们每天的工作就是在 PyTorch 或者 JAX 这种框架上写训练代码。

PyTorch 就像一个超大、超热闹的自由市场,里面有数不清的免费工具和已经写好的零件,随便拿过来就能改改用;而 JAX 呢,相对像个需要你自己带齐工具还限时使用的专业车间。

Midjourney 遇到的问题是这样的:他们必须在 TPU 上用 JAX 这套东西来训练模型,因为 TPU 对 JAX 支持最好。然后训练完了,他们又得把模型搬回到英伟达的 GPU 上,用 PyTorch 这套来跑推理,也就是实际干活出图。

问题就出在这里了。每次他们想从市场上,也就是从那些开源的 PyTorch 代码里捡点好东西用,都得先费劲巴力地把它翻译成 JAX 的格式,才能在 TPU 上训练。这个过程不光是累,关键是一不小心就会翻错,翻错了就得花时间去排查。

两头来回倒腾最累人

更让人头大的是调试。写代码就像做菜,菜做咸了你得知道是盐放多了。代码出错了,你也得找到是哪一行指令出了问题。现在他们的锅有两个灶台,一个烧的是 TPU,一个烧的是 GPU。今天在 TPU 上跑得好好的代码,搬到 GPU 上可能就炸了。

到底是 TPU 的问题,还是 GPU 的问题,还是代码翻译的时候出的问题?找这个毛病比找自己丢的袜子还费劲。因为你要同时懂两种灶台的脾气,还得懂两种锅的材质。这不是一个研究人员应该花精力的地方,他们本来应该去研究怎么让画更漂亮,而不是研究怎么让代码在两个芯片上都能跑起来。

专用工具往往不万能

很多人有个错觉,觉得专用工具一定比通用工具强。就像有人觉得菜刀只能切菜,所以一定比瑞士军刀锋利。这话在硬件世界里,对,也不全对。

推理省钱但研究费命

TPU 这类芯片,设计的时候就是为了专门干一件事的,比如快速做推理,也就是你给它一张猫的图,它能快速认出这是猫。

这件事上,它可能确实效率高,省电还省钱。但问题来了,Midjourney 他们不用 TPU 做推理,他们用回英伟达的 GPU 做推理。这难道不奇怪吗?如果他们真的觉得 TPU 在推理上既经济又高效,何必多此一举搬回去呢?

唯一的解释就是,英伟达的 GPU 在干推理这活儿的时候,综合算下来其实并不贵,甚至可能更划算。因为英伟达的芯片有一个巨大的秘密武器,叫 CUDA。

CUDA 就是一个巨大的、成熟的、人人都用的工具箱。因为用的人多,全世界的聪明人都在为这个工具箱写说明书、做小零件、找 Bug。所以,你在这个工具箱上干活,任何问题基本上都能找到现成的解决办法。而用 TPU,你可能得自己造扳手。

开源代码的山很重要

今天搞人工智能,没人是从零开始的。大家都是站在开源社区的巨人肩膀上。这个社区里百分之九十九的代码、论文附带的实验代码、经典的模型实现,都是基于英伟达的芯片和 CUDA 写的。这意味着,如果你坚持用英伟达,你就拥有一整座可以随时搬来用的积木山。

你想搭个城堡?直接从山上拿积木就行。但如果你选择了 TPU,你就得先把这些积木从山上一块块搬下来,打磨成自己能用的形状,再试着搭。

更惨的是,很多积木你根本就搬不动,因为它们跟原来的底座焊死了。所以 Midjourney 的损失,不仅仅是那一年自己写代码的时间,更是错过了整整一年里开源社区产出的无数新积木。一年后你终于能跑了,发现别人已经用新积木搭了摩天大楼。

别人的经验就是你的前车之鉴

市场上不光 Midjourney 一家遇到过这种事。很多做研究和商业应用的老手,早就想明白了这件事。

选芯片就是选生态

在技术圈子里,有句话说得很糙但理不糙:你用谁家的芯片,就是把自己绑在谁家的船上。

英伟达这条船最大、最稳、船员最多。船大了,就算稍微慢一点或者票价贵一点,但胜在安全,不会翻。遇到风暴,也就是技术难题,你一嗓子能喊来一堆人帮忙。而其他船,可能新一点、快一点,但船上的人少,万一机器坏了或者你不会操作,可能得自己研究说明书。

对于想把产品做出来的商业公司来说,稳定和速度比那一点点的硬件成本重要太多了。你就琢磨一下,损失一年的时间,公司的竞争对手能跑出去多远?这中间少赚的钱、丢掉的用户,足够买多少块芯片?

领导的固执有时是好事

英伟达的老大黄仁勋经常说一句话,说人们需要被提醒他们的产品有多好。这话听着挺狂,但 Midjourney 这事一出,发现还真是这么回事。有时候你觉得产品贵,可能只是你没算清楚用便宜货带来的其他成本。那些便宜货可能让你多雇十个人写适配代码,让你多用三个月去调试稳定性,最后算下来,最便宜的反而是最贵的。

所以很多老手在选芯片这事上,变得越来越保守。他们不是说不想尝试新东西,而是他们赌不起。他们宁愿把精力放在怎么让自己的模型更聪明上,而不是怎么让模型在自家三号芯片上跑起来。这笔账,算过的人都懂。看着别的团队在那折腾,自己就用着稳当的英伟达芯片,飞快地迭代研究,这感觉就像别人在那修车,你已经开车到下一个加油站了。