Certifying LLM Safety against Adversarial Prompting

erase-and-check

erase:逐一删除prompt中的词元(token)

check:用安全过滤器检查生成的子序列。

如果任何子序列或输入提示本身被过滤器检测为有害,则将该提示标记为有害。

如图,对有对抗性后缀的有害prompt进行 擦除并检查 :

检查两种实现方式:

  1. 使用通用的大语言模型(如Llama 2)来分类输入提示是否安全或有害。

    不需要额外训练,依赖输出文本进行简单的检查,输出中是否包含"Not harmful"等安全标记,若有,则认为prompt是安全。

  2. 对预训练模型(如DistilBERT,将其修改为分类器)进行微调,使用安全和有害提示的示例来训练。

erase-and-check 针对这3种攻击方式:

(穷举搜索)

GreedyEC使用贪心算法,通过每次删除最能增加有害类别得分的tokens来优化输出的安全性,属于局部最优策略。

GradEC通过计算梯度来优化删除哪些tokens,它的策略更加精细和全局,基于输入变化对安全性的影响做出决策

所用数据集

  • 对抗后缀:在prompt的末尾附加一个对抗性序列。

    从输入prompt的末尾逐个擦除d个令牌(最大擦除长度d),并使用过滤器is-harmful检查d个子序列,有一个就算harmful。

  • 对抗插入:在prompt的任意位置插入对抗性序列。

    从prompt的任一位置i开始擦除,最多擦除d个令牌

  • 对抗注入:在prompt中的任意位置插入对抗性词元,这些词元不一定是连续的块。

    系统会在prompt中随机"擦除"掉不超过 d 个的词,形成d个子句。只要有一个子句完全匹配上所有对抗词(对抗词数量不超过 d 个),系统就可以标记这条提示为有害。

更高效的三种经验防御

RandEC,擦除随机和检查随机的随机子抽样。

GreedyEC,它贪婪地擦除使蒸馏器安全分类器有害类的softmax分数最大化的令牌。

GradEC,使用安全过滤器相对于输入提示符的梯度来优化要擦除的令牌。

  • GreedyEC :每次只能移除当前最危险的一个

  • GradEC:每次可以基于敏感度或危险程度,同时移除最危险的几个。

https://github.com/aounon/certified-llm-safety/tree/585385ae21fc4cc4f48d2c54180a72f92fdd292f/data

数据集包括520个harmful prompts 和 520个safe prompts

相关推荐
leoZ2318 小时前
本地跑大模型实战(七):llama.cpp 性能调优,让推理更快更省
java·人工智能·spring·生成对抗网络·语言模型·自然语言处理·llama
To_OC8 小时前
我把《天龙八部》塞进向量数据库后,终于搞懂了 RAG 到底是个啥
人工智能·llm·agent
蜡台8 小时前
AI Agent(智能体)入门基础教程
人工智能
Akir.weiwen9 小时前
Token 层差异:从颜色值到语义状态的三层跃迁
人工智能·设计规范
迷迭香yy9 小时前
集合竞价数据挖掘实战:用Python构建开盘信号识别系统
人工智能·python·数据挖掘
大模型momo9 小时前
Spring AI 实战:多 Agent 协作实战 —— 分工拆解复杂旅游行程任务
人工智能·spring·ai·agent·旅游
小程故事多_8010 小时前
从A2C、TRPO、PPO到GRPO,强化学习策略梯度算法完整演进与大模型落地实战解析
人工智能·算法
风曦Kisaki10 小时前
Kubernetes(K8s)笔记Day06: 持久化存储(emptyDir,hostPath,NFS),PV 和 PVC,StorageClass存储类
linux·运维·笔记·云原生·容器·kubernetes
冬奇Lab10 小时前
开源项目第176期:Better Harness — 不审查 diff,审查工作流本身,给 AI 编程 Agent 的五维评估框架
人工智能·开源·agent
冬奇Lab10 小时前
代码库知识库系列(07):混合检索 BM25 + 向量——Q8 还是失败,而且总分退步了
人工智能