#!/usr/bin/env sh # Auto-generated combo: model=Qwen3-4B source=tri config=prompt_based_separator (pbs) # head ranking fixed to all_roc_inst_0.1; TOPK default is overridable via env. # # In-training quick eval uses a DEV HOLDOUT of this run's own training source # (tri): the last DEV_HOLDOUT source rows are dropped from training and used # only for the training_log.csv rows. It never touches the 4-1 cross-eval set. set -eu SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) TRAIN_DIR=$(CDPATH= cd -- "$SCRIPT_DIR/.." && pwd) BASE=$(CDPATH= cd -- "$TRAIN_DIR/.." && pwd) ROOT=$(CDPATH= cd -- "$BASE/.." && pwd) export MODEL_PATH="${MODEL_PATH:-$ROOT/models/Qwen3-4B}" export DATA_PATH="${DATA_PATH:-$BASE/3-1_model_training_data_gen/single_turn/tri_prompt_based_separator.json}" export HEAD_PATH="${HEAD_PATH:-$BASE/2-2_head_identification_scoring/model_score/sep_Qwen3-4B/heads_sorted/all_roc_inst_0.1.json}" export OUTPUT_DIR="${OUTPUT_DIR:-$TRAIN_DIR/outputs_lora/qwen3-4b_tri_pbs_all_roc_inst_0.1}" export TOPK="${TOPK:-12.5p}" # quick-eval dev slice: same source as training, config matches, held-out tail rows export EVAL_DATA_PATH="${EVAL_DATA_PATH:-$BASE/1_raw_dataset/topicattack/data/crafted_instruction_data_tri_injection_qa.json}" export EVAL_TOPIC_PATH="${EVAL_TOPIC_PATH:-$BASE/1_raw_dataset/topicattack/data/crafted_instruction_data_tri_conversation_attack_complete.json}" export EVAL_CONFIG="${EVAL_CONFIG:-prompt_based_separator}" export DEV_HOLDOUT="${DEV_HOLDOUT:-24}" exec "$TRAIN_DIR/train_attn_kl_clean.sh"