保护大模型应用安全,现在不需要拿性能做代价了

2023-11-05

编者按:
大模型的爆火,也对隐私和安全发起了挑战。

1. 可信执行环境是什么?大语言模型为什么需要它?

OpenAI 的 GPT 系列大语言模型(Large Language Mode,以下缩写为 LLM)的兴起与应用,也带来了诸如数据泄露、数据滥用、模型被攻击和知识产权被窃取等一系列隐私和安全风险或挑战。

ef3ba2fd573d5a135ce6cef6ac0f5a93.jpeg

可信执行环境(Trusted Execution Environment,以下缩写为 TEE)是一项基于软硬件组合创建安全执行环境,能够更好地确保计算和数据处理机密性和完整性。其关键机制为:

  • 安全隔离:通过硬件加密和内存隔离等硬件隔离技术,将敏感数据和关键代码与其他应用及操作系统相隔离,从而确保它们即使在系统其他部分被攻击或受到恶意软件影响时也能够得到更好的保护。

  • 安全验证:在启动过程中进行身份验证和完整性检查,确保只有经过授权的代码和数据可以在其中运行,以此防止恶意软件或未经授权的访问。

  • 安全执行环境:提供包含加密算法、安全协议和密钥管理等防护功能的执行环境,用于处理敏感数据和执行关键算法,以增强数据在执行过程中的保密性和完整性。

TEE 与 LLM 可在多行业、多场景融合,TEE 可用于为 LLM 提供颇具商业落地价值的隐私和数据保护创新解决方案。

2. LLM 与 TEE 的融合需求

LLM 在许多行业的不同场景都有着广泛应用,例如金融行业的风险评估和交易分析,医疗保健领域的医学图像识别、病历纪录和疾病预测,以及法律和合规行业的法律咨询、合同审查和文书处理等。

这些行业或场景中涉及到的数据多为重要敏感的交易数据或个人数据,必须得到有效保护。

将 TEE 与 LLM 融合,有助于在这类场景中更好地保障数据在 LLM 模型训练和推理过程中的保密性。

训练阶段,TEE 中的数据处理都处于加密状态;推理阶段,TEE 则可保护用户输入和模型结果的隐私。

同时,其硬件隔离和安全验证机制可以更有效地防止未经授权的访问和攻击,增强模型运行时的安全性。

3. TEE 与 LLM 融合的挑战:资源和性能限制

  • 资源限制:TEE 的计算资源和存储空间通常都非常有限,LLM 庞大的模型参数和计算需求可能会超出一般 TEE 的能力范围。

  • 性能下降:I/O 数据的加密和安全计算操作会引入额外的计算开销,导致模型训练和推理性能有一定程度下降。基于算法的解决方案可减少模型规模和计算需求,以适应 TEE 的资源限制,但 CPU 仍会成为制约 LLM 训练的算力瓶颈。

4. 基于英特尔® 平台的解决方案:加速 TEE 与 LLM 融合应用

4.1 基于英特尔® SGX/TDX的 TEE 解决方案

英特尔自第三代英特尔® 至强® 可扩展处理器开始内置英特尔® 软件防护扩展(英特尔® SGX)技术,其安全飞地的容量最多可达单颗 CPU 512GB,双路共计 1TB 容量,可满足目前千亿大模型的执行空间需求。

此外,该技术提供支持的机密计算可实现应用层、虚拟机 (VM)、容器和功能层的数据隔离。无论是在云端、边缘还是本地环境,都能确保计算与数据始终在私密性和安全性上获得更全面的保护,以免暴露给云服务提供商、未经授权的管理员和操作系统,甚至是特权应用。

另一方面,英特尔® Trust Domain Extension(英特尔® TDX)可将客户机操作系统和虚拟机应用与云端主机、系统管理程序和平台的其他虚拟机隔离开来。

它的信任边界较英特尔® SGX 应用层的隔离边界更大,使受其保护的机密虚拟机比基于英特尔® SGX 的安全飞地的应用更易于进行大规模部署和管理,在部署 LLM 这类复杂应用时,TDX 在易用性上更具优势。

此外,今年推出的全新第四代英特尔® 至强® 可扩展处理器内置英特尔® AMX,可大幅提升矩阵运算性能,而英特尔® SGX/TDX也可为英特尔® AMX、英特尔® DL Boost等计算指令提供支持,进而为 TEE 中的大模型赋予快速落地+优化性能的双重优势。

dc6d24d4c43210c93bbc8c29a24e8270.png
图 1. SGX/TDX 的可信边界

4.1.1. 大语言模型推理

使用私有数据进行个性化训练的大模型不仅包含私有数据信息,其查询本身也具有隐私性,尤其是基于边端的非安全环境部署。

