Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# 方法学原语 · 设计与真实安全相关的闭环指标

> 这一动作不再追问"离线 L2 与真实事故率有多相关"——它知道答案是"几乎无关"。取而代之,它从真实车队的事故率 / 脱离率倒推闭环指标:把碰撞、近碰撞、舒适度、规则违规、进展度按事故贡献加权融合,让离线评测对决策真正有判别力。

## 做什么

设真实部署里观察到的事件率为 $\{p_k\}_{k=1..K}$(碰撞、近碰撞、急刹、违章、舒适脱离、行程未完成)。给每类事件分配一个安全权重 $w_k$,使得加权和近似拟合年化事故率或保险出险率。再在闭环仿真器上跑 $N$ 个种子,每条轨迹记录各事件计数 $n_k$,最终复合指标

$$\text{Score}(\pi) = -\sum_k w_k\,\mathbb{E}_{\tau \sim \pi}[n_k(\tau)] + w_\text{progress}\,\mathbb{E}_{\tau}[\text{progress}(\tau)]$$

权重 $w_k$ 通过把"指标"与"实车事故"做相关回归调优。指标设计成可分解:每个分项可独立报、可定位失败类目,避免单一标量掩盖结构性问题。

## 为什么这是一个研究动作

- **正面回应 [`problem:offline_metric_does_not_predict_closed_loop_performance`](problem_offline_metric_does_not_predict_closed_loop_performance.md)**:从根源把"代理指标"换成与现实风险高相关的"闭环复合指标"。
- **沿"单一标量 → 可分解多分量"维度移动**:单一 L2 是黑盒,复合指标是白盒——能告诉你"在哪一类场景输给基线"。
- **把仿真器与现实绑定为反馈回路**:实车数据用于校准 $w_k$,仿真用于优化 $\pi$,两者形成"校准 - 优化 - 再校准"闭环。
- **支撑模型选择与发布门**:迭代版本以闭环指标淘汰高度不一致的离线代理,发布门也按闭环指标设阈值。

## 在哪些工作里被重复使用

| 工作 | 闭环指标 | 校准来源 |
|---|---|---|
| [nuPlan](../paper_nuplan.md) | progress + collision + comfort + rule | 人类驾驶基线 |
| [NAVSIM](../paper_navsim.md) | non-reactive closed-loop with safety subscores | nuScenes 验证集 |
| [CARLA Leaderboard 2.0](../paper_carla_lb2.md) | route completion + infraction penalties | 仿真器内 |
| [Bench2Drive](../paper_bench2drive.md) | 多维场景分项 + 综合分 | 驾驶专家轨迹 |
| Waymo Driver scorecard | 内部公开的复合指标 | 真实车队事故率 |
| Tesla AI Day metrics | disengagement + intervention rate | 影子模式 |

## 替代选择 / 同义动作

- **单一进展度 (progress / route completion)**:简单但鼓励冒险驾驶,惩罚保守策略。
- **单一碰撞率**:与事故对齐但奖励"开得慢但不撞"的策略,进展度被牺牲。
- **人类相似度 (L2 / displacement)**:与"驾驶质量"相关性低,已被多项独立研究证伪。
- **跟踪闭环—离线指标相关性 (本卡之姊妹动作)**:参见 [跟踪离线与闭环指标相关性以筛选模型](move_track_metric_correlation_offline_vs_closed_loop_to_select_models.md) ——本卡设计指标,那张卡用指标筛模型。

## 容易踩的坑

- **权重选择仍是经验**:$w_k$ 与真实事故率的回归只在有限样本上做,新车型 / 新地区可能让权重失效。
- **仿真器保真度是天花板**:闭环指标再好,仿真里他车行为不真实,仍可能在真实部署中失效;需要 [`problem:closed_loop_simulation_fidelity_gap`](problem_closed_loop_simulation_fidelity_gap.md) 的并行投入。
- **指标可被针对性优化**:策略学到的是"通过该指标",而非"安全驾驶";需要持续刷新场景库 + 红队对抗,参见 [`problem:reward_hacking_in_learned_objectives`](problem_reward_hacking_in_learned_objectives.md)。
- **多分量权衡不可对单一目标线性化**:碰撞极低但进展极慢的策略仍是发布失败;要分项设硬阈值,不能只看复合分。

