TVM 高效保护隐私 ML
TVM 高效保护隐私 ML
这篇文章描述了Myelin,一个在值得信赖的硬件飞地中保护隐私的机器学习框架,以及TVM如何使Myelin快速。关键的想法是,TVM,不像其它流行的ML框架,将模型编译成轻量级,优化,免费依赖库,可以适应资源有限利用。

尝试创建保护隐私的ML模型!查看 TVM可用的repo示例代码。
目的:隐私保护ML
机器学习模型受益于庞大而多样化的数据集。遗憾的是,使用此类数据集通常需要信任集中数据聚合器或计算提供商。对于敏感的应用程序,如医疗保健和金融,这是不可取的,因为可能会损害患者的隐私或泄露商业机密。安全和隐私保护计算(包括可信执行环境和差异隐私)的最新进展为相互不信任的各方提供了一种方法,在不影响训练数据的情况下,高效训练机器学习模型。使用TVM快速保护隐私ML框架。

使用案例
- 私人 MLaaS:云提供商在数据上运行架构。获得模型输出,数据保持私密性,云提供商知道无法窃取模型。
- 值得信赖的ML比赛:训练一个模型的比赛数据。竞赛组织者向模型发送私人测试数据,并获取可验证的准确性报告。模型保持安全,直到组织者决定购买。其他参与者不能通过测试数据训练作弊。
- 共享私人数据训练:(研究人员)希望对几家医院的数据进行模型训练。直接共享太复杂了。相反,让"受信任的第三方"训练隐私保护模式。
- 区块链上的ML
背景

受信任的执行环境
受信任的执行环境(TEE) 基本上允许远程用户在不向硬件提供商透露计算的情况下,在人的计算机上强制运行代码。
技术上,TEE 提供了隔离/加密内存和 CPU 寄存器的安全区域;也是一个值得信赖的随机性来源。TEE 还可以发送已加载代码的签名证明,以便远程用户可以验证飞地是否正确加载。这个过程,称为远程证明,可用于建立一个安全的通信通道进入区域。然后,远程用户可以提供私钥、模型参数和训练数据等机密。
与安全多平价计算 (MPC)和全同构加密 (FHE)等纯加密方法相比,TEE 是几个数量级更快,支持通用计算(即不只是算术操作)。也许唯一的缺点是信任硬件key(将密钥集成到处理器)和加载软件中的附加信任假设。
尽管存在信任假设,TEE 技术正变得越来越普遍,并在实际隐私保护方面发挥着重要作用。事实上,通用TEE已经存在于商品硬件,如英特尔SGX和ARM信托区。此外,全开源 Keystone enclave即将上路。
差别隐私

