写点什么

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

  • 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:001597
用户头像
刘燕 InfoQ高级技术编辑

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

关注

评论

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

软件测试/测试开发丨H5性能分析实战

测试人

软件测试 性能测试 自动化测试 H5 W3C

“字节”再次起跳!内部651页剖析HotSpot 源码手册,GitHub已开源

做梦都在改BUG

Java JVM 虚拟机 hotspot

简化你的代码,提高生产力:这10个Lambda表达式必须掌握

做梦都在改BUG

Java Lambda

阿里P8架构师20年经验总结成微服务设计企业架构转型之道笔记

程序知音

Java 微服务 java架构 Java进阶 后端技术

大模型高效开发的秘密武器:大模型低参微调套件MindSpore PET

华为云开发者联盟

人工智能 华为云 大模型 华为云开发者联盟 企业号 4 月 PK 榜

如何用 YonBuilder 构建线索管理应用?

YonBuilder低代码开发平台

从零学习SDK(4)使用SDK创建一个简单的应用程序

MobTech袤博科技

Atlassian后Server时代 | Server版vs.数据中心版,二者的区别在哪里?

龙智—DevSecOps解决方案

Atlassian 数据中心版 server版

什么是可信云?通过可信云评估意味着什么?

行云管家

可信云

LED显示屏十大应用领域值得你收藏

Dylan

LED显示屏 户外LED显示屏 户内led显示屏

成都开发者Meetup|聚焦云原生开源,点亮企业创新活力

阿里巴巴云原生

阿里云 容器 微服务 云原生

ZBC 荣登OKX涨幅榜前列,月内涨幅逾六成

股市老人

Gartner最新报告,分析超大规模边缘解决方案

阿里云CloudImagine

云计算 边缘计算 边缘云

[直播预告]行云管家堡垒机V7.0版本说明会

行云管家

行云管家

面试官:说一说mysql的varchar字段最大长度?

程序员小毕

MySQL 数据库 程序员 面试 架构师

详解事务模式和Lua脚本,带你吃透Redis 事务

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

扯下@EventListener这个注解的神秘面纱。

why技术

Java 源码

【重磅发布】易观千帆用户体验分析产品领先版正式发布

易观分析

金融 银行 用户分析

雀氏牛,Alibaba分布式微服务成长手册,GitHub已开源

做梦都在改BUG

Java 分布式 微服务

一份深入解析Java虚拟机HotSpot手册,让我卷成美团架构师

程序知音

Java JVM java架构师 hotspot Java进阶

🔥InfoQ写作社区三周年主题征文火热开启

InfoQ写作社区官方

热门活动 三周年征文

企业云管平台是什么?有什么用?

行云管家

云计算 云管理 云管

玩转Github:三分钟教你如何用 Github 快速找到优秀的开源项目

程序知音

Java GitHub 编程语言 后端技术

又搞事!阿里400页JDK并发源码指南,再次被GitHub置顶了!

做梦都在改BUG

Java jdk 多线程 高并发 源码剖析

真下饭!字节技术官DDD(领域驱动设计)手册,拆解业务代码首选

做梦都在改BUG

Java 架构 领域驱动设计 DDD

构建系列之前端脚手架vite

江湖修行

Vue vite cli

SpringBoot整合RocketMQ,老鸟们都是这么玩

做梦都在改BUG

Java RocketMQ Spring Boot

MySQL数据库和Redis缓存一致性的更新策略

做梦都在改BUG

Java MySQL 数据库 redis 缓存

文献管理软件:EndNote 20 v20.5激活版

真大的脸盆

Mac Mac 软件 文献管理 文献管理工具

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