wikillm

Paper · 2024-11-18 · cs.RO

InstruGen: Automatic Instruction Generation for Vision-and-Language Navigation Via Large Multimodal Models

Samples trajectories from YouTube house-tour videos, labels rooms with CLIP and actions with an action model, then has ChatGPT-4V write R2R-style instructions. A consistency check and regex rules filter the text. A ViLBERT-like agent is pretrained on the pairs. Author-reported: R2R val-unseen SR 71.10 (Lily 70.00), RxR zero-shot SR 29.35. The linked repository holds only a README.

Multimodal language modelData augmentationVision-language pre-trainingHallucination mitigationvision-language-navigationsynthetic-datadata-augmentationlarge-multimodal-modelshallucination-mitigationpretraining

arXivPDFCodeMarkdown9 min read

AI-compiled by claude-haiku-5-5 on 2026-10-25, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.

In plain words

A robot or agent that follows spoken directions, such as "go through the kitchen and stop at the sink", learns from pairs of a route and a sentence that describes it. Writing those pairs by hand is expensive, and template-based generators produce stiff, repetitive sentences that often do not match the route.

InstruGen takes a different route. It starts from ordinary house-tour videos posted on YouTube, cuts them into a path through the rooms, and describes each room and each turn. A large multimodal model then writes a natural instruction for that path. Because such models sometimes invent objects or turns, the pipeline checks the written instruction against the path it was built from, regenerates it on mismatch, and cleans leftover artifacts with simple text rules.

The generated pairs are used to pretrain a navigation agent before it is fine-tuned on standard benchmarks. The authors report that this helps the agent in rooms it has not seen during training.

TL;DR

  • Generates route-and-instruction pairs from YouTube house-tour videos with a large multimodal model (ChatGPT-4V), instead of templates. §1
  • Adds a consistency check that extracts (room, action) pairs from the text and compares them with the route, plus regular-expression clean-up. §3.2
  • Pretrains a ViLBERT-like agent with three pretext tasks. §3.3
  • Author-reported: R2R val-unseen SR 71.10 and RxR zero-shot val-unseen SR 29.35, both with the best results in their tables. tab. 3 tab. 5
  • The linked repository contains only a README. Nothing can be re-run from it.

Problem

Vision-and-language navigation (VLN) agents generalize poorly to unseen buildings, which the authors attribute to too few realistic training scenes and too few high-quality route-instruction pairs §1. Earlier data methods either change visual features in simulators, use web image captions, or build instructions from fixed templates or rules §1 §2.2. The authors argue that templates do not align instructions with what the agent sees at each step §1. Using YouTube house tours as scenes avoids the cost of building simulated scenes but raises the problem that the video has no route or action labels, so these must be estimated §3.1.

Method

The pipeline has three stages: trajectory generation, instruction generation and trajectory judgment §3 fig. 2. Section numbers follow the compiled paper: §3.1 is Trajectory Generation, §3.2 Instruction Generation, §3.3 Trajectory Judgment.

§3.1 Trajectory generation.

  1. Take 3879 YouTube house-tour videos as indoor scenes §3.1. Of these, 3679 are used for training and 200 are held out §4.1.
  2. Sample trajectories in the style of Lily, where each path is a sequence of room nodes and transition nodes §3.1.
  3. Label each room node with its room type and salient objects, using CLIP. Transition nodes are not labelled §3.1.
  4. Estimate the action between consecutive room nodes with an action inverse model (Kumar et al., 2019), instead of annotating video by hand §3.1.

§3.2 Instruction generation.

  1. Build a prompt that gives the ChatGPT-4V model the sequence of (room image, room label, action) triplets, with a transition image between rooms and the last node marked "Stop" §3.2 fig. 2.
  2. State the requested granularity: concise, or detailed with environment descriptions and key objects. Tell the model not to describe anything beyond the given labels, and include one example of the output format §3.2 fig. 2.
  3. Consistency module: ask the model to extract (room, action) pairs from its own instruction by proximity §3.2 fig. 3. Compare these pairs with the route's labels. If they differ, regenerate §3.2.
  4. Regex module: remove stray special characters and fragments of the prompt, and fix wording with rules §3.2.
  5. The paper's ablation adds a manual review step for the best row only tab. 1.
Pseudocode
# Instruction generation with a consistency check  [§3.2] [fig. 2]
# Input:  triplets (room image, room label, action) for one route
# Output: instruction text

def generate_instruction(triplets, granularity):
    # Build the prompt from the objective, output format and triplets  [§3.2]
    prompt = build_prompt(triplets, granularity)
    # Regenerate until the extracted pairs match the route  [§3.2]
    # Retry limit and match rule: not stated
    while True:
        # Ask the LMM for a candidate instruction  [§3.2]
        draft = lmm(prompt)
        # Extract (room label, action) pairs by proximity  [§3.2] [fig. 3]
        extracted = lmm(extraction_prompt(draft))
        if matches(extracted, ground_truth(triplets)):
            break
    # Remove special characters and prompt fragments with regex rules  [§3.2]
    return regex_cleanup(draft)

