ITPub博客

首页 > 人工智能 > 深度学习 > 解决超级模型部署难题

解决超级模型部署难题

深度学习 作者:AIBigbull2050 时间:2020-02-27 10:57:16 0 删除 编辑

# 解决超级模型部署难题 # 







虽说目前尚处起步阶段,但还是为解决问题提供了可行的思路。


1. 缩小模型

如果模型太大,为什么不压缩它们?要做到这一点,一种方法是通过“知识蒸馏”(knowledge distillation)。这一想法是,一个小型模型可以通过学习来模仿大型模型(即父模型)的性能。

换句话说,训练 GPT-2 需要向其馈入高达 40GB 的文本,这相当于大约 27118520 页的文本文件。然而,训练一个蒸馏过的 GPT-2 模型只需向其馈入 GPT-2 的输出即可。

著名的 Transformer NLP 库背后的 HuggingFace 公司就是这样做的,创建了 DistilGPT2 。虽然与完整的 GPT-2 模型相比,DistilGPT2 在一些质量基准上的得分要低一些,但它比完整的 GPT-2 模型小了 33%,速度快了一倍。

速度能提高两倍,可不是一件小事。对自动驾驶汽车来说,安全刹车和轻微碰撞之间的区别就在于此。对于一个会话智能体来说,这就是自然谈话和令人恼火的机器人电话之间的区别。



2,将模型部署到云端


就算用了知识蒸馏,模型仍然可能很庞大。超过 25GB 的模型(NVIDIA 的 Megatron 是 GPT-2 的 5.6 倍)尽管缩小了 33%,但仍然很庞大。

在这种规模下,我们用来消费机器学习生成内容的设备,我们的手机、电视,甚至电脑,都无法承载这些模型,它们根本就不合适。

一种解决方案是将模型作为微服务部署到云端,我们的设备就可以根据需要进行查询。这称为“实时推理”(Realtime inference),是在生产中部署大型模型的标准方法。

然而,在云端部署也有自身的问题,尤其是在规模方面。举个例子,我们可以看看 AI Dungeon,这是一款流行的基于 GPT-2 的冒险游戏。

由于 GPT-2 的大小和算力需求所限,AI Dungeon 只能为单个部署模型中的几个用户提供服务。为了应对流量的增加,AI Dungeon 需要具备自动扩展的能力。

水平扩展 GPT-2 部署是一件非常棘手的事。它需要:

确保每个部署都是相同的。例如,使用 Docker 对模型进行容器化,并使用 Kubernetes 对容器进行编排。

自动扩展部署。例如,通过配置云供应商的自动扩展程序,根据流量自动向上或向下旋转实例。
优化资源。这意味着需要在不牺牲性能的情况下,找到并运行最便宜的实例类型和资源分配。



3. 加速硬件服务模式


最后一项使大型模型变得更容易的努力,与模型本身并没有任何关系。相反,它必须与改进硬件有关。

更大的模型在更好的硬件上,性能更优。事实上,GPU 对模型服务很重要,为 GPT-2 提供自动更正低延迟服务的唯一方法是使用 GPU:

如果你在 CPU 上运行,每次请求耗时 925 毫秒。如果使用 GPU,在每次请求 199 毫秒的情况下,可以在大约 100 毫秒的空间时间内预测消息的其余部分,当你考虑到他们的浏览器仍然需要呈现你的预测时,这就非常有用了。

然而,随着模型变得越来越大,我们需要更多的处理能力。

解决该问题的一些努力涉及构建全新的硬件。例如,谷歌发布了 TPU,这是专门为与 TensorFlow 接口而设计的 ASIC,最新的 TPU 打破了模型服务基准的可扩展性和性能的记录。

其他努力还包括加速和优化现有硬件。NVIDIA 发布了 TensorRT,这是一个用于优化 NVIDIA GPU 在推理服务中利用率的 SDK。NVIDIA 已经证明,与在 GPU 上使用 TensorRT,比只使用 CPU 推理相比,性能提高了 40 倍。



https://www.toutiao.com/a1659654253611012




来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69946223/viewspace-2677436/,如需转载,请注明出处,否则将追究法律责任。

全部评论
向AI大牛学习,成为AI大牛!

注册时间:2019-08-22

  • 博文量
    913
  • 访问量
    440111