## 与之相关的洞察 / 范式

它兑现 [闭环评估是规划的唯一真值](insight_closed_loop_evaluation_is_the_only_ground_truth_for_planners.md):闭环不仅是评估方式,复合指标设计本身是研究对象。它是 [`paradigm:closed_loop_data_engine_centric_development`](paradigm_closed_loop_data_engine_centric_development.md) 的度量层基础。它和 [跟踪离线与闭环指标相关性以筛选模型](move_track_metric_correlation_offline_vs_closed_loop_to_select_models.md) 构成 "指标设计 → 指标使用" 的两步流程。它的失败模式由 [`problem:rare_safety_critical_events_dominate_real_risk_but_are_under_represented`](problem_rare_safety_critical_events_dominate_real_risk_but_are_under_represented.md) 给出:闭环指标也只能度量已知事件类目,未知盲区仍逃逸。
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# 方法学原语 · 先广采预训练数据再按质量过滤

> 这一动作分两步:第一步从公开 web、合成、众包等所有可获得来源批量抓取尽量多样化的数据;第二步用一个或多个质量评分器(分类器、嵌入距离、相对模型 perplexity)做粗到细过滤,把"低信号 / 高噪声 / 重复 / 不安全"样本剔除。"广 + 滤"被反复证明优于"窄 + 全收"。

## 做什么

设候选数据集合 $\mathcal{D}_\text{raw} = \bigcup_s \mathcal{D}_s$,来自多个 source $s$。第一步把 $|\mathcal{D}_\text{raw}|$ 推到尽量大(百亿样本 / TB 级)。第二步为每个样本 $x$ 计算质量分数 $q(x)$:

$$q(x) = w_1\,\text{simhash\_uniqueness}(x) + w_2\,\text{lang\_id}(x) + w_3\,\text{classifier}(x) + w_4\,\text{embedding\_density}(x) + \dots$$

按 $q(x)$ 阈值或分位数截断,得到 $\mathcal{D}_\text{filtered}$。规模通常缩到 $\mathcal{D}_\text{raw}$ 的 5–30%。最后再做 deduplication、安全审查、格式归一。"过滤" 不是减少数据,而是把数据信噪比拉高。

## 为什么这是一个研究动作

- **沿"全量训练 → 高质量子集训练"维度移动**:经验上 GPT-3 / LLaMA / Chinchilla 都证明在固定算力下,filter 后的小数据集 outperform 全量。
- **解耦"覆盖率"与"质量"**:广采保证覆盖率(罕见知识、多语言、长尾领域),过滤保证质量(无低质重复、无格式垃圾)。
- **质量评分器可学习且可迭代**:评分器本身可以用上一轮预训练模型自评,形成"模型→评分→数据→模型"的滚动改进。
- **是 scaling law 能继续往上推的前提**:超过某数据规模后噪声开始主导,没有过滤就撞数据 ceiling。

## 在哪些工作里被重复使用

| 工作 | raw 来源 | 过滤策略 |
|---|---|---|
| [GPT-3](../paper_gpt3.md) | Common Crawl + 书籍 + Wikipedia | 启发式 + 分类器 reweight |
| [LLaMA](../paper_llama.md) | CC + GitHub + arXiv | n-gram dedup + perplexity |
| Chinchilla | 同 LLaMA 类源 | quality classifier |
| [DINOv3](../paper_2508.10104_dinov3.md) | LVD 1.7B + web | 嵌入聚类 + 多样性采样 |
| [Cosmos](../paper_cosmos.md) | 海量驾驶视频 | 质量分类 + 场景多样性 |
| FineWeb / FineWeb-Edu | CC 大规模过滤 | 语言模型质量评分 |

## 替代选择 / 同义动作

- **窄域专业数据全量训练**:完全依赖一类高质量源(人工标注、专业语料);适合小模型 fine-tune,规模受限。
- **课程学习 (curriculum)**:先训简单后训复杂样本,不丢弃数据但调顺序;与过滤可叠加。
- **active learning + retrain**:交替训练 / 挑样本,让模型告诉你下一步要什么数据;适合 fine-tune 但 pretrain 上昂贵。
- **synthetic-only pretraining**:完全用模型生成数据训练;目前规模受限,难超越混合策略。

## 容易踩的坑

