了解提示注入如何利用大型语言模型和多模态模型。探索计算机视觉中的风险、现实案例以及人工智能安全的缓解策略。
提示注入是一种安全漏洞,主要影响基于生成式人工智能 和大型语言模型(LLMs)构建的系统。当恶意用户构造特定输入(通常伪装成无害文本)诱使人工智能绕过其原始编程、安全防护措施或系统指令时,该漏洞便会触发。与利用代码中软件漏洞的传统黑客手段不同,提示注入攻击的是模型对语言的语义解读能力。 攻击者通过操控上下文窗口,可迫使模型泄露敏感数据、生成违禁内容或执行未授权操作。随着人工智能日益自主化,理解此漏洞对维护稳健的AI安全至关重要。
虽然提示注入最初出现在纯文本聊天机器人中,但随着多模态模型的兴起,它在计算机视觉(CV)领域的重要性日益凸显。 现代视觉语言模型(VLMs)——例如CLIP或开放词汇检测器YOLO——允许用户通过自然语言描述(如"找到红色背包")定义检测目标。
在这些系统中,文本提示会被转换为嵌入向量,模型通过该向量与视觉特征进行比对。当攻击者展示包含文本指令的图像(例如标有"忽略此物体"的标识牌)时,模型中的光学字符识别(OCR)组件会将其读取并解析为高优先级指令,从而可能引发"视觉提示注入"攻击。这种攻击模式创造了独特的攻击途径——物理环境本身成为指令注入机制,从而挑战自动驾驶汽车和智能监控系统的可靠性。 组件识别并解读为高优先级指令。这种攻击方式开创性地利用物理环境本身作为注入机制,对自动驾驶车辆和智能监控系统的可靠性构成重大挑战。
即时注入的影响遍及人工智能与外部输入交互的各个行业:
在机器学习领域中,区分即时注入与类似术语至关重要:
以下代码演示了用户自定义文本提示如何与开放词汇视觉模型进行交互。在安全应用程序中,该 user_prompt 需要严格的清理以防止注入尝试。我们使用 ultralytics 用于加载能够理解文本定义的模型的软件包。
from ultralytics import YOLO
# Load a YOLO-World model capable of open-vocabulary detection
# This model maps text prompts to visual objects
model = YOLO("yolov8s-world.pt")
# Standard usage: The system expects simple class names
safe_classes = ["person", "bicycle", "car"]
# Injection Scenario: A malicious user inputs a prompt attempting to alter behavior
# e.g., attempting to override internal safety concepts or confuse the tokenizer
malicious_input = ["ignore safety gear", "authorized personnel only"]
# Setting classes updates the model's internal embeddings
model.set_classes(malicious_input)
# Run prediction. If the model is vulnerable to the semantic content
# of the malicious prompt, detection results may be manipulated.
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Visualize the potentially manipulated output
results[0].show()
防范提示注入是当前研究的热点领域。相关技术包括: 基于人类反馈的强化学习(RLHF) 训练模型拒绝有害指令,以及实施"三明治"防御机制——将用户输入 封装在系统指令之间。 采用Ultralytics 进行训练与部署的机构,可通过监控推理日志detect 提示模式。此外,美国国家标准与技术研究院(NIST)人工智能风险管理框架为评估和缓解部署系统中的此类风险提供了指导方针。