当前位置:网站首页>可省近90%服务器,反欺诈效率却大增,PayPal打破「AI内存墙」的方案为何如此划算?
可省近90%服务器,反欺诈效率却大增,PayPal打破「AI内存墙」的方案为何如此划算?
2022-06-21 22:04:00 【智源社区】
人们常说,新一代的人工智能浪潮是由数据、算法和算力来驱动的。最近几年模型参数的爆炸式增长更是让大家看到了算力的基础性作用。
为了配合企业用户对于算力的强烈需求,当前的很多 AI 硬件(比如 GPU)都铆足了劲儿地提高峰值算力,但这种提升通常以简化或者删除其他部分(例如内存的分层架构)为代价[1],这就造成 AI 硬件的内存发展速度远远落后于算力的增长速度。

SOTA Transformer 模型参数量(红点)和 AI 硬件内存大小(绿点)增长趋势对比。
图源:https://github.com/amirgholami/ai_and_memory_wall/blob/main/imgs/pdfs/model_size_scaling.pdf
因此,在遇到大模型的训练和推理时,用户总是感觉显存或内存不够用,这就是所谓的「内存墙」问题。
为了打破内存墙,人们想了很多种办法,比如前段时间大火的 Colossal-AI 项目就是一个适用于训练阶段的方法。在这个项目中,开发者高效利用了「GPU+CPU 异构内存」的策略,使得一块消费级显卡就能训练 180 亿参数的大模型。
而在推理阶段,模型对硬件的主要需求就是加载模型的全部参数量,所以对算力要求相对低一些。一般对于计算密集型模型,我们可以采用 INT8 量化或者模型并行等策略,用多张 GPU 及其显存资源来推理单个模型。但实际上,还有很多工业界应用场景的机器学习或深度学习模型可以使用 CPU 与内存来做推理,例如推荐系统、点击预估等。
对于这些模型,我们除了内存容量上的诉求外,可能还需要考量异常情况下的数据恢复时间、硬件成本、维护成本等问题,这也对破解内存墙方案的选择提出了新的要求。
工业界的推理拦路虎:内存墙
在工业场景下,海量数据、高维模型确实能带来更好的效果,但这些数据的高维、稀疏特征又为计算和存储带来了很大的挑战。毕竟像推荐系统这样的模型,隐藏层大小可能就是数百万的量级,总参数量甚至能达到十万亿的量级,是 GPT-3 的百倍大小,所以其用户往往需要特别强大的内存支持系统才能实现更好的在线推理能力。
既然内存不够,那岂不是直接堆内存条(如 DRAM)就够了?这从原理上是可行的,但一方面 DRAM 内存的价格不便宜啊,这类模型需要的内存又不是几百 GB,而是动不动就冲上数十 TB,而单条 DRAM 内存一般都只有几十 GB,很少有超过 128GB 的。所以,整体算一下,不论是成本,还是在容量扩展上的能力,这一方案都不太容易被大家接受。
此外,DRAM 内存还有一个问题,即数据是易失的,或者说:一断电就丢数据。有时候模型重启或者排除故障的时候,只能重新将权重从更慢的存储设备,如 SSD 或机械硬盘中加载到内存里,非常耽误时间,这对于在线推理业务来说是很难容忍的。
打破推理内存墙,不用 DRAM 用什么?
那么,除了添购 DRAM 这个不太划算的选择外,提供在线推理服务或使用这类应用的企业要打破内存墙,还有其他选择吗?
如果仔细比较一下不同存储层级的容量和延迟数据,我们可以发现,DRAM 内存和固态盘 / 硬盘存储之间其实存在很大的差距。如果能开发一种全新的存储部件或设备来填补这个缺口,那内存墙问题可能就会得到缓解。
这就是英特尔 傲腾 持久内存(Intel Optane Persistent Memory, 简称 PMem)诞生的背景。其独有的傲腾 存储介质与先进的内存控制器和其它软硬件技术相结合,使其在性能上接近 DRAM 内存,在容量上又能有数倍的提升(单条容量可达 512GB),用在基于第三代英特尔 至强 可扩展处理器的双路平台上时,理论上可提供最高达 12TB 的内存总容量(4TB DRAM+8TB 持久内存),相比之下,基于纯 DRAM 的方案不但在容量扩展能力上远远不及,在成本上也让人难以承受。
此外,傲腾 持久内存还有两个重要特性:可按字节寻址和数据持久性,分别汇集了内存与存储的优点。传统存储需要按块进行读写寻址,就如同去图书馆借书时,必须要把放置有目标书籍的整个书架上的书都背回家再做分拣,而内存按字节寻址则相当于能够精准定位目标书籍的位置并仅将其借出。

