推理识别是人工智能最重要的落地应用,其他与深度学习相关的数据收集、标注、模型训练等工作,都是为了得到更好的最终推理性能与效果。
几乎每一种深度学习框架都能执行个别的推理工作,包括Tensorflow、Pytorch、MXNet等通用型框架与YOLO专属的Darknet框架,此外还有ONNX开发推理平台、NVIDIA TensorRT加速推理引擎,也提供推理相关的C/C++与Python开发接口,这是大部分技术人员所熟悉的方法。
在垂直应用方面,NVIDIA的DeepStream智能分析工具是非常适合用在种类固定且需要长期统计分析的场景,包括各种交通场景的人/车流量分析、工业流水线质量检测等应用,并且在早期视觉(Visualization)类推理功能之上,再添加对话(Conversation)类推理功能,让使用范围更加完整。
上述的推理方式通常适合在识别固定种类与固定输入源的使用场景,在交通、工业自动化领域、无人设备等领域的使用是比较普及。
但是这种方式并不适合在网络相关的服务类应用中使用,包括在线的产品推荐、图像分类、聊天机器人等应用,因为在线服务需要同时面对未知数量与类型的数据源,并且透过HTTP协议进行数据传输的延迟问题,也是严重影响用户体验感的因素,这是绝大部分网路服务供应商要导入AI智能识别技术所面临的共同难题。
NVIDIA Triton推理服务器的最大价值,便是为服务类智能应用提供一个完整的解决方案,因此首先需要解决以下的三大关键问题:
以上是NVIDIA Triton推理服务器的基本特性说明,要满足上面所列的特性,是具备相对复杂的内容,这是本系列文章所要为读者逐一探索的内容,不过在讲解技术内容之前,我们可以先看看有哪些比较具有代表性成功案例,能让大家对于Triton推理服务器的使用场景有更进一步的了解。
微软Teams是全球沟通和协作的重要工具,每月有近2.5亿活跃用户,其Azure认知服务提供28种语言的字幕和转录,实时字幕功能帮助与会者实时跟踪对话,转录功能方便与会者在日后回顾当时的创意或回看未能参与的会议,实时字幕对聋哑人、听力障碍者,或者异国与会者特别有用。
底层语音识别技术作为认知服务中的一个API,开发人员可以使用它定制和运行自己的应用程序,例如客服电话转录、智能家居控制或为急救人员提供AI助手。认知服务会生成Teams的转录和字幕,将语音转换为文本,并识别说话人。同时也能够识别专业术语 、姓名和其他会议背景,提高字幕的准确性。
微软Teams首席项目经理Shalendra Chhabra表示:“这样的AI模型非常复杂,需要数千万个神经网络参数才能识别几十种不同的语言。但模型越大,就越难以经济高效地实时运行。”
为了提高服务质量,微软使用NVIDIA Triton开源推理服务软件,来帮助Teams使用认知服务优化语音识别模型,以及认知服务所支持的高度先进语言模型,在极低的延迟状态下提供高度准确、个性化的语音转文本结果,同时可以保证运行这些语音转文本模型的NVIDIA GPU充分发挥计算资源,在消耗更少计算资源的同时为客户提供更高的吞吐量,进而降低成本。
NVIDIA GPU和Triton软件能够帮助微软,在不牺牲低延迟的情况下,通过强大的神经网络,实现高准确性,确保语音-文本的实时转换,当启用转录功能时,与会者可以在会议结束后轻松补上错过的内容。
Triton推理服务器有助于简化AI模型部署并解锁高性能推理,用户甚至可以为自己的应用开发自定义后端。下面三种关键功能,是协助微软将Teams的字幕和转录功能扩展到更多会议和用户的效能:
本案例中,通过NVIDIA的GPU执行Triton推理服务器与TensorRT推理加速引擎, 帮助微信的二维码光学识别(OCR)计算降低46%时间,并将系统的失败率降低81%,同时减少78%的服务器使用数量。
腾讯微信是一款跨平台的通讯工具,支持通过手机网络发送语音、图片、视频和文字等。截至2021年6月,微信在全球拥有超过12亿活跃用户,是国内活跃用户最多的社交软件。
微信识物是一款主打物品识别的AI产品,通过相机拍摄物品,更高效、更智能地获取信息。2020年微信识物拓展了更多识别场景,上线了微信版的图片搜索,打开微信扫一扫,左滑切换到“识物”功能,对准想要了解的物品正面,可以获取对应的物品信息,包括物品百科、相关资讯、相关商品。
2021年1月,微信发布的8.0版本更新支持图片文字提取的功能,用户在聊天界面和朋友圈中长按图片就可以提取图片中文字,然后一键转发、复制或收藏。
在识物的过程包含检测、图像召回、信息提炼等环节,其中二维码扫描的使用频率也是非常高,主要包括识别和检测,这两种应用都有非常大的计算量。但原本使用Pytorch进行模型的推理时,遇到以下三大问题:
为了解决上述问题,微信团队使用Triton推理服务器结合TensorRT加速推理器的综合方案,主要技术内容如下:
通过使用NVIDIA的TensorRT对微信识物和OCR的模型进行加速,在降低单次推理延迟50%以上的同时,节约了多达64%的显存。结合Triton的动态批量处理和多实例的功能,OCR的整体时延降低了46%,系统失败率降低了81%。大大提高了用户的体验,并且服务器的数量减少了多达78%,极大降低了服务的成本。
腾讯平台与内容事业群(简称 腾讯PCG)负责公司互联网平台和内容文化生态融合发展,整合QQ软件、QQ空间等社交平台,和应用宝、浏览器等流量平台,以及新闻资讯、视频、体育、直播、动漫、影业等内容业务,推动IP跨平台、多形态发展,为更多用户创造海量的优质数字内容体验。
腾讯PCG机器学习平台部旨在构建和持续优化符合PCG技术中台战略的机器学习平台和系统,提升PCG机器学习技术应用效率和价值,建设业务领先的模型训练系统和算法框架,提供涵盖数据标注、模型训练、评测、上线的全流程平台服务,实现高效率迭代,在内容理解和处理领域,输出业界领先的元能力和智能策略库。
这个机器学习平台服务于PCG所有业务产品,面对上述所提到的综合需求,有以下三大挑战:
基于以上挑战,腾讯PCG选择了采用NVIDIA 的Triton推理服务器,以解决新场景下模型推理引擎面临的挑战,在提升用户研效的同时,也大幅降低了服务成本。
NVIDIA的Triton推理服务器是一款开源软件,对于所有推理模式都可以简化在任一框架中以及任何GPU或CPU上的运行方式,从而在生产环境中使用推理计算,并且支持多模型ensemble,以及TensorFlow、PyTorch、ONNX等多种深度学习模型框架,可以很好的支持多模型联合推理的场景,构建起视频、图片、语音、文本整个推理服务过程,大大降低多个模型服务的开发和维护成本。
通过将Triton编译为动态链接库,可以方便地链入公司内部框架,对接公司的平台治理体系,符合C语言规范的API也极大降低了用户的接入成本,借助Python后端和自定义后端,用户可以自由选择使用C++或Python语言进行二次开发。
NVIDIA DALI是GPU加速的数据增强和图像加载库,使用Triton的DALI后端可以替换掉原来的图片解码、缩放等操作,Triton的FIL后端可以替代Python XGBoost模型推理,进一步提升服务端推理性能。
借助NVIDIA Triton推理框架,配合DALI/FIL/Python等后端与TensorRT,整体推理服务的吞吐能力最大提升 6 倍,延迟最大降低 40%。帮助腾讯PCG各业务场景中,以更低的成本构建了高性能的推理服务,同时更低的延迟降低了整条系统链路的响应时间,优化了用户体验,也降低了20%-66%总成本。
透过以上三个成功案例,就能很明显看出,Triton推理服务器在面对复杂的智能识别应用场景时,能发挥非常有效的整合功能,特别是模型来自不同训练平台时,以及面对不同前端开发语言时,更能体现其便利性。
在后面的文章会带着大家,先从宏观的角度来了解Triton推理服务器的应用架构以及所需要的配套资源,接着搭建Triton的使用环境,包括建立模型仓、安装服务端/用户端软件,然后执行一些实用性强的基础范例,以及结合NVIDIA的TensorRT与DeepStream等推理工具,让更多开发人员能利用Triton整合更多AI推理资源。【完】
好文章,需要你的鼓励
后来广为人知的“云上奥运”这一说法,正是从这一刻起走上历史舞台。云计算这一概念,也随之被越来越多的人所熟知。乘云科技CEO郝凯对此深有感受,因为在2017年春节过后不久,他的公司开始成为阿里云的合作伙伴,加入了滚滚而来的云计算大潮中。同一年,郝凯带领团队也第一次参加了阿里云的“双11”活动,实现了800万元的销售业绩。
随着各行各业数字化变革的不断深入,人类社会正加速迈向智能化。作为智能世界和数字经济的坚实底座,数据中心也迎来了蓬勃发展。面