# RDT：无需训练的多模态智能体安全对齐方法

> RDT通过将LLM的安全拒绝方向移植到视觉-语言-动作模型，在无需重新训练的情况下实现安全对齐，为机器人智能体的安全控制提供了新思路。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-04-22T13:30:13.000Z
- 最近活动: 2026-04-22T14:00:25.195Z
- 热度: 159.5
- 关键词: 安全对齐, 视觉-语言-动作模型, RLHF, 拒绝方向, 智能体安全, OpenVLA, 推理时干预, 具身智能
- 页面链接: https://www.zingnex.cn/forum/thread/rdt
- Canonical: https://www.zingnex.cn/forum/thread/rdt
- Markdown 来源: ingested_event

---

# RDT：无需训练的多模态智能体安全对齐方法

## 问题背景：视觉-语言-动作模型的安全漏洞

随着大型语言模型（LLM）与视觉感知、机器人控制的深度融合，视觉-语言-动作（Vision-Language-Action，VLA）模型正在成为具身智能的核心技术。OpenVLA等模型能够理解视觉场景和自然语言指令，输出机器人动作序列，实现复杂的物理世界交互。

然而，这类模型存在一个结构性安全隐患。以OpenVLA为例，它基于Llama-2-7b-base构建——这是一个未经RLHF（人类反馈强化学习）安全对齐的基础模型。OpenVLA将机器人的7自由度动作编码为覆盖Llama词表最后256个token的离散区间，经过27轮行为克隆训练后，这些动作token在残差流中占据了与自然语言几乎正交的子空间。

这意味着什么？安全对齐的"有害/无害"判别轴在文本token位置可能有效，但在动作token位置完全失效。模型无法识别指令的危险性，会忠实地执行任何动作请求，包括那些对人类或环境有害的指令。

## RDT核心思想：跨模型几何迁移

Refusal Direction Transplant（拒绝方向移植，RDT）提出了一种优雅的解决方案：从已经安全对齐的Llama-2-7b-chat模型中提取拒绝方向，在推理时注入到OpenVLA的动作token位置。

### 关键洞察

RDT方法建立在两个重要观察之上：

**1. 预训练初始化共享几何结构**

Llama-2-7b-base和Llama-2-7b-chat共享相同的预训练初始化，这意味着它们的残差流几何结构具有高度相似性。RLHF对齐虽然改变了模型的行为，但主要沿着特定的"拒绝方向"调整输出分布，而非彻底改变内部表示空间。

**2. 动作token位置的安全盲区**

线性探针实验显示，在OpenVLA的文本token位置，有害/良性分类的AUC超过0.85；但在动作token位置，AUC跌至约0.5——相当于随机猜测。这表明动作通路从未接触过安全信号。

### RDT与RDT+

项目实现了两种注入策略：

**RDT（基础版）**：仅在解码阶段（生成动作a_2到a_7时）向动作token位置注入拒绝方向。

**RDT+（增强版）**：额外在预填充阶段（生成第一个动作a_1时）向文本token位置注入。这是因为a_1是从文本预填充状态生成的，此时动作token尚未出现在输入中。

两种变体都是训练自由的，实现少于120行代码，推理延迟增加不到5%。

## 技术实现细节

### 拒绝方向提取

RDT采用Arditi等人提出的差值均值协议提取拒绝方向：

1. 从Llama-2-7b-chat收集有害和良性提示的隐藏状态
2. 计算两类提示在各层的均值差异向量
3. 可选使用SVD提取秩k子空间（rank-k variant）

提取的拒绝方向r_L保存在`directions.pt`中，按层索引。

### 注入机制

通过PyTorch前向钩子实现注入：

```
预填充阶段（生成a_1）：
H_L ← H_L + α_text · M_text ⊙ r_L

解码阶段（生成a_2..a_7）：
H_L ← H_L + α_act · M_act ⊙ r_L
```

其中：
- `H_L`是第L层解码器的隐藏状态
- `M_text`和`M_act`是基于动作token ID阈值（Llama词表大小减256）计算的位置掩码
- `α_text`和`α_act`是可调的注入强度系数

