深度学习发展下的“摩尔困境”,人工智能又将如何破局?
前不久,微软和英伟达推出包含5300亿参数的语言模型MT-NLG,这是一款基于 Transformer 的模型被誉为“世界上最大、最强的生成语言模型”。
毫无疑问,这是一场令人印象深刻的机器学习工程展示。
然而,我们是否应该对这种大型模型趋势感到兴奋?
大脑深度学习
研究人员估计,人脑平均包含 860 亿个神经元和 100 万亿个突触。可以肯定的是,并非所有这些都用于语言。有趣的是,GPT-4 预计有大约 100 万亿个参数……
尽管这个对比很粗糙,但是难道不应该怀疑构建与人脑大小差不多的语言模型是否是一个长期可行的方法?
当然,我们的大脑是经过数百万年进化产生的奇妙装置,而深度学习模型才有几十年的历史。尽管如此,直觉应该告诉我们,有些东西是无法计算的。
深度学习、还是深度钱包?
在庞大的文本数据集上训练一个 5300 亿参数的模型,毫无疑问的是需要庞大的基础设施。
事实上,微软和英伟达使用了数百台 DGX-A100 的 GPU 服务器。每件售价高达 199,000 美元,再加上网络设备、主机等成本,任何想要复制这个实验的人都必须花费近 1 亿美元。
哪些公司有业务例子可以证明在深度学习基础设施上花费 1 亿美元是合理的?或者甚至是1000万美元?很少。
那么这些模型到底是为谁准备的呢?
GPU 集群
尽管其工程才华横溢,但在 GPU 上训练深度学习模型是一种费力的事情。
根据服务器参数表显示,每台 DGX 服务器可以消耗高达 6.5 千瓦的电量。当然,数据中心(或服务器)至少需要同样多的散热能力。
除非你是史塔克家族的人,需要拯救临冬城,否则散热是必须处理的另一个问题。
此外,随着公众对气候和社会责任问题的认识不断提高,公司还需要考虑到他们的碳足迹。马萨诸塞大学 2019 年的一项研究,“在 GPU 上训练 BERT 大致相当于一次跨美飞行”。
而 BERT-Large 拥有 3.4 亿个参数,训练起来的碳足迹究竟有多大?想想都害怕。
构建和推广这些庞大的模型是否有助于公司和个人理解和使用机器学习呢?
相反,如果把重点放在可操作性更高的技术上,就可以用来构建高质量的机器学习解决方案。
使用预训练模型
在绝大多数情况下,并不需要自定义模型体系结构。
一个好的起点是寻找已针对您要解决的任务(例如,总结英文文本)进行预训练的模型。
然后,快速尝试一些模型来预测自己的数据。如果参数标明某个参数良好,那么就完成了!如果需要更高的准确性,应该考虑对模型进行微调。
使用较小的模型
在评估模型时,应该选择能够提供所需精度的最小模型。它将更快地预测并需要更少的硬件资源来进行训练和推理。
这也不是什么新鲜事。熟悉计算机视觉的人会记得 SqueezeNet 于 2017 年问世时,与 AlexNet 相比,模型大小减少了 50 倍,同时达到或超过了其准确性。
自然语言处理社区也在努力缩小规模,使用知识蒸馏等迁移学习技术。DistilBERT 可能是其最广为人知的成就。
与原始 BERT 模型相比,它保留了 97% 的语言理解能力,同时模型体积缩小了 40%,速度提高了 60%。相同的方法已应用于其他模型,例如 Facebook 的 BART。
Big Science 项目的最新模型也令人印象深刻。如下图所示,他们的 T0 模型在许多任务上都优于 GPT-3,同时模型大小缩小了 16 倍。
微调模型
如果需要专门化一个模型,不需要从头开始训练模型。相反,应该对其进行微调,也就是说,仅在自己的数据上训练几个时期。
使用迁移学习的好处,比如:
需要收集、存储、清理和注释的数据更少
实验和数据迭代的速度更快
获得产出所需的资源更少
换句话说:省时、省钱、省硬件资源、拯救世界!
使用基于云的基础设施
不管喜欢与否,云计算公司都知道如何构建高效的基础设施。研究表明,基于云的基础设施比替代方案更具能源和碳效率。Earth.org 表示,虽然云基础设施并不完美,但仍然比替代方案更节能,并促进对环境有益的服务和经济增长。”
在易用性、灵活性和即用即付方面,云当然有很多优势。
优化模型
从编译器到虚拟机,软件工程师长期以来一直使用工具来自动优化硬件代码。
然而,机器学习社区仍在为这个话题苦苦挣扎,这是有充分理由的。优化模型的大小和速度是一项极其复杂的任务,其中涉及以下技术:
硬件:大量面向加速训练任务(Graphcore、Habana)和推理任务(Google TPU、AWS Inferentia)的专用硬件。
剪枝:删除对预测结果影响很小或没有影响的模型参数。
融合:合并模型层(比如卷积和激活)。
量化:以较小的值存储模型参数(比如使用8位存储,而不是32位存储)
幸运的是,自动化工具已经开始出现,例如 Optimum 开源库和 Infinity,这是一种容器化解决方案,可以以 1 毫秒的延迟提供 Transformers 的准确性。
结论
在过去的几年里,大型语言模型的规模每年都以 10 倍的速度增长。这看起来像另一个摩尔定律。
如果机器学习沿着模型巨大化这条路走下去,会导致收益递减、成本增加、复杂度增加等。
这是所期待的人工智能未来的样子吗?
与其追逐万亿参数模型,不如把更多经历放在构建解决现实世界问题的实用且高效的解决方案,岂不是更好?
参考链接:
https://huggingface.co/blog/large-language-models#deep-learning-deep-pockets
相关文章:

