目录
范围 8
原则 9
基于LLM的系统的组成部分 10
编排器 11
向量数据库 11
LLM缓存 12
验证器 12
机器学习的安全运维(MLSecOps) 13
挑战和注意事项 14
提示注入 15
系统与用户提示 16
微调与模型训练 17
使用LLM的系统的常见架构设计模式 19
检索增强生成(RAG) 19
上下文数据 19
使用向量数据库的RAG访问 21
使用关系数据库的RAG访问 23
使用API调用外部系统的RAG 26
LLM系统编写和执行代码 29
基于LLM的自主智能体 33
结论 36
摘要
自2022年ChatGPT等生成式AI应用推出以来,越来越多的组织开始利用大语言模型(LLM)解决各种业务问题。尽管发展迅速,但安全设计这类系统的的正式指导和最佳实践依然匮乏,特别是在涉及LLM外部数据源或LLM参与决策过程的场景中。
LLM的非确定性,及缺乏明确的控制和数据平面的特点,为系统架构师和工程师带来了独特的挑战。这些挑战影响了集成LLM的系统的安全性和授权机制。
本报告旨在为工程师、架构师以及隐私和安全专业人士提供指导,帮助他们深入理解在设计使用LLM的系统时所面临的特定风险与挑战。本报告探讨了授权和安全相关的潜在风险,并说明了需要特别注意的事项。
本报告概述了将LLM集成到更广泛系统中的设计模式和最佳实践,涵盖了扩展LLM功能的高级模式,如添加上下文或实现与其他组件和服务的交互。每种模式都有相应的推荐实践、注意事项和常见误区,帮助系统架构师更有效地权衡设计决策。
关键原则强调了避免让LLM参与授权决策和策略执行的重要性,同时持续验证身份和权限,并通过系统设计来减少潜在问题的影响。默认拒绝访问并简化系统复杂性可以减少与授权相关的错误。此外,验证所有输入和输出对于防范恶意内容至关重要。
本报告还介绍了LLM支持系统所需的关键组件。向量数据库因其在管理高维数据方面的优势,成为AI系统中检索和处理数据的重要组成部分。编排器负责协调LLM的输入和输出,管理与其他服务的交互,并降低如提示注入的安全风险。LLM缓存加快了响应速度,但需要进行控制检查以防止未经授权的访问。尽管主要的安全保障应来自确定性授权,验证器依然为抵御攻击增加了防御层。
引言
随着现有企业和新兴创业公司在大语言模型(LLM)领域争夺先发优势,这些组织迫切需要更多关于这类安全设计利用LLM的系统的正式指导和最佳实践。这在需
要LLM处理外部数据源的用例或依赖LLM做出决策并采取行动的下一代应用程序和系统中尤为重要。
将LLM用作系统组件为架构师和工程师们带来了新的挑战,特别是在可预测性、安全性和授权方面,这主要是由于LLM的非确定性以及缺乏独立的控制和数据平面所导致的。
目标读者
本报告旨在帮助工程师、架构师以及隐私和安全专业人士理解使用LLM构建系统时,与授权相关的独特风险和挑战。它强调了由于LLM的特性而需要做出的特殊考虑,并探讨了这些系统可能面临的挑战和常见误区。
范围
本报告概述了将LLM作为更广泛系统组件集成的系统设计模式和最佳实践,涵盖了通过提供额外的上下文或让模型进行推理并与其他组件和外部服务交互的高级模式。每个设计模式包括建议、注意事项和常见误区。这些要素有助于系统架构师在设计决策时做出权衡。
本报告旨在帮助来自不同背景的读者就利用LLM构建系统时所面临的独特授权挑战做出明智的选择。系统设计人员将获得控制实施的实用建议,而评估供应商产品的人员则可以更好地评估市场上利用LLM提供服务的产品的安全设计。
本报告重点指出了一些软件系统的特有问题作为相关建议的背景参考,这些问题在传统的确定性组件架构中并不存在。
本报告假设读者已熟悉授权的基本知识和最佳实践,主要探讨在系统中引入LLM时产生的新挑战和考虑事项。对于基础授权知识的读者,建议参考其他文档,以获取有关授权控制设计过程中需要权衡的其他考虑事项的更多详细信息。
原则
本报告的建议基于若干基本原则和最佳实践,部分原则特别针对LLM系统进行了调整。
输出可靠性评估:LLM可能会产生不可靠的结果;应根据所涉及业务流程的重要性,仔细评估其使用。
授权:授权策略的决策点和执行点应始终位于LLM之外,以保持安全性和控制。
认证:LLM永远不应负责执行认证检查。认证应由系统中的其他机制处理。
漏洞:应假设LLM特定的攻击(如越狱和提示注入)始终是可行的。
访问:应执行最小权限原则和按需访问,以最小化暴露面和潜在的控制疏漏带来的损害。
基于LLM的系统的组成部分
图1:基于LLM的系统的组成部分
原创力文档

文档评论(0)