Skip to content

Conversation

@kew6688
Copy link
Collaborator

@kew6688 kew6688 commented Nov 17, 2025

PR Summary

  • Refactored Habitat integration into the InternNav framework for improved readability and reusability.
    • Maintained a unified evaluation script for all InternNav benchmarks with the same config format and starter workflow.
    • Created a reusable Distributed Evaluator that encapsulates distribution logic for multiple benchmarks.
    • Added a Habitat Env wrapper that handles reset/step, episode assignment, and episode reloading inside the worker, significantly streamlining the evaluation pipeline.
  • Refactored VLNPE evaluation flow:
    • Added an option to bypass the agent server for models that cannot process batched observations, splitting evaluation per distributed rank.
    • Now VlnMultiEvaluator inherited from DistributedEvaluator, the same to Habitat. Ensured each Isaac Sim simulator and model instance is bound to a dedicated GPU, aligning with the Habitat evaluator’s design and enabling deployment on both Aliyun DLC and Slurm.
    • refactor new episode loader and generate all episodes under internutopia env. Keep the evaluator logic clean and align with Habitat evaluation workflow.

Distributed Eval Time

Using 16 nodes, each with 1× RTX 4090 GPU, 8 CPUs, and 60 GB RAM.

Model Variant GPUs Used Previous Runtime (Single 4090) Distributed Runtime (16×4090) Speedup
InternVLA-N1 Flash 1 GPU → 16 GPUs ~13.5 hours ~1 hour 13× faster
InternVLA-N1 PE` 1 GPU → 16 GPUs ~21 hours ~1.6 hour 13× faster

Performance after Refactor

  • Re-ran InternNav benchmarks (Internutopia VLNPE + Habitat VLNCE) three times post-refactor, matching previous performance.
Model Dataset/Benchmark NE OS SR SPL
InternVLA-N1 Habitat R2R 4.88 62.2 57.0 52.4
InternVLA-N1 Flash 4.17 67.2 59.8 53.9
InternVLA-N1 PE 4.87 55.7 50.0 42.9
RDP Flash 7.11 41.7 24.3 17.4
RDP PE 6.73 38.0 26.3 18.6

@kew6688 kew6688 changed the base branch from dev to main November 17, 2025 13:01
@kew6688 kew6688 changed the title [Feat] Habitat refactor & Distributed VLNPE Evaluator for internvla-n1 [Fix] Habitat refactor & Distributed VLNPE Evaluator for internvla-n1 Nov 17, 2025
@kew6688 kew6688 changed the title [Fix] Habitat refactor & Distributed VLNPE Evaluator for internvla-n1 [Fix] Habitat Refactor & Distributed VLNPE Evaluator for internvla-n1 Nov 17, 2025
@kew6688 kew6688 changed the base branch from main to dev November 19, 2025 12:55
@kew6688 kew6688 marked this pull request as ready for review November 21, 2025 05:33
@kew6688 kew6688 changed the title [Fix] Habitat Refactor & Distributed VLNPE Evaluator for internvla-n1 [Fix] Habitat Refactor & Distributed VLNPE Refactor Nov 21, 2025
@kew6688 kew6688 requested a review from yuqiang-yang November 21, 2025 10:58
from internnav.configs.evaluator.vln_default_config import get_config

evaluator_cfg = get_config(evaluator_cfg)
elif evaluator_cfg.eval_type == 'habitat_vln':
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这个是干什么的,habitat vln

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这个flag没有用到,我去掉

default='scripts/eval/configs/h1_rdp_cfg.py',
help='eval config file path, e.g. scripts/eval/configs/h1_cma_cfg.py',
)
parser.add_argument('--port', type=int, default=None)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

我看server里面写了默认的host和port,这里也写一下会不会好一些,方便跑

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

好的,已在AgentConfig里面加了默认的host和port

@kew6688 kew6688 requested a review from Tai-Wang November 25, 2025 11:07
def write_now_result_json(self):
# create log file
log_content = []
# log_content = []
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove unused codes



@Evaluator.register('habitat_vlln')
class HabitatVlnEvaluator(DistributedEvaluator):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

HabitatVLNEvaluator
Please also adjust the names in other places



@Evaluator.register('habitat_vln')
class HabitatVlnEvaluator(DistributedEvaluator):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adjust it as discussed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants