详细内容或原文请订阅后点击阅览
如何设计出摆脱缓慢模型的方法
所以你刚刚完成了那个伟大的神经网络架构的设计。但你如何处理它很慢的事实?
来源:Another Datum所以你刚刚完成了你那个伟大的神经网络架构的设计。它有 300 个完全连接的层,与 200 个卷积层交错,每个卷积层有 20 个通道,其中结果作为具有少量注意力的双向堆叠 LSTM 的种子输入。训练后,你将获得 99.99% 的准确率,并且你已准备好将其交付生产。
卷积层 双向 堆叠 LSTM 注意力但随后你意识到生产限制不允许您使用这个野兽进行推理。你需要在 200 毫秒内完成推理。
换句话说,你需要砍掉一半的层,放弃使用卷积,我们先不要开始讨论昂贵的 LSTM...
如果你能让这个惊人的模型运行得更快就好了!
有时你可以
在 Taboola 我们做到了。 好吧,不完全是... 让我解释一下。
我们的一个模型必须预测某个项目的 CTR(点击率),或者换句话说 — 用户喜欢文章推荐并点击它的概率。
该模型有多种模态作为输入,每种模态都会经历不同的转换。其中一些是:
- 分类特征:这些特征嵌入到密集表示中 图像:像素通过卷积层和全连接层 文本:在标记化之后,文本通过 LSTM,然后进行自我注意
然后将这些处理过的模态通过全连接层,以学习模态之间的相互作用,最后,它们通过 MDN 层。
MDN可以想象,这个模型很慢。
我们决定坚持模型的预测能力,而不是削减组件,并提出了一个工程解决方案。