Kotlin学习笔记-基础语法
去年学习过一遍Kotlin,相比java而言,Kotlin确实有许多方便的地方,但是学习之后一直没有真正拿来写项目,很久不用很多东西都已经忘记了。最近Google宣布Kotlin成为Android开发的官方语言之后,Kotlin突然变得火热起来&am…

英特尔王锐:软硬件并驾齐驱,开发者是真英雄
北京时间10月28日,英特尔On技术创新峰会在北京举办。在此次峰会上,英特尔公司高级副总裁、英特尔中国区董事长王锐对外宣告了英特尔拥抱开发者,回归技术创新的决心和信心。 英特尔此前提出,四大超级技术力量赋能数字化的变革&…

基于html5海贼王单页视差滚动特效
分享一款基于html5海贼王单页视差滚动特效是一款流行滑落网页特效代码。效果图如下: 在线预览 源码下载 实现的代码: <div class"top"><div class"top_main center"><ul id"scene" class"scene&quo…

切换apache的prefork和worker模式
Apache HTTP服务器被设计为一个强大的、灵活的能够在多种平台以及不同环境下工作的服务器。 不同的平台和不同的环境经常产生不同的需求,或是为了达到同样的最佳效果而采用不同的方法。 Apache凭借它的模块化设计很好的适应了大量不同的环境。 这一设计使得网站管理…

使用adb devices命令无法识别夜神模拟器的解决方法
模拟器不喜欢原生态的,喜欢简单好用的,这里用的是夜神模拟器现象夜神模拟器启动成功,此时用adb devices命令查看,居然啥都不显示,也就是没识别出来分析很大可能是因为adb的版本不一致导致的,心中无数个草泥…

Apache的prefork模式和worker模式
prefork模式 这个多路处理模块(MPM)实现了一个非线程型的、预派生的web服务器,它的工作方式类似于Apache 1.3。它适合于没有线程安全库,需要避免线程兼容性问题的系统。它是要求将每个请求相互独立的情况下最好的MPM,这样若一个请求出现问题就…

