---
title: ideas
render: markmap
status: "无"
doc_type: note
tags: []
date: 20260917
---

# 优化方向

## 资源利用

### 如何减少计算量（剪枝/减少网络激活量）

#### MoE（网络宽度分解）

- 相关Research
    - DeMUSE
    主要是强调RGB、6DForce、State等Input通过不同的Expert进行感知
    - LingBot-Video
    以MoE的视频生成基础模型，用manipulation、navigation、egocentric等不同类型视频数据训练不同类型Expert，使基础模型有物理规律、动作、环境等各种Expert
    - ReMoE
    让MoE的选择偏好已经选择过的Expert，通过复用已经加载到内存的Expert减少加载消耗
    - HiMoE-VLA
    不同层使用不用的MoE，如ASMoE-HBMoE-Dense-HBMoE-ASMoE让ASMoE学习
    动作空间，HBMoE学习身体感知，Dense学习共享知识
    - Emergent Compositional Skills
    不是每层有一个Router选择Expert，而是输入时就有一个总Router决定了每层选择哪个Expert

- Idea

#### Early-Exit/Skip（网络深度分解）

- 相关Research
    - MoLe-VLA
    Early-Exit太草率了，深层网络会有高层语义和决策信息，应该Layer-Skipping跳过某些层而不是直接跳过所有深层网络
    - DySL-VLA
    Layer-Skipping程度可以针对任务复杂度调整，普通任务Skip更多Layer而精细任务Skip更少Layer

- goal
    - 结合 Contract 后，相对于 Baseline （比如 ElasticVLA ） 的 Early-exit/Skip 策略是否有提升（更好的 Router 策略）
        - contract 展现的截止时间不够，引导 router 倾向于激活更少的网络
    - Skip 策略加上 Temporal Router 约束后会不会减少加载各层网络的时间消耗，会不会导致质量损耗

- advantage
    - inference 前 router 方便任务调度（参考 ElasticVLA）
    - router 确认调度方案后提前加载需要激活的网络（参考 RT-MoE）
    - runtime state 让 router 根据系统资源合理剪枝
    - temporal router 节省显存/显存加载时间（仅加载部分网络且尽量使用已加载的网络）

#### Diffusion/Flow Matching Steps（推理次数分解）

- takeaway
在不同的去噪step用不同Expert以较少参数激活量，但是不同Step用同一MoE Model也可以在Model内部自行分配Expert

#### 蒸馏

- 不调整模型本身了，对简单的输入直接用蒸馏版小模型

### 如何减少Cache量（Token 压缩）

- idea
    - 保留精度和趋势的残差
    对帧序列做逆向残差，保留最新帧，早期的帧只保留残差，当前位置是精确的，早期位置模糊但知道大体趋势
    - 残差编码器
    当前残差做法都是Image切成Token然后去掉不变的Token，如果是Image编码成Feature然后保留不变的Feature呢

### 如何进行并行优化

#### 任务调度

#### 分级存储

- idea
    - Router提早预测则Expert/Skip则可以提前加载对应网络

#### 提早预测

##### Router

- idea
    - Router在模型推理前预先得到Runtime State及预计显存和时间消耗
    - Router可以在Input时就确定Expert/Skip

##### Inference

- idea
    - 给Router训练加上死线损失，保证能在Dealine前完成任务，
    Benchmark/Loss可以是Timeout率/Dealine时刻精度等

## 质量维持

### 合适的Expert分类

#### 主流分类
- Task-level
按任务分类
- Skill-level
按技能类型分类
- Embodiment-level
按身体类型分类
- Modality-level
按模态分类
- Fault-level
错误处理专家

### Router

#### 如何路由合适的Expert

#### 如何决定合适的Early-exit/Skip时机

- idea
    - 在相邻时间步t的temporal routing应该是相似的（input和skill都相似）

#### idea
- Router提前
ElasticVLA通过提前Router让Early-exit可控，现在提前Router让Skip和MoE可控呢，
在Input时就提前确定了每个Layer是否需要激活以及每个Layer需要激活哪些Expert
- Router精度
Router的Contract可以有耗时、显存、每个layer的质量、
每个Expert的质量等，得到一个这样的Contract以保证Router精度
    - 通过Model Info获取不同情况下的耗时、显存等
    - 训练一个Predictor预测不同Layer的质量、每个Expert的质量等

# Runtime-aware Dynamic Inference工作整合

## Backbone

## Idea

### Runtime-aware Contract

- background
    - Input-Only 的 Routing 存在时效性问题

- idea
    - 给出了一个包含当前运行时的通用 Contract 供 Router 参考
    $
    Contract = (Input:\ Vision\ |\ Instruction\ |\ Sensor, Runtime\ State:\ GPU\ Memory\ |\ Time\ Cost, Dealine)
    $
    $
    Router = f(Input, Runtime State, Deadline)
    $

### Router

- idea
    - temporal router
    相邻时间的输入和输出都应该是相似的，因此需要skip和expert策略也是相似的

- takeaways
    - Router 应该参数化学习还是直接计算最优路径
    - 有 Expert/Layer/Step 三个层级的 Routing ，选择哪个切入


# 杂乱

## 实时性

### 通用的 Early-Exit

ElasticVLA 和 EcoVLA 的不足：

- **ElasticVLA**： 能够平衡 Early-Exit 和 Schedule 但是需要经过训练，通用性不足；
- **EcoVLA**： 通过 DAG 划分，能通用处理各种 VLA 的细粒度推理调度过程，但是没有针对性能优化的早停机制，而是在截止时间内最大化层数且超时立即截断；

也许通过 DAG 划分得到通用的资源占用计算，然后仅通过 Vision + Instruction （或者额外 + history） 得到解空间复杂度。总的得到一个 Constract ，从而判断早停，但是需要证明， VLA 的早停机制可以仅由状态和输入确定，而与模型无关；

### OpenVLA 上的 Speculative Decoding

提前让 OpenVLA 适应带噪输入，然后通过投机解码，让小型模型进行预测，大型模型对小模型的输出分批进行 Check 。可惜已经有这方面的 paper 了，但是可以想到一些优化：

#### 快慢系统

使用小型模型快速生成，通过 Constract 判定是否需要大型模型介入修正；

#### 闭环预测

在不需要精细度的动作中，大型模型仅负责动作规划不处理外界干扰，小型模型对大型模型的动作误差进行修正保证动作轨迹符合规划。

### Early-Exit 的输入侧复杂度评估

暂时想到如下几个方面：

- **精细度**：一个 benchmark ，例如临近物体接触时，精细度要求较高；
- **反应力**：一个 benchmark ，例如存在 World 变化时、进行高失误率动作时；
- **速度**”：一个 benchmark ，例如无接触的大幅度运动时，可以损失质量加快速度；

## MoE

- 型号泛化
针对不同的实机乃至不同的自由度，都要进行一套完整的训练，
通过 MoE 也许能解构出一个专门的 Expert 用于参数控制
