Initial SHARM model card (training in progress, no weights yet)
Browse files
README.md
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: mit
|
| 3 |
+
model-index:
|
| 4 |
+
- name: hab3-social-rearrange-sharm
|
| 5 |
+
results: []
|
| 6 |
+
links:
|
| 7 |
+
- name: GitHub
|
| 8 |
+
url: https://github.com/bkubwimana/ivalab
|
| 9 |
+
tags:
|
| 10 |
+
- reinforcement-learning
|
| 11 |
+
- habitat-baselines
|
| 12 |
+
- habitat
|
| 13 |
+
- embodied-ai
|
| 14 |
+
- multi-agent
|
| 15 |
+
- social-rearrangement
|
| 16 |
+
- dd-ppo
|
| 17 |
+
- robotics
|
| 18 |
+
- shared-memory
|
| 19 |
+
- distributed-shared-memory
|
| 20 |
+
- recurrent-memory
|
| 21 |
+
- stigmergy
|
| 22 |
+
- communication
|
| 23 |
+
- physical-ai
|
| 24 |
+
- embodied-coordination
|
| 25 |
+
datasets:
|
| 26 |
+
- ai-habitat/hab3_episodes
|
| 27 |
+
---
|
| 28 |
+
|
| 29 |
+
# Habitat 3.0 Social Rearrangement β SHARM (Shared Hierarchical Recurrent Memory)
|
| 30 |
+
|
| 31 |
+
> **Status: training in progress.** This card describes the architecture and
|
| 32 |
+
> training plan. Trained weights will be uploaded once the Stage 3/4 runs
|
| 33 |
+
> complete and have been evaluated on the fixed validation split.
|
| 34 |
+
|
| 35 |
+
The **Pereason + Go + Fabric + SHARM** multi-agent coordination model.
|
| 36 |
+
Two embodied agents (a Spot robot arm and a humanoid) cooperate to
|
| 37 |
+
rearrange objects across HSSD home scenes.
|
| 38 |
+
|
| 39 |
+
SHARM extends the [Fabric model](https://huggingface.co/edge-inference/hab3-social-rearrange-fabric)
|
| 40 |
+
with a learned, persistent, *shared* memory layer. Where Fabric
|
| 41 |
+
exchanges *per-step perceptual messages* between agents, SHARM gives
|
| 42 |
+
each agent a typed slot bank that accumulates state across an episode
|
| 43 |
+
and is gossiped to the partner β directly inspired by stigmergic
|
| 44 |
+
coordination (ant pheromone trails) re-cast as a learned policy module.
|
| 45 |
+
|
| 46 |
+
This work is part of the thesis *"Scalable Multi-Agent Coordination
|
| 47 |
+
Using a Shared-Context Architecture for Embodied Robotics"* by
|
| 48 |
+
Benjamin Kubwimana. SHARM is the **learned** counterpart to the
|
| 49 |
+
hand-coded CollabTime DSM evaluated earlier in the thesis.
|
| 50 |
+
|
| 51 |
+
## What's in this repo
|
| 52 |
+
|
| 53 |
+
| File | Description |
|
| 54 |
+
|---|---|
|
| 55 |
+
| *(weights pending)* | Trained Stage 3 / Stage 4 SHARM checkpoints will land here once eval is complete |
|
| 56 |
+
|
| 57 |
+
## Architecture
|
| 58 |
+
|
| 59 |
+
```
|
| 60 |
+
RGB+lang ββ SmolVLM2 (frozen, 350M) β
|
| 61 |
+
depth βββββ DepthAnythingV2 (trained, 25M) ββ΄β fused tokens (B, S, 960)
|
| 62 |
+
β
|
| 63 |
+
Fabric: encode 128-d msg, broadcast,
|
| 64 |
+
cross-attend partner msg, gated residual
|
| 65 |
+
β
|
| 66 |
+
SHARM: write to typed slot bank,
|
| 67 |
+
self-attend over slots, encode gossip,
|
| 68 |
+
cross-attend partner gossip
|
| 69 |
+
β
|
| 70 |
+
Go transformer (PPO) ββ skill choice
|
| 71 |
+
```
|
| 72 |
+
|
| 73 |
+
### SHARM specifics
|
| 74 |
+
|
| 75 |
+
| Component | Detail |
|
| 76 |
+
|---|---|
|
| 77 |
+
| Slot bank | 8 typed slots: 4 perception + 2 task + 2 intent |
|
| 78 |
+
| Slot dim | 64 |
|
| 79 |
+
| Memory state | 520 floats per env, packed into Habitat's `recurrent_hidden_states` buffer |
|
| 80 |
+
| Write head | Sparse content-addressed: produces (key, content, gate) per slot, soft-routed by similarity to learned slot key embeddings |
|
| 81 |
+
| Decay | Stigmergic β multiplicative attenuation by slot age, half-life ~100 steps |
|
| 82 |
+
| Read | Self-attention over own slots + cross-attention over partner gossip |
|
| 83 |
+
| Gossip | `(K, slot_dim) β (K, msg_dim=128)` encoder, decoded by partner |
|
| 84 |
+
| Training | Truncated BPTT through Habitat's `rnn_build_seq_info` |
|
| 85 |
+
|
| 86 |
+
### Auxiliary losses (training-time only)
|
| 87 |
+
|
| 88 |
+
SHARM is bootstrapped with two non-PPO gradient signals; both annealed:
|
| 89 |
+
|
| 90 |
+
| Loss | What it pushes | Schedule |
|
| 91 |
+
|---|---|---|
|
| 92 |
+
| Reconstruction | Slots must encode partner's hand-coded task state (skill, holding, target) | weight 1.0 β 0.0 over first 50% of training |
|
| 93 |
+
| Future-latent | Slots must enable predicting own pooled fused features at horizon h=4 | weight 0.5 β 0.1, sustained |
|
| 94 |
+
|
| 95 |
+
The reconstruction loss serves as a teacher (so the write head learns
|
| 96 |
+
*what* to encode) and is released so the model can discover signals
|
| 97 |
+
beyond the human-designed schema.
|
| 98 |
+
|
| 99 |
+
## Training plan
|
| 100 |
+
|
| 101 |
+
| Stage | Frames | Purpose |
|
| 102 |
+
|---|---|---|
|
| 103 |
+
| 3a (sanity) | ~5M | Verify wiring, no crashes, recon loss converges |
|
| 104 |
+
| 3b (full) | ~55M | Headline Stage 3 result |
|
| 105 |
+
| 4 (ablation) | ~30M | Drop reconstruction aux, warm-start from Stage 3 best |
|
| 106 |
+
|
| 107 |
+
Frame budget is capped at 60M per run. Total compute budget ~90M
|
| 108 |
+
frames across all stages.
|
| 109 |
+
|
| 110 |
+
## Evaluation (planned)
|
| 111 |
+
|
| 112 |
+
All checkpoints will be evaluated on the same fixed 100-episode
|
| 113 |
+
validation split used for the thesis Table 4.1, with metrics:
|
| 114 |
+
|
| 115 |
+
- `pddl_success` (primary)
|
| 116 |
+
- `num_agents_collide`
|
| 117 |
+
- `episode_steps`
|
| 118 |
+
|
| 119 |
+
For comparison, prior work on this benchmark:
|
| 120 |
+
|
| 121 |
+
| Condition | Success | Collide | Source |
|
| 122 |
+
|---|---|---|---|
|
| 123 |
+
| Oracle baseline | 0.28 | 0.71 | Thesis Table 4.1 |
|
| 124 |
+
| Oracle + CollabTime (hand-coded DSM) | 0.51 | 0.48 | Thesis Table 4.1 |
|
| 125 |
+
| Trained RL baseline (ResNet-LSTM) | 0.15 | 0.47 | Thesis Table 4.1 |
|
| 126 |
+
| Trained RL + CollabTime | 0.37 | 0.32 | Thesis Table 4.1 |
|
| 127 |
+
| **Fabric** ([model](https://huggingface.co/edge-inference/hab3-social-rearrange-fabric)) | 0.43 | 0.16 | Thesis Table 4.1 |
|
| 128 |
+
| **SHARM Stage 3** | *(pending)* | *(pending)* | β |
|
| 129 |
+
| **SHARM Stage 4** | *(pending)* | *(pending)* | β |
|
| 130 |
+
|
| 131 |
+
## How to use (once weights land)
|
| 132 |
+
|
| 133 |
+
Weights will load via the same Habitat-baselines harness as the Fabric
|
| 134 |
+
release. See the [GitHub repository](https://github.com/bkubwimana/ivalab)
|
| 135 |
+
for the full training and evaluation pipeline.
|
| 136 |
+
|
| 137 |
+
```bash
|
| 138 |
+
git clone https://github.com/bkubwimana/ivalab.git
|
| 139 |
+
cd ivalab && git submodule update --init --recursive
|
| 140 |
+
git checkout feature/fabric-dsm # SHARM lives on this branch until merged
|
| 141 |
+
bash scripts/eval_trained.sh pereason_go_fabric_dsm
|
| 142 |
+
```
|
| 143 |
+
|
| 144 |
+
## Citation
|
| 145 |
+
|
| 146 |
+
```
|
| 147 |
+
@thesis{kubwimana_thesis_2026,
|
| 148 |
+
title = {Scalable Multi-Agent Coordination Using a Shared-Context
|
| 149 |
+
Architecture for Embodied Robotics},
|
| 150 |
+
author = {Kubwimana, Benjamin},
|
| 151 |
+
year = {2026}
|
| 152 |
+
}
|
| 153 |
+
```
|