多项创新技术加持,实现零COGS的Microsoft Editor语法检查器( 四 )


图4:使用深度神经网络来实现零销货成本(zero-COGS)
运行在客户端的语法模型应该具有很高的效率(例如延迟在100ms内) , 这个问题已经由解决了 。此外 , 客户端模型还必须具有高效的内存(例如占用的空间在50MB以内) , 这是强大的模型(通常超过5000万个参数)在客户端设备上运行的主要瓶颈 。
为了应对这一挑战 , 微软亚洲研究院的研究员们引入了前沿的客户端建模技术 [6] , 用于构建性能优异的轻量级生成语言模型 , 让模型可以在用户的计算机上轻松运行 。
图5:DNN 语法:服务器模型 VS 客户端模型
有两个原则 , 主要是为了参数化的成本效益:
图6:有利于编码器的参数化
图7:负载均衡参数化
遵循上述具有成本效益参数化的原则而设计的  , 使得每个参数都能发挥最大潜力 , 即使客户端设备存在严格的计算和内存限制 , 也能获得有竞争力的结果 。
在的基础上 , 研究员们进一步提出了 —— 的预训练版本 , 这是第一个在设备上公开可用的预训练模型 , 可以让任务的微调变得更容易 , 进而获得好的结果 。作为语法客户端模型的基础模型 , 实现了零销货成本 , 与服务器端模型相比 , 该模型以最小的质量损失实现了超过5倍的模型压缩 。
微软亚洲研究院异构计算组致力于以全栈协同设计的思想 , 构建深度学习模型到实际设备部署之间的桥梁 。以为例 , 我们与算法、产品和 AI 框架团队深度合作 , 通过系统和硬件感知的模型优化和压缩 , 以及针对不同硬件的推理系统和运算符优化等 , 使模型开销能够满足实际设备运行的要求 , 为未来将更多微软产品的 AI 服务部署到设备端铺平了道路 。
—— 曹婷 , 微软亚洲研究院高级研究员
降低推理成本 , 赋能客户端部署
客户端设备的模型部署对硬件使用有严格的要求 , 如内存和磁盘使用量等 , 以避免干扰其他的应用程序 。由于 ONNX是一个轻量级的引擎并提供全面客户端推理解决方案(如 ONNX量化和 ONNX扩展) , 所以其在设备部署方面也具有明显的优势 。此外 , 为了在保持服务质量的前提下满足交付要求 , 微软亚洲研究院引入了一系列优化技术 , 包括系统感知的模型优化、模型元数据简化、延迟参数加载以及定制量化策略 。基于建模 , 这些系统优化可以进一步将内存成本降低2.7倍 , 而不会降低模型性能 , 最终赋能模型在客户端设备的部署 。
系统感知的模型优化 。由于模型在推理系统中被表示为数据流图 , 因此该模型的主要内存成本来自于生成的许多子图 。如图8所示 ,  代码中的每个分支被映射为一个子图 。所以 , 需要通过优化模型实现来减少分支指令的使用率 。这其中尤为重要的是 , 因为波束搜索包含更多的分支指令 , 研究员们利用了贪婪搜索作为解码器搜索算法 , 从而将内存成本降低了38% 。
图8: 模型和 ONNX 模型图的映射
模型元数据简化 。如图8所示 , 模型包含大量消耗内存的元数据 , 如节点名称和类型、输入和输出以及参数等 。为了降低成本 , 研究员们需要简化元数据 , 只保留推理所需的基本信息 , 例如 , 节点名称从一个长字符串简化为一个索引 。此外 , 研究员们也优化了 ONNX模型图的实现 , 对所有子图只保留一个元数据副本 , 而不是在每次生成子图时复制所有可用的元数据 。