首页
学习
活动
专区
工具
TVP
发布

微软开源以ONNX Runtime加速BERT模型的优化成果

微软宣布将开源应用于ONNX Runtime预测引擎,经优化过的自然语言处理模型BERT版本,这个模型是微软为Bing搜索引擎打造,可以扩展到GPU和CPU上计算,以低延迟即时处理Bing上数百万次的查询。

BERT(Bidirectional Encoder Representations from Transformers)是由Google所开发,用于自然语言处理热门的深度学习模型,但是因为BERT需要非常大量的运算,因此要在即时产品环境,应用大型Transformer网络,运算成本将非常高昂,微软提到,当每个查询都经12层或是24层的BERT模型运算,要降低延迟和成本都会是一大挑战。

微软在去年11月的时候发布了研究进展,在不严重影响精确度的情况下,将BERT模型压缩剩下3层,大幅降低运算成本,但是即便模型只剩3层,基准测试服务仍需要77毫秒,这个延迟时间在每秒处理数百万查询和文件的规模下,成本依然过高,因此微软再进一步优化模型,使用C++ API重新实例整个模型,以GPU架构提高吞吐量800倍。

现在这个经优化的成果已经在Bing中使用,微软提到,这个模型可以用在网页搜索的自然语言处理工作,他们想以简单的方式跟社群共享这个成果,目前的解决方案需要开发人员以C++函数库重新实例整个模型,但这个工程过于耗时,所以为了推广Transformer预测以及其他改进,除了扩展CPU的支持外,微软还将这些成果在ONNX Runtime中开源。

ONNX Runtime是机器学习模型的预测引擎,与PyTorch、TensorFlow以及支持ONNX标准的工具兼容,ONNX Runtime具有开放且可扩展的基础架构,能使用内置的图优化(Graph Optimization)和各种硬件加速功能,来优化和加速推理。而像是BERT这样的Transformer模型,由许多运算符(Operator)的图构成,ONNX Runtime内置图优化功能,可以简化图并且减少节点,进而执行更复杂的节点融合和布局优化。

应用这些优化,可以让128串行长度的12层fp16 BERT-SQUAD预测延迟时间只有1.7微秒,24层fp16 BERT-SQUAD预测时间为4微秒,而在ONNX Runtime中测量具有128串行长度的3层fp32 BERT,CPU预测速度提高17倍,在GPU预测速度则提高3倍以上。

用户现在可以通过使用ONNX Runtime,获得最新的BERT优化,微软使用Bing的Transformer预测程序代码综合开发ONNX Runtime,因此用户不仅能以Bing的流量规模,执行ONNX Runtime预测大型Transformer网络,而且还获得改善Bing延迟的优化。

微软表示,ONNX Runtime的易用性,可以减少将优化用在新场景的时间,从数天缩短至数小时,且将ONNX Runtime用于计算机视觉、语音、语言处理和预测等各种模型,与在相同硬件执行的其他解决方案相比,性能提升了17倍。

微软提供了PyTorch和TensorFlow版本的BERT加速范例程序代码,同时还发布使用Azure机器学习创建和管理工作管线的教程,教用户以ONNX Runtime进行训练和部署。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200124A0BNUG00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券