Skip to content

Commit c81ea0c

Browse files
committed
docs: add full train set OL evaluation section and fix rare case paths
1 parent ec13257 commit c81ea0c

25 files changed

Lines changed: 267 additions & 35715 deletions

docs/algengine_usage.md

Lines changed: 44 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,39 @@ work_dirs/e2e_vadv2_50pct/
157157
└── navtest_failures.csv # rare navtest cases only
158158
```
159159

160+
#### Full Train Set Evaluation
161+
162+
Evaluate on the full training set (navtrain) to produce per-scenario metrics for [Rare Case Extraction](#rare-case-extraction). Because navtrain is large, the script splits it into chunks to avoid OOM.
163+
164+
```bash
165+
conda activate algengine
166+
cd projects/AlgEngine
167+
168+
# Chunked evaluation on navtrain (8 GPUs, 20 chunks)
169+
bash scripts/e2e_dist_eval_navtrain_chunked.sh \
170+
configs/worldengine/e2e_vadv2_50pct.py \
171+
work_dirs/e2e_vadv2_50pct/epoch.pth \
172+
8 \
173+
20
174+
```
175+
176+
**Arguments:**
177+
1. `<config>`: Configuration file path
178+
2. `<checkpoint>`: Model checkpoint to evaluate
179+
3. `<num_gpus>`: Number of GPUs to use
180+
4. `[num_chunks]` (optional, default 10): Number of chunks to split navtrain into
181+
182+
The script automatically:
183+
1. Splits `navtrain.yaml` into chunks under `configs/navsim_splits/navtrain_split/chunks/`
184+
2. Evaluates each chunk sequentially
185+
3. Merges all chunk CSVs into a single file
186+
187+
**Output:**
188+
```
189+
experiments/worldengine/e2e_vadv2_50pct/
190+
└── navtrain.csv # Full train set evaluation results
191+
```
192+
160193
#### Understanding Evaluation Metrics
161194

162195
Open-loop metrics CSV format:
@@ -204,16 +237,20 @@ bash scripts/run_ray_distributed_testing.sh \
204237

205238
Extract failure scenarios from evaluation results for targeted fine-tuning.
206239

240+
### Prerequisites
241+
242+
Before extracting rare cases, you **must** complete a [Full Train Set Evaluation](#full-train-set-evaluation) to generate `navtrain.csv` with per-scenario metrics. The rare case extraction script uses this CSV to identify failure scenarios.
243+
207244
### Basic Extraction
208245

209246
```bash
210247
conda activate algengine
211248
cd projects/AlgEngine
212249

213250
python scripts/rare_case_sampling_by_pdms.py \
214-
--pdm-result work_dirs/e2e_vadv2_50pct/navtest.csv \
215-
--base-split configs/navsim_splits/navtest_split/navtest.yaml \
216-
--output-dir configs/navsim_splits/navtest_split/e2e_vadv2_50pct_rare
251+
--pdm-result work_dirs/e2e_vadv2_50pct/navtrain.csv \
252+
--base-split configs/navsim_splits/navtrain_split/navtrain_50pct.yaml \
253+
--output-dir configs/navsim_splits/navtrain_split/e2e_vadv2_50pct_rare
217254
```
218255

219256
**Arguments:**
@@ -264,7 +301,7 @@ Fine-tune a trained model on rare cases using reinforcement learning.
264301

265302
### Prerequisites: Generating Rollouts with SimEngine
266303

267-
**Important:** Rollout data must be generated by SimEngine before fine-tuning. This involves:
304+
**Important:** Rare case extraction and Rollout data must be generated by SimEngine before fine-tuning. This involves:
268305

269306
1. **Run SimEngine Rollout** to generate trajectory data:
270307
```bash
@@ -343,9 +380,9 @@ data = dict(
343380
train=dict(
344381
ann_file='merged_infos_navformer/nuplan_openscene_navtrain.pkl',
345382
scenario_filter=[
346-
'configs/navsim_splits/navtrain_split/e2e_vadv2_50pct_ep8/navtrain_50pct_collision.yaml',
347-
'configs/navsim_splits/navtrain_split/e2e_vadv2_50pct_ep8/navtrain_50pct_off_road.yaml',
348-
'configs/navsim_splits/navtrain_split/e2e_vadv2_50pct_ep8/navtrain_50pct_ep_1pct.yaml',
383+
'configs/navsim_splits/navtrain_split/e2e_vadv2_50pct_rare/navtrain_50pct_collision.yaml',
384+
'configs/navsim_splits/navtrain_split/e2e_vadv2_50pct_rare/navtrain_50pct_off_road.yaml',
385+
'configs/navsim_splits/navtrain_split/e2e_vadv2_50pct_rare/navtrain_50pct_ep_1pct.yaml',
349386
]
350387
)
351388
)

docs/simengine_usage.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -274,8 +274,8 @@ Example:
274274
conda activate simengine
275275

276276
python projects/SimEngine/worldengine/utils/dataset_utils/nuplan/digitaltwin_nuplan_converter_navsim_filter.py \
277-
--navsim-filters $ALGENGINE_ROOT/data_loop/navtrain_split/e2e_hydramdp_ep8/navtrain_collision.yaml \
278-
$ALGENGINE_ROOT/data_loop/navtrain_split/e2e_hydramdp_ep8/navtrain_ep_1pct.yaml \
277+
--navsim-filters $ALGENGINE_ROOT/configs/navsim_splits/navtrain_split/e2e_vadv2_50pct_rare/navtrain_collision.yaml \
278+
$ALGENGINE_ROOT/configs/navsim_splits/navtrain_split/e2e_vadv2_50pct_rare/navtrain_ep_1pct.yaml \
279279
--out-dir data/sim_engine/scenarios/original/navtrain_hydramdp_failures \
280280
--num-processes 8
281281
```

0 commit comments

Comments
 (0)