LLM4HEP / test_stats.sh
ho22joshua's picture
initial commit
cfcbbc8
#!/bin/bash
NAME=$(grep '^name:' config.yml | awk '{print$2}' | tr -d "'")
MODEL=$(grep '^model:' config.yml | awk '{print$2}' | tr -d "'")
OUT_DIR=$(grep '^out_dir:' config.yml | awk '{print$2}' | tr -d "'")
cp -r prompts prompts_temp
sed -i "s#{BASE_DIR}#$OUT_DIR#g" prompts_temp/*.txt
cp root_to_numpy.smk root_to_numpy_temp.smk
cp scores.smk scores_temp.smk
cp categorization.smk categorization_temp.smk
sed -i "s#{BASE_DIR}#$OUT_DIR#g" *_temp.smk
mkdir -p $OUT_DIR/generated_code
cp utils.py $OUT_DIR/generated_code/utils.py
rm -f $OUT_DIR/logs/success.npy
rm -f $OUT_DIR/logs/calls.npy
rm -f $OUT_DIR/logs/input_tokens.npy
rm -f $OUT_DIR/logs/output_tokens.npy
echo "Starting step 1: ROOT -> NumPy"
TIME1=$SECONDS
snakemake -s root_to_numpy_temp.smk -j 1 --forcerun summarize_root --rerun-incomplete --configfile config.yml --latency-wait 120 --verbose
TIME1=$((SECONDS-TIME1))
echo "Starting step 2: SB scores"
TIME2=$SECONDS
snakemake -s scores_temp.smk -j 1 --forcerun scores --rerun-incomplete --configfile config.yml --latency-wait 120 --verbose
TIME2=$((SECONDS-TIME2))
echo "Starting step 3: categorization"
TIME3=$SECONDS
snakemake -s categorization_temp.smk -j 1 --forcerun categorization --rerun-incomplete --configfile config.yml --latency-wait 120 --verbose
TIME3=$((SECONDS-TIME3))
echo "Checking results"
python check_soln.py --out_dir $OUT_DIR
echo "Writing stats"
read -r -a success_arr < <(python get_arr.py --name success --out_dir $OUT_DIR)
SUCCESS1=${success_arr[0]}
SUCCESS2=${success_arr[1]}
SUCCESS3=${success_arr[2]}
read -r -a call_arr < <(python get_arr.py --name calls --out_dir $OUT_DIR)
CALLS1=${call_arr[0]}
CALLS2=${call_arr[1]}
CALLS3=${call_arr[2]}
read -r -a input_token_arr < <(python get_arr.py --name input_tokens --out_dir $OUT_DIR)
INPUT_TOKENS1=${input_token_arr[0]}
INPUT_TOKENS2=${input_token_arr[1]}
INPUT_TOKENS3=${input_token_arr[2]}
read -r -a output_token_arr < <(python get_arr.py --name output_tokens --out_dir $OUT_DIR)
OUTPUT_TOKENS1=${output_token_arr[0]}
OUTPUT_TOKENS2=${output_token_arr[1]}
OUTPUT_TOKENS3=${output_token_arr[2]}
python update_stats.py --name $NAME --success1 $SUCCESS1 --time1 $TIME1 --calls1 $CALLS1 --input_tokens1 $INPUT_TOKENS1 --success2 $SUCCESS2 --time2 $TIME2 --calls2 $CALLS2 --input_tokens2 $INPUT_TOKENS2 --success3 $SUCCESS3 --time3 $TIME3 --calls3 $CALLS3 --input_tokens3 $INPUT_TOKENS3 --output_tokens1 $OUTPUT_TOKENS1 --output_tokens2 $OUTPUT_TOKENS2 --output_tokens3 $OUTPUT_TOKENS3
rm -r prompts_temp
rm root_to_numpy_temp.smk
rm scores_temp.smk
rm categorization_temp.smk
echo "Finished!"