数据|用TensorFlow实现ML模型并调优:每秒可做3亿次预测( 三 )


文章图片

优化
研究者在 TF 中实施的模型最初比定制的 FMs 慢得多 , 为了寻找加速空间 , 研究者大量使用内置的 TF 分析器来寻找执行时间最长的操作 , 并尽可能进行了改进 。 最常见的是各种冗余的 reshape 或转换运算 。 其中一个更有趣的发现是 Adam 优化器比 Adagrad 慢得多 (大约 50%) , 尽管二者运算数量上的差异很小 。 分析器显示 , 对稀疏权值进行梯度更新需要大量计算时间 。 这是因为模型的权重是稀疏的 (特征大部分是分类的 , 因此非常稀疏), 而优化器没有考虑到这个事实 。
由于用 Adagrad 替换 Adam 意味着深度模型性能的显著降低 , 研究者也寻找了其他解决方案:切换到 Lazy Adam 的优化器被证明是非常有效的 , 因为它可以非常有效地处理稀疏权重问题 。 结果显示 , 其整体加快了超过 40% 的训练速度 , 与 Adagrad 相接近 。
由于使用了自适应优化器(比如 Adam) , 这也需要存储权重矩和方差 , 每个参数将存储三个值 , 将保存的模型大小增加了三倍 。 然而 , 这些值实际上并不用于预测 , 只用于训练 。 研究者利用这一点构建了优化过程 , 去掉了这些值的模型 , 减少了 66% 的数据量 , 并降低了内存使用量和成本 。

推荐阅读