vlatents-qwen25vl7b-stage2-repro-v2

One-line identity: Stage 2 reproduction of Monet-style visual-CoT training on Qwen/Qwen2.5-VL-7B-Instruct. Initialised from a Stage 1 SFT base; trained on the ohjoonhee/visual-cot-50k-poc dataset.

Recipe

  • Stage: 2 (post-SFT, alignment + emphasized-CE objective)
  • Base model: Qwen/Qwen2.5-VL-7B-Instruct
  • Init checkpoint: /data/joonhee/visual-latents/cluster_phase3/stage1_sft/checkpoint
  • Dataset: ohjoonhee/visual-cot-50k-poc (Monet-SFT-125K Visual_CoT subset, eval-200 excluded)
  • Hardware: 4× H100 80GB, DeepSpeed ZeRO-2 + CPU optim offload, bf16
  • latent_size: 8
  • alignment_weight: 2.0
  • emphasize_latent_weight: 2.0
  • ce_emphasize_factor: 4.0
  • alignment_layer: all_layers
  • use_attn_mask_4d: True
  • lr: 1e-05
  • weight_decay: 0.01
  • warmup_steps: 100
  • max_steps: 2000
  • grad_accum_steps: 16
  • max_pixels: 784000

Fidelity to the Monet paper

  1. Latent-only backprop — paper-faithful (Job C). emphasize_latent_weight uses a verbatim port of upstream compute_latents_only_loss: the alignment loss is computed in the CE forward (where ce_patch_vec is spliced into inputs_embeds) and backpropped ONLY through the latent embeddings, i.e. total = emphasize_latent_weight * compute_latents_only_loss(ce_patch_vec, alignment_weight*align) + ce (mirrors upstream src/trainer.py:152-224). The earlier plain-scalar-add approximation (see the *-repro-v1 repo) is NOT used here.
  2. attention_mask_4d is hand-rolled in mask_utils.build_monet_4d_attn with latent_cross_isolate=True. Verified equivalent on tested cases (see phase1_5b_attn/MASK_VALIDATION.md) but not byte-identical to upstream.
  3. Inline teacher forward (not offline-precomputed). Functionally equivalent if teacher checkpoint is the same; saves precompute storage.

This revision (step-1500)

Last logged training row: step=1690, ce_loss=0.7810, align_loss=0.4884

Notes

Job C: deviation #1 (latent-only backprop) is paper-faithful - verbatim upstream compute_latents_only_loss (see Fidelity section). Smoke-verified latent_only_connected=True (n_nonzero_grad=1). Training walltime-truncated near step 1690/2000; this is the step-1500 checkpoint. ce0.8 align0.46 stable throughout.

Other revisions: see the revisions dropdown on this page.

How to load

from transformers import AutoModelForVision2Seq, AutoProcessor
m = AutoModelForVision2Seq.from_pretrained(
    "ohjoonhee/vlatents-qwen25vl7b-stage2-repro-v2", revision="step-1500", torch_dtype="bfloat16")
p = AutoProcessor.from_pretrained("ohjoonhee/vlatents-qwen25vl7b-stage2-repro-v2", revision="step-1500")

Limitations

Research checkpoint, eval-only. Mid-training step (1500/2000). Not for production.


Card generated 2026-05-19 from training_log.jsonl + the run's training config.

Downloads last month
7
Safetensors
Model size
8B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for ohjoonhee/vlatents-qwen25vl7b-stage2-repro-v2

Finetuned
(1164)
this model