基于英特尔® SGX/TDX 的 TEE 可为大模型提供更安全的运行环境,在数据上传云端前,查询可先通过客户端对传输内容加密,云端只需在英特尔® SGX/TDX 中解密查询问题,然后输入大模型的推理服务中,并将所得结果在云端的 TEE 中加密后传输回本地客户端。

在整个工作流程中,客户端以外的数据和运行态程序均处于密态环境当中,效率远远高于其他基于纯密码学的解决方案。

目前像 LLAMA 7B、ChatGLM 6B 等模型都可以在该 TEE 方案上满足实时可交互性能的运行。

图 2 展示了使用 LLM 部署知识问答的参考设计。

基于英特尔® SGX/TDX 的 TEE 为实际部署 LLM 中的自有知识产权保护提供了一套完整的方案,优化整个模型在查询、传输和推理过程中的安全保护。

abc4aaa4c33327020d9f424ab669e972.png
图 2. 基于 TEE 的大语言模型私密问答

4.1.2. 联邦学习

借助基于 TEE 的联邦学习解决方案(见图 3),就可在多机构之间实现基于 NLP 的深度学习,例如使用 BERT 的命名体识别。在金融和医疗等行业提升准确性,实现多机构数据互通,同时更好避免数据泄露。

此方案中每个参与方包含一个 Avalon管理模块和 Gramine 工作负载,均运行在英特尔® SGX 的安全飞地中,在管理模块彼此间的远程认证完成执行后,即可启动联邦学习过程,参与方在本地使用各自的数据集进行训练,然后将梯度上传至聚合方,聚合方进行聚合后将平均梯度下发至各参与方,以继续进行下一轮训练。

对比图 4 所示的 BERT + CRF 模型,此方案可以在强化隐私保护的同时,让性能损失维持在 50% 以下

eef8bc030ffd77ee9c0311ef5b2aaa7f.png
图 3. 基于 TEE 的联邦学习

4ca06e44eaf797a114c5388afc6f6bb2.png
图 4. BERT + CRF 模型4

4.2. BigDL:端到端大模型和 TEE 融合的方案

据行业用户反馈,LLM 在端到端应用中的痛点包括:

  • 软件栈复杂,难以确保端到端应用的安全。LLM 的训练和推理常依赖较多的软件栈、服务和硬件。为保护用户数据和模型产权,需确保每个环节的安全性(不同硬件、运行环境、网络和存储等)。

  • 计算量大,且对性能敏感。LLM 的计算量非常大,需引入足够多的性能优化。但是,不同模型、平台和软件栈需要使用不同的优化方案,要在特定平台上实现更理想的性能,需要长时间的性能调优。

为解决这些痛点,由英特尔主导的开源项目 BigDL,近期就推出了针对 LLM 的隐私保护方案,其两大主要功能为:

  • 提供端到端的安全保护:在不修改代码的情况下,为单机和分布式的 LLM 应用提供端到端的安全保护功能。具体包括,基于英特尔® SGX/TDX 的 TEE、远程证明、统一的密钥管理接口和透明的加解密 API 等。

  • 实现一站式性能优化:BigDL Nano 提供的针对 LLM 的一站式性能优化方案,可让现有 LLM 应用在几乎不用修改代码的情况下受益于英特尔® AMX、英特尔® AVX-512 和英特尔® Extension for PyTorch。同时,用户还可利用 BigDL Nano 提供的 LLM API,快速构建应用。

1d58a30327fb6f13510ca4f455a85295.png
图 5. BigDL 端到端安全的大模型方案

如图 6 所示,在应用了 PPML(Privacy Preserving Machine Learning,隐私保护的机器学习)提供的安全技术后,由于更强的安全和隐私保护会带来额外开销,因此端到端应用性能会略有下降;但应用了 BigDL Nano 提供的优化功能后,端到端的性能得到了显著改善*,总体性能甚至高于没有任何保护的明文性能。

983e150c3a63a70fb2e078858f36b5ba.png
图 6. BigDL PPML + Nano 端到端性能损失情况

目前,该方案已经开源,并开始陆续交付给行业客户进行测试和集成

5. 未来趋势

TEE 提供了隐私保护和数据安全防护功能的创新解决方案,将在 LLM 实际落地过程中扮演重要角色。

通过将二者融合,可更好地保障数据在训练和推理过程中的保密性,增强对未经授权访问和模型结果篡改的防御。

然而,在 TEE 中保护用户隐私的同时,需要平衡性能需求,随着大模型对于计算需求的大幅提升,算力可能会执行在异构硬件上,TEE 和异构硬件的结合将成为未来发展趋势。

