最新网址:m.35ge.info
第三百六十一章 钓鱼佬吃上饭了 (第1/3页)
章闻铎说道:“这个问题我也想到了。传统方法肯定是等一个batch(批次)的训练全部跑完,新参数更新回模型,再跑下一个batch。可那是一般的模型,长程任务不够多,也不够长。像我做的这个实验,用传统算法,平均下来计算卡利用率只有百分之二十多。”
百分之二十多——赵文渊在心里复述了一遍。现在汤圆的后训练任务,平均利用率大概是百分之四十多,两者相差一倍。
章闻铎左右看了看,没在赵文渊桌上找到纸笔,索性把自己的设备申请表翻过来,从裤兜里掏出一支圆珠笔,在上面写了起来。
“院长你看,这是我想出来的新架构。”
他在纸的中心画了一个圆,两侧各画两排小人:一排写着Actor(行动者),一排写着Learner(学习者)。中间的圆则是经验池。
在传统学习方法中,行动者全部行动完之后会得到一批结果,学习者把这些结果更新到原本的模型中,行动者再基于新版本的模型进行行动。模型、行动者、学习者,再模型、再行动者、再学习者,如此反复执行,直到最终结果达到相对最优、没有进步空间,才算完成训练。
而在章闻铎的新架构里,行动者和学习者并不互相等待:行动者一直在行动,行动完就把结果放进经验池;学习者则在经验池有足够数据之后,把经验更新回模型。
“你是说,放弃同步策略,改用异步策略?”
章闻铎讲完,赵文渊已经懂了。
所谓同步,就是你走一步,等你走完,我再走一步,大家不会同时走。好处是数据永远同步,坏处是慢。异步则是我走了告诉你一声,你也可以走;你走完再告诉我一声,但你走的同时,我还在走。好处是快,坏处是数据会乱。
在传统编程领域,同步和异步各有好处。可在机器学习领域,异步的应用远远不如同步,因为大多数时候,准确率比速度重要得多。谁也不想飞快地训练出一个傻瓜模型,那没有任何意义。
赵文渊心里盘算了一下,说道:“还是刚才的老问题:新一轮行动已经开始了,用的却是老模型,这中间造成的偏差怎么办?”
章闻铎说道:“在我的这个实验里,每个行动结果的重要性并不完全相同。大部分结果其实没那么重要,真正重要的几个结果,我已经提前标出来了。只要训练过程中这几个
(本章未完,请点击下一页继续阅读)
最新网址:m.35ge.info
『加入书签,方便阅读』