张志方
Mar 9, 2026, 6:06 PM
1afb133
Raw
History Blame Contribute Delete
2.21 kB
#!/bin/bash
# Full evaluation pipeline for the Trigger-Off experiment.
#
# Evaluates the fine-tuned model on three scenarios:
# 1. Clean test set (no trigger)
# 2. Adversary (Amazon) without trigger → ASR
# 3. Adversary (Amazon) with trigger → Immunity Rate
#
# Environment variables:
# MODEL_PATH - base model path (required)
# LORA_PATH - LoRA checkpoint path (optional)
# TEST_JSON - test data JSON (default: ./data/poisoned/test.json)
# IMG_DIR - root image directory (default: ./data/poisoned)
# OUTPUT_DIR - where to save eval results (default: ./results)
# MODEL_TYPE - "os_atlas" or "seeclick" (default: os_atlas)
# MAX_SAMPLES - max samples per scenario for quick eval (optional)
set -e
cd "$(dirname "$0")/.."
if [ -z "$MODEL_PATH" ]; then
echo "ERROR: MODEL_PATH is required."
echo " Usage: MODEL_PATH=/path/to/model bash scripts/eval.sh"
exit 1
fi
LORA_PATH=${LORA_PATH:-""}
TEST_JSON=${TEST_JSON:-./data/poisoned/test.json}
IMG_DIR=${IMG_DIR:-./data/poisoned}
OUTPUT_DIR=${OUTPUT_DIR:-./results}
MODEL_TYPE=${MODEL_TYPE:-os_atlas}
echo "============================================================"
echo " Trigger-Off: Evaluation"
echo "============================================================"
echo " MODEL_PATH = $MODEL_PATH"
echo " LORA_PATH = $LORA_PATH"
echo " TEST_JSON = $TEST_JSON"
echo " IMG_DIR = $IMG_DIR"
echo " OUTPUT_DIR = $OUTPUT_DIR"
echo " MODEL_TYPE = $MODEL_TYPE"
echo "------------------------------------------------------------"
LORA_ARG=""
if [ -n "$LORA_PATH" ]; then
LORA_ARG="--lora_path $LORA_PATH"
fi
MAX_SAMPLES_ARG=""
if [ -n "$MAX_SAMPLES" ]; then
MAX_SAMPLES_ARG="--max_samples $MAX_SAMPLES"
fi
python -m src.evaluation.evaluate \
--model_path "$MODEL_PATH" \
--test_json "$TEST_JSON" \
--img_dir "$IMG_DIR" \
--output_dir "$OUTPUT_DIR" \
--model_type "$MODEL_TYPE" \
$LORA_ARG \
$MAX_SAMPLES_ARG
echo ""
echo "============================================================"
echo " Evaluation complete."
echo " Results saved to: $OUTPUT_DIR/eval_results.json"
echo "============================================================"