白迁敲下了最后一行代码。
然后长舒一口气。
“完成了。“
他的声音里带着疲惫。
但也带着满足。
这两天高强度开发下来。
每个人都很累。
但看到成果出来的那一刻。
一切都值了。
陈林走到白迁旁边。
看着屏幕上的代码。
“运行测试看看。“
白迁点了点头。
他的手指在键盘上敲击。
运行了一遍完整的测试套件。
屏幕上开始刷出日志信息。
一行接一行。
绿色的。
代表测试通过。
几分钟后。
测试结果出来了。
【All 127 tests passed.】
全部通过。
“Nice。“
陈林拍了拍白迁的肩膀。
“辛苦了。“
白迁笑着摆了摆手。
“应该的。“
他靠在椅背上,伸了个懒腰。
潘思也凑了过来。
“那接下来就是性能对比测试了?“
陈林点了点头。
“对。两个版本都开发完成了,现在需要对比一下,看看哪个版本的性能更好。“
他看向全场。
白迁、潘思、沈妍、孙宇。
每个人脸上都带着几分疲惫。
但眼睛里都闪着光。
“今天先到这里吧。大家都累了。明天开始做性能测试。“
众人纷纷点头。
开始收拾东西准备下班。
......
......
4月1日。
愚人节。
不过演海公司没人有心情开玩笑。
因为今天开始做性能对比测试。
这是决定最终技术路线的关键一步。
进化版NDP和梯度版NDP。
两条路径,只能选一条。
测试的内容包括很多项。
训练速度、收敛稳定性、最终模型效果、资源占用情况、网络结构生成密度
......
每一项都很重要。
白迁和潘思负责跑测试。
陈林和沈妍负责分析数据。
孙宇负责记录和整理结果。
分工明确。
为了保证结果的可靠性,每一项测试都跑了多次,取平均值。
这样是为了排除偶然因素的影响。
一天下来。
测试还没跑完。
“明天继续吧。“
陈林看了看时间。
已经快六点了。
“先下班。“
......
......
4月2日。
周四,傍晚。
测试结果全部出来了。
陈林、白迁、潘思和沈妍围坐在会议桌旁。
看着屏幕上的数据。
孙宇在旁边做记录。
气氛有些紧张,也有些期待。
两天的测试。
数十组数据。
结果如何?
“进化版的综合表现更好。“
白迁指着屏幕上的图表。
声音里带着几分意外。
“尤其是在收敛稳定性这一项,进化版明显优于梯度版。“
潘思点了点头。
“训练速度也是进化版更快。虽然差距不大,但确实有优势。“
他调出了更详细的数据。
“你们看这个。“
屏幕上显示着两条曲线。
红色的是进化版NDP的训练曲线。
蓝色的是梯度版NDP的训练曲线。
两条曲线都在下降。
代表loss在不断减小。
模型在不断变好。
但红色曲线明显更平滑。
下降得更稳定。
而蓝色曲线有些波动。
虽然最后也能收敛。
但过程不太稳定。
陈林看着那些数据,陷入了思考。
“为什么会这样?“
他问。
从理论上来说。
梯度版NDP应该更有优势才对。
毕竟梯度下降是深度学习的标准优化方法。
样本效率更高,收敛速度也更快,但实际测试结果却恰恰相反。
虽然两个混合框架展现的效果都能达到其他7B参数开源模型的效果。
但是进化版NDP与YanHai-1.5B混合框架的整体性能,比梯度版NDP与YanHai-1.5B混合框架强了15%到20%。
这个差距不算小了。
沈妍开口了。
“我有一个猜测。“
她的声音不大,但依旧清晰悦耳,好像冰块撞击的声音。
众人都看向她。
沈妍继续说道:
“可能是因为NDP与YanHai-1.5B混合框架的网络结构生成过程,并不是每一步都是可微的。“
陈林转过头看向她,眼神里带着鼓励。
沈妍被他看得有些不好意思,但还是继续说了下去。
“梯度下降版NDP,本质上是把网络结构的生成转化为一个连续空间的优化问题。它假设每一步操作都是可微的,这样才能用反向传播来计算梯度。“
她顿了顿,组织了一下语言。
“但实际上,NDP的发育过程涉及到很多离散操作。比如节点的复制、边的剪枝......这些操作本质上是不可微的。“
白迁若有所思地点了点头。
“所以梯度版在处理这些离散操作的时候会遇到困难?“
“没错。“
沈妍说。
“为了让这些操作'可微化',我们在实现的时候用了一些近似方法。比如用Gumbel-Softmax来近似离散采样,用straight-through estimator来处理不可微的阈值函数......“
她看着屏幕上的数据。
“但这些近似方法会引入误差,影响最终的效果。“
潘思接过话头。
“而进化版NDP就没有这个问题。CMA-ES是一种黑盒优化方法,不要求目标函数可微。所以它可以直接处理那些离散操作,不需要做任何近似。“
陈林明白了。
这就解释了为什么进化版的表现会更好。
他在心里给沈妍点了个赞。
分析得很到位。
“还有一点。“
沈妍补充道。
“进化版NDP的参数量是恒定的。无论最终生成的神经网络规模多大,NDP自身只需要三个小型MLP的权重。这实现了极高的信息压缩比。“
她看向陈林。
“从某种意义上来说,进化版NDP更接近生物的基因编码方式。用少量的'遗传信息',编码出复杂的'生长规则'。“
陈林听完,陷入了沉思。
沈妍的分析很有道理。
从数学角度来说,梯度下降虽然是深度学习的主流优化方法。
但它有一个隐含的假设:
目标函数必须是可微的。
而NDP的发育过程包含大量的离散操作。
天然不满足这个假设。
强行使用梯度下降,就需要引入各种近似和放松。
这会损失一部分性能。
而进化策略(CMA-ES)则没有这个限制。
它把整个优化过程当作一个黑盒。
只关心输入输出。
不关心中间的具体操作。
这种“黑盒“的特性。
恰恰适合NDP这种包含大量离散操作的场景。
“好。“
陈林做出了决定。
“就用进化版NDP。“
他看向白迁和潘思。
“接下来,把进化版NDP和YanHai-30B进行融合。然后放到津门超算中心的集群上训练。“
白迁点了点头。
“没问题。融合的工作量不大,毕竟YanHai-30B和YanHai-1.5B的架构是一样的,只是参数量不同。“
潘思估算了一下。
“大概两三天就能完成。“
陈林点头。
“那就定下来了。争取周五下班前开始正式训练。“