随着 CPU 性能的提升以及内置 AI 加速技术的升级和更新,在方便部署的场景下,CPU 会是大模型推理和 TEE 结合的首选,在训练的场景下,基于 CPU 的 TEE 结合异构硬件的加密支持,则会是大模型训练甚至大模型联邦训练的技术方向。

英特尔将一如既往地以软硬结合的产品技术组合促进开发者参与,推动 LLM 与 TEE 的融合。

了解更多内容,请点击文末【阅读原文】。

作者简介:

英特尔公司 AI 架构师俞巍,英特尔公司平台安全资深架构师李志强,英特尔公司安全软件研发工程师李青青,英特尔公司软件架构师龚奇源,都在从事 AI 和 SGX/TDX 相关工作。

产品和性能信息:
1 SGX/TDX: https://www.intel.cn/content/www/cn/zh/customer-spotlight/cases/innovation-data-protection-with-security-engines.html
2 Wei Yu. et al. 2022, TEE based Cross-silo Trustworthy Federated Learning Infrastructure, FL-IJCAI’22
3 https://github.com/hyperledger-archives/avalon
4 Souza, F., Nogueira, R. and Lotufo, R. 2020, Portuguese Named Entity Recognition using Bert-CRF, arXiv.org(请参见 https://arxiv.org/pdf/1909.10649.pdf)
5 https://github.com/intel-analytics/BigDL/tree/main/python/llm
性能优化效果与具体平台、模型和环境有关

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

保护大模型应用安全,现在不需要拿性能做代价了 的相关文章

  • 时序预测

    时序预测 Python实现NARX带外源输入的非线性自回归神经网络时间序列预测 目录 时序预测 Python实现NARX带外源输入的非线性自回归神经网络时间序列预测 效果一览 基本介绍 程序设计 参考资料 效果一览 基本介绍 Python实
  • 解决Xampp中mysql无法启动的问题

    很突然的Xampp的mysql就打不开 很疑惑 之前一直可以打开的 然后刚才我启动了一下 就突然启动不了了 我想了一下 并没有出现端口号占用问题呀 而且报错也没有说端口号占用 报错写的很是通俗 然后我查看了日志文件 发现日志文件中也没有描述
  • 【无标题】chatgpt桌面化,桌面应用的安装

    前言 关于chatgpt最近来说可算是大火 不过在我使用过程中发现没事都要上openai的官网过于麻烦 而且卡顿 于是乎就在网上寻找一些方法 发现chatgpt可以桌面化 话不多说 直接上图 1 上github找这位大佬 2 主页往下番找到
  • 测试中BUG定义、测试BUG的等级划分、Bug流程以及Bug解决优先级

    一个优秀的软件测试师不仅仅能够发现软件中的bug 还能分析出bug产生的原因 总结了一些软件测试入门必须要了解和学习的BUG基础知识 主要包括BUG定义 测试BUG的等级划分 Bug流程以及Bug解决优先级等内容 下面一起来梳理一遍这些基础
  • ISE报错NgdBuild:604解决方法

    ISE报错NgdBuild 604解决方法 在使用ISE编写FPGA代码时 从其他地方导入 v文件 运行时会报图片中的错误 解决方法 在单纯的复制黏贴 v文件并且导入到 ISE 的同时 把 ngc文件拷贝过来 如下图所示 Rerun后即可解

随机推荐

  • python fastapi 向页面推送视频流,网站播放python获取的rtsp视频

    代码如下 import cv2 import uvicorn from fastapi import FastAPI Response from fastapi responses import StreamingResponse 创建一个
  • ubuntu安装软件一直0%

    ubuntu安装软件一直0 下载不了东西 更新版本库也不行 可能和dns解析错误有关系 可以修改 etc resolv conf文件 我填写的是北京联通的 请自行查阅自己的 nameserver 127 0 0 53 nameserver
  • 基于SpringBoot的CSGO赛事管理系统

    末尾获取源码 开发语言 Java Java开发工具 JDK1 8 后端框架 SpringBoot 前端 采用Vue技术开发 数据库 MySQL5 7和Navicat管理工具结合 服务器 Tomcat8 5 开发软件 IDEA Eclipse
  • win11安装gcc,g++,配置c++的编译环境

    MinGW Minimalist GNU for Windows download SourceForge net 下载并安装MinGW 可以直接鼠标点击操作 简单的很 选定gcc g 为待安装环境 然后开始安装就可以了 环境变量 右键计算
  • Java笔记-I/O流之比较器接口对象数组排序

    对象数组排序 内容介绍 1 对象数组直接调用sort 方法报错的原因 是因为没有定义比较的规则 需要自己定义 2 如何定义规则 看报错信息 ClassCastException demoCompare Person cannot be ca
  • 算法复杂度

    时间复杂度和空间复杂度 N 1个操作 O n O n O n O n N 2 1个操作 1 2 O n O n 2个单位的内存空间 O 1 常数的时间复杂度 两层循环O n 2 归并排序 T n 2 T n 2 n O n log n Ma
  • 10讲学会C语言之第四讲:循环结构

    文章目录 前言 一 求pi的近似值 二 统计整数的位数 三 判断素数 四 求阶乘和 五 循环结构编程 六 作业 前言 大家好 我是卷卷 本节课讲循环结构 for while和do while 主要包括六个部分 求pi的近似值 统计整数的位数
  • 1658 页的《Java 面试突击核心讲》在牛客网火了,完整版 PDF 开放下载!

    前言 我们都知道 在程序员的职业生涯中 有多个发展方向 不过就数据表明 近年来选择架构师方向的开发人员也越来越多 对于架构师的发展前途 我相信是已经没有争议的 但这个 概念 对于很多开发人员来说 并没有太清晰的认识 怎样才能成为架构师 是很
  • IDEA安装使用 VisualVM 及VisualVM 远程监视

    1 VisualVM是什么 按照VisualVM官网 http visualvm github io 上的介绍 VisualVM是一个集成命令行JDK工具和轻量级分析功能的可视化工具 专为开发和生产时间使用而设计 我们在jdk安装包中也可以
  • nmon的安装与使用

    author skate time 2011 08 06 nmon的安装与使用 1 下载 nmon http nmon sourceforge net pmwiki php n Site Download nmonanalyser http
  • Spring之循环依赖底层源码解析

    目录 一 循环依赖 二 解决循环依赖的思路 1 举例 AServiec依赖BService BService依赖AService 2 循环依赖的打破 三 三级缓存解析 1 三级缓存的通常叫法 2 三级缓存详情 一 循环依赖 1 循环依赖 很
  • ArcGIS Server 10.1 装配记录

    ArcGIS Server 10 1 安装记录 拿到了ArcGIS Server 10 1 的安装包 今天有时间上手安装试着用一下 记录过程如下 1 基础环境 在虚拟机下安装的 使用的是win2008 Server r2sp1系统 由于10
  • Verilog实现无源蜂鸣器发声

    要求 顺序循环发声 Do Re Mi Fa 时间间隔为0 5s 若输入为262Hz的方波 则蜂鸣器发Do的声音 以此类推 那如何向蜂鸣器输入262Hz的方波 假设系统时钟周期为50MHz 50MHz对应的一个周期为20ns 若占空比为50
  • CSS高级技巧

    声明 本人的所有博客皆为个人笔记 作为个人知识索引使用 因此在叙述上存在逻辑不通顺 跨度大等问题 希望理解 分享出来仅供大家学习翻阅 若有错误希望指出 感谢 CSS高级技巧 元素的显示与隐藏 类似网站广告 当我们点击关闭就不见了 但是我们重
  • 区块链平台架构分析

    区块链平台架构分析 数据层 网络层 账本层 共识层 合约层 应用层 一般说来 一个标准的区块链项目应该由数据层 网络层 共识层 激励层 合约层和应用层组成 每一层的具体介绍如下 数据层 数据层是区块链最底层的技术 主要的功能为数据存储 账户
  • C语言文件操作总结

    目录 字符方式读入文件 数据块方式读写文件 文件定位与随机读写 文件中数据的修改 字符方式读入文件 1 向文件中写入 输入字符 用 fputc 函数或 puts 函数可以把一个字符写到磁盘文件中去 int fputc int ch FILE
  • ------chrome游览器解决跨域问题

    在chrome游览器中为了安全性 是不正常跨域的 找到chrome的快捷方式 右键打开属性 快捷方式 找到目标 目标输入框里面有地址 在地址后面输入 user data dir C Mychromeuserdata user data di
  • Linux基础命令-ps查看进程状态

    Linux基础命令 sort内容排序 Linux基础命令 chattr更改文件隐藏属性 文章目录 前言 一 命令的介绍 二 语法及参数 2 1 通过help和man查看命令的语法 2 2 命令参数 2 3 常用参数 三 参数使用与内容含义
  • c++ opencv4.5.5 实现硬币计数

    效果图 实现思路 先将图像进行灰度化再进行二值化处理 消除噪声 膨胀使物体变大消除硬币内部噪声 开操作消除部分高亮区域 据距离变换的性质 经过简单的运算 即可用于细化字符的轮廓和查找物体质心 中心 轮廓查找 代码 include
  • 保护大模型应用安全,现在不需要拿性能做代价了

    编者按 大模型的爆火 也对隐私和安全发起了挑战 1 可信执行环境是什么 大语言模型为什么需要它 OpenAI 的 GPT 系列大语言模型 Large Language Mode 以下缩写为 LLM 的兴起与应用 也带来了诸如数据泄露 数据滥