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已经存在于商品硬件,如英特尔SGXARM信托区。此外,全开源 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的更多相关文章

  1. 保护隐私:清除cookie、禁用cookie确保安全【分享给身边的朋友吧】

    常在网上漂,隐私保不了.ytkah深有体会,某天搜索一个词,然后你就能在一些网站上看到这个词的相关广告,神奇吧?这就是你的浏览器cookie泄露了,或者更严重地说是你的隐私泄露了,可怕吧!搜索引擎通过 ...

  2. PPT分享 | 怎么在区块链上保护隐私?

    艾伯特AI人工智能(公众号:aibbtcom)按: (编者按:在12月3日的亚太区以太坊社区培训和交流Meetup深圳站上,Vitalik作了<怎么在区块链上保护隐私>的演讲,谈到了区块链 ...

  3. Windows系统的高效使用

    1-WIndows10系统的入门使用 2-如何把系统盘的用户文件转移到其他盘 3-Windows装机软件一般有哪些? 4-Windows系统有哪些比较好用的下载器? 5-Windows系统中的播放器 ...

  4. (重要)使用廉价的VPN隐私会被窥探

    使用廉价的VPN可以节省一部分的支出,但是损失的却是我们的网上隐私,很多部门都很关心我们在网上干些什么,本来使用VPN是为了保护自己的隐私不被窥探,很显然这是事与愿违的,一些小公司或者大公司,通过提供 ...

  5. 你知不知道 Cookie正在泄露你的隐私!

    关于电脑上的Cookie,我想很多朋友都还是有所了解的,遇到诸如论坛帐号无法登录此类问题的时候,大家都知道先清除一下IE的Cookie,然后再重新登录就很有可能可以解决问题.然而,即使是最熟悉的东西也 ...

  6. 有关Windows10中诊断和反馈隐私设置

    当你使用 Windows 时,我们将收集诊断信息,为了确保能收到你(我们的客户)的反馈,我们为你提供了多种方式,以便你可以随时发送反馈,也可以在某个特定的时间(例如当 Windows 10 向你提出关 ...

  7. MindSpore:基于本地差分隐私的 Bandit 算法

    摘要:本文将先简单介绍Bandit 问题和本地差分隐私的相关背景,然后介绍基于本地差分隐私的 Bandit 算法,最后通过一个简单的电影推荐场景来验证 LDP LinUCB 算法. Bandit问题是 ...

  8. 技术期刊 · 天光台高未百尺 | Uber 工程师的 JS 算法课;大数据时代的个人隐私;设计师的 Github;告别 PPT 工程师;从零开始实现的像素画

    蒲公英 · JELLY技术期刊 Vol.42 这是一个最好的时代,多样化的平台给了所有人成长发展的机会,各种需求和解决需求的人让人大开眼界:但这也并不是完美的时代,"前端还需要懂什么算法?& ...

  9. HDC2021技术分论坛:如何高效完成HarmonyOS分布式应用测试?

    作者:liuxun,HarmonyOS测试架构师 HarmonyOS是新一代的智能终端操作系统,给开发者提供了设备发现.设备连接.跨设备调用等丰富的分布式API.随着越来越多的开发者投入到Harmon ...

随机推荐

  1. Solon Cloud 分布式开发套件清单与快速概览

    Solon Cloud 是一系列的接口标准和配置规范.Solon Cloud 为常见的分布式系统模式提供了一种简单且方便的编程模式,帮助开发人员构建有弹性的.可靠的.协调的应用程序.Solon Clo ...

  2. Java基础常用类深度解析(包含常见排序算法)

    目录 一.工具类 1.1.工具类的设计 1.1.1.公共静态方法 1.2.单例模式 二.包装类 2.1.基本类型的包装类 2.1.1.Integer 2.1.1.1.Integer >> ...

  3. 解决小程序中Data.parse()获取时间戳IOS不兼容

    由于与后台接口必须对比时间戳所以首先得前台获取时间戳.刚开始是获取手机本地时间,但用户改了时间就废了..... 后来就从服务器上获取个时间再转换为时间戳(是不是很操蛋,先从服务器上获取在TM的自己比较 ...

  4. 设计模式-UML图简单介绍

    直接上法宝: 1.类(Class)     类图分三层:     第一层显示类的名称,如果是抽象类,则就用斜体显示.     第二层是类的特性,通常就是字段和属性.     第三层是类的操作,通常是方 ...

  5. Windows核心编程 第十一章 线程池的使用

    第11章 线程池的使用 第8章讲述了如何使用让线程保持用户方式的机制来实现线程同步的方法.用户方式的同步机制的出色之处在于它的同步速度很快.如果关心线程的运行速度,那么应该了解一下用户方式的同步机制是 ...

  6. 脱离xml使用JavaConfig实现Spring配置

    总结 情况一: 配置类中类名添加 @Configuration 注解,同时提供一个方法返回一个Bean实例,且这个方法添加注解 @Bean ,就可以由Spring管理此对象 如下所示: User.ja ...

  7. liunx服务器安装jdk

    1.官网下载需要版本的jdk,官网地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.h ...

  8. 多线程-3.sleep() yield() join()

    1.sleep()方法 jdk文档描述:Causes the currently executing thread to sleep (temporarily cease execution) for ...

  9. Jenkins+Git的搭建和自动部署

    前言 Jenkins在工作中都使用过,之前都是运维去搭建部署,弄好了之后给我一个网址去构建项目就可以了,所以也都是一直没了解过安装过程. 今天在自己的服务器上搭建了一遍,中间有遇到很多坑,特在此归纳总 ...

  10. 一道VM的逆向所引发的符号执行思路

    逆向虚拟机保护 虚拟机保护类的题目需要找到虚拟机的vm_code(字节码),各个handler,然后进一步分析虚拟机保护代码的流程. 用IDA打开程序,经分析后0x403040全局变量地址处存储的就是 ...