当前位置: 首页 > news >正文

IBM提出8位深度网络训练法,提速4倍同时保持高精度

AI前线导读: 计算效率是人工智能的代表。在训练速度、准确性和能耗之间保持平衡并非易事,但最近硬件的进步让这个目标比以前更容易实现。举个例子:IBM本周将在NeurIPS上展示一些新的人工智能训练方法,性能超过此前的最优表现。

这家位于纽约州阿蒙克的公司取得的第一个突破是加速数字技术,能够以8位实现全精度。第二个突破是用于模拟芯片的8位精密技术——这是IBM公司同类产品中实现的精度最高的技术,精确度提高了约一倍。

周二在蒙特利尔举行的NeurIPS 2018上,IBM对这一技术作了详细介绍。

更多干货内容请关注微信公众号“AI前线”(ID:ai-front)

“下一代AI应用程序需要更快的响应时间、更大的AI工作负载以及来自众多流的多模式数据。为了释放人工智能的全部潜力,我们正在重新以AI的思维设计硬件:从加速器到用于AI工作负载的专用硬件,如我们的新芯片,以及最终用于AI的量子计算,“IBM阿尔马登研究所副总裁兼实验室总监Jeffrey Wesler在博客文章中写道。“利用新的硬件解决方案扩展AI是IBM研究所工作的一部分,从狭义的人工智能(通常用于解决特定的,定义明确的任务)转向通用人工智能,跨越各个学科,帮助人类解决我们最紧迫的问题。 ”

从相对高精度(16位)浮点运算到低精度(8位)FP可能听起来违反直觉,但语音识别和语言翻译等任务并不一定非常严格。使用近似值可以显著提高电源效率和性能;正如Wesler解释的那样,使用16位精度引擎的“计算构建块”平均比具有32位精度的同类块小四倍。

在一篇名为《用8位浮点数训练深度神经网络》(Training Deep Neural Networks with 8-bit Floating Point Numbers)的论文中,IBM研究人员描述了他们如何在将加法算术精度从32位降到16位的同时,在ResNet50、AlexNet和BN50_DNN,以及一系列图像、语音和文本数据集模型中保持8位精度。他们声称,该技术可以将16位系统的深度神经网络的训练时间加速两到四倍。

第二篇论文 《带有投射式相变存储器的8位精度存储器内乘法》(8-bit Precision In-Memory Multiplication with Projected Phase-Change Memory)提供了一种补偿模拟AI芯片低固有精度的方法,使它们能够在标量乘法运算中达到8位精度,获得大致两倍的精度,同时比同类数字AI系统耗能少33倍。

该论文的作者提出内存计算作为传统内存的替代方案,担负起传统内存执行存储数据和处理数据的双重角色。架构调整本身就可以将能耗降低90%或更多,且相变存储器(PCM)可以获得额外的性能提升,后者具有可以通过电脉冲修改的电导。这个属性使其能够执行计算,投射式PCM(Proj-PCM)使PCM在很大程度上不受电导变化的影响,从而实现比以前更高的精度。

“研究团队取得的高精度表明,内存计算可能可以在低功耗环境中实现高性能的深度学习,例如物联网和边缘应用,”Wesler写道。“与我们的数字加速器一样,我们的模拟芯片可以扩展到视觉、语音和文本数据集的AI训练和推理,以及新兴的广泛的AI应用中。”

原文链接:
https://venturebeat.com/2018/12/02/ibms-8-bit-ai-training-technique-is-two-to-four-times-faster-while-retaining-accuracy/

\"image\"

链接:http://t.cn/E28YBT9

相关文章:

  • shell脚本中 [-eq] [-ne] [-gt] [-lt] [ge] [le]
  • PEM_密钥对生成与读取方法
  • nginx 根据域名和地址跳转
  • go语言渐入佳境[11]-function2
  • (三)从jvm层面了解线程的启动和停止
  • Apache https
  • 项目实战-Api的解决方案
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • 五个举措:现代化Jenkins 和终结“Jenkinsteins”
  • Vue官网教程学习过程中值得记录的一些事情
  • sass安装
  • LGPL与闭源程序
  • 聊聊flink的checkpoint配置
  • 堆的python实现及其应用
  • 创建一种深思熟虑的文化
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • GraphQL学习过程应该是这样的
  • Java,console输出实时的转向GUI textbox
  • Java精华积累:初学者都应该搞懂的问题
  • Magento 1.x 中文订单打印乱码
  • uni-app项目数字滚动
  • Vim Clutch | 面向脚踏板编程……
  • Vue 重置组件到初始状态
  • yii2权限控制rbac之rule详细讲解
  • 解决iview多表头动态更改列元素发生的错误
  • 力扣(LeetCode)22
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 首页查询功能的一次实现过程
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • 整理一些计算机基础知识!
  • ​linux启动进程的方式
  • ​queue --- 一个同步的队列类​
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • ###C语言程序设计-----C语言学习(6)#
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • %check_box% in rails :coditions={:has_many , :through}
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (二)构建dubbo分布式平台-平台功能导图
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (四)模仿学习-完成后台管理页面查询
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)Windows2003安全设置/维护
  • .NET Core 版本不支持的问题
  • .NET Micro Framework初体验(二)
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • @31省区市高考时间表来了,祝考试成功
  • [BeginCTF]真龙之力
  • [codeforces]Levko and Permutation
  • [GN] DP学习笔记板子
  • [HeadFrist-HTMLCSS学习笔记][第一章Web语言:开始了解HTML]
  • [Hibernate] - Fetching strategies