#!/usr/bin/env bash set -euo pipefail HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" MODEL="${MODEL_PATH:-$(dirname "$HERE")}" CONFIG="${1:-image_retrieval}" case "$CONFIG" in image_retrieval|video_ret_5|moment_retrieval|visdoc_full) ;; *) echo "Unknown config: $CONFIG" >&2; exit 2;; esac : "${DATA_BASEDIR:?Set DATA_BASEDIR to the MMEB evaluation media root}" export PYTHONPATH="$HERE/vendor:$HERE/nexus:${PYTHONPATH:-}" export TOKENIZERS_PARALLELISM=false export NEXUS_WEMM_OFFICIAL=1 OUTPUT="${OUTPUT_DIR:-$PWD/eval_output/$CONFIG}" mkdir -p "$OUTPUT" "$OUTPUT/generated_media_cache" python -m torch.distributed.run --nproc_per_node="${NPROC:-1}" --master_port="${MASTER_PORT:-29521}" \ -m Nexus.evaluation.mmeb_v2.eval_embedding \ --normalize true --per_device_eval_batch_size "${BATCH_SIZE:-8}" \ --model_name_or_path "$MODEL" --dataset_config "$HERE/configs/$CONFIG.yaml" \ --encode_output_path "$OUTPUT" --data_basedir "$DATA_BASEDIR" \ --generated_media_basedir "${GENERATED_MEDIA_BASEDIR:-$OUTPUT/generated_media_cache}" \ --force_recompute "${FORCE_RECOMPUTE:-true}"