Jeff Dean 最新论文:深度学习索引速度更快、占用空间更少,未来系统设计将有很大不同

百家 作者:DeepTech深科技 2017-12-13 04:40:09

年度订阅用户可加入科技英语学习社区,每周科技英语直播讲堂,详情查看“阅读原文”


如果你关注了前几天 AlphaZero 的新闻,那么你对 TPU 一定不会陌生。TPU(Tensor Processing Unit)是谷歌专门为机器学习打造的高性能处理器。它执行每个操作所需要的晶体管数量更少,因此效率更高AlphaZero 也正是因为有 TPU 的帮助才能发挥它的威力。


近日,在 NIPS 大会期间,Google 大脑负责人 Jeff Dean 详细介绍了 Google 在 AI 芯片方面的最新研究。众所周知,深度学习需要大量的计算资源,它正在改变我们设计系统的思路。Learned Index 就是谷歌最新的研究成果之一——一种不同于传统的,全新的索引。

※ 论文地址:

https://arxiv.org/pdf/1712.01208v1.pdf


图丨Jeff Dean


不论在何时,当我们想要高效的获取数据时,索引都最好的答案。索引是一种模型,它的中心思想就是:设计一个模型,它可以学习数据的排序或者是键值的结构,并以此为信号来推测数据记录的位置或者存在与否。传统的索引模型有 B-Tree-Index(B 树索引),Hash-Index(哈希索引),BitMap-Index(位图索引)等等。


针对不同的数据结构,不同的需求,目前已经存在多种多样的索引供人们选择。比如哈希索引在依据键值查找的情况下效率极佳,B-Tree 则更适合有范围要求的请求,Bloom-filters 索引专门用来查看数据的存在与否。

图 | (a)B-Tree 索引本质上是一个模型,将键值映射到数据存储的位置。(b)Learned Index 的替代结构


索引在数据系统中有着极其重要的地位,在过去几十年来,一直是工程师们重点优化的对象。然而,现存的所有传统的索引针对的都是通用数据结构。他们假设最差的数据分布,具有很好的普适性,但却不能充分利用真实世界中数据一些常见而普遍的模式。


如果可以了解数据的分布等特征,就可以在很大程度上优化索引,减少计算和存储所需资源。但是现实世界的数据复杂多样,并不一定符合某种已知的模式。而且让工程师们为每一种特定样式的数据设计解决方案也是代价极其高昂的。但是机器学习和性能日益提高的硬件却为我们带来了这样的机会。

图 | Learned Index 和 B-Tree 的结果比较:速度极大提高,存储空间减少


谷歌的研究人员基于这样的前提和推断:所有已知的索引结构都可以由其他种类的模型代替。他们提出了新索引的构想,它将可以学习到数据的特定模式和内在关联,自动设计出专门的索引结构,并且设计的代价极其低廉。这个构想就是 Learned Index。


在论文中,他们提出了对 B-Tree 索引,哈希索引和 Bloom-Filters 索引的替代方案。实验结果显示出了 Learned Index 的极高性能。研究显示,使用神经网络建立的索引,在处理来自真实世界的数据时,其速度比高速缓存优化的B-Tree索引速度提高70%,存储空间缩减最大可达到99%


图 | Learned Index 替代哈希索引


图 | Learned Index 与 Hash Index 实验结果对比:Learned Index 的 Model Hash 节省了更多存储空间。


研究人员在理论上分析了在何种情况下 learned index 性能超过传统索引方法和设计 learned index 结构面临的主要挑战。他们认为,随着硬件的快速发展,这些挑战均不足为惧,而 learned index 的优点在下一代硬件(GPU甚至TPU)上会更加显著。


目前这一工作还集中在只读的数据分析负载上,但是在包含大量写操作的工作上应用的蓝图已经被勾画出来。用学习模型取代数据管理系统的核心部分的构想将对未来系统设计产生重大影响,而这一工作无疑让我们看到了曙光。


没错,谷歌的野心已经非常明显了。在今年的 NIPS 上,他在演讲中提到,传统底层系统的代码( 操作系统,存储系统,编译系统 ) 都没有充分利用机器学习的成果 ”,至此,我们已经看到他为机器学习指出的全新研究方向:用机器学习来重建计算机系统结构。此次的机器学习索引将只是一个开始。


-End-


校审:黄珊


关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接