五月十四,京城。
天气已经热起来了。
赵文渊在长租公寓楼下扫了一辆共享单车,往源智京城研究院骑。路程一公里多,可赶上早高峰,比开车还快。
顺便还能锻炼身体。
刷卡进了办公室,跟沿途遇见的几个同事打过招呼,赵文渊去冲咖啡——设备简陋,没有咖啡机,只有烧水壶,他喝的是自己带的挂耳。
随后他回到院长办公室,打开电脑,查看训练进度。
那份能在国产卡集群上跑训练的狂喜,他已经缓过来了。
这个半年前想都不敢想的成就,此刻却让他高兴不起来。
赵文渊反思,或许是在韩总身边待久了,再神奇的成就也会习惯——人适应新事物的能力本就很强。
现在他有了新问题:时间不够。
正常来说,一个后训练任务跑两到三周算正常。
可汤圆1.0要赶上人工智能大会的闭门测评,眼下却卡在两周紧张、三周不够的状态。
简单说,训练过程中一点岔子都不能出,还得祈祷运气够好,能在人工智能大会盲测截止日期前完成测试、整理材料并提交。
可从现在的进度看,恐怕不太行了。
前天,预计完成时间是五月二十六日。
昨天,这个时间变成了五月二十八日。
现在再看,预计完成时间已是六月三日,十一点四十分。
照这个进度下去,最终完成时间恐怕要拖到六月中旬,到时人工智能大会都开完了。
这倒不算什么大事,可赵文渊就是觉得不舒服。
明明知道下一个版本更强的模型就要训练出来,却要拿上一代的汤圆0.9去打擂台——非常不舒服。
为此,赵文渊已经连着和江松然开了好几个会,最后得出的结论是:不是硬件的问题,不是基础设施的问题,是算法的问题。
就算把汤圆的底座和那些数据拿到N卡集群上去跑,训练速度也不会更快。
这次他倒没想去找韩路一。
因为后训练是他的强项、他的领域,他不觉得韩路一会比他更懂。
更重要的是,韩路一临走前特意跟他说过,要对他放手。
那他就更得证明自己的价值了。
不就是训练速度遇上算法瓶颈吗?不就是还没有人做出更优化的训练算法吗?
难道我赵文渊就做不出来?
搞笑。
赵文渊让训练任务继续跑下一轮,自己在电脑上调出了上一轮的运行数据。
仔细看了一圈,他发现了第一个问题。
各个节点的运行效率并不一样。
Transformer架构的开创性贡献,是把以前只能串行的机器学习任务变成可以并行;于是机器学习也能像大数据处理一样,用大集群加快速度、提升效果。
基本原理很简单:把大任务切成小任务,派一个集群一起执行,执行完再合并。
问题是怎么分?
最理想的情况,是每个节点运算能力都一样,任务便分得一样大,每个节点负责的任务量也相同。
这样就不会有时间浪费。
可实际上很难做到平均分配。
因为后训练的任务类型不一样。
比如一个寝室决定聚餐,大家分头采买食材:有人去超市买菜,有人去海里钓鱼。买菜的人都回来了,鱼还没上钩。
这没办法,钓鱼是不可细分的最小任务。
现在通行的做法,是大家一起等这个钓鱼佬回来,再把阶段性结果写进硬盘,进行下一步。
问题是,该怎么把效率再往上提一提呢?
赵文渊托着下巴正想,门外忽然响起敲门声。
思路被打断,他缓了缓才开口。
“请进。”
章闻铎推门进来,手里拿着一张纸,径直走到赵文渊办公桌前。
“院长,我来提个申请。”
“什么申请?”
“我手里有个新实验,原来的十六张卡不够用了,想申请六十四张卡来做。”章闻铎说着,把申请表递到赵文渊面前。
赵文渊皱了皱眉。现在他手底下用于研究的卡不到两百张,除了章闻铎,其他几个项目组也在排队。六十四张还真不一定拿得出来。
他沉吟一下,回忆着章闻铎的研究方向。
“十六张也不少了,怎么不够?实验内容有变动吗?”
见赵文渊要问细节,章闻铎干脆拉开椅子坐下,语气有些兴奋:“是这样的,院长,我有个新想法。之前做实验时,不是有些长程任务嘛,把池子都占满了,短程任务也跑不起来。我就想把池子做大一点儿,一个任务完成之后就——”
赵文渊一开始还跟得上思路,可越听越不对,不由得打断他:“不是,等等,章博士,你刚才说,任务完成后直接回去取,不用等同一个batch(批次)的其他任务吗?”
章闻铎的研究方向只有他一个人在做,平时就是查文献、做实验、记录结果。现在见院长对技术细节有兴趣,他便打开了话匣子。
“是的。研究世界模型的话,因果链比较长,有很多多步骤的长程任务,有时候一个任务就得跑好几个小时。这个时候其他任务都做完了,单等这一个长程任务太浪费。所以我想了个方法:一个任务做完就回去取,不用等。”
赵文渊边听边皱眉,到最后眉毛都拧成了麻花。
不对不对不对,这个方法和他认知的基础框架有很大区别。
等章闻铎说完,他赶紧抛出疑问:“你上一轮还没跑完,结果还没更新回模型,就跑下一轮?这不是全乱套了吗?”
拿赵文渊刚想到的例子来说,就相当于钓鱼佬还没回来,其他人已经开吃了;等钓鱼佬回来,那事还能小?