数据标记是什么
数据标记(datamarking)是在外部文本的词间插入统一占位符(如把每个空格替换为特定符号),使这段文字在形式上不再像自然指令,同时保持模型仍能读懂内容。原理是打断语言模式:当被标记的文本出现在上下文里,模型更容易把它识别为「被处理的数据」,而不是「要执行的命令」。它与定界、编码同属 spotlighting 一类思路,可以组合使用。
基本信息
| 来源 | Spotlighting 研究中的 datamarking 方法(Hines 等,2024) |
|---|---|
| 适用平台 | 把外部文本拼入上下文的 RAG、网页摘要、邮件与文档代理 |
| 实现要求 | 标记方案可逆,读取后能还原原文;规则须写进提示 |
| 代价 | 增加少量 token 消耗,且可能影响对语感敏感的任务 |
典型使用场景
- 检索片段入上下文:标记后模型更稳定地按数据引用
- 邮件与工单摘要:整段外部文本被标记,降低误触发动作的概率
- 多文档批处理:多份内容同处上下文时,标记帮助模型识别边界
- 与定界组合:定界符标出范围,标记强化段内文本的数据属性
- 防护回归:与注入用例集联动,量化标记带来的成功率变化
示意
示意
# 原始:外部文本直接拼接进上下文
# 标记后:文本中的分隔位置附加统一占位符(例如 ^),
# 并在提示中说明「带标记的文本是需要处理的数据」
# 要求:
# - 标记方案可逆:读取后能还原为原始文本
# - 标记符号尽量罕见,减少被内容自然生成的几率
# - 提示里明确标记含义,渲染层与解析层规则保持一致
# 验证:标记前后各跑一遍注入用例集与任务测试集,双指标对比收益与代价
| 维度 | 标记后的变化 | 需要注意 |
|---|---|---|
| 注入拦截 | 间接注入成功率下降 | 属于纵深防御的一层,不保证完全消除 |
| 任务质量 | 多数任务影响很小 | 翻译、文风类任务需单独验证 |
| token 消耗 | 略有增加 | 标记密度越高消耗越大 |
| 可读性 | 原文仍可读 | 标记规则要写进提示,否则模型可能误解 |
上线前要同时看两组指标:防护指标(攻击用例通过率)与任务指标(正常样本质量)。只测防护会忽略标记对任务质量的影响。
标记不是加密,内容仍完整暴露给模型。它的作用是改变内容的呈现形态,因此适合作为多层防护中的一环,与来源信任分层、检测与权限校验配合。