您当前的位置:首页 > 电脑百科 > 程序开发 > 算法

矩阵乘法无需相乘,速度提升100倍,MIT开源最新近似算法

时间:2021-09-09 10:40:55  来源:今日头条  作者:量子位

萧箫 发自 凹非寺
量子位 报道 | 公众号 QbitAI

在不做乘加操作(multiply-adds)的情况下,能计算矩阵乘法吗?

矩阵乘法包含大量a+b×c类运算,因此常在运算中将乘法器和加法器进行结合成一个计算单元,进行乘法累加操作。

近似算法的话,确实可以!

这是来自MIT的最新研究,他们提出了一种新的近似算法MADDNESS,在确保一定精度的情况下,将速度提升到了现有近似算法的10倍,比精确算法速度快100倍,被ICML 2021收录。

矩阵乘法无需相乘,速度提升100倍,MIT开源最新近似算法

 

研究还认为,新算法可能比最近大火的稀疏化、因子化等操作更有前途。

目前,作者已经开源了算法代码,感兴趣的小伙伴们可以去尝试一下。

一起来看看。

用K聚类算法搞个查找表

这个算法,借鉴了一种叫做乘积量化(Product Quantization)的方法。

其中,量化本质上是一种近似操作。

由于矩阵乘法中的每个元素,都可以看做是两个向量的点积,因此可以通过查找相似向量,来近似地估计向量的点积,而无需再进行大量乘法运算。

乘积量化的具体原理如下:

矩阵乘法无需相乘,速度提升100倍,MIT开源最新近似算法

 

当我们输入一个要计算的向量a的时候,函数g(·)会对a进行一个近似操作,从一个提前设置好的数值查找表中,找到与它最相近的那个值,并输出一个近似的向量g(a)。

与此同时,这张表格中的每个值,都已经提前做过点积计算了,因此在输出g(a)的同时,它与查询向量(query vector)b对应的近似点积计算结果h(b)也能被查表并输出。

最后,只需要用f(·,·)函数对g(a)和h(b)做加法运算,而不需要再做乘法计算了。

简单来说,就是通过近似查表的方法,节省了矩阵乘法中的乘法计算时间。

那么,这样的数值查找表,究竟要设置什么数值,才能确保在近似计算过程中,损失的计算精度最小呢?

这里借鉴了一下K聚类算法(K-means)的思路,即将数据预分为K组,随机选取K个对象作为初始聚类中心,再通过训练迭代,确保在将样本分到K个类中时,每个样本与其所属类中心的距离之和最小。

矩阵乘法无需相乘,速度提升100倍,MIT开源最新近似算法

 

△可视化的K聚类算法

通过这种方法计算出来的数值查找表,能更准确地近似矩阵乘法的数值计算结果。

根据这样的思路,作者们提出了一种高效的向量乘积量化函数,能在单CPU中每秒编码超过100GB的数据;同时,还提出了一种针对低位宽整数的高速求和函数。

然后,基于这两类函数,整出了一套全新的矩阵乘法算法MADDNESS。

这个近似算法的效果如何呢?

精度保持,效率提升数倍

这个算法所需要的算力并不高,在搭载英特尔酷睿i7-4960HQ(2.6GHz)处理器的macbook Pro上就能完成。

他们在Keras版本的VGG16模型上进行了测试,所用的数据集是CIFAR-10/100,对一系列最新的近似算法进行了评估:

矩阵乘法无需相乘,速度提升100倍,MIT开源最新近似算法

 

从图中来看,在效率提升接近10倍的情况下,采用MADDNESS(图中红线)仍然能在CIFAR-10上保持几乎不变的精度。

即使是在CIFAR-100上,在精度几乎不变的情况下,MADDNESS和MADDNESS-PQ也同样实现了效率最大化的结果。

除了最新算法外,与其他的现有算法相比(包括作者们在2017年提出的Bolt算法),效果同样非常拔尖。

矩阵乘法无需相乘,速度提升100倍,MIT开源最新近似算法

 

对比计算速度的话,MADDNESS的点积速度就能比现有最快方法快两倍左右。

矩阵乘法无需相乘,速度提升100倍,MIT开源最新近似算法

 

当然,也有读者指出,这篇论文还存在一些待解决的问题:

①论文用的是VGG16模型,但没有在Transformer等更经典的模型(如BERT)中进行实验;②虽然对矩阵乘法进行了加速,但毕竟只是近似算法,意味着潜在的精度损失;③没有在GPU中测试评估结果。

矩阵乘法无需相乘,速度提升100倍,MIT开源最新近似算法

 

但他仍然认为,这不失为一篇非常有意思的研究。

作者介绍

矩阵乘法无需相乘,速度提升100倍,MIT开源最新近似算法

 

Davis Blalock,MIT的计算机系博士生,致力于研发快速机器学习算法,他认为速度是衡量机器学习模型的一个非常重要的因素。

矩阵乘法无需相乘,速度提升100倍,MIT开源最新近似算法

 

John Guttag,MIT计算机系教授,研究方向是机器学习、AI和计算机视觉,目前的研究项目集中在医疗AI和医学成像上。

值得一提的是,这两位研究人员,此前还炮轰过神经网络中的剪枝算法

矩阵乘法无需相乘,速度提升100倍,MIT开源最新近似算法

 

他们针对其中的81种算法进行了横向对比,发现“没有明确证据表明,这些算法在10年内,对任务效果有明显改善”。

研究一作Davis Blalock还认为:

这些改进都是所谓的“微调”,而不是科研人员声称的“核心创新”,甚至有些改进方法可能根本就不存在。

在对AI模型进行效率提升上,两位作者确实是很严格了。

项目地址:
https://github.com/dblalock/bolt

论文地址:
https://arxiv.org/abs/2106.10860

参考链接:
[1]https://mp.weixin.qq.com/s/VK2W9zD83ddSzYSLLS21UQ
[2]https://news.ycombinator.com/item?id=28375096

— 完 —

量子位 QbitAI · 头条号签约

关注我们,第一时间获知前沿科技动态



Tags:近似算法   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
矩阵乘法包含大量a+b×c类运算,因此常在运算中将乘法器和加法器进行结合成一个计算单元,进行乘法累加操作。...【详细内容】
2021-09-09  Tags: 近似算法  点击:(68)  评论:(0)  加入收藏
▌简易百科推荐
前言Kafka 中有很多延时操作,比如对于耗时的网络请求(比如 Produce 是等待 ISR 副本复制成功)会被封装成 DelayOperation 进行延迟处理操作,防止阻塞 Kafka请求处理线程。Kafka...【详细内容】
2021-12-27  Java技术那些事    Tags:时间轮   点击:(1)  评论:(0)  加入收藏
博雯 发自 凹非寺量子位 报道 | 公众号 QbitAI在炼丹过程中,为了减少训练所需资源,MLer有时会将大型复杂的大模型“蒸馏”为较小的模型,同时还要保证与压缩前相当的结果。这就...【详细内容】
2021-12-24  量子位    Tags:蒸馏法   点击:(9)  评论:(0)  加入收藏
分稀疏重建和稠密重建两类:稀疏重建:使用RGB相机SLAMOrb-slam,Orb-slam2,orb-slam3:工程地址在: http://webdiis.unizar.es/~raulmur/orbslam/ DSO(Direct Sparse Odometry)因为...【详细内容】
2021-12-23  老师明明可以靠颜值    Tags:算法   点击:(7)  评论:(0)  加入收藏
1. 基本概念希尔排序又叫递减增量排序算法,它是在直接插入排序算法的基础上进行改进而来的,综合来说它的效率肯定是要高于直接插入排序算法的;希尔排序是一种不稳定的排序算法...【详细内容】
2021-12-22  青石野草    Tags:希尔排序   点击:(6)  评论:(0)  加入收藏
ROP是一种技巧,我们对execve函数进行拼凑来进行system /bin/sh。栈迁移的特征是溢出0x10个字符,在本次getshell中,还碰到了如何利用printf函数来进行canary的泄露。ROP+栈迁移...【详细内容】
2021-12-15  星云博创    Tags:栈迁移   点击:(19)  评论:(0)  加入收藏
一、什么是冒泡排序1.1、文字描述冒泡排序是一种简单的排序算法。它重复地走访要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地...【详细内容】
2021-12-15    晓掌柜丶韶华  Tags:排序算法   点击:(16)  评论:(0)  加入收藏
在了解golang的map之前,我们需要了解哈希这个概念。哈希表,又称散列表(Hash table),是根据键(key)而直接访问在内存储存位置的数据结构。也就是说,它通过计算出一个键值的函数,将...【详细内容】
2021-12-07  一棵梧桐木    Tags:哈希表   点击:(13)  评论:(0)  加入收藏
前面文章在谈论分布式唯一ID生成的时候,有提到雪花算法,这一次,我们详细点讲解,只讲它。SnowFlake算法据国家大气研究中心的查尔斯·奈特称,一般的雪花大约由10^19个水分子...【详细内容】
2021-11-17  小心程序猿QAQ    Tags:雪花算法   点击:(24)  评论:(0)  加入收藏
导读:在大数据时代,对复杂数据结构中的各数据项进行有效的排序和查找的能力非常重要,因为很多现代算法都需要用到它。在为数据恰当选择排序和查找策略时,需要根据数据的规模和类型进行判断。尽管不同策略最终得到的结果完...【详细内容】
2021-11-04  华章科技    Tags:排序算法   点击:(37)  评论:(0)  加入收藏
这是我在网上找的资源的一个总结,会先给出一个我看了觉得还行的关于算法的讲解,再配上实现的代码: Original author: Bill_Hoo Original Address: http://blog.sina.com.cn/s/bl...【详细内容】
2021-11-04  有AI野心的电工和码农    Tags: KMP算法   点击:(36)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条