agentic-rl-main / scripts /preprocess_chartqa_teacher_gate_deplot_recovery.sh
Jack04810's picture
Add files using upload-large-folder tool
df529cc verified
Raw History Blame Contribute Delete
2.83 kB
#!/usr/bin/env bash
# Retry prior hard failures with the exact same gold-blind DePlot-only prompt,
# then atomically merge them into a complete 4,576-row teacher-gate cache.
set -euo pipefail
PROJECT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
cd "${PROJECT_DIR}"
PYTHON_ENV="${PYTHON_ENV:-${PROJECT_DIR}/.venv}"
TORCHRUN_BIN="${TORCHRUN_BIN:-${PYTHON_ENV}/bin/torchrun}"
INPUT_JSON="${INPUT_JSON:-${PROJECT_DIR}/data/chartqa/train_new_prerefine_vf_full_real_deplot_fp32_qwen25.json}"
BASE_CACHE="${BASE_CACHE:-${PROJECT_DIR}/data/chartqa/teacher_gate/llava_onevision_7b_deplot_greedy/train.jsonl}"
OUTPUT_JSONL="${OUTPUT_JSONL:-${PROJECT_DIR}/data/chartqa/teacher_gate/llava_onevision_7b_deplot_pass8_recovery/train.jsonl}"
TEACHER_PATH="${TEACHER_PATH:-/data/lyf/.cache/huggingface/hub/models--llava-hf--llava-onevision-qwen2-7b-ov-hf/snapshots/0d50680527681998e456c7b78950205bedd8a068}"
PROCESSOR_PATH="${PROCESSOR_PATH:-/data/lyf/.cache/huggingface/manual/llava-onevision-qwen2-7b-ov-hf-processor-0d506805}"
CALIBRATION_MANIFEST="${CALIBRATION_MANIFEST:-${PROJECT_DIR}/data/chartqa/teacher_gate/llava_onevision_7b_deplot_greedy/validation.jsonl.manifest.json}"
TARGET_GPU="${TARGET_GPU:-5}"
NUM_CANDIDATES="${NUM_CANDIDATES:-8}"
BATCH_SIZE="${BATCH_SIZE:-4}"
MAX_NEW_TOKENS="${MAX_NEW_TOKENS:-96}"
for required_path in \
"${TORCHRUN_BIN}" "${INPUT_JSON}" "${BASE_CACHE}" \
"${BASE_CACHE}.manifest.json" "${TEACHER_PATH}" "${PROCESSOR_PATH}" \
"${CALIBRATION_MANIFEST}"; do
if [[ ! -e "${required_path}" ]]; then
echo "Required DePlot recovery path does not exist: ${required_path}" >&2
exit 2
fi
done
mkdir -p "$(dirname "${OUTPUT_JSONL}")"
LOG_PATH="${OUTPUT_JSONL}.build.log"
printf '[%s] DePlot-only recovery GPU=%s candidates=%s output=%s\n' \
"$(date -Is)" "${TARGET_GPU}" "${NUM_CANDIDATES}" "${OUTPUT_JSONL}" \
| tee -a "${LOG_PATH}"
env \
-u HTTP_PROXY -u HTTPS_PROXY -u ALL_PROXY \
-u http_proxy -u https_proxy -u all_proxy \
CUDA_VISIBLE_DEVICES="${TARGET_GPU}" \
HF_HUB_OFFLINE=1 \
TRANSFORMERS_OFFLINE=1 \
TOKENIZERS_PARALLELISM=false \
"${TORCHRUN_BIN}" --standalone --nproc_per_node=1 \
scripts/preprocess_chartqa_teacher_gate.py \
--input "${INPUT_JSON}" \
--output "${OUTPUT_JSONL}" \
--split train \
--teacher-model "${TEACHER_PATH}" \
--processor-model "${PROCESSOR_PATH}" \
--providers visual_facts_deplot \
--source-selection hard_fail \
--selection-cache "${BASE_CACHE}" \
--merge-selection-cache \
--num-candidates "${NUM_CANDIDATES}" \
--temperature 0.4 \
--top-p 0.95 \
--seed 42 \
--batch-size "${BATCH_SIZE}" \
--max-new-tokens "${MAX_NEW_TOKENS}" \
--repetition-penalty 1.0 \
--require-real-deplot \
--expected-samples 4576 \
--calibration-manifest "${CALIBRATION_MANIFEST}" \
--log-every 32 \
2>&1 | tee -a "${LOG_PATH}"