第 12 课:基于隐语的VisionTransformer框架

基于之前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感知神经架构搜索(可微分搜索)

                        对于架构搜素算法,给每个注意力都分配架构参数\alpha,在搜索过程中,自动决定应该保留哪个注意力,这种搜索算法是可微分的,搜索效率比较高,只需要通过给损失函数添加正则项即可实现。

                3、基于延迟限制的架构参数二值化(灵活适应)

                        在神经架构搜索完成之后,可以根据具体延迟的需求和限制,通过对\alpha进行排序,将具有较大\alpha注意力机制,设置成高准确率类型,对于较小的\alpha,设置成低延迟类型。

                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框架搭建流程

        最后,呈现了该工作的主要实验结果,效果均优于基线模型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/36091.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT中子工程的创建,以及如何在含有库的子工程项目中引用主项目中的qt资源

1、背景 在qt中创建多项目类型,如下: CustomDll表示其中的一个动态库子项目; CustomLib表示其中的一个静态库子项目; MyWidget表示主项目窗口(main函数所在项目); 2、qrc资源的共享 如何在CustomDll和CustomLib等子项目中也同样使用 MyWidget项目中的qrc资源呢??? 直…

【项目实训】后端逻辑完善

经测试,我们决定前端可以同时选择多个类型的岗位进行查询,以显示相应的公司岗位信息 于是,修改后端函数的逻辑: 后端 首先,因为要对checkList中的job_name进行模糊匹配查询,于是使用以下代码&#xff1a…

【科学计算与可视化】3. Matplotlib 绘图基础

安装 pip install matplotlib 官方文档 https://matplotlib.org/stable/api/pyplot_summary.html 主要介绍一些图片绘制的简要使用,更加详细和进阶需要可参考 以上官方文档。 1 绘制基础 方法名说明title()设置图表的名称xlabel()设置 x 轴名称ylabel()设置 y 轴…

负载组指南说明-负载柜

什么是负载组? 负载组是一种设备,旨在准确模拟电源在实际应用中看到的负载。这种负载组可以用电阻、电感或电容元件构建。它是一种电阻装置,以热量的形式消散一定量的能量,可以通过自然对流、强制空气或水冷系统去除。 为什么要使…

江协科技51单片机学习- p11 Proteus安装模拟51单片机

前言: 本文是根据哔哩哔哩网站上“江协科技51单片机”视频的学习笔记,在这里会记录下江协科技51单片机开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了江协科技51单片机教学视频和链接中的内容。 引用: Proteus快速入门&…

可溶性聚四氟乙烯离子交换柱PFA层析柱微柱一体成型

PFA微柱,也叫PFA层析柱、PFA离子交换柱等,主要用于地质同位素超净化、痕量、超痕量、微量元素分析实验室。 规格参考:1.5ml、15ml、30ml等。 其主要特性有: 1、PFA层析柱(微柱)专为离子交换设计&#xff…

SAP ERP公有云(全称 SAP S/4HANA Cloud Public Edition),赋能企业成为智能可持续的企业

在数字化浪潮中,每一家企业都需要应对快速的市场变化,不断追求降本增效,为创新提供资源,发展新的业务模式,安全无忧地完成关键任务系统的转型。 10年前,SAP进入云领域,用云ERP和覆盖全线业务的云…

双通道源表KEITHELY2636B详情参数吉时利2636B

Keithley的2636B是一款2600B系列双通道系统源表(SMU)仪器(0.1fA, 10A脉冲)。它是业界领先的电流/电压源和测量解决方案。这种双通道模型结合了精密电源,真电流源,6 1/2位DMM,任意波形发生器,脉冲发生器和电子负载的能力&#xff0…

锐起RDV5高性能云桌面

锐起是上海锐起信息技术有限公司旗下品牌。该公司创立于 2001 年,是桌面虚拟化产品和解决方案提供商,专注于桌面管理系统和私有云存储系统的系列软件产品研发,致力于简化 IT 管理、增强系统安全,提供简单、易用、稳定、安全的产品…

