一台变两台
停更的两个月 · 第 4 篇,共 4 篇
别的先不说,我欠大家一个更正。
在七月那篇里我写过,整条流水线跑在我书桌上的一台机器上,所有东西都得塞进一块消费级显卡里。这两句话写的时候都是对的,现在不对了。它现在跑在两台电脑上,这件事我早该说。这是那篇之后这段时间的四篇笔记里的最后一篇。之所以要写它,是因为我不想一边讲自己做了什么,一边让那句过时的话就那么摆在那儿没人纠正。
第一台就是我当时说的那台:一台 Windows 主机,显卡是 RTX 5080,16GB 显存。画画和配音到现在都还是在这块卡上做的。16GB 不是我为了行文好看随手写的一个整数,这个项目里每一个跟图像有关的决定,都会撞上这块天花板。模型要量化到 4 位才塞得进去(量化就是用更低的精度来存模型里的数字,损失一点质量,省下一大块内存)。两个吃显存的大程序要是同时跑在卡上,就会挤到系统内存里去,慢得像爬。如果你一直奇怪,一条本地流水线为什么对”哪个智能体什么时候跑”这么讲究,原因就在这儿:快的卡只有一块,而且内存不大。
第二台是一台 MacBook Pro,M2 Max 芯片,32GB 统一内存。把它拉进来,一是想让语言模型用得更大一些,二是 16GB 要同时装下一个画画的和一个审图的,实在太挤了。
我原本指望它是什么,它实际上是什么。
我原本的指望得先说清楚,不然读起来就像我早就心里有数似的。我原本以为,内存多了,画就能好。模型可以更大,精度可以更高,第一篇里说的那种几个人糊成一张脸的毛病也会少一些。多买内存,就等于买到质量。这是很典型的工程师思路,可放在这里是错的。
从纸面上看,这台 Mac 能跑同样的图像模型。可实际跑起来也得是 4 位,跟 5080 一样。32GB 里面,显卡大概只能用到三分之二;而这一代苹果芯片,也没有很多图像代码默认要用的那种 16 位浮点运算的硬件支持。所以质量上根本没有提升的空间,得到的只是一个更慢的第二画师,精度还是一样。至于真正有可能解决脸的问题的那件事,也就是给某个角色的脸训练一个小的适配器,还是得用 NVIDIA 的卡,也就还是得回到 5080 上。
好在我在把作画智能体挪过去之前,先把这些查清楚了。不然我得花上一个星期去移植整套工作流,最后换来的是一样的画,只是更慢。
这台 Mac 真正擅长的,是语言。
阅读智能体和审帧智能体干的都是”读一段东西,做一个有结构的判断”这种活儿。它们需要的是一个更大的脑子,而不是一支更快的笔。我在 Mac 上放了一个 350 亿参数的模型,跟之前在 5080 上跑的 140 亿参数的模型做了对比。拿 5 回书来试,大模型标错的句子是 0 处,小模型是 3 处;把对话当成旁白塞进去的,大模型 0 处,小模型 1 处;最长的一个片段,大模型是 214 个字,小模型是 343 个字。代价是多花 12% 的时间:34.8 分钟对 31 分钟。多等一会儿,换来更好的结构,这笔账怎么算都划得来。
不过,这正是我在讲那本书的那一篇里提到的那个模型:它一边切分,一边悄无声息地把小说校对了一遍。结构是更好了,可文字已经不完全是原书了。这个升级我之所以能留下来,全靠它后面那道工序,把每个片段都对回原文的那一段。脑子大一点没问题;可脑子大了却没人把关,那就是披着进步外衣的倒退。
审查画面的那个智能体也放在了 Mac 上,这样它就不用再跟作画智能体轮流用那块 16GB 的卡了。听起来是件小事,可当你先画完一整回的图,再让另一个模型把这些图一张张看一遍的时候,就不是小事了。原来要排队的两件活儿,现在两台机器各干各的。
所以说,这台 Mac 是多出来的一块卡,而不是在我卡住的那件事上更好的一块卡。
“一切都得塞进一块消费级显卡”依然是这个项目里最有意思的约束,只不过屋里已经不止一台电脑了。
七月那句话的精神,我想留着,因为那个精神就是这个项目本身:不上云,不按帧付 API 的钱,不用任何我在自己家里跑不起来的模型。七月答应过的那篇讲许可的文章还会写,它也正是我为什么不会去碰那些效果漂亮、许可条款却很苛刻的模型的原因。这些都没有因为我打开了一台笔记本电脑而改变。
变的是,“本地”不一定非得是”一块卡上跑一个程序”。它也可以是书桌上的两台机器,各自去干对方不擅长的活儿。有显卡的那台负责画和说,Mac 负责读和判断。现在每当我脱口而出”这件事被硬件卡住了”,都得先问问自己:说的是哪一台?
可我真正在意的那条死胡同,它一点也没碰到。三兄弟同框,画出来还是不到三个人。这不是内存的问题,而是第一篇里讲的那三个参考图位置的问题;两台机器加再多内存,也多不出一个位置来。添了这台笔记本,演示并没有因此来得更早。它缩短的是等阅读智能体的时间,也让我审图的时候不用把作画智能体从卡上赶下来。这些都是实实在在的好处,但它们都不是一段片子。
演示都还没做出来,为什么还要写这一篇?
因为那句过时的话我已经发出去了。也因为”我们添了一台机器”这种进展,很容易被包装成进步,其实大部分只是后勤上的事。我宁可把不那么好看的版本说出来:我添了一台电脑,它让语言那一头变好了,却没有让我做出那段我为之停更的视频。
四篇笔记,一句话就能说完:我消失了两个月,是为了做一段演示。这两个月里,我指挥着一群智能体,去对付一本书、一副嗓子、一大摞画,还有第二台机器。书现在真的就是那本书了。声音本来就是我的,它有一个上限,我不会假装自己已经靠训练跨过去了。第一回已经能配着画播出来,可那些画我还不会验收。硬件是两台机器,能画画的只有其中一台。
每一个模型为什么都必须是 Apache 2.0 或者 MIT 许可,我还欠大家一个交代。这是七月立下的标记,我没有忘。这组文章发完,下一篇就写它。因为停更之后回来,要是跳过自己答应过的事,那离下一次停更也就不远了。
在那之前,还是没有片子。这句话,我宁可由我亲口告诉你,也不想让你从一块我始终没换掉的灰底板上读出来,更不想让你从一张我不愿意署名的漂亮画面上看出来。