§3.3 Trajectory judgment (pretraining). The model follows a ViLBERT-like design, adapted from Lily and Airbert §3.3. The visual input groups region features for each node, with a separator token per node eq. 1. The text input is a [CLS] token, the instruction tokens and a [SEP] token eq. 2. Three pretext tasks are used:

  • Masked language modeling and masked vision modeling: replace random words or image regions with [MASK] and predict them §3.3.
  • Path-instruction judgment: the generated route with its instruction is a positive example. The same instruction with the route's node order shuffled is a negative example §3.3.
  • Path ranking: for several candidate routes from the agent, the model scores how well each one matches the instruction, and the highest-scoring route is chosen §3.3.
Pseudocode
# Path-instruction judgment examples  [§3.3]
# Input:  one generated route and its instruction
# Output: two labelled examples

def make_judgment_examples(route, instruction):
    # The generated route is a positive example  [§3.3]
    positive = (route, instruction, 1)
    # Shuffling the node order gives a negative example  [§3.3]
    negative = (shuffle_nodes(route), instruction, 0)
    return [positive, negative]

Instruction granularity. R2R# is the R2R route set re-described with InstruGen. R2R* is a mixture of R2R# and the original R2R instructions. The mix ratio is not stated §4.2 tab. 2.

Hyperparameters

NameValueWhereNotes
YouTube videos3879 in total: 3679 train, 200 held out§3.1 §4.1Train = seen environments; held-out = unseen
Pretraining epochs50§4.1
Fine-tuning epochs, R2R and R2R#30§4.1
Fine-tuning epochs, R2R*50§4.1
Batch size4 in total, 1 per GPU§4.1
GPUs4 × NVIDIA 4090§4.1
Wall-clock timeAbout 1 week (pretraining), 3 days (R2R, R2R#), 5 days (R2R*)§4.1Author-reported
Vision-language modelChatGPT-4V§3.2Version, temperature and sampling not stated
Node labellerCLIP§3.1Model variant, label vocabulary and threshold not stated
Action estimatorAction inverse model (Kumar et al., 2019)§3.1Architecture and training not stated
Regeneration limitnot stated§3.2
Learning rate, optimizer, warm-upnot stated
Pretext-task loss weightsnot stated§3.3
Region feature extractornot stated§3.3
Number of generated pairsnot stated
Number of candidate routes for rankingnot stated§3.3
One-shot setup5 random environment sets, averaged§4.4Choice of environments not stated

Results

Author-reported throughout. Setup: R2R has 90 buildings and over 21,000 instructions; RxR is a multilingual extension §4.1. Each row below is transcribed from the compiled paper.

Verification ablation on R2R val-unseen tab. 1

#ConsistencyRegexManual reviewTLNE ↓SR ↑SPL ↑
1---10.153.4767.420.62
2✓--9.983.2769.320.64
3✓✓-9.763.1570.90.65
4✓✓✓9.803.1371.100.66

Instruction granularity, pretraining and fine-tuning sets on R2R tab. 2

Testing is on R2R in every row.

#Pretraining: fine-grainedPretraining: coarse-grainedFine-tuning setTLNE ↓SR ↑SPL ↑
1✓-R2R9.973.8863.970.59
2✓-R2R#10.123.4367.340.62
3✓-R2R*10.023.3568.130.61
4-✓R2R9.643.2869.930.64
5-✓R2R#9.773.1470.80.65
6-✓R2R*9.803.1371.100.66

Val-unseen columns for rows 1 to 6.

Comparison on R2R tab. 3

MethodVal-seen TLNE ↓SR ↑SPL ↑Val-unseen TLNE ↓SR ↑SPL ↑
Follower [9]10.403.6865.100.629.575.2052.360.49
Speaker [9]11.193.8060.690.5610.714.2554.660.49
Speaker-Follower [9]10.692.7274.220.7010.103.3267.900.63
ProbES [31]----9.504.0560.280.56
VLNbert [10]10.283.7370.200.669.604.1059.260.55
Airbert [11]10.593.2173.850.6910.033.2468.670.63
Lily [14]10.212.8979.310.7610.033.1970.000.65
InstruGen10.142.7881.230.789.803.1371.100.66

The paper does not say whether the baseline rows were re-run under this paper's setup or copied from earlier papers tab. 3.

One-shot: success rate with one training environment tab. 4

MethodVal seenVal unseen
VLNbert [10]45.7122.43
Airbert [11]47.8850.00
Lily [14]49.3150.86
InstruGen50.4351.25

Zero-shot on RxR val-unseen (model trained on R2R* only) tab. 5

MethodTLNE ↓SR ↑SPL ↑
DUET [34]--23.050.18
Lily [14]--27.200.20
InstruGen8.133.0229.350.22

Figures 5 and 6 compare pretraining curves with Lily on the same sampled data, and show navigation paths on real scenes. No numbers are read from the figures here fig. 5 fig. 6.

Paper vs code

The abstract links https://github.com/yanyu0526/InstruGen. I checked it on the default branch (main) at commit d57181d820444eb48d81eccc11dfc26c0d49ed14. The repository has one commit and only a README, which reads # InstruGen README.md. It has no LICENSE file, no generation or verification code, no prompts, no configs, no training or evaluation code, no model weights and no dataset.

So there are no code-versus-paper discrepancies to report, and nothing in the paper's method can be checked against code. The paper's claim that a dataset is contributed §5 has no matching release. The one-shot and zero-shot setups can only be checked against the paper text.

Pitfalls

  • Nothing to run from the release. The only released artifact is the README. Prompts appear only as figures fig. 2 fig. 3, so exact wording, output parsing and the regex rules must be rebuilt from descriptions.
  • Best row uses manual review. The 71.10 SR headline includes a manual review step (row 4 of tab. 1). The automatic-only row reaches 70.9 SR, which is the figure to compare when you cannot review by hand. How much manual review was done, and on which samples, is not stated.
  • The check cannot catch label errors. The consistency module compares the instruction with the route's own labels §3.2. Those labels come from CLIP and an estimated action model §3.1. An error in either passes through the check unless it breaks the instruction's logic. This follows from the method as written, not from a stated test.
  • Match rule and retry limit are unstated. The paper says a mismatch triggers regeneration. It does not say how pairs are compared (exact match, set match, or tolerance), how many retries are allowed, or what happens after the last retry §3.2. Cost per accepted pair therefore cannot be estimated.
  • Yield and size of the generated set are unstated. The number of instructions generated, the number accepted, and the number of instructions per route are not stated §3.1 §4.1. The 3879 videos are the only size given.
  • Hallucination reduction is measured indirectly. The paper does not report an instruction-level error rate. The evidence is the ablation tab. 1, one qualitative example fig. 4, and agent success rates.
  • Split naming is ambiguous. The 200 held-out videos are "unseen environments" in the pretraining data §4.1. The "Val-Unseen" columns are R2R's validation split. Do not treat them as the same split.
  • Model selection is not described. It is not stated whether checkpoints or settings were chosen on the R2R val-unseen split that the tables report.
  • Baselines may not be comparable. Table 3 mixes methods with different pretraining data and features. Whether the baseline numbers were copied or re-run is not stated tab. 3.
  • Variance is not reported. The one-shot result averages five random sets, with no spread tab. 4. Some margins are under one point (for example 51.25 against 50.86 for Lily). Treat them as indicative only.
  • Zero-shot baselines have gaps. DUET and Lily have no TL or NE values in the RxR table tab. 5. Whether they were run under the same protocol is not stated.
  • Training recipe is incomplete. Learning rate, optimizer, warm-up, loss weights between the three pretext tasks, and the region feature extractor are not stated. The batch of 4 is spread over 4 GPUs, one sample each §4.1.
  • Route format limits use. The paper says it samples discrete, R2R-like routes, which may not suit continuous navigation §5.
  • Figure and table numbers differ from the LaTeX source. The source numbers figures differently from the compiled PDF. This card uses the compiled numbers: tables 1 to 5, figures 1 to 6, equations 1 and 2.

Lineage

  • Builds on: Lily (Lin et al., ICCV 2023), which uses YouTube house tours with route-instruction pairs for pretraining §2.2. Lily's arXiv id is not given in this paper.
  • Builds on: the ViLBERT-style backbone, and the design of Airbert and Lily §3.3.
  • Compared against: Follower, Speaker and Speaker-Follower (Fried et al.), ProbES, VLNbert, Airbert, Lily tab. 3. For RxR zero-shot: DUET and Lily tab. 5.
  • Superseded by: not known from the content of this wiki.

Source and license

Adapted from “InstruGen: Automatic Instruction Generation for Vision-and-Language Navigation Via Large Multimodal Models” by Yu Yan, Rongtao Xu, Jiazhao Zhang, Peiyang Li, Xiaodan Liang, Jianqin Yin (arXiv:2411.11394), used under CC BY 4.0. Changes: condensed and restructured for implementation, with tables, equations and algorithms taken from the paper and its code, each cited to its source. Not affiliated with or endorsed by the authors. Code citations refer to https://github.com/yanyu0526/InstruGen at commit d57181d82044 (not stated (no LICENSE file in the repository)). Any quoted code is shown under that license.