最近,有几则消息吸引了老孙的注意力,一则消息是在海外,亚马逊AWS最近上线了一款名为DDESE的FPGA语音识别加速方案,据说这个语音识别加速解决方案是首个在AWS上发布的,由中国人工智能创业公司提供的方案。另一则消息是,国内的华为云也将DDESE解决方案移植到了华为云平台之上。此外,据说阿里云也正在将DDESE迁移至其上。那么,这个DDESE到底是何方神圣,竟然可以让诸多云厂商“竞折腰”?
DDESE,语音识别的“加速器”
DDESE是深鉴科技笛卡尔高效语音识别引擎(DeePhi DescartesEfficient Speech Recognition Engine)的简称,它是深鉴科技基于XilinxFPGA自主研发的高效的端到端自动语音识别引擎,它针对深度神经网络(主要是LSTM),为用户提供软硬件协同设计的快速、灵活、高效的推理计算加速解决方案(包括剪枝、定点、编译和FPGA执行推理)。它借助了DeepSpeech2框架和LibriSpeech 1000小时数据集来做模型训练和压缩,支持用户测试对比CPU/FPGA的性能以及体验单句语音识别效果。
DDESE的核心技术——ESE语音识别引擎——基于2017年获得FPGA 芯片领域顶级会议FPGA 2017最佳论文的研究成果,与FPGA 2017的ESE一脉相承,是深鉴科技以端到端语音识别为载体,在产品化道路上迈出的第一步。
DDESE具有以下特点:
- 针对模型推理支持对单向、双向LSTM使用FPGA做加速
- 支持卷积层、全连接层、BN层和多种激活函数(例如Sigmoid、Tanh和HardTanh)
- 支持测试对比CPU/FPGA的性能以及体验单句语音识别效果
- 支持用户自己上传测试语句进行识别(要求16000Hz采样率,时长不超过3秒的英文)
DDESE解决方案是算法、软件和硬件协同设计(包括剪枝、定点、编译和FPGA执行推理)。通过剪枝,可以在精度损失很小的情况下得到一个稀疏模型(稠密度为15%~20%),然后将模型的权重和激活值定点到16bit,这样一来整个模型能够被压缩超过10倍,可以借助稀疏存储格式编译并部署在笛卡尔平台上,采用FPGA执行高效的推理。
DDESE的自动语音识别系统和模型的结构如下:
如果只加速模型的LSTM层,对于单向、双向LSTM模型相比于GPU(Tesla P4 + cudnn)分别可以取得2.87倍和2.56倍的加速;
![](/qrcode.jpg)
如果同时加速模型的CNN层和双向LSTM层以期更低的延迟,对于整个端到端的语音识别过程相比于GPU(Tesla P4 + cudnn)可以取得2.06倍的加速。
备注:E2E是端到端的简称,ACT是激活值的简称,WER是词错误率的简称,输入语音为1秒。
对于CNN+双向LSTM模型,详细的性能对比如下:
DDESE,性能强大的端到端解决方案
通过上面的介绍,可以看到,DDESE确实具有极其强悍的性能,尤其对于LTSM神经网络加速效果奇佳。那么,DDESE为什么会这么强呢?
大家都知道,目前,几乎所有语音识别技术都依赖于机器学习,从而达到更好的语音识别效果,而任何机器学习加速解决方案性能的提升无外乎三个方面:算法、软件、硬件。
而在前面的部分老孙已经提到DDESE在算法和软件方面的优势,但是,仅仅只具有高效的算法和优质的软件,还并不足以保证DDESE在性能上的超群实力,必须同时有强大的硬件架构与之相辅相成,才能起到脱胎换骨的效果。
这个强大的硬件架构就是——FPGA
FPGA想必大家都不陌生,即现场可编程门阵列。但FPGA的声名鹊起其实就是源于它在机器学习方面的卓越性能。FPGA之所以能够在机器学习,特别是深度学习中表现出较高的性能实际上是和它的特性紧密相关的。
深鉴科技RNN/LSTM加速技术团队负责人李鑫介绍说,FPGA不同于CPU、GPU采用的指令译码执行、共享内存的冯·诺依曼结构。它本质上是无指令、无需共享内存的体系结构。FPGA 同时拥有流水线并行和数据并行,而 GPU 几乎只有数据并行(流水线深度受限)。例如处理一个数据包有 10 个步骤,FPGA 可以搭建一个 10 级流水线,流水线的不同级在处理不同的数据包,每个数据包流经 10 级之后处理完成。每处理完成一个数据包,就能马上输出。而 GPU 的数据并行方法是做 10 个计算单元,每个计算单元也在处理不同的数据包,然而所有的计算单元必须按照统一的步调,做相同的事情(SIMD,Single Instruction Multiple Data)。这就要求 10 个数据包必须一起输入、一起输出,输入输出的延迟增加了。当任务是逐个而非成批到达的时候,流水线并行比数据并行可实现更低的延迟。因此对流式计算的任务,FPGA 比 GPU 天生有延迟方面的优势。因此,FPGA 更适合做需要低延迟的流式处理,GPU 更适合做大批量同构数据的处理。
而从深度学习来看,实际上分为训练和推断两个部分。其中,训练市场占整个深度学习市场的5%,其余95%都是推断市场。对于很多推断场景(例如语音识别)来说,它实际上是一种流式计算密集型任务,特别适合FPGA,再加上FPGA在能耗方面的巨大优势以及可编程的灵活性,FPGA成为深度学习首选的硬件架构平台,也就不难理解了。
而深鉴科技从建立之初,就瞄准了FPGA市场。在FPGA领域具有领先的技术实力,这种实力体现在DDESE上,就是卓然超群了。
DDESE上云的理由
其实,自2015年英特尔有史以来最大一笔收购案——167亿美元收购FPGA第二大企业Altera以来,FPGA就受到了众多云计算巨头的关注,伴随着人工智能技术的快速发展,人工智能市场的火速升温,FPGA在深度学习领域展现的强大潜力恰好顺应了人工智能市场的发展潮流,因此,推出FPGA云服务已经成为众多云计算厂商在人工智能市场占据先机的关键,于是,众多云计算巨头纷纷推出自己的FPGA云,国外云计算巨头AWS在去年推出了FPGA云服务,而另一个云计算巨头微软在Azure中已经大量使用FPGA。国内云计算厂商阿里云、腾讯云、百度云也已经相继推出了FPGA云服务。
李鑫认为,各大云计算厂商纷纷推出FPGA云,从云计算厂商方面来讲,各大云计算厂商拥有云端的优势,任何一项技术通过云,将会更好的发挥它的优势,云的便捷性、可扩展性,开发成本低、弹性灵活的特点是很多其他平台所无法提供的,对FPGA也同样如此,FPGA云更能充分发挥FPAG的优势,减小FPGA的劣势,从而为云计算厂商赢得更多的用户。而从用户角度来说,用户不需要关心云背后的具体硬件,只需要根据自己的实际需求——例如到底是想要低功耗,还是纯粹经济,是需要大规模数据非流式处理的能力,还是需要通信密集型的流式处理能力——在云市场中找到对应的解决方案,直接拿来使用就好了,尤其对于FPGA来说,如果用户单独购置FPGA,成本昂贵不说,部署和维护对用户来说都是一项沉重的负担,而通过FPGA云,一切问题将迎刃而解。
因此,FPGA云对于云计算厂商和用户来讲都是一个双赢的局面,各大云计算厂商青睐FPGA云也就不难理解了。而构建于FPGA之上的DDESE,聚焦于人工智能最火热的语音识别加速领域,集算法、软件、硬件系统设计于一身,应用了深鉴科技诸如深度压缩等多项自主创新技术,并采用了著名的DeepSpeech2框架以及LibriSpeech数据集,同时,它也是一个完整的端到端的语音识别加速解决方案,并且几乎是世界上唯一能够达成RNN/LSTM稀疏化硬件实现的语音识别加速解决方案,这样的方案受到各云计算厂商的欢迎自然是水到渠成,而双方的合作也自然是一拍即合。
为用户提供低门槛FPGA解决方案
李鑫最后表示,实际上,DDESE只是一个窗口,它向大家展示了深鉴科技所具备的强大的集算法软件、硬件协同设计为一体的解决方案设计能力,同时通过和各大云计算厂商的合作,也为用户在语音识别、深度学习领域进行研究、学习和创新提供了一个简单、廉价、方便的平台,让大家可以更便捷、高效、快速地享受到FPGA硬件解决方案给他们带来的加速能力,促进相关技术的快速发展和迭代。深鉴科技也希望能够通过类似的解决方案,进一步降低用户使用FPGA的门槛,深鉴科技也会利用自身的软件研发能力,为用户提供更加优秀的软件工具链,帮助用户充分发挥FPGA平台的优势,为用户提供更加多样化的选择。