01 MPCViT:安全且高效的MPC友好型 Vision Transformer架构
总体框架:
首先分析了ViT产生较大延时的原因,思考能否去除这些操作。
然后,对比不同的注意力机制,发现它们中有的具有很好的效率,有的则具有很好的性能。那能否融合不同的注意力机制,在实现高准确率的同时实现高效率呢?
且之前有工作提出,注意力机制并不是同等重要的。
(图中序号有误;2,3应交换)
MPCViT的整体算法流程:
具体而言,对于搜索算法:
设计了三种不同的粒度,对架构搜索算法给每一个注意力都分配了一个架构参数,在搜索过程中自动决定保留哪个注意力。搜索完成之后,可以对alpha进行排序,值较大的注意力设置为高延迟类型,值较小的注意力设置为低延迟类型。
直接训练搜索后的异构注意力模型的性能不好该如何解决呢?
采用多粒度的自蒸馏方式,让异构的ViT去学习到原始softmaxViT的软标签以及最后一层的特征。
02 基于SecretFlow搭建 ViT框架
接下来就是基于SecretFlow搭建 ViT框架,主要分为四个板块介绍。
对于SPU的介绍可以参考以前的文章:隐私计算实训营第二期第8讲密态引擎SPU框架介绍-CSDN博客
隐私推理协议的相关参数设置以及网络环境模拟。
基于Jax的ViT模型搭建,主要分为patch embedding搭建、注意力机制搭建、MLP模块搭建、Transformer模块搭建。
Patch embedding搭建
注意力机制搭建
MLP模块搭建
Transformer模块搭建:基于之前的各个子模块,来构建完整的Transformer模块。
配置好了SPU环境,搭建好了模型,现在对ViT进行隐私推理测试。