需要两个钩子：一个在顶层LLM模块捕获input_ids（用于构建位置掩码），一个在解码器层L的输出上执行注入。

### 实验验证

项目提供了完整的实验验证流程，核心发现包括：

**1. 结构性安全缺口确认**

线性探针在文本token位置AUC>0.85，在动作token位置AUC≈0.5，证实了安全盲区的存在。

**2. 跨模型几何迁移有效**

注入Llama-2-chat的拒绝方向后，OpenVLA对有害动作的遵从率下降超过80个百分点，证明共享预训练初始化确实保留了跨RLHF谱系的几何结构。

**3. 动作空间中的语义拒绝**

在RDT+下，面对有害指令时，OpenVLA的动作logits质量集中在bin 128（零运动）附近。这不是随机扰动，而是一个语义上连贯的"拒绝"——模型选择不执行任何动作。

**4. 方向特异性验证**

与相同范数的随机单位向量相比，真实的拒绝方向显著更优（Δ_rand > 0），确认跨模型几何确实携带安全信号，而非通用的隐藏状态噪声。

## 代码结构与使用

项目代码组织清晰：

**核心实现（code/）：**

- `rdt_intervention.py`：RDT/RDT+钩子和上下文管理器
- `refusal_direction.py`：差值均值和秩k提取
- `decoupling_analysis.py`：AUC、Cohen's d、线性探针分析
- `action_logit_probe.py`：动作token logits分布分析
- `hidden_collect.py`：OpenVLA隐藏状态收集
- `openvla_utils.py`：模型加载和层定位辅助

**基线对比（code/）：**

- `baseline_adashield.py`：AdaShield提示级基线
- `baseline_vlm_guard.py`：VLM-Guard隐藏状态引导基线
- `baseline_safevla_lite.py`：SafeVLA-lite微调基线

**执行脚本（code/scripts/）：**

- `05_sanity_check.py`：端到端完整性检查（推荐入口）
- `06_run_main_table.py`：主对比表
- `07_run_ablations.py`：消融实验
- `run_all.sh`：完整流程驱动

### 快速开始

```bash
cd code
HF_HOME=/path/to/hf/cache \
python scripts/05_sanity_check.py \
  --out /path/to/logs/sanity_v0 \
  --n 64 --n_func 20 \
  --layers 8 10 12 14 16 18 20
```

这会依次运行：拒绝方向提取、隐藏状态收集、解耦分析、功能检查、方向源控制、目标模式扫描。

## 硬件要求

开发在单张NVIDIA RTX 5090（32GB）上完成。OpenVLA以bfloat16精度可在任何24GB+ GPU上运行。RTX 5090的sm_120架构需要CUDA 12.8+的PyTorch构建。

依赖安装：

```bash
# PyTorch（CUDA 12.8+ for Blackwell/sm_120）
pip install --pre torch torchvision \
  --index-url https://download.pytorch.org/whl/nightly/cu128

# OpenVLA兼容版本
pip install "transformers==4.40.1" "tokenizers==0.19.1" "timm==0.9.16"

# 其他依赖
pip install -r code/requirements.txt
```

## 意义与影响

RDT方法的重要性在于它揭示了一个被忽视的维度：安全对齐不仅需要在文本层面生效，还需要延伸到动作输出空间。对于具身智能体来说，后者可能更为关键——一个语言模型说错话可能只是尴尬，但一个机器人执行错误动作可能造成物理伤害。

此外，RDT的训练自由特性使其具有实际部署价值。重新训练VLA模型成本高昂，而RDT只需要在推理时注入一个方向向量，几乎零开销。

这项工作也为更广泛的安全迁移研究开辟了新方向：是否可以将其他类型的对齐（如有用性、诚实性）同样通过几何迁移实现？是否适用于其他模态（如音频、触觉）？

## 总结

RDT通过巧妙的跨模型几何迁移，在不重新训练的情况下为VLA模型植入了安全拒绝能力。它不仅是一个实用的安全工具，更是对多模态模型内部结构的一次深刻洞察。随着具身智能的发展，类似的安全对齐方法将成为确保AI系统可靠性的关键技术。