傲腾 持久内存在存储层级中的位置及作用。

用书的存放和查找做例子,来理解不同存储层级的特点。
数据持久性则补全了 DRAM 内存的先天不足,即可在断电后依然能保留数据,这就让大体量的内存数据库在计算系统出现计划内或计划外停机时,恢复数据及服务的速度大大加快,毕竟中间节省了从固态盘或硬盘上将数百 GB,甚至是 TB 级数据读回内存的耗时。
边栏推荐
- Software testing Q & A
- IPD chip shipments exceeded 1billion, and chips and semiconductors appeared in ims2022
- Uniapp play video, download video to mobile photo album, add download progress bar function (step on pit record)
- Rk3568 Development Notes (III): update source, installation of network tools, serial port debugging, network connection, file transfer, installation of vscode and Samba shared services for rk3568 virt
- 樹莓派開發筆記(十六):樹莓派4B+安裝mariadb數據庫(mysql開源分支)並測試基本操作
- QT practical skill: close unnecessary warning prompt on the right in the qtcreator editing area
- ERP已死,管理后台已凉,秒杀系统称王!
- Analysis of Eureka
- Native applet application applet - publishing process
- Hardware development notes (III): basic process of hardware development, making a USB to RS232 module (II): design principle diagram Library
猜你喜欢

关于 QtCreator的设计器QtDesigner完全无法正常拽托控件 的解决方法

Fork join thread pool

Win11 how to change the desktop file path to disk D

What is the fault when the router is connected but not connected to the network

leetcode1337. 矩阵中战斗力最弱的K行

redis主从复制(九)

企业综合组网实训二

SIGIR2022 | 对话式推荐系统中的用户偏好建模

数据库主键一定要自增吗?有哪些场景不建议自增?

Qt文档阅读笔记-staticMetaObject解析与实例
随机推荐
Software testing concepts
青春无言│用技术定格毕业季最美好的回忆
What is the fault when the router is connected but not connected to the network
盘点常见的漏洞利用方式
JS listening and removing listening events
[understanding pointer] advanced level of pointer
Is Oriental Fortune futures regular? Is this platform safe and reliable?
关于 QtCreator的设计器QtDesigner完全无法正常拽托控件 的解决方法
Xiuno Shura light forum imitation Zhihu blue simple responsive theme template 1.7+ adaptive pc+wap terminal
Getting started with reverse debugging - Basics
Truncate strings by length into an array
eureka的解析
378. the k-th smallest element in an ordered matrix - conventional method
June 21, 2022: golang multiple choice question, what does the following golang code output? A:3; B:4; C:100; D: Compilation failed. package main import (
Cvpr2022 𞓜 loss problem in weakly supervised multi label classification
Produced by Ali! Graphical ant script - idea plug-in cloudtoolkit
Notes on the development of raspberry pie (15): Raspberry pie 4b+ compile and install MySQL database from the source code
关于 allegro的pcbEditor在使用过程中经常卡或者busy无响应 的解决方法
同花顺VIP开户怎么开户,安全吗?
Pyenv installing Anaconda modifying Tsinghua source