AI 与小学生的做题之战,孰胜孰败?
现在小学生的数学题不能用简单来形容,有的时候家长拿到题也需要思考半天,看看是否有其他隐含的解题方法。市面上更是各种拍题搜答案的软件,也是一样的套路,隐含着各种氪金的信息。 就像网络上说的“不写作业母慈子孝,一…

AIDL方向指示
2019独角兽企业重金招聘Python工程师标准>>> AIDL使用简单的语法来定义接口, 该接口定义了可供客户端访问的方法和属性,并且描述其方法以及方法的参数和返回值。这些参数和返回值可以是任何类型,甚至是其他AIDL生成的接口。 其中对于Java编程…

Techshack Weekly 第 0002 期
Techshack Weekly 专注于后端技术阅读,目前有上百位订阅者,欢迎加入 Telegram Channel ,或关注推特 techshackweekly,或订阅 RSS! 点击查看本期 本期比较关注的几个领域有:TSDB, 系统设计,推荐的…

像数据分析一样写 Web 页面,这个 Python 库做到了!
作者|刘早起来源|早起Python提起用 Python 写一个 web 页面,总是会想起Django/Flask等这样的大家伙。他们确实好用,但就是流程繁琐,比如有时就想写一个简单的页面,比如问卷调查,拿 Django 来说吧总要经过安装、启动、配…

loadrunner 如何做关联
在页面中为了防止CRSF攻击,每次访问登录页面时,在浏览器器端生成一个token。 在提交时检验这个token是否有效,提交后token自动失效。 如果使用loadrunner来测试此系统话需要做一个关联,把这个token作为一个参数进行提交。 做关联有…

让你的数据离CPU更近一些
让你的数据离CPU更近一些 Jim Gray:RAM是硬盘,硬盘是磁带 永远只做自己最擅长的事情 不是所有的任务都需要同步执行

现在很火的答题赢钱游戏,让我来简单教你怎么做自动答题器
一、前言: 现在最火的直播游戏,那就是答题赢钱直播了,如百万英雄、芝士超人、花椒直播、冲顶大会等等,这些游戏的玩法都很简单,答对12题即可瓜分奖金了。玩法虽然简单,但是要能完全答对12题难度还是挺高的&…

OAuth认证协议原理分析及使用方法
twitter或豆瓣用户一定会发现,有时候,在别的网站,点登录后转到 twitter登录,之后转回原网站,你会发现你已经登录此网站了, 这种网站就是这个效果。其实这都是拜 OAuth所赐。 OAuth是什么? OAuth…

一次图文并茂的***完整测试二
任务:某公司授权你对其服务器进行******。对某核心服务器进行***测试,据了解目标机为Windows 2003 Server系统,ip地址为10.1.1.191,在C盘的根目录下存储有两个敏感文件这里就用(key1.txt,key2.txt)表示&…

神经网络学习到的是什么?(Python)
作者|泳鱼来源|算法进阶神经网络(深度学习)学习到的是什么?一个含糊的回答是,学习到的是数据的本质规律。但具体这本质规律究竟是什么呢?要回答这个问题,我们可以从神经网络的原理开始了解。一、 神经网络的…

Spring MVC原理
摘要: Spring MVC工作流程图springMVC工作流程图图一图二开发工具1.Eclipse IDE:采用Maven项目管理,模块化。2.代码生成:通过界面方式简单配置,自动生成相应代码,目前包括三种生成方式(增删改查)…

linux下poll和epoll内核源代码剖析
作者:董昊 博客链接http://donghao.org/uii/ poll和epoll的使用应该不用再多说了。当fd很多时,使用epoll比poll效率更高。 我们通过内核源码分析来看看到底是为什么。 poll剖析poll系统调用:int poll(struct pollfd *fds, nfds_t nfds, int t…

