大模型防火墙-overview

简介(为什么需要外置防火墙)

Transformer、Bert 、LLM

Transformer结合了注意力机制、残差、词向量等结构,通过在大规模自然语言数据集上无监督训练,拥有很强的自然语言理解能力

LLM服务 & 安全性

简单服务: 用户将自己的prompt发送给LLM服务供应商,服务端调用大模型后,返回结果给用户

89a5efdf-4c6a-4863-ba4a-f5c44fe46f8a

工具调用: 大模型本身无法获取外部信息,这限制了其应用。

aa7003e3-856c-4ac7-971f-8c731673699d

OPENAI 提出了Function Call,为LLM引入了外部工具,大模型可以通过工具调用获取外部信息。Claude提出了MCP协议,规范了工具调用的流程。

50a9ccb7-832b-4f13-9e54-2572225c3740

安全问题: 大模型是基于大量无标注样本训练而来的,本质上是一个Next Token预测器,并没有价值观的概念。尽管模型会通过SFT、强化学习等方法训练模型与人类价值观对齐。但仍有绕过这种对齐的越狱攻击方案。通过越狱攻击,大模型会输出恶意内容、用MCP执行恶意指令等。

814a8105-3349-4fef-874e-60cc89196cf9

总之,模型自身的安全对齐无法有效防御各种越狱攻击。我们需要引入模型外的防护手段。大模型防火墙建设

问题拆解(引出数据工程)

防火墙位置、用到哪些工程方案、框架如何持续优化。

防火墙位置

防火墙要位于用户与模型交互各个流程中, 综合各种工程方案来提高检测准确性,总的来看可以在如下三个位置设计

  • 用户状态:可以对用户账号进行画像,一个简单的策略是:若用户被检测到多次尝试越狱,可以进行封号处理。
  • 用户输入:最理想的位置,若能在用户输入中检测到恶意请求,可以在调用模型前拒绝回答,节省资源,但高误报率可能会影响用户体验。
  • 模型输出:持续监控模型输出,若检测到模型的恶意输出,则应该立刻终止输出。

工程方案

方案要结合准确性、实时性、可更新性等综合考虑,以下是四个可用的工程方案

  • 向量库相似度匹配:借助embedding模型,可以将任意长度的prompt编码为固定长度的词向量。通过相似度计算。可以将用户输入的prompt在向量库中进行相似度匹配。基于匹配结果判断prompt是否恶意。
  • 二分类模型检测:如promptguard等开源模型,通过微调bert,让其具有分类能力。
  • 前置模型预处理:可以前置一个小模型,首先对用户输入进行快速分析。将分析结果与用户prompt一起发送给LLM。
  • 模型输出持续检测:对模型输出进行缓存切片、通过检测算法持续监控模型输出。

框架优化

攻击手段是持续更新的,因此方案要考虑到能否在有限时间内迭代更新。

  • 向量库:可实时更新。
  • Bert模型:周更新。需要收集/合成高质量的黑样本,尽可能覆盖所有恶意prompt类型。
  • 小模型:月/季度更新。需要有样本+样本分析数据,对小模型进行知识蒸馏。让其拥有大模型的判别能力。

总之,在算法层面上各大厂商之间差距较小,因此要在数据质量、工程方案上进行持续优化更新。

整体框架

f98cf8cc-a953-4764-91b0-f461d472d6c9

总结

  • 可以在三个位置设置防火墙:用户状态、用户输入、模型输出。
  • 每个位置都可以结合多种方案进行综合处理,提高框架整体的准确性、实时性。
  • 防火墙需要有更新的能力,因此数据工程十分重要。借助数据工程获取高质量的样本数据,基于数据对方案算法进行进一步迭代优化。

补充

讨论1 LLM WAF 与 恶意prompt标注框架的异同

  • 额外问题:waf和标注,本质都是对恶意prompt检测出来。用户输入一串prompt,两者都能检测到,这是工程问题。但waf需要额外考虑的问题是:用户体验

  • 响应时间:客观上来说,大部份用户都是正常用户,不应该为了整体安全性大幅度牺牲用户体验。waf检测需要在秒级、毫秒级出来。而数据标注并不要求实时性。

  • 流程框架:WAF检测需要在用户与模型交互的各个流程中进行,需要对用户输入、模型输出、用户画像进行综合防御。prompt标注目前只需要对用户输入的prompt进行标注(模型输出的恶意内容也可以标注训练,但目前只讨论输入)。

总之,两者并不完全相同,但可以相互参考、借鉴、两者的输出都可以用于优化对方的性能。

讨论2 WAF 的实现

WAF的实现需要综合


文章参考:

博客地址: qwrdxer.github.io

欢迎交流: qq1944270374


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1944270374@qq.com