- **过滤过度让分布偏移**:质量分类器自身有偏(偏好正式英文 / 标准格式),过滤后语言 / 文化 / 领域多样性下降,下游 fine-tune 时反而不如全量。
- **dedup 粒度选错**:完全相同句子的 dedup 太严会丢真实重复信号("hello world"),太松又留下大量近重复;常用 MinHash + 8-gram。
- **质量评分器循环依赖**:用前代模型给数据打分,新模型学到的是"前代模型偏好",长期下来同质化严重;需要外部 anchor (人类标注子集) 作锚。
- **隐私 / 法务**:广采常包含个人识别信息与版权数据;过滤管线必须叠 PII detection 与版权过滤。

## 与之相关的洞察 / 范式

它兑现 [扩规模数据解锁不在小模型中存在的能力](insight_scaling_data_unlocks_capabilities_not_present_in_smaller_models.md) 与 [Scaling laws 预测能力涌现](insight_scaling_laws_predict_capability_emergence.md):这两条洞察的前提是数据质量随规模不退化,"广采 + 过滤"正是工程上让这一前提成立的手段。它支撑 [基础模型轴](paradigm_foundation_model_axis.md) 与 [自监督扩规模数据](paradigm_scaling_data_with_self_supervision.md)。它和 [`paradigm:closed_loop_data_engine_centric_development`](paradigm_closed_loop_data_engine_centric_development.md) 互补——闭环数据引擎处理"在线增量",过滤管线处理"离线存量"。在驾驶领域它是 [`paradigm:simulator_first_synthetic_data_centric`](paradigm_simulator_first_synthetic_data_centric.md) 的真实数据补充:合成与采集都需要相同的质量门。
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# 方法学原语 · 用语言锚点学开放词表分类器

> 这一动作把"分类器"从一个固定 $C$ 路 softmax 替换成"一组类别文字 → 文本 embedding → 与视觉 embedding 内积取最大"。新增类别不再需要改架构、不需要重新训练,只需把新类别名喂进文本编码器。这是 CLIP 之后所有开放词表识别 / 检测 / 分割的统一原语。

## 做什么

让视觉 encoder $f_\text{img}$ 输出图像 (或区域) embedding $v \in \mathbb{R}^d$,文本 encoder $f_\text{txt}$ 输出每个类别 prompt 的 embedding $t_c = f_\text{txt}(\text{prompt}_c) \in \mathbb{R}^d$。分类等价于在 prompt embedding 集合上做最近邻:

$$\hat c = \arg\max_c\ \frac{v \cdot t_c}{\|v\|\|t_c\|}$$

训练时图像-文本对通过 contrastive 损失对齐:

$$\mathcal{L} = -\log\frac{\exp(v_i \cdot t_i / \tau)}{\sum_j \exp(v_i \cdot t_j / \tau)}$$

推理时只要拿到任意新类别的文字描述,就能立刻产出分类器;类别表是 "运行时参数" 而非 "训练时常量"。

## 为什么这是一个研究动作

- **沿"封闭词表 → 开放词表"维度移动**:固定类别 head 把 vocabulary 编码进权重;语言锚点把它外化为文字 prompt,扩展类别零成本。
- **跨任务通用**:同一原语扩展到检测 (GLIP / Detic)、分割 (OpenSeg / SAM)、3D 占用 (OpenOccupancy) 与 VLM 推理 (CLIP head 接 LLM)。
- **零样本能力源自规模**:在十亿级图文对上预训练后,未见过的稀有类别也能用文字描述召回。
- **天然支持语义层次组合**:类别 prompt 可以是 "穿黄背心的工人骑电动车",分类器自动复用 CLIP 学到的属性组合能力。

## 在哪些工作里被重复使用

| 工作 | 模态 / 任务 | 文本侧 |
|---|---|---|
| [CLIP](../paper_clip.md) | 图像分类 | 类别 prompt |
| GLIP / GroundingDINO | 开放词表检测 | phrase prompt |
| Detic | 开放词表检测 | class name + LVIS |
| OpenSeg / Mask2Former-CLIP | 开放词表分割 | 类别 prompt |
| [LLaVA](../paper_llava.md) | VLM 多模态 | 用户问句 |
| [DriveVLM](../paper_2402.12289_drivevlm.md) | 驾驶语义理解 | scene caption |
| OpenOccupancy / [SurroundOcc](../paper_surroundocc.md) (extended) | 3D 开放占用 | 类别 prompt |

