#!/bin/bash echo "==> Environment" echo "conda location: $(which conda)" echo "Python location: $(which python)" echo "Python version: $(python --version)" echo "" cd VLM2Vec/ || exit # ============================================================================== # Configuration # ============================================================================== CUDA_VISIBLE_DEVICES="0,1,2,3,4,5,6,7" BATCH_SIZE=64 # MODALITIES=("image_retrival" "video_retrival") MODALITIES=("image_retrival") # MODALITIES=("visdoc_retrival") DATA_BASEDIR="~/data/vlm2vec_eval/MMEB-V2" # OUTPUT_BASEDIR="~/exps/vlm2vec_bsz128" OUTPUT_BASEDIR="/home/v-menggao/code/VLM2Vec/~/exps/VLM2Vec_2_5_analysis_3Btrain" #_qry_cand_diff_ratio # ==> Define models and their base output paths here # Format: "MODEL_NAME;BASE_OUTPUT_PATH" declare -a MODEL_SPECS # MODEL_SPECS+=( "VLM2Vec/VLM2Vec-V2.0;qwen2_vl;$OUTPUT_BASEDIR/VLM2Vec-V2.0-Qwen2VL-2B" ) # MODEL_SPECS+=( "code-kunkun/LamRA-Ret-Qwen2.5VL-7b;lamra_qwen25;$OUTPUT_BASEDIR/LamRA-Ret-Qwen2.5VL-7b" ) MODEL_SPECS+=( "/home/v-menggao/code/VLM2Vec/~/experiments/Qwen2_5vl_3B_multi_layer_12_-1_0.1_0.9/checkpoint-5000;qwen2_5_vl;$OUTPUT_BASEDIR/VLM2Vec-V2.0-Qwen2VL-2B" ) # MODEL_SPECS+=( "/home/v-menggao/code/VLM2Vec/~/experiments/Qwen2_5vl_7B_single_node_alltask_online_doc_data_12_11_h100;qwen2_5_vl;$OUTPUT_BASEDIR/VLM2Vec-Qwen2.5VL-7B" ) # Qwen/Qwen2.5-VL-3B-Instruct # MODEL_SPECS+=( "Alibaba-NLP/gme-Qwen2-VL-2B-Instruct;gme;$OUTPUT_BASEDIR/gme-Qwen2-VL-2B-Instruct" ) # MODEL_SPECS+=( "Alibaba-NLP/gme-Qwen2-VL-7B-Instruct;gme;$OUTPUT_BASEDIR/gme-Qwen2-VL-7B-Instruct" ) # MODEL_SPECS+=( "code-kunkun/LamRA-Ret;lamra;$OUTPUT_BASEDIR/LamRA-Ret" )lamra_qwen25 # MODEL_SPECS+=( "code-kunkun/LamRA-Ret-Qwen2.5VL-7b;lamra_qwen25;$OUTPUT_BASEDIR/LamRA-Ret-Qwen2.5VL-7b" ) # MODEL_SPECS+=( "vidore/colpali-v1.3;colpali;$OUTPUT_BASEDIR/colpali-v1.3" ) # ============================================================================== # Main Execution Loop # ============================================================================== # Loop through each model specification for spec in "${MODEL_SPECS[@]}"; do # Parse the model name and base output path from the spec string IFS=';' read -r MODEL_NAME MODEL_BACKBONE BASE_OUTPUT_PATH <<< "$spec" echo "=================================================" echo "🚀 Processing Model: $MODEL_NAME" echo "=================================================" # Loop through each modality for the current model for MODALITY in "${MODALITIES[@]}"; do DATA_CONFIG_PATH="/home/v-menggao/code/VLM2Vec/experiments/public/eval/$MODALITY.yaml" OUTPUT_PATH="$BASE_OUTPUT_PATH/$MODALITY/" echo "-------------------------------------------------" echo " - Modality: $MODALITY" echo " - Output Path: $OUTPUT_PATH" # Ensure the output directory exists mkdir -p "$OUTPUT_PATH" cmd="CUDA_VISIBLE_DEVICES=$CUDA_VISIBLE_DEVICES python eval_analysis.py \ --pooling eos \ --normalize true \ --per_device_eval_batch_size $BATCH_SIZE \ --model_backbone \"$MODEL_BACKBONE\" \ --model_name \"$MODEL_NAME\" \ --dataset_config \"$DATA_CONFIG_PATH\" \ --encode_output_path \"$OUTPUT_PATH\" \ --data_basedir \"$DATA_BASEDIR\"" echo " - Executing command..." # echo "$cmd" # Uncomment for debugging the exact command eval "$cmd" echo " - Done." echo "-------------------------------------------------" done done echo "✅ All jobs completed."