差异隐私 (DP)提供了正式的保证,即在类似数据集上训练的模型,在非正式上是无法区分的,用户的隐私不会因为选择向模型贡献数据而受到影响。
换句话说,鉴于算法在两个数据集上的输出仅在单个记录中有所不同,差异隐私上限限制了对手确定哪个数据集的概率。使用为算法输出增加噪音的机制,可以制作 DP 算法。噪声量根据输出取决于任何特定输入的程度进行校准。熟悉假设测试,如果结果 A 和 B 各有概率 0.5,则应用 DP 机制就像与概率分布的汇合:隐私位于误报和假负率中。由于深度学习模型往往概括良好,噪音量往往低于预期。
在 TEE 中运行 DP 训练算法可确保忠实地应用 DP 机制。
使用 TVM 高效保护隐私 ML
使用 TEE 工作的主要挑战之一是,运行在内部的代码无法访问不受信任的操作系统。这意味着受信任的软件无法创建线程或执行 I.O 。实际上结果,像 OpenBLAS 这样的数字库(更不用说像 PyTorch 和 TensorFlow 这样的框架)不能直接在飞地中运行。
TEES 实际上具有与资源约束的硬件加速器类似的编程模型。这正是TVM的用之用!在隐私工作流程中,用户首先用高级图形规范语言定义整个训练图。TVM编译模型并输出包含优化数值内核的静态库,这些内核可以轻松加载到 TEE 中。由于内核是自动生成的,并且具有严格的边界检查,暴露了低表面积的攻击。由轻量级内存安全锈runtime支持,也很容易被审查的安全性和正确性。
当然,安全在实际适用时最有用。幸运的是,飞地中的 TVM 模块具有与基于本地 CPU 的训练类似的性能。通过使用不受信任的runtime协调线程,单个 TVM 飞地可以充分利用其主机的资源。此外,不难想象一个安全参数服务器,协调了整个数据中心飞地的机器。
TVM 也为更细微的隐私保护算法提供更微妙的优化机会。事实上,细粒格的调度功能允许使用差分隐私时加快速度。例如,从剪切每个训练示例的梯度,向每个添加噪音中,可以获得最严格的 DP 界限。在自动完成框架中,这需要转发 minibatch 中每个示例的模型(尽管只需要一个向后传递)。使用 TVM,每个示例的渐变剪切很简单:在批次和功能尺寸上,将每次权重更新,重排为单次减量,而是将减量分为两部分。减少功能后,剪切和noising,然后最终的结果总结的例子,以获得重量更新。因此,TVM 允许应用差异隐私,而无需引入高于技术要求的开销。此外,如果一个人真的想要得到真正的cost,可能融合剪裁和noising操作,应用到位,以进一步削减延迟和内存的使用。
TVM 高效保护隐私 ML的更多相关文章
- 保护隐私:清除cookie、禁用cookie确保安全【分享给身边的朋友吧】
常在网上漂,隐私保不了.ytkah深有体会,某天搜索一个词,然后你就能在一些网站上看到这个词的相关广告,神奇吧?这就是你的浏览器cookie泄露了,或者更严重地说是你的隐私泄露了,可怕吧!搜索引擎通过 ...
- PPT分享 | 怎么在区块链上保护隐私?
艾伯特AI人工智能(公众号:aibbtcom)按: (编者按:在12月3日的亚太区以太坊社区培训和交流Meetup深圳站上,Vitalik作了<怎么在区块链上保护隐私>的演讲,谈到了区块链 ...
- Windows系统的高效使用
1-WIndows10系统的入门使用 2-如何把系统盘的用户文件转移到其他盘 3-Windows装机软件一般有哪些? 4-Windows系统有哪些比较好用的下载器? 5-Windows系统中的播放器 ...
- (重要)使用廉价的VPN隐私会被窥探
使用廉价的VPN可以节省一部分的支出,但是损失的却是我们的网上隐私,很多部门都很关心我们在网上干些什么,本来使用VPN是为了保护自己的隐私不被窥探,很显然这是事与愿违的,一些小公司或者大公司,通过提供 ...
- 你知不知道 Cookie正在泄露你的隐私!
关于电脑上的Cookie,我想很多朋友都还是有所了解的,遇到诸如论坛帐号无法登录此类问题的时候,大家都知道先清除一下IE的Cookie,然后再重新登录就很有可能可以解决问题.然而,即使是最熟悉的东西也 ...
- 有关Windows10中诊断和反馈隐私设置
当你使用 Windows 时,我们将收集诊断信息,为了确保能收到你(我们的客户)的反馈,我们为你提供了多种方式,以便你可以随时发送反馈,也可以在某个特定的时间(例如当 Windows 10 向你提出关 ...
- MindSpore:基于本地差分隐私的 Bandit 算法
摘要:本文将先简单介绍Bandit 问题和本地差分隐私的相关背景,然后介绍基于本地差分隐私的 Bandit 算法,最后通过一个简单的电影推荐场景来验证 LDP LinUCB 算法. Bandit问题是 ...
- 技术期刊 · 天光台高未百尺 | Uber 工程师的 JS 算法课;大数据时代的个人隐私;设计师的 Github;告别 PPT 工程师;从零开始实现的像素画
蒲公英 · JELLY技术期刊 Vol.42 这是一个最好的时代,多样化的平台给了所有人成长发展的机会,各种需求和解决需求的人让人大开眼界:但这也并不是完美的时代,"前端还需要懂什么算法?& ...
- HDC2021技术分论坛:如何高效完成HarmonyOS分布式应用测试?
作者:liuxun,HarmonyOS测试架构师 HarmonyOS是新一代的智能终端操作系统,给开发者提供了设备发现.设备连接.跨设备调用等丰富的分布式API.随着越来越多的开发者投入到Harmon ...
随机推荐
- POJ2536 二分图匹配
题意: 有n只老鼠,m个洞,每个洞最多可以藏一只老鼠,每个老鼠的移动速度都是v,给你他们的当前坐标,和洞的坐标,突然老鹰来了,他们必须在s秒内跑到一个洞藏起来,问你最少有多少只老鼠被抓走了. ...
- Host头部攻击
在HTTP的请求报文中,我们经常会看到Host字段,如下 GET /test/ HTTP/1.1 Host: www.baidu.com Connection: keep-alive Upgrade- ...
- C#-播放器相关
axWindowsMediaPlayer1.URL= 设置路径 axWindowsMediaPlayer1.Ctlcontrols.play();开始 axWindowsMediaPlayer1.Ct ...
- 栈(Stack) --- C# 自定义和微软官方的区别
最近在学习算法基础,本篇文章作为一个记录,也算是一次实践和总结.(顺便也深入C#运行时学习一下) 目录 1. 栈是什么 2. Stack 自定义实现 3. Stack C#官方实现 4. 区别 5. ...
- Mybatis-Plus03 代码自动生成器
先看完Mybatis-Plus01和Mybatis-Plus02再看Mybatis-Plus03 AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerato ...
- spring.framework 版本从4.1.6.RELEASE升到5.0.20.RELEASE
将org.springframework 使用到的jar 版本号改为5.0.20.RELEASE后运行会报错: Servlet.service() for servlet [springmvc] in ...
- IO系列测试源码
//IO系列测试源码(需要自取) using System; using System.CodeDom; using System.Collections.Generic; using System. ...
- PE文件中的输入表
前言 PE文件中的输入表含有三个重要结构IID,IDT,IAT.PE文件为需要加载的DLL文件创建一个IID结构,一个DLL与一个IID对应.IDT是输入名称表,IAT输入地址表,在没有绑定输入的情况 ...
- 细数 C++ 那些比起 C语言 更爽的特性
结构体定义 C: typedef struct Vertex { int x, y, z; } Vertex; Vertex v1 = { 0 }; // or struct Vertex { int ...
- Educational Codeforces Round 101 (Rated for Div. 2)
A. Regular Bracket Sequence 题意:题目中给(和)还有?,其中?可以转换成为()中的任何一个,并且所给样例中只出现一次(),问能不能括号匹配 思路:直接看第一个和最后一个能不 ...