CoolFace
Modelpublic

DorianAtSchool/qwen3vl-8b-robocasa-v3-active-observation-causal

sourceHugging Faceupdated 2mo agoView on Hugging Face
0likes11downloads
Model Card

qwen3vl-8b-robocasa-v3-active-observation-causal

LoRA adapter fine-tuning Qwen/Qwen3-VL-8B-Instruct for RoboCasa tool-calling agent behavior with causal-consistent active-observation caching.

Model Description

This is a follow-up to `qwen3vl-8b-robocasa-v3-active-observation` that fixes a training/eval consistency bug in how image observations were attached to training examples.

The bug: the original v3 training pipeline decided whether to attach the latest observation image to an example based on last_agent — effectively conditioning on which agent had most recently produced the acting example, which in practice let the model infer the correct next tool call from whether an image was present at all, rather than from genuine visual/task reasoning. This "cheat code" (image present → call a comm/physical tool; image absent → call get_image) is not available at inference time in the same closed-loop way it appeared during training, so it broke causal consistency between train and eval.

The fix: introduced a causal_single_cache mode that tracks an explicit active_observation_agent cache during example construction. The cached image owner only updates when a get_image call occurs, and resets to None whenever a different agent takes a non-communicate/non-task-complete action. Image attachment now depends only on this causally-prior state, not on which tool call comes next in the trajectory.

Training Details

Training Data

Same RoboCasa AgentSFT subset as the base v3 run — 46 kitchen tasks (see run_config.json for the full task list), tool-call SFT format.

Training Hyperparameters

  • —LoRA rank (r): 16
  • —LoRA alpha: 32
  • —LoRA dropout: 0.05
  • —Target modules: o_proj, q_proj, k_proj, v_proj, down_proj, gate_proj, up_proj
  • —Task type: CAUSAL_LM
  • —Attention implementation: FlashAttention 2
  • —Image resolution: 512
  • —Max sequence length: 8192
  • —Per-device batch size: 8
  • —Gradient accumulation: 1
  • —Epochs: 3
  • —Flags: --predict-acting-agent --train-get-image --causal-single-cache

Hardware

8x NVIDIA B200 (single node), ~2h30m wall clock.

Results

MetricValue
train_loss0.0365
eval_loss0.0283
train_runtime8822.9s (2h27m)
train_samples/sec15.79

W&B run: qwen3vl-8b-v3-active-observation-causal

Usage

python
from peft import PeftModel
from transformers import AutoModelForVision2Seq, AutoProcessor

base_model = AutoModelForVision2Seq.from_pretrained("Qwen/Qwen3-VL-8B-Instruct")
model = PeftModel.from_pretrained(base_model, "DorianAtSchool/qwen3vl-8b-robocasa-v3-active-observation-causal")
processor = AutoProcessor.from_pretrained("Qwen/Qwen3-VL-8B-Instruct")

Framework versions

  • —PEFT 0.19.1