趋近智
大型语言模型 (LLM) 尽管能进行长时间对话,但在“记住”和使用当前对话中的信息方面存在固有限制。这种内部状态,常被称为模型的内存,主要由其上下文窗口控制:一个有限的缓冲区,存储着LLM目前可以访问以生成下一个回复的文本(包括用户输入和模型输出)。作为红队成员,理解并检测此上下文窗口和模型短期内存的边界与行为,有助于发现与多轮交互相关的弱点。
与LLM互动时,对话的每一轮通常都会被添加到运行中的文本记录中。模型并非像人类一样“记住”您所有互动历史。相反,它主要依赖其活动上下文窗口内存在的内容。这个窗口有固定的大小,以标记(词的片段)为单位。如果对话过长,对话的早期部分将“滚动”出此窗口,并被模型遗忘,从而无法用于生成紧随其后的回复。
在这种设定下,模型的“内存”指的是它引用和使用当前上下文窗口内信息的能力。它不是特定于您在会话或窗口中个体对话的持久、长期存储,除非由应用层明确管理(例如,通过摘要技术或外部数据库,这些均超出原始模型上下文窗口的范围)。
可以将上下文窗口视为一个沿着对话移动的滑动窗口。随着新的对话轮次添加,如果总标记数量超出窗口容量,较早的轮次可能会脱离视野。这种机制是LLM管理长对话的根本,但也为测试引入了特定的途径。
如果重要的指令、安全准则或事实在对话早期确立,一旦它们滑出上下文窗口,模型可能会“遗忘”它们。这可能导致行为不一致、角色丢失,甚至绕过最初的安全限制。
该图表明,随着对话的进行,较早的对话单元(例如包含初始指令的U1)如何从活动上下文窗口中移出。在U5,如果U1不再可见,模型对“问题B(与X相关)”的回复可能不会遵循“避免X”的指令。
对于上下文长度未知_的_黑盒模型,可以尝试估算。一个常见方法是“大海捞针”测试:
这种方法帮助您理解您所操作的边界。一些模型也表现出“近因偏差”,这意味着它们可能更重视上下文窗口末尾的信息。
一旦您对上下文窗口的大小有了大致了解,甚至不了解,也可以使用几种方法来测试其安全弱点方面的局限性。
这是滑动窗口的直接结果。会话开始时提供的指令或安全准则可能会在影响力上“淡化”,或完全被推出上下文。
如果模型遵循了虚构故事的请求,这表明初始指令已失去作用,很可能是由于被推出活动上下文。这对于测试自定义指令或系统提示的持久性尤为重要。
攻击者可能会在发出实际恶意请求之前,尝试用大量不相关、分散注意力或有细微操纵性的文本“填充”上下文窗口。
如果模型难以处理超长上下文,或者标记限制过早达到,阻止了合法交互,这也可能成为拒绝服务的一个途径。
LLM擅长“上下文学习”,它们可以根据直接在提示中提供的几个例子来学习执行新任务或采纳新角色。红队成员可以这样做:
如果模型开始模仿基于少量精心设计的上下文示例的有害或偏颇模式,则表明存在弱点。这些示例在当前上下文中的“记忆”直接影响其输出。
即使在活动上下文窗口内,您也可以测试模型在不同对话轮次中保留和管理特定信息的能力。
这包括测试模型是否会在当前上下文中无意中泄露被告知保密或在之前轮次中接触过的信息。
脆弱的模型可能会直接说出密码或将其包含在摘要中,这表明未能遵循“请勿重复”的指令,或无法在其活动上下文内区分敏感和非敏感数据。
您可以通过在模型的上下文窗口中输入矛盾的陈述来测试其推理和内存能力,并观察它是如何处理这些陈述的。
这有助于确定模型是否容易被错误信息左右,或者其内部一致性是否可以被打破,从而可能导致它生成无意义或不可靠的输出。
操纵内存和上下文窗口限制是LLM红队行动的一个重要方面,因为:
在进行红队行动时,系统地检测这些方面可以显示在简短、简单的交互中可能不明显的弱点。记录模型在这些特定压力下的行为,能提供对其韧性和潜在故障模式的宝贵认识。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造