写点什么

为什么大型机器学习模型必须缩小 ?

  • 2021-05-12
  • 本文字数:1387 字

    阅读完需:约 5 分钟

为什么大型机器学习模型必须缩小 ?

更大的规模不一定更适合机器学习。但是,随着研究人员相互竞争追求最先进的基准,深度学习模型和训练它们的数据集不断扩展。不管它们如何突破,更大的模型都会对预算和环境产生严重的影响。


比如 GPT-3,一个在去年夏天推出的大受欢迎的自然语言处理模型,据说花了1200 万美元用于训练。更有甚者,马萨诸塞大学阿默斯特分校(UMass Amherst)的研究人员发现,训练大型人工智能模型所需的计算能力能够产生 60 多万磅的二氧化碳排放——是普通汽车寿命周期排放量的 5 倍。


目前,没有迹象表明,以机器学习行业的发展速度,计算密集型工作将会放缓。OpenAI 的研究显示,深度学习模型的计算能力在 2012 到 2018 年间增长了惊人的 30 万倍,超过了摩尔定律。这个问题不仅仅是训练这些算法,而是要在生产环境下运行它们,或者说在推理阶段。对很多团队而言,由于纯粹的成本和资源的限制,深度学习模型的实际应用仍然遥不可及。


幸好,研究人员发现了一些新的方法来缩小深度学习模型,并通过更智能的算法来优化训练数据集,使得模型在生产环境下运行得更快,计算量也更少。就连业界的一个峰会也专门讨论低功耗、微型机器学习。剪枝(Purning)、优化(Quantization)和迁移学习(Transfer Learning)就是三种具体的技术。这些技术可以让那些无法投资数百万美元把模型转换成生产环境的组织实现机器学习的民主化。对“边缘”用例来说,这一点尤为重要,因为大型专用人工智能硬件在物理上并不切实际。


第一种技术,即剪枝,是近几年来研究的热点之一。包含“深度压缩”(Deep Compression)和“彩票假说”(Lottery Ticket Hypothesis)在内的高引用文献表明,可以在不损失正确性的情况下消除神经网络中“神经元”之间一些不必要的连接,有效地使模型更小、更容易在资源有限的设备上运行。最新的论文进一步验证并完善了早期的技术,以开发出更小的模型,使其达到更高的速度和正确度。对某些模型,比如ResNet,可以在不影响正确性的情况下剪枝 90% 左右。


第二种技术,即优化,也正在逐步普及。优化涉及许多不同的技术,它们可以将大的输入值转换为小的输出值。换句话来说,在硬件上运行神经网络可以产生上百万次乘和加运算。减少这些数学运算的复杂性有助于减少内存需求和计算成本,这将大大提高性能。


最后,虽然这不是一种缩小模型的技术,但是迁移学习能够在有限的数据中帮助训练一个新模型。迁移学习以预训练模型作为起点。通过有限的数据集,模型的知识可以“迁移”到一个新的任务中,而无需从头再来训练原始模型。在训练模型时,这是一种减少计算能力、能源和资金的重要方法。


最重要的启示是,模型可以(也应该)尽可能地优化,使其在较少的计算量下运行。在不牺牲性能和正确性的情况下,寻找减小模型大小和相关计算能力的方法将是机器学习的下一大突破。


如果能有更多人在生产环境中低成本地使用深度学习模型,我们就能真正看到现实世界中创新的新应用。这些应用可以在任何地方运行,甚至是在最小的设备上,以达到做出即使决定所需的速度和正确性。或许,小型模型最好的效果是整个行业能够减少其环境硬件,而不是每六年增加 30 万倍。


作者介绍:


Sasa Zelenovic,Neural Magiic 团队成员,帮助数据科学家发现开源、廉价的硬件加速器替代品,以实现深度学习性能。


原文链接:


https://www.datasciencecentral.com/profiles/blogs/honey-i-shrunk-the-model-why-big-machine-learning-models-must-go

2021-05-12 10:001722
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 590.1 次阅读, 收获喜欢 1981 次。

关注

评论

发布
暂无评论
发现更多内容

如何通过即构小程序组件实现直播带货功能?

ZEGO即构

小程序 直播带货

架构师训练营 - 第三周作业

Mark

像用户一样测试:别掉链子

QualityFocus

软件测试 用户体验 回归测试

短视频+直播=最自然的表达方式?| 视频号 28 天 (09)

赵新龙

28天写作

2021年“区块链+”将会如何发展?

CECBC

区块链

架构师训练营第八周课后作业

万有引力

如何轻松面过阿里社招Java岗,九大核心模块为你保驾护航!(知识点+面经)

Java架构追梦

Java 架构 面试

区块链介绍

v16629866266

区块链

Redis 学习笔记 04:跳跃表

架构精进之路

redis 七日更 28天写作

案例研究之聊聊 QLExpress 源码 (八-1)

小诚信驿站

聊聊架构 28天写作 QLExpress源码 聊聊源码

想象力,科幻与其他「关于科幻 8/28」

道伟

28天写作

【CSS】文字特效(text-shadow)

德育处主任

CSS css3 html/css CSS小技巧 28天写作

区块链赋能物流行业:“圈子文化”下,网络货运的数字化转型之路

CECBC

区块链 区块链物流

Java虚拟机内存模型

xcbeyond

Java JVM Java虚拟机 28天写作

沉寂唯品会3年,毅然辞职冲刺阿里,我是怎么备战金三银四的?

比伯

Java 编程 架构 面试 程序人生

听过闰年闰月,听过闰秒吗?

艾小仙

后端

电商网站商品管理(三)group by+avg+sort等聚合分析

escray

elasticsearch elastic 28天写作 死磕Elasticsearch 60天通过Elastic认证考试

生产环境全链路压测建设历程 29:FAQ 之 评估方法论、改造、痛点

数列科技杨德华

28天写作

项目管理系列(3)-如何开好一个项目启动会

Ian哥

项目管理 28天写作

【计算机内功修炼】六:10张图让你彻底理解回调函数

码农的荒岛求生

异步 同步 异步IO 回调函数 异步编程

[6/28]产品业务数据分析的质量实践

L3C老司机

低代码是在炒概念,炒得不错

Justin

低代码 28天写作

智能building之 园区

张老蔫

28天写作

Java 程序经验小结:接口只用于定义类型

后台技术汇

28天写作

深入理解nodejs中的异步编程

程序那些事

多线程 nodejs 异步编程 程序那些事 回调

重学JS | 箭头函数为什么不能用做构造函数?

梁龙先森

面试 大前端 编程语言 28天写作

餐饮品牌资产上链,产业区块链史诗级浪潮已到来

CECBC

餐饮

胆大无险,脚踏实地

.

28天写作

Soul 网关实践 02|选择器&规则介绍

哼干嘛

Java 探索与实践 Soul网关

Soul 网关实践 03|http 请求接入网关

哼干嘛

Java 探索与实践 Soul网关

早上听了一场关于财富的线上专题分享

熊斌

财富自由 28天写作

为什么大型机器学习模型必须缩小 ?_AI&大模型_Sasa Zelenovic_InfoQ精选文章