2023年在AI的发展史上一定是浓墨重彩的一笔,在这一年里出现了百模大战、全民“炼丹”的场面,围绕着各种模型的训练技术和算力需求有很多讨论。随着模型的成熟以及算力市场的发展,7B、13B这类小型号的模型也出现了端上部署的需求,其中以移动设备厂商最为突出。2024年,在端上部署和应用模型也可能会成为各家移动厂商的一个营销热点。
在端上部署推理模型自然就会带来一个安全问题,如何保证模型文件的安全?LLM的架构目前都是Transformer的变体,如果拿到模型文件,借助开源的代码很容易完成适配,然后就可以异地部署起来。LLM现在从零开始预训练、指令微调、强化学习到最后可用,成本并不低,如果很容易被别人窃取到模型文件并被推理使用,会造成不小的损失。
为了解决上面这个安全问题,我们借助TVM编译器帮助我们实现高效模型推理部署,并在TVM中引入Tensor加解密层。这样模型文件在本地是处于加密状态,在推理运行的时候才是解密状态,以此保证模型文件不被轻易窃取。下面介绍技术细节。
TVM全称Tensor Virtual Machine,中文名称张量虚拟机,它主要的用途是将深度学习模型编译成最小可部署的模块,并提供更多的后端自动生成和优化模型的基础设施。架构如下:
它的特点是:
TVM属于领域编译器,其工作流程也遵循通用CPU编译器的设计规则,将复杂的任务简单化,并进行多层抽象, TVM也是采用多层IR设计,IR的转换如下:
多层IR转换以后,最后生成指定的后端文件,如上图所示TVM编译会生成三个文件:mod.json是模型的计算图描述文件,mod.so是经过优化生成的算子,mod.param是存储的模型参数文件,其文件格式如下:
TVM 推理运行如下:
我们提出了Safe Tensor的概念。Safe Tensor的设计原则是简单高效易用,我们放弃了全量加密、mpc等技术,使用了传统的对称加解密算法,在TVM生成mod.param文件的时候,在其保存每层tensor的过程中将里面的数据进行加密。
与原始mod.param文件比较,我们只加密了最关键的数据,在加解密速度上保证了最快,也将引入的加解密将损耗降到了最低。Safe Tensor采用了传统的对称加密算法。为了确保业务安全,密钥的保存和使用应该遵循最佳实践。在使用密钥之前,需要使用非对称加密算法进行解密。
TVM生成模型参数文件格式就变成如下:
效果如下:
Safe Tensor的方案只是加密了模型最重要的tensor数据,这对TVM的上层是无感的,运行的方法和之前介绍的方法也相同。
Safe Tensor的方案有如下优势:
Safe Tensor给大家提供了一个新的模型保护思路,现阶段只是在模型文件生成和加载的时候进行加解密。如果想获得更好的保护效果,还需要进程内存保护的技术保证内存dump相关的攻击。
随着未来AI技术的发展,硬件设备厂商也会慢慢关注这块市场,也会推出相关的硬件特性,届时可以使用软硬结合的安全保护,让模型应用既高效又安全。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。