基于之前MPC的基礎知識,本講主要內容是MPCViT基于SecretFlow的VisionTransformer框架,主要從神經網絡架構,隱私推理框架和實驗結果三方面介紹。
?一、MPCViT:安全且高效的MPC友好型 Vision Transformer架構
? ? ? ? MPCViT隱私推理總體框架中,其底層協議是基于半誠實威脅模型的 2PC的秘密分享方案,簡單來說即服務器和客戶端相互不能泄漏自己的信息,最終要得到神經網絡正確的推理結果。在上層模型方面,VisionTransformer是一種基于Transformer編碼器的視覺模型,包含了embedding層,注意力層,非線性GeLU函數等多個不同模塊,總體目標是在保護數據和模型隱私的前提下,以更高的推理效率得到最終圖像分類的結果。
????????MPCViT的三大研究動機:ViT延遲分解(ViT在MPC中推理的延遲進行分解分析,發現在SEMI-2K和Cheetah兩種協議下,注意力機制中的SoftMax以及MLP中的GeLU函數都占據了絕大部份的延遲)及通信瓶頸、不同注意力機制變體對比,對比了不同注意力的準確率和延遲(進一步分解注意力機制,可以發現求最大值、求倒數、求指數等運算都造成了一部分延遲,能否盡可能去除ViT中這樣一些耗時的操作,提高隱私推理的效率,降低推理的延遲)、不是所有的注意力都同等重要(發現一些注意力機制具有很高的效率,另一些具有很好的性能,一個很自然的想法是能否去合理地融合兩種不同的注意力機制,使得在隱私推理時同時具有高效性和高準確率)。
????????MPCViT的整體算法流程(主要用于解決如何權衡模型準確率和推理延遲,以及融合高準確率注意力機制和低延遲注意力機制)可以分為四步:
? ? ? ? ? ? ? ? 1、設計合適的搜索空間(三種不同的粒度)
? ? ? ? ? ? ? ? ? ? ? ? 分為粗粒度:Transformer層級粒度,中粒度:注意力頭級粒度,細粒度:注意力行級粒度(token級)
? ? ? ? ? ? ? ? 2、MPC感知神經架構搜索(可微分搜索)
? ? ? ? ? ? ? ? ? ? ? ? 對于架構搜素算法,給每個注意力都分配架構參數,在搜索過程中,自動決定應該保留哪個注意力,這種搜索算法是可微分的,搜索效率比較高,只需要通過給損失函數添加正則項即可實現。
? ? ? ? ? ? ? ? 3、基于延遲限制的架構參數二值化(靈活適應)
? ? ? ? ? ? ? ? ? ? ? ? 在神經架構搜索完成之后,可以根據具體延遲的需求和限制,通過對進行排序,將具有較大
注意力機制,設置成高準確率類型,對于較小的
,設置成低延遲類型。
? ? ? ? ? ? ? ? 4、重訓練異構注意力ViT(借助知識蒸餾提升模型性能)
????????????????????????直接訓練搜索后的異構注意力機制ViT會導致顯著的準確率下降,如何有效提高異構注意力了機制ViT的準確率?可以采用多粒度自蒸餾方式,讓異構ViT去學習到原始Softmax ViT的軟標簽,以及最后一層的特征,這種粗細粒度的蒸餾能夠很大程度的幫助ViT架構的學習。
二、搭建基于SecretFlow的Vision Transformer框架
? ? ? ? 分為以下四部分:
? ? ? ? ? ? ? ? 1、SecretFlow Secure Processing Unit (SPU)
? ? ? ? ? ? ? ? ? ? ? ? 前文已經多次介紹。
? ? ? ? ? ? ? ? 2、隱私推理協議及通信參數配置
????????????????????????隱私推理協議及節點配置,模擬網絡參數配置throttle.sh,包括廣域網和局域網。
? ? ? ? ? ? ? ? 3、基于Jax的ViT模型搭建
? ? ? ? ? ? ? ? ? ? ? ? 采用Jax語言,其語法與Pytorch有相似之處。具體包括圖像Patch Embedding搭建,注意力機制搭建,MLP模塊搭建和Transformer模塊搭建。
? ? ? ? ? ? ? ? 4、ViT模型隱私推理
? ? ? ? ? ? ? ? ? ? ? ??ViT Benchmark文件,包括初始化SPU環境,設置輸入變量維度,模型實例化,以及密文推理過程。
? ? ? ? ? ? ? ? ? ? ? ??ViT隱私推理操作流程,包括配置Python環境及安裝SPU,配置并模擬通信網絡環境,模擬MPC環境及協議,以及執行隱私推理。
三、MPCViT主要實驗結果
? ? ? ? 和近年的SOTA模型相比,MPCViT在不同的數據集上,不同的架構上, 都顯著的降低了延遲,并且具有更高的準確率。
? ? ? ? 在消融實驗中可以看到,兩種粒度的知識蒸餾對于異構ViT模型的訓練都是至關重要的。????????
? ? ? ? 在搜索算法方面,在不同模型的架構上,在不同的超參數情況下,都有很好的一致性,同時可以擴展到不同規模的架構以及數據集上,具有很好的擴展性。
四、總結
????????首先介紹了ViT在MPC環境下進行隱私推理的總體框架、研究動機以及算法流程。
????????MPCViT借助螞蟻的SecretFlow-SPU去搭建ViT隱私推理框架,并測試了不同模型架構的推理效率。
????????介紹了SecretFlow-SPU的特點和功能,并展開講解了基于SecretFlow和Jax的ViT框架搭建流程
????????最后,呈現了該工作的主要實驗結果,效果均優于基線模型。