会代替互联网吗
|
可以发现,即使基于编译优化技术(自动融合广播(Broadcast)操作和按元素(Elementwise)运算),也依然需要进行三次核函数调用(两次 reduce_mean,一次计算最终结果)和两次中间结果的显存读写(mean 和 variance)。而基于 CUDA,我们可以定制化一个层归一化专用的核函数,将两次中间结果的写入寄存器。从而实现一次核函数调用,同时没有中间结果显存读写,因此大大节省了计算开销。有兴趣的同学可以在文末参考链接中进一步查看具体实现[11]。
基于这个思路,LightSeq 利用 CUDA 矩阵运算库 cuBLAS[12]提供的矩阵乘法和自定义核函数实现了 Transformer,具体结构如下图所示: 以 Transformer 为例,一个机器翻译/文本生成模型推理过程包括两部分:序列编码模块特征计算和自回归的解码算法。其中特征计算部分以自注意力机制及特征变换为核心(矩阵乘法,计算密集型),并伴随大量 Elementwise(如 Reshape)和 Reduce(如Layer Normalization)等 IO 密集型运算;解码算法部分包含了词表 Softmax、beam 筛选、缓存刷新等过程,运算琐碎,并引入了更复杂的动态 shape。这为模型推理带来了众多挑战: 1. IO 密集型计算的细粒度核函数调用带来大量冗余显存读写,成为特征计算性能瓶颈。 2. 复杂动态 shape 为计算图优化带来挑战,导致模型推理期间大量显存动态申请,耗时较高。 3. 解码生成每一步字符过程逻辑复杂,难以并行化计算从而发挥硬件优势。 LightSeq 取得这么好的推理加速效果,对这些挑战做了哪些针对性的优化呢?笔者分析发现,核心技术包括这几项:融合了多个运算操作来减少 IO 开销、复用显存来避免动态申请、解码算法进行层级式改写来提升推理速度。下面详细介绍下各部分的优化挑战和 LightSeq 的解决方法。 算子多运算融合 近年来,由于其高效的特征提取能力,Transformer encoder/decoder 结构被广泛应用于各种 NLP 任务中,例如海量无标注文本的预训练。而多数深度学习框架(例如 Tensorflow、Pytorch 等)通常都是调用基础运算库中的核函数(kernel function)来实现 encoder/decoder 计算过程。这些核函数往往粒度较细,通常一个组件需要调用多个核函数来实现。
以层归一化(Layer Normalization)为例,Tensorflow 是这样实现的: 以发现,在需要使用采样解码的任务中,LightSeq 在大部分配置下领先于 Faster Transformer,最多也能达到 1.4 倍的额外加速。此外,相比于 TensorFlow 实现,LightSeq 对 GPT 和 VAE 等生成模型也达到了 5 倍以上的加速效果。 服务压力测试
在云服务上,笔者测试了在实际应用中 GPT 场景下,模型服务从 Tensorflow 切换到LightSeq 的延迟变化情况(服务显卡使用 NVIDIA Tesla P4)。可以观察到,pct99 延迟降低了 3 到 5 倍,峰值从 360 毫秒左右下降到 80 毫秒左右,详细结果如下图所示: 如果说“智能派单”是平台运营的硬性 的基础,那“行程分享”和“疲劳驾驶提醒”等功能,就是滴滴在穷尽科技手段,降低安全事件的发生概率,是软性的关怀。 自2016年6月起,滴滴率先推出行程分享功能,乘客上车后可将乘车信息一键发送给好友,好友可通过链接直接查看乘客的实时位置,确保乘车安全。2019年滴滴平台已有2.3用户添加了“紧急联系人”,用户进行了10.3亿次“行程分享”。 疲劳驾驶是城市交通严重事故的主要原因之一。自2019年7月开始,滴滴利用深度学习和模型压缩技术,在车载智能硬件(桔视)中搭建了疲劳驾驶预警系统,能自动处理与分析图像,检测司机在不同时间间隔内眼睛睁闭、打哈欠的频率、频次、持续时长等,通过语音提醒、强制下线等功能防止疲劳驾驶。截至目前,该疲劳驾驶预警系统已经经过了九次迭代。 此外,滴滴还在全国300多个城市陆续上线“遗失物品送回”功能。这些功能背后,贯穿着滴滴的技术史上多次技术跃迁——基于大数据和AI技术,提升用户接驾效率,并做安全和平台治理的关怀。 当生活朝着平稳的轨道前进,技术带来的改变潜移默化,润物无声。到了疫情这样的社会安全重要关头,技术却能发挥关键担当。
新冠肺炎疫情汹涌,1 月 20 日,官方确认新冠肺炎可人传人,滴滴1月22日便紧急组织十多人投入技术开发,最终只用了23小时,就上线了智能识别司机师傅是否规范佩戴口罩的功能。算法克服了人脸姿态变化、光照造成的图像差异、驾驶员帽子等对脸部的部分遮挡等问题,识别准确率超过98%。 (编辑:桂林站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

