Training and Evaluation Guide

December 25, 2025 ยท View on GitHub

Model Variants

ModelDescriptionBase Models
DiffusionVL-QwenVLQwen2.5-VL + BD3-LMQwen2.5-VL-7B-Instruct
DiffusionVL-QwenSigLIP + Qwen2.5 + BD3-LMSigLIP2 + Qwen2.5-7B-Instruct
LLaVA-LLaDA-BD3LMSigLIP + LLaDA + BD3-LMSigLIP2 + LLaDA-8B-Instruct
LLaVA-QwenSigLIP + Qwen2.5 (AR baseline)SigLIP2 + Qwen2.5-7B-Instruct

Training

Data Format

[
    {
        "id": "unique_id",
        "image": "path/to/image.jpg",
        "conversations": [
            {"from": "human", "value": "<image>\nDescribe this image."},
            {"from": "gpt", "value": "This image shows..."}
        ]
    }
]

DiffusionVL-QwenVL

Uses Qwen2.5-VL's built-in vision tower with BD3-LM.

cd train
# Edit script: PRETRAINED_CHECKPOINT, DATA_PATH, IMAGE_FOLDER, OUTPUT_DIR
bash scripts/diffusionvl_qwenvl_finetune.sh 1 8 my_run_name
# Args: num_nodes, gpus_per_node, run_name, [block_size]

DiffusionVL-Qwen

Uses external SigLIP + Qwen LLM with BD3-LM.

cd train
# Stage 1: Pretrain projector
bash scripts/llava_pretrain.sh 1 8 pretrain_run

# Stage 2: Finetune
# Edit: LLM_VERSION, VISION_MODEL_VERSION, PRETRAIN_MM_ADAPTER, DATA_PATH, IMAGE_FOLDER
bash scripts/diffusionvl_qwen_finetune.sh 1 8 my_run_name

LLaVA-LLaDA-BD3LM

Uses SigLIP + LLaDA with BD3-LM.

cd train
# Stage 1: Pretrain projector
bash scripts/llada_pretrain.sh 1 8 pretrain_run

# Stage 2: Finetune
bash scripts/llava_llada_bd3lm_finetune.sh 1 8 my_run_name

LLaVA-Qwen (AR Baseline)

Standard autoregressive training.

cd train
bash scripts/llava_pretrain.sh 1 8 pretrain_run
bash scripts/llava_qwen_finetune.sh 1 8 my_run_name

Key Training Arguments

ArgumentDescription
--bd3lm_block_sizeBlock size for BD3-LM (default: 8)
--force_model_typeModel architecture type

Evaluation

Based on lmms-eval.

  • Download Pre-trained Models:
ModelBase ModelDownload
DiffusionVL-Qwen2.5VL-3BQwen2.5-VL-3BHuggingFace
DiffusionVL-Qwen2.5VL-7BQwen2.5-VL-7BHuggingFace
DiffusionVL-Qwen2.5-7BQwen2.5-7BHuggingFace

Usage

  1. Edit the configuration at the top of the script:

    # eval/scripts/diffusionvl_qwenvl.sh
    MODEL_PATHS=(
        "/path/to/your/model"
    )
    OUTPUT_PATH="./eval_results"
    TASK_NAMES="mmmu_val,ai2d,mme,chartqa"
    TOTAL_GPUS=8
    
  2. Run the script:

    cd eval
    bash scripts/diffusionvl_qwenvl.sh
    

Available Scripts

ScriptModel Type
diffusionvl_qwenvl.shDiffusionVL-QwenVL
diffusionvl_qwen.shDiffusionVL-Qwen
llava_llada_bd3lm.shLLaVA-LLaDA-BD3LM
llava_qwen.shLLaVA-Qwen (AR baseline)

Configuration Options

ParameterDescriptionDefault
MODEL_PATHSModel checkpoint path(s)-
OUTPUT_PATHEvaluation results output path./eval_results
TASK_NAMESEvaluation tasks (comma-separated)See script
TOTAL_GPUSNumber of GPUs to use8
BLOCK_SIZEBD3-LM block size8
STEPSDenoising steps8