仔细看了一圈之后,他发现了第一个问题。
各个节点的运行效率并不一样。
transformer架构的开创性贡献是把以前只能串行的机器学习任务变成了可以并行,于是机器学习也可以像大数据处理一样用大集群来加快速度、提升效果。
基本原理也很简单,就是把大任务切成小任务,派一个集群一起运行,运行完了之后合并在一起。
问题是怎么分?
最理想的情况是,每个节点运算能力都一样,那任务都分出来一样大小,每个节点负责的任务量一样。 这样就没有时间的浪费。
但是实际上很难做到平均分配。
因为后训练的任务类型不一样。
比如一个寝室决定聚餐,大家分别去采买食材,有人的任务是去超市买菜,有人的任务是去海里钓鱼,买菜的人都回来了,鱼还没上钩。
但是这没办法,钓鱼是不可细分的最小任务。
现在通行的做法是,大家一起等这个钓鱼佬回来,然后把阶段性结果写到硬盘里,再进行下一步。
问题是,该怎么把效率再往上提一提呢?
赵文渊托着下巴正在想着,门外突然响起了敲门声。
赵文渊被打断了思路,缓了缓才说话。
「请进。」
章闻铎推门走了进来,手里拿着一张纸,径直走到赵文渊的办公桌前。
「院长,我来提个申请。」 「什么申请?」
「我手里有个新实验,原来的十六张卡不够用了,想申请六十四张卡来做。」章闻铎一边说着,一边把申请表递到赵文渊面前。
赵文渊皱了皱眉头,现在他手底下用于研究的卡也就不到两百张,除了章闻铎之外,其他的几个项目组也在排队。六十四张还真不一定拿得出来。
赵文渊沉吟了一下,回忆着章闻铎的研究方向。
「十六张也不少了,怎么不够?实验内容有什么变动吗?」
章闻铎看赵文渊要问细节,干脆拉开椅子坐了下来,语气有些兴奋:「是这样的,院长,我有个新想法。之前我做实验的时候,不是有些长程任务嘛,把池子都占满了,短程任务也跑不起来,我就想把池子做大一点儿,一个任务完成之后就让——」
赵文渊一开始思路还跟得上,但是越听越不对,不由得打断了他:「不是,等等,章博士,你刚才来说,任务完成了之后直接回去取,不用等同一个batch(批量)的其他任务吗?」
章闻铎的方向是只有他一个人在做,平时就是查文献、做实验、记录结果,现在看院长赵文渊对技术细节有兴趣,他就打开了话匣子。
「是的,研究世界模型的话因果链比较长,有很多多步骤的长程任务,有时候一个任务就得好几个小时,这个时候其他的任务都做完了,就等这一个长程任务太浪费了,所以我想了个方法,一个任务做完就回去取,不用等。」
赵文渊一边听一边皱眉头,到最后眉毛都拧成了麻花。
不对不对不对,这个方法和他认知的基础框架有很大区别。
等到章闻铎说完,他赶紧抛出了自己的疑问:「你上一轮还没跑完,结果还没更新回模型,就跑下一轮?这不是全乱套了吗?」 拿赵文渊刚才自己想的那个例子来说,就相当于钓鱼佬还没回来,其他人都已经开吃了,等到钓鱼佬回来了,那事还能小?