| #!/bin/bash |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| set -euo pipefail |
|
|
| REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" |
|
|
| MODEL_NAME="llava-hf/llava-1.5-7b-hf" |
| DEVICE_ID="${DEVICE_ID:-4}" |
| DTYPE="${DTYPE:-bfloat16}" |
| METHODS="${METHODS:-base lora efuf nullu}" |
| FORCED_TEXT="${FORCED_TEXT-This image features a bathroom with a}" |
| CATEGORY="${CATEGORY:-bathroom_only}" |
| NUM_IMAGES="${NUM_IMAGES:-100}" |
| POPULATION="${POPULATION:-both}" |
| HOOK_TYPE="${HOOK_TYPE:-post}" |
|
|
| TOILET_PROBE="${TOILET_PROBE:-/data/caotue/latent_probes/seqprobes_toilet/post/seqprobe.pth}" |
| LORA_PATH="${LORA_PATH:-/data/caotue/multilayer-sae/adv_gen_outputs/run_bathroom_toilet_v2/lora_adapter}" |
| EFUF_PATH="${EFUF_PATH:-/data/caotue/multilayer-sae/EFUF/efuf/checkpoints/llava_vicuna_7b/bathroom_toilet_paper_10ep/epoch_002.pth}" |
| NULLU_PATH="${NULLU_PATH:-/data/caotue/nullu/edited_models/LLaVA-7B-top4-0-32-bathroom_toilet}" |
| NULLU_LOWEST="${NULLU_LOWEST:-8}" |
| NULLU_HIGHEST="${NULLU_HIGHEST:-32}" |
|
|
| SAMPLES="${SAMPLES:-${REPO_ROOT}/mechanistic_interp/toilet_bathroom/samples.json}" |
| IMAGE_FOLDER="${IMAGE_FOLDER:-/data/caotue/CC3M-Dataset/cc3m_images}" |
| BASE_PROMPT="${BASE_PROMPT:-Describe this image.}" |
|
|
| OUT_TAG="${OUT_TAG:-}" |
| TAG_SUFFIX="${OUT_TAG:+_${OUT_TAG}}" |
| OUT="${REPO_ROOT}/mechanistic_interp/graph/compare_baselines_toilet${TAG_SUFFIX}.png" |
| OUT_JSON="${REPO_ROOT}/mechanistic_interp/graph/compare_baselines_toilet${TAG_SUFFIX}.json" |
|
|
| mkdir -p "$(dirname "${OUT}")" |
|
|
| echo "========================================================" |
| echo " compare baselines: toilet readout, method - base, per layer" |
| echo "========================================================" |
| echo " Methods : ${METHODS}" |
| echo " Context : ${FORCED_TEXT:-<base caption per image>}" |
| echo " Toilet probe : ${TOILET_PROBE}" |
| echo " N per pop : ${NUM_IMAGES} hook=${HOOK_TYPE}" |
| echo " Device / dtype : cuda:${DEVICE_ID} / ${DTYPE}" |
| echo " Out graph/json : ${OUT}" |
| echo "========================================================" |
|
|
| cd "${REPO_ROOT}" |
| export PYTHONPATH="$(cd .. && pwd):$(pwd):${PYTHONPATH:-}" |
| export PYTHONUNBUFFERED=1 |
|
|
| ARGS=( |
| --model_name "${MODEL_NAME}" |
| --device_id "${DEVICE_ID}" |
| --dtype "${DTYPE}" |
| --methods ${METHODS} |
| --toilet_probe "${TOILET_PROBE}" |
| --lora_path "${LORA_PATH}" |
| --efuf_path "${EFUF_PATH}" |
| --nullu_path "${NULLU_PATH}" |
| --nullu_lowest "${NULLU_LOWEST}" |
| --nullu_highest "${NULLU_HIGHEST}" |
| --samples_json "${SAMPLES}" |
| --image_folder "${IMAGE_FOLDER}" |
| --base_prompt "${BASE_PROMPT}" |
| --category "${CATEGORY}" |
| --population "${POPULATION}" |
| --num_images "${NUM_IMAGES}" |
| --hook_type "${HOOK_TYPE}" |
| --out "${OUT}" |
| --out_json "${OUT_JSON}" |
| ) |
| |
| ARGS+=(--forced_text "${FORCED_TEXT}") |
|
|
| python -m mechanistic_interp.compare_baselines "${ARGS[@]}" "$@" |
|
|