## 替代选择 / 同义动作

- **固定 $C$ 路 softmax head**:经典监督方法,类别数定死后训练;准确度高,但每加新类要重训。
- **prototype-based few-shot**:每类用少量示例算 prototype embedding,新类只需提供示例;省去文本侧。
- **propeller / hierarchical class head**:把类别组织成树,按层级 softmax;扩展性更好,但需要人工维护层级。
- **语言模型直接做分类**:把图像作为 token 喂进 LLM 让它生成类别名;表达力强但延迟高。

## 容易踩的坑

- **prompt 工程敏感**:同一类别用 "car"、"a photo of a car"、"a sedan in traffic" 得分差别可达 5–10%;通常做 prompt ensembling。
- **零样本召回与精度难两全**:把"看似可能"的物体都召回会带来大量误检;需要 OOD 检测或下游 verifier。
- **小目标与极端形状鲁棒性差**:文本侧对"翻倒的椅子"、"被风吹起的塑料布"几乎无 prior 可学;需要合成数据补全。
- **跨数据集语义对齐**:同一物体在 nuScenes / Waymo / Argoverse 中类别名不一致,语言锚点不会自动统一。

## 与之相关的洞察 / 范式

它实现 [基础特征无需微调即可迁移](insight_foundation_features_transfer_without_finetune.md) 在分类层的具体兑现:foundation model 把表征学好,分类靠语言锚定。它和 [`problem:long_tail_object_categories_in_open_world`](problem_long_tail_object_categories_in_open_world.md) 互为表里——长尾物体识别的最现实路径就是放弃封闭词表。它支撑 [VLA 范式](paradigm_vla_paradigm.md) 与 [基础模型零样本驾驶代理](paradigm_foundation_model_zero_shot_driving_agent.md):让模型在新地区 / 新天气 / 新交通参与者上零样本起跑。它和 [Token 化抹平模态差距](insight_tokenization_collapses_modality_gap.md) 协同——文本侧的类别 prompt 与图像侧的 patch token 在同一 embedding 空间对话。
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# 悬而未决 · 把语言 token 接地到连续物理世界

> 语言模型在离散符号空间训练,但要驱动机械臂或车辆就必须输出有度量含义的连续量;离散 token 与连续物理之间存在天然的语义到物理的接地鸿沟。如何系统性地学到这种接地,而不是依赖手工动作 token 表,是 VLA 与具身智能的根本未解问题。

## 现象

LLM 输出的是字符 / 子词 / 学习 token,每个 token 对应词表中的一个离散 ID。VLA 一类工作 ([RT-2](paper_rt2.md)、[OpenVLA](paper_openvla.md)、[PaLM-E](paper_palme.md)) 让模型在同一序列里既生成自然语言、也生成动作;动作通常被手工离散化成 256 个 bin,每个 bin 对应一个动作 token。这套方案在 manipulator 上得到 60–80% 任务成功率,但在驾驶场景里出现明显瓶颈:256 个 bin 对应的角度 / 加速度精度是 $\approx 0.7°$ / 0.4 m/s²,已经接近舒适度下限;增加 bin 数虽可提高分辨率,但 token 数线性增长导致延迟与训练数据稀疏化。更深的问题是:同一动作 token 在不同状态下含义不同 (低速时的 "+10 速度 bin" 与高速时的 "+10 速度 bin" 物理含义完全不同),模型必须额外学习这种条件化映射。Lingo-2、EMMA、Senna 都在驾驶 VLA 上观察到 "语言看起来对,动作却轻微违反动力学" 的失败模式。

## 为什么难