百度副总裁马杰:实现元宇宙,技术要过三道坎
近来,元宇宙一词就像龙卷风瞬间席卷整个科技圈,一时间所有新概念层出不穷,无数科技公司蜂拥而至扎堆元宇宙。先是在线游戏创作平台Robolox把元宇宙写进招股书里,成为“元宇宙第一股”。后有扎克伯格宣布将Facebook更名为Meta&…

consolez设置
2019独角兽企业重金招聘Python工程师标准>>> 菜单”—>Edit—>Setting...—>Behavior—>选择“Copy on select” “菜单”—>Edit—>Setting...—>Mouse—>Paste text—>Right 最后一个重点说明的问题是Console2对中文的支持问题。默认情…

dstat用法;利用awk求dstat所有列每列的和;linux系统监控
安装:yum install -y dstatdstat命令是一个用来替换vmstat、iostat、netstat、nfsstat和ifstat这些命令的工具,是一个全能系统信息统计工具。与sysstat相比,dstat拥有一个彩色的界面,在手动观察性能状况时,数据比较显眼…

PHP内核介绍及扩展开发指南—基础知识
一、 基础知识 本章简要介绍一些Zend引擎的内部机制,这些知识和Extensions密切相关,同时也可以帮助我们写出更加高效的PHP代码。 1.1 PHP变量的存储 1.1.1 zval结构 Zend使用zval结构来存储PHP变量的值,该结构如下所示: type…

腾讯汤道生:数实融合成为行业“必答题”,腾讯未来打造四大引擎
11月3日,腾讯高级执行副总裁、云与智慧产业事业群CEO汤道生在2021腾讯数字生态大会上表示,“数实融合”正在从“选答题”,变成每个行业都要面对的“必答题”,腾讯未来将打造用户、技术、安全和生态四大引擎,助力各行各…

shell编程基础(2)---与||
shell 编程重要的应用就是管理系统,对于管理系统中成千上万的程序而言,查询某个文件名是否存在,并且获取该文件名所指代文件基本信息是系统管理员的基本任务。shell命令可以很轻松的完成这项任务。 #program this is a example for #########…

基于qml创建最简单的图像处理程序(1)-基于qml创建界面
《基于qml创建最简单的图像处理程序》系列课程及配套代码基于qml创建最简单的图像处理程序(1)-基于qml创建界面http://www.cnblogs.com/jsxyhelu/p/8343310.html课程1附件https://files.cnblogs.com/files/jsxyhelu/%E9%98%B6%E6%AE%B5%E4%BB%A3%E7%A0%8…

存储方式与介质对性能的影响
摘要 数据的存储方式对应用程序的整体性能有着极大的影响。对数据的存取,是顺利读写还是随机读写?将数据放磁盘上还将数据放flash卡上?多线程读写对性能影响?面对着多种数据存储方式,我们如何选择?本文给大…

struts配置文件没有标签提示
2019独角兽企业重金招聘Python工程师标准>>> struts配置文件没有标签提示 原因:" http://struts.apache.org/dtds/struts-2.0.dtd"是通过网络的形式帮你下载对应的dtd文件, 如果机器没有联网,就不会有提示 解决办法&…

iPhone 隐私新规下的“大地震”:四大平台损失近百亿美元,“连用户是男是女都分不清……”
整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 大家有这样的经历吗?前一秒刚在聊天软件上跟朋友分享了一款产品,下一秒就能在其他 App 中看到这款产品的广告推送,不了解内情的人说不定还会感慨一句:“…

Python 判断类型
类型判断:isinstance(obj, type) 方法 : isinstance(obj, type) print (isinstance(3, int)) # True print (isinstance(3, str)) # False print (isinstance(3, list)) # False print (isinstance([1,2,3], list)) …

php打印warning日志引发的core追查
内容 春节期间线上出了两个php-cgi的core,具体追查过程如下: 一、 Core信息 file core.xxx bug.php-cgi.3611.1296586902: ELF 64-bit LSB core file AMD x86-64, version 1 (SYSV), SVR4-style, from ‘php-cgi’ gdb ~/php5/bin/php-cgi core.xx…