本文主要是介绍【LLM安全】Personal LLM Agents的隐私和安全,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
https://arxiv.org/pdf/2401.05459.pdf
确保Personal LLM Agents中用户数据隐私和服务安全的保护成为一个至关重要的问题。
- 机密性代表了对用户数据隐私的保护,确保在用户与代理的交互过程中不会发生不必要的和未经授权的敏感信息泄露。
- 完整性代表了代理决策的弹性,确保代理执行的行为与预期行为保持一致,没有被恶意方故意修改或影响。
- 可靠性侧重于使代理的行为更加可靠和真实,可靠性处理的是代理的内部错误。
Confidentiality
Personal LLM Agent具有在没有用户意识的地方自发发起查询的潜力,这些地方可能包含关于用户的敏感信息。同时,代理也可能将用户信息暴露给其他代理或服务。因此,对用户隐私的保护变得更加关键。
增强机密性的方法有很多种,包括本地数据处理、同态加密、数据掩码、访问权限控制等。
Local Processing
在本地处理所有数据被认为是一种比将数据发送到云端更安全的与LLM交互的方法。然而,由于个人设备上的资源限制,在本地部署LLMs对高效处理用户请求提出了挑战。这会导致推理速度慢,甚至由于可用内存的限制而无法进行推理。
由于Personal LLM Agents中的数据主要由LLM处理,因此实现本地计算的关键是在用户自己的设备上运行LLM。现有的各种轻量级模型[ 308、250 ]和部署框架[ 309、274]可用于在边缘设备上部署模型。此外,还提出了各种模型压缩技术[ 310、220、216],以减小模型规模,进一步实现本地部署。
但使用局部部署的模型不可避免地面临着模型精度有限的挑战[ 42 ]。专家建议采用云边协同部署的方式,以实现更好的性能折中。同时,Personal LLM Agent还需要与云端进行通信,以提供在线服务。私有数据完全保存在本地设备上通常困难,甚至是不可能的。
Secure Remote Processing
为了在保护隐私的同时调用基于云的模型推理服务,一个理想的解决方案是同态加密( HE ) [ 311、312 ]。已经有一些研究[ 313 ]证明了将HE应用于深度神经网络的可行性,显示了将HE集成到模型中的潜力。
当HE应用于Personal LLM Agents时,有两个挑战:
-
LLMs中并非所有操作都可以使用HE执行的限制。在LLMs中的某些操作,如max,min和softmax,不能准确地使用HE执行
-
LLMs的计算复杂度较大,HE推理速度较慢。
针对这两个问题,有几种解决方案。
- The-x [ 314 ]提出了一个工作流程,在HE不能执行某些操作的情况下,如Max操作,密文将被发回本地设备。然后本地设备将执行操作,并将重新加密的文本发回云端。
- Cheetah[ 315 ]包含在服务器端为HE推理设计的算法和硬件优化。Cheetah的主要目标是提高HE的计算效率,从而加快HE运算的速度。
尽管在加速基于HE的DNN推理方面做出了许多努力,但同态加密的现状仍然远远不能满足代理的延迟需求[ 316 ]。另一种方法是使用可信执行环境( TEE ) [ 317 ]进行模型推理。然而,TEE可能会受到各种攻击[ 318 ],也可能导致有限的性能。
Data Masking
在发送到云端之前使用数据掩码对信息进行预处理。其基本思想是将原始输入转化为非隐私敏感的形式,同时保留对推断结果有至关重要影响的信息。
数据掩盖的一个直接方法是通过隐藏或替换敏感内容(如账号、地址、个人名等)来转换明文输入。这些类型的信息通常被称为个人可识别信息( PII )。另一方面,研究人员提出了基于嵌入的数据匿名化方法,其中客户端将原始用户请求编码为隐藏向量,并将这些向量发送到基于云的模型中进行后续推理。
面临的挑战是如何保证隐私、保证推断精度不会下降、保证推断速度不会下降太多。解决方法有以下几种:
- Coavoux等人[ 320 ]提出了一种度量来评估神经表示中隐私泄露的程度,并通过改变训练目标来开发一种防御方法,以实现隐私和准确性之间的权衡。
- Zhou等人[ 321 ]通过在中间表示中加入动态融合来保护用户隐私。
- TextObfuscator [ 322 ]通过文本混淆技术保护用户隐私。在编码过程中,可以采用"对抗表示学习",通过引入额外的约束来最小化编码向量中包含的隐私敏感信息[ 323 ]
虽然该方法在推理性能方面优于同态加密,但不能严格地保护数据隐私,因为编码向量本身仍然携带着泄露敏感信息的风险。此外,这类方法需要明确的隐私特征定义,以便编码器学习如何在对抗表示学习过程中移除隐私信息。
Information Flow Control
上述技术主要涉及模型输入数据的隐私性,同时模型输出也可能存在隐私泄露的风险。当商家旨在向用户推荐产品时,他们可能依赖于从某些个人代理商的输出中检索到的用户偏好信息。
这种从LLMs的输出中获取隐私信息的方法类似于传统操作系统中的个人数据访问接口,其中至关重要的是通过权限管理系统来确保隐私数据访问的可控性和透明性[ 324 ]。透明性要求告知用户关于隐私数据的访问信息,包括访问实体( who )、内容( what )、时间( when )、意图( why )、访问权限(how)。·
在处理数据机密性时,不应将LLMs视为可信计算基础( TCB )的一部分。可能需要基于规则的权限控制来约束LLMs可以做什么以及LLMs可以访问什么。权限机制允许用户配置是否允许不同的实体访问不同类型的信息。在传统系统中,研究人员提出了许多细粒度隐私内容细分和权限控制的方法,以及基于信息流传播的隐私数据溯源技术[ 325 ]。然而,为LLM代理产生的输出建立隐私数据可追踪性仍然是一个公开的问题。
确保用户数据的机密性对于Personal LLM Agents建立用户信任至关重要。然而,现有的隐私保护技术仍然不足以支持具有更高智能水平的代理。存在以下开放性问题:
1 .现有方法面临着平衡效率和有效性的共同挑战。例如,如何实现强大和高效的本地LLM,如何将同态加密( HE )或可信执行环境( TEE )扩展到大型模型,以及如何通过数据掩码/混淆技术实现严格的机密性?
2 .作为一种新的软件范式,Personal LLM Agents的系统隐私保护机制是什么,目前尚不清楚。我们是否还需要符号化的规则或权限来进行访问控制?它们如何能与LLMs的不可解释性无缝融合?
Integrity
完整性是指Personal LLM Agents在面对各种类型的攻击时,仍能保证其正确输出预定内容的能力。传统的攻击方式,如修改模型参数、窃取和篡改本地数据等,都可以通过加密、权限、硬件隔离等措施进行防御。然而,在防御传统攻击方法的同时,还应注意LLM代理可能遇到的新类型攻击:对抗性攻击、后门攻击和提示注入攻击。
Adversarial Attacks
一类重要的攻击,称为"对抗性攻击",通过定制或篡改模型的输入数据导致模型推断错误,最初在图像分类模型中被发现[ 326 ]。这类攻击通过给图像添加不可觉察的噪声,会导致严重的分类错误。随后,研究人员将这种攻击方法扩展到文本数据、图数据等[ 327 ]。
这种攻击也持续存在于大型语言模型中[ 328 ],这些模型也可以接受来自第三方的图像[ 329 ],文本[ 330 ]和其他模态的数据[ 331 ]的输入。例如,在协助用户完成自动化任务时,攻击者可能会误导代理删除日历事件和泄露私密会话数据[ 332 ],因为LLMs往往需要输入应用程序内部信息的内容来生成下一步的交互决策。在这种情况下,如果第三方应用程序向LLM提供恶意定制的内容,它可能会驱动智能代理进行不安全的交互。
传统的针对深度学习模型中此类攻击的防御方法通常包括对抗防御、异常输入检测、输入预处理、输出安全验证等。此外,一些防御方法可能需要在LLM的背景下进行调整。例如,训练LLM可能会产生大量的成本,使得通过对抗训练来增强安全性变得不切实际。因此,探索如何通过参数高效的微调来达到良好的对抗防御效果是一个值得研究的问题。
Backdoor Attacks
传统的模型后门攻击往往是通过数据投毒来实现的[ 333 ],即在模型的训练数据中插入恶意修改的样本,使模型学习到刻意隐藏的决策逻辑。
对于LLMs而言,由于训练数据量巨大且需要严格的统一管理,数据投毒可能更具挑战性,但另一类后门攻击方法[ 334 ]仍然有效,通过在测试期间修改模型输入,将不安全的逻辑植入模型。
- 当语言模型被提示执行特定的目标任务时,Kandpal等人[ 335 ]提出了有针对性的错误分类。
- ProAttack [ 336 ]直接利用提示作为触发器向LLM注入后门,这是首次尝试探索基于提示的干净标签文本后门攻击。
- Poison Prompt [ 337 ]是对基于软、硬提示的LLM进行的基于双层优化的提示后门攻击。由于LLMs在某些场景下往往使用多个固定的提示,这种通过修改提示实现的攻击形式实质上是对模型参数的微调,从而改变其决策逻辑。
- Sun等人[ 338 ]提出,在给定目标的情况下,测试生成源的后向概率可以对不同类型的攻击产生有效的防御性能。事实上,当攻击者模仿正常行为时,这种防御方法可能会变得无效。因此,代理系统中的后门防御目前还没有一个健壮的解决方案[ 339 ]。这凸显了对模仿合法行为的复杂攻击进行有效防御的要求。
Prompt Injection Attacks
在LLM时代,出现了一种新的、特别重要的安全风险,即时注入[ 340、341、342、343]。在这种攻击形式下,模型本身通过对齐和提示的方式纳入了一定的安全保障措施。尽管如此,第三方模型用户可以通过在提示语中使用微妙或特殊的措辞来绕过这些预设的安全保障措施。例如,智能个人助理可以预先设定不执行某些敏感操作,例如修改用户的账号密码[ 344 ],但通过提示注入,它可能会诱导模型违反法规并执行这些敏感操作。
对于这种基于提示的攻击方法,目前还没有完善的防御机制。
- Smooth LLM [ 345 ]是第一个通用的提示注入防御方法,它随机扰动给定输入提示的多个副本,然后聚合相应的预测来检测对抗性输入。然而,它的防御效果高度依赖于模型的鲁棒性,因为一些模型的攻击成功率只降低了1 %左右。
对来自第三方应用程序(总结、翻译、重述)或提示封装的输入内容进行后处理,可以帮助模型清晰地区分它们与系统固有的提示。
确保决策过程的完整性对于Personal LLM Agents至关重要。对完整性的威胁是非常多样且不断发展的,而防御技术的发展则相对滞后。在这里,我们强调了两个重要的公开问题,适用于所有类型的攻击。
1 .代理如何知道自己的输入或决策过程是否被第三方篡改?这就要求智能体对什么是正常的输入和行为有感觉,并具有识别异常的能力。
2 .由于直接避免攻击可能具有挑战性,因此考虑用户验证机制,即在代理不确定的情况下,要求用户进行验证更具有实际意义。如何设计一个安全且用户友好的验证机制是一个具有挑战性的问题。
Reliability
在Personal LLM Agents中,大量的关键动作由LLM决定,包括修改和删除用户信息、购买服务、发送消息等敏感操作。因此,保证代理决策过程的可靠性至关重要。
Problems
幻觉
LLMs可能会产生错误的答案,从而导致严重的后果。研究人员发现了LLM生成连贯流畅但最终错误的文本的情况。这种现象在自然语言处理任务中被称为幻觉,也对个人智能体提出了挑战。
- Ji等人[ 346 ]深入探究了幻觉在自然语言处理任务中的各种表现形式。
- Rawte等人[ 347 ]进一步讨论了多模态基础模型中的幻觉现象,提供了有价值的参考
未识别操作
与聚焦于LLMs产生的"错误答案"的幻觉问题不同,在许多情况下,这些模型的响应是"甚至没有错误"的。语言模型的本质是语言建模,语言模型的输出通常以语言的形式出现。与其他直接与人交互的LLM相比,Personal LLM Agents需要执行操作,因此,它们对输出的格式和可执行性有更高的要求[ 348 ]。
顺序可靠性
LLMs最初在序列数据和训练目标(上进行预训练。然而,现实世界中的问题可能并不能按顺序得到完全解决。实现顺序可靠性带来了一些挑战,包括上下文保持、连贯性维护等。为了更好地与用户和个人LLM Agent保持连贯和有意义的对话,需要激发LLM从全局角度思考的能力,而不仅仅依赖于先前生成的标记或上下文。
- 为了增强LLMs的思维和推理能力,Yao等人[ 83 ]提出了思想树( Tree-of- Thought )来生成和总结多条不同的推理路径
- Zhang等人[ 349 ]提出累积迭代推理来解决复杂任务。
- 也有可能设计解决任务的总体方案[ 87 ],或从先前的工作[ 350、351 ]中汲取见解。
Improvement
对齐
随着LLMs的规模和复杂性的增加,人们对其可能产生偏见、有害或不适当的内容产生了担忧。对齐方法试图减轻这些风险,并确保LLMs的行为与伦理和社会规范保持一致。
- 一种常用的对齐方法是使用预训练和微调[ 352、353、354]。LLMs在海量的文本数据上进行预训练,以学习语言模式和表示。在微调阶段,模型将在更具体和仔细审查的数据集上进一步训练,包括人工生成的例子和演示。这一过程通过将人类的价值观和意图纳入到模型的训练中,帮助模型与期望的行为保持一致。
- 另一种对齐方法是奖励建模,它涉及定义和优化一个反映期望结果或行为的奖励函数。通过为特定的动作提供明确的奖励或惩罚,LLMs可以被训练生成与这些预定义的目标相一致的输出。基于这些奖励信号,可以使用强化学习技术(例如, RLHF , RLAIF , C-RLFT )来优化模型的行为。监督和干预是关键的对齐方法。人类评论者或调节者在审查和过滤潜在偏见、有害内容或不适当行为的LLMs的输出方面发挥着至关重要的作用。它们的反馈和干预被用于迭代地改进模型的性能,并使其与期望的标准保持一致。
自我反思
已有研究表明,语言模型可以提供提供正确答案的概率[ 357 ]。受LLMs自主运行的启发,研究者提出利用模型的自我反思来缓解内容生成不正确的问题。
- Huang等[ 211 ]和Madaan等[ 358 ]的研究表明LLMs具有利用未标记数据进行自我完善的能力
- Shinn等[ 359 ]提出Reflex,通过语言反馈让LLMs进行更新
- Chen等人[ 360 ]提出了自调试( Self-Debug )来迭代地提高代码生成任务的响应
- SelfCheckGPT [ 361 ]允许大型模型多次多次提供同一输入问题的答案,并检查这些答案之间的一致性。如果答案之间存在矛盾,则有较高的概率说明模型产生了不可靠的内容
- Du等[ 362 ]试图通过让多个大型模型代理进行相互讨论和验证来提高模型输出的可靠性。模型的组合方式多种多样,类似于人类世界中多样化的协作方式。然而,正如更多的雇员需要增加开支一样,拥有更多的模型需要更大的计算能力要求。
上述工作展示了LLMs从单纯的文本生成器向智能代理演化,从原始的内化推理向迭代更新的反思性推理过渡的趋势。
检索增强
LLMs在各种任务中表现出强大的性能,然而,存储在模型中的参数知识仍然可能是不完整的,并且难以有效地更新。或者,检索增强方法[ 199、200、363]提供了一种半参数的方式来提供互补的非参数信息,使得LLMs在生成内容时可以利用检索到的真实世界知识,如维基百科、文档或知识图谱[ 364 ]。该方法具有不需要修改模型的优点,便于信息的实时更新,并允许生成结果对原始数据的可追溯性,从而增强了生成信息的可解释性。
检索增强已经被证明对传统的预训练模型有效,例如BERT [ 365 ]。然而,对于已经具有较强推理能力的LLMs,由于不相关或噪声信息的存在,增加上下文也可能会产生负面影响[ 366 ]。
- 为了解决这些问题,Guo等人[ 192 ]提出了一种针对非知识密集型任务的提示引导检索方法,增强了检索段落对于更一般查询的相关性。
- Yu等人[ 367 ]提出了注意链( Chain-of-Note )来提高在处理噪声和不相关文档时的鲁棒性。
- Asai等人[ 368 ]提出了Self - RAG,通过自我反思来增强真实性。
- Wang等人[ 369 ]提出了一种自知识引导的检索方法SKR,以平衡外部知识和内部知识。
- Wang等人[ 370 ]提出FLICO来提前过滤上下文,提高检索片段的细粒度相关性。
- CRITIC [ 371 ]框架利用LLMs通过与外部工具(如计算器、Python解释器和维基百科)的交互来验证和迭代地自我修正他们的输出。然而,这种方法对于无法在外部知识库中找到匹配内容的用户请求的帮助有限。
Inspection
基于检验的方法不干扰LLM的生成过程。相反,它专注于如何根据已经产生的结果来增强或理解代理的可靠性。
验证
考虑到在部署此类系统用于实际使用时,无法完全避免LLMs生成不可靠内容的问题,仍有必要建立基于规则的安全验证机制。对于上述未被识别的操作,"约束生成"是指生成格式化的、有约束的输出的过程,可以用来解决这个问题。
- Kumar等人[ 372 ]使用Langevin Dynamics模拟非自回归文本生成来解决这个问题。
- Miao等人[ 373 ]介绍了一种方法,该方法在每次迭代时建议一个候选修改,并验证修改后的句子是否满足给定的约束来生成约束句子
- Li等人[ 374 ]和Weng等人[ 375 ]提出了自我验证来帮助大型语言模型的推理过程。
- 负责任任务自动化[ 96 ]是一种可以预测命令的可行性,确认执行者的完整性,增强大型语言模型安全性的系统。然而,需要进一步的研究来提高识别敏感操作的准确率和召回率,并减轻用户的决策负担。
解释
虽然前文提到智能个人助理应尽量减少用户中断,但纳入用户意见或人类协助可能是有价值的,特别是在做出重大决策时。在智能个人助理出错的情况下,具有可解释性的逻辑也可以在后续的调试过程中提供帮助。
- 关于可解释语言模型的讨论,[ 376、377、378]有几项调查。
- 传统上,基于理论基础的方法[ 379、380 ]可以通过在人工标注的数据上进行显式训练来解释模型输出。
- 对于LLMs,思维链推理[ 82 ]方法也可以帮助模型生成文本解释。
- 为了使推理过程更加鲁棒和可靠,最近的研究进一步加强了基于多数投票[ 381 ]和迭代自举[ 382 ]机制的思维链推理。显然,研究人员非常重视可解释性,因为它不仅有助于可靠性,而且代表了一个有趣的研究方向。
中间特征分析
在最后一层表示之外,还有一些工作涉及分析模型推断过程中的中间状态来判断虚假信息的产生。
- Halawi等人[ 383 ]发现模型的行为可能在某些层上显著发散,这突出了分析模型中间计算的重要性。
- Li等人[ 384 ]发现中间层的模型激活可以揭示"真实性"的一些方向,表明LLMs可能已经捕获了知识,尽管不是生成的,他们进一步提出在推理过程中改变模型激活,并改善LLMs的响应。
- Van der Poel等人[ 385 ]提出了一种利用互信息并通过评估下一个标记的置信水平来缓解幻觉的方法,其根本原因是幻觉内容产生过程中LLMs中的神经激活模式不同于正常输出。这些研究强调了仅仅依赖最终层表示进行语言建模的弊端,揭示了利用模型不同层之间的分层信息的潜在好处。
LLM生成的可靠性受到了相当多的关注,尤其是围绕幻觉问题。然而,避免不可靠的行为仍然是困难的,如果不是不可能的话。开放性问题包括:
1 .如何评价LLM和LLM代理的可靠性?现有的方法要么依赖于黑盒LLMs,如GPT - 4,要么依赖于昂贵的人工标注。需要权威的基准和方法来评估和提高可靠性。
2 .与机密性问题类似,在Personal LLM Agents的决策过程中融入严格的符号规则将是解决可靠性问题的一个切实可行的方案。然而,在遵守规则的同时保留LLM代理人的强大能力是具有挑战性的。
3 . DNNs缺乏透明性和可解释性是一个长期存在的问题,这对于个人LLM Agents的所有安全和隐私方面更加关键。如何解释和解释LLMs的内在机制是一个值得持续研究的方向。
这篇关于【LLM安全】Personal LLM Agents的隐私和安全的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!