- **离散 token 与连续控制度量不对齐**:词表 ID 无序号;动作离散化引入量化误差,且不同 bin 间的物理距离不等。
- **物理一致性无内嵌**:LLM 训练目标是似然,从未被惩罚"违反动力学";约束只能在生成后过滤,难以在 representation 内部表达。
- **接地链路单向**:语言模型生成"前方有行人"无法被自动反向核验回视觉特征,[`problem:hallucinated_action_from_vision_language_model_in_safety_critical_loop`](problem_hallucinated_action_from_vision_language_model_in_safety_critical_loop.md) 给出形式化。
- **跨任务接地不一致**:同样动作 token 在 manipulator 上代表 6-DoF 末端速度,在驾驶上代表 longitudinal + lateral 控制,跨任务迁移要重新学习接地。
- **奖励与监督信号稀疏**:动作正确与否要在物理世界 (或仿真) 闭环里才能判断;这与 LLM 训练所需的 token 级监督节奏不匹配。
- **可证安全难以叠加**:用 shield / constraint 对连续动作做限制可以,但对生成连续动作的离散 token 模型做形式化验证几乎无方法。

## 已有的半解

| 半解 | 怎样接近 | 它没解决什么 |
|---|---|---|
| 手工动作 token 表 ([`move:replace_explicit_action_head_with_tokenized_action_sequence`](move_replace_explicit_action_head_with_tokenized_action_sequence.md)) | 把动作离散到固定 bin | 量化误差,bin 数与精度二难 |
| 多尺度 / 残差动作 token | 用粗 bin + 残差 bin 提精度 | 训练数据稀疏 |
| 元动作 + 经典 planner ([Senna](paper_senna.md), [DriveVLM](paper_2402.12289_drivevlm.md)) | VLM 出元动作,几何由 MPC 实例化 | 元动作仍是离散,与物理约束不直接交互 |
| Diffusion Policy 路线 ([Diffusion Policy](paper_diffusion_policy_chi2023.md)) | 用扩散模型直接生成连续动作 | 与语言侧的协同表征不统一 |
| VLA + 连续 head (RT-X 改造) | 在 LLM 输出层接一个 MLP 回归连续动作 | 与 token 训练目标冲突 |
| 物理可微仿真闭环 ([`paradigm:simulator_first_synthetic_data_centric`](paradigm_simulator_first_synthetic_data_centric.md)) | 用仿真给出梯度信号 | 仿真保真度是上界 |
| 多模态预训练对齐 ([RT-2](paper_rt2.md), [OpenVLA](paper_openvla.md), [PaLM-E](paper_palme.md)) | 用图文 + 动作三元组共同训 | 接地仍是统计相关而非可证一致 |

## 真正未解的部分

1. **离散 token 与连续物理量的双向可微桥接**:当前所有 VLA 都是"离散 token → look-up table → 连续量"的单向映射;需要一个可微、可逆、可对接 LLM 训练目标的桥接层,让物理约束可以反向影响 token 表征。
2. **接地的可证性**:每个 "看到 X"、"做 Y" 都应可回溯到视觉 / 物理证据,并被独立 verifier 接受;当前 cross-attention 可视化不构成可证。
3. **跨任务跨实体的统一接地表征**:同一个 "向左转 30°" token 在自行车、卡车、机器人上对应不同物理操作;需要一种参数化、可由实体特征调制的接地 protocol,目前仍是研究空白。

## 与之相关的研究路径

它的直接对策路径是 [`move:replace_explicit_action_head_with_tokenized_action_sequence`](move_replace_explicit_action_head_with_tokenized_action_sequence.md):动作 token 化是当前最可行的接地方式,本卡问题是它的形式化短板。它和 [`paradigm:vla_paradigm`](paradigm_vla_paradigm.md) 共生——VLA 范式本身预设语言可被接地,本问题是这一前提的工程现实。它和 [`problem:hallucinated_action_from_vision_language_model_in_safety_critical_loop`](problem_hallucinated_action_from_vision_language_model_in_safety_critical_loop.md) 互为表里:接地失败具现为幻觉动作。它和 [`insight:tokenization_collapses_modality_gap`](insight_tokenization_collapses_modality_gap.md) 提供互补视角:token 化抹平模态差距,但留下"离散 / 连续"的最后一道差距未消。在论文链上 [RT-2](paper_rt2.md)、[OpenVLA](paper_openvla.md)、[PaLM-E](paper_palme.md) 是 VLA 主线,[Diffusion Policy](paper_diffusion_policy_chi2023.md) 是连续侧对照;[`paradigm:foundation_model_zero_shot_driving_agent`](paradigm_foundation_model_zero_shot_driving_agent.md) 是把这一接地推到驾驶具身的最终落地路径。
Loading
Loading