我在高职教STM32——GPIO入门之按键输入(1)

大家好,我是老耿,高职青椒一枚,一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次,同行应该都懂的,老师在课堂上教学几乎是没什么成就感的。正因如此,才有了借助 CSDN 平台寻求认同感和成就…

【观察】戴尔科技+AMD:释放技术创新“乘数效应”,助力制造业打造“新质生产力”...

在今年的政府工作报告中,“人工智能”首次被写入报告,同时“大力推进现代化产业体系建设,加快发展新质生产力”也被列为2024年的首项政府工作任务,其重要性不言而喻。 尤其是最近几年,以人工智能、大模型、大数据、云计…

java设计模式(六)代理模式(Proxy Pattern)

1、模式介绍: 代理模式(Proxy Pattern)是一种结构型设计模式,它允许你在不改变客户端代码的情况下,向某个对象提供一个代理,以控制对该对象的访问。代理对象通常会在实际对象的方法调用前后添加一些附加逻…

《UDS协议从入门到精通》系列——图解0x35:请求上传

《UDS协议从入门到精通》系列——图解0x35:请求上传 一、简介二、数据包格式2.1 服务请求格式2.2 服务响应格式2.2.1 肯定响应2.2.2 否定响应 三、通信示例 Tip📌:本文描述中但凡涉及到其他UDS服务的,将陆续提供链接跳转方式以便快…

AMSR-E/Aqua 第 3 级全球地表土壤水分月平均值 V005 (AMSRE_AVRMO)

AMSR-E/Aqua level 3 global monthly Surface Soil Moisture Averages V005 (AMSRE_AVRMO) at GES DISC AMSR-E/Aqua level 3 global monthly Surface Soil Moisture Standard Deviation V005 (AMSRE_STDMO) at GES DISC 简介 GES DISC 的 AMSR-E/Aqua 第 3 级全球地表土壤水…

操作系统入门 -- 内存管理

操作系统入门 – 内存管理 1.内存种类 1.1 虚拟内存(VIRT) 进程需要的虚拟内存大小,包括进程使用的库、代码、数据以及malloc、new分配的堆空间和栈空间等。若进程申请了10MB内存但实际使用了1MB,则物理空间会增长10MB。 1.2 …

如何以智能方式安装 Python

Python易于使用,对初学者友好,功能强大,几乎可以为任何应用程序创建强大的软件。 但与任何其他软件一样,Python 的设置和管理可能很复杂。 在本文中,我们将介绍如何正确设置 Python。 您将学习如何选择合适的版本、…

学习笔记——动态路由——RIP(附加度量值配置)

六、附加度量值配置 RIP协议cost开销值:默认值为0,路由信息每传递一次,值增加1,最大15,(路由器不能超过15台)16代表不可达。 入接口附加度量值 rip metricin 5 //可以修改开销改变路径。只能增加,不能减小 …

count(*) over (partition by ……)用法详解

select id,count(*) over(partition by pro_id) from sal; 以pro_id分组,统计分组后每个pro_id的记录总数及对应的id; 类似还有count(*) over(order by ……)、sum(amount) over(partition by ……)等,略有区别

降低企业运营成本的API服务有哪些?

通过API服务,企业可以实现许多功能和服务的自动化和优化,从而有效降低企业的运营成本。API服务可以帮助企业简化流程、减少人工操作、提高效率,并提供数据支持和决策依据,从而实现成本的有效控制和降低。无论是人力资源管理、客户…

【D3.js in Action 3 精译】1.2.2 可缩放矢量图形(一)

译注 由于 1.2.2 小节介绍 SVG 的篇幅过多,为了方便查阅,后续将分多个小节依次进行翻译。为了确保整个 1.2.2 小节的完整性,特意将上一篇包含的 SVG 小节的内容整理出来重新编排。敬请留意。 1.2.2 SVG - 可缩放矢量图形 可伸缩矢量图形&…