Add files using upload-large-folder tool
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- lm-quant-toolkit/scripts/experiment-llama-sensi-7b-cfg-wise.sh +119 -0
- lm-quant-toolkit/scripts/experiment-llama-sensi-7b-fnorm-avg.sh +119 -0
- lm-quant-toolkit/scripts/experiment-llama-sensi-7b-protect-mlp.sh +119 -0
- lm-quant-toolkit/scripts/experiment-llama-sensi-boost.sh +133 -0
- lm-quant-toolkit/scripts/experiment-llama-sensi-milp-7b.sh +119 -0
- lm-quant-toolkit/scripts/experiment-llama-sensi-milp-ablation.sh +109 -0
- lm-quant-toolkit/scripts/experiment-llama-sensi-milp.sh +129 -0
- lm-quant-toolkit/scripts/experiment-llama-sensi.sh +190 -0
- lm-quant-toolkit/scripts/experiment-llama2-13b-balanced.sh +122 -0
- lm-quant-toolkit/scripts/experiment-llama2-13b-boost.sh +121 -0
- lm-quant-toolkit/scripts/experiment-llama3-8b-aggressive-reduction.sh +122 -0
- lm-quant-toolkit/scripts/experiment-sensi-milp-mini-batch.sh +128 -0
- lm-quant-toolkit/scripts/experiment-tail-2-4.sh +135 -0
- lm-quant-toolkit/scripts/experiment-tail-boost.sh +117 -0
- lm-quant-toolkit/scripts/experiment-tail-reduction.sh +118 -0
- lm-quant-toolkit/scripts/experiment-vit-zs-mxq-kurt-boost.sh +34 -0
- lm-quant-toolkit/scripts/fix-3.25-llama-7b-sensi-boost.sh +116 -0
- lm-quant-toolkit/scripts/fix-experiment-llama-kurt-milp-ablation.sh +82 -0
- lm-quant-toolkit/scripts/fix-experiment-llama-sensi-milp-ablation.sh +86 -0
- lm-quant-toolkit/scripts/fix-llama-sensi-milp.sh +129 -0
- lm-quant-toolkit/scripts/fix_experiment-llama-kurt-milp.sh +87 -0
- lm-quant-toolkit/scripts/plot-allot-kurt-scaled-dense.sh +46 -0
- lm-quant-toolkit/scripts/plot-llama-sensi.sh +43 -0
- lm-quant-toolkit/scripts/plot-milp-low-bit.sh +99 -0
- lm-quant-toolkit/scripts/plot-qwen-sensi-metrics.sh +17 -0
- lm-quant-toolkit/scripts/plot-sensi-milp-mini-batch.sh +53 -0
- lm-quant-toolkit/scripts/quant-llm-13b-awq.sh +18 -0
- lm-quant-toolkit/scripts/quant-llm-2bit-dense1-mxq.sh +21 -0
- lm-quant-toolkit/scripts/quant-llm-3bit-dense1-mxq.sh +21 -0
- lm-quant-toolkit/scripts/quant-llm-4_51-mxq.sh +21 -0
- lm-quant-toolkit/scripts/quant-llm-4bit-dense1-mxq.sh +21 -0
- lm-quant-toolkit/scripts/quant-llm-8bit-gptq.sh +18 -0
- lm-quant-toolkit/scripts/quant-llm-awq.sh +18 -0
- lm-quant-toolkit/scripts/quant-llm-b4-mxq.sh +21 -0
- lm-quant-toolkit/scripts/quant-llm-gptq.sh +17 -0
- lm-quant-toolkit/scripts/quant-llm-hqq.sh +20 -0
- lm-quant-toolkit/scripts/quant-llm-kurt-13b-mxq.sh +21 -0
- lm-quant-toolkit/scripts/quant-llm-mxq.sh +20 -0
- lm-quant-toolkit/scripts/sim-quant-allot.sh +60 -0
- lm-quant-toolkit/scripts/sim-quant-milp.sh +4 -0
- lm-quant-toolkit/scripts/sim-tail-boost-quant-allot.sh +48 -0
- lm-quant-toolkit/src/data/fnorm-Llama-2-70b-hf.csv +0 -0
- lm-quant-toolkit/src/data/fnorm-Llama-3-70B.csv +0 -0
- lm-quant-toolkit/src/data/fnorm-Meta-Llama-3-8B.csv +0 -0
- lm-quant-toolkit/src/data/kurtosis-CLIP-ViT-L-14-laion2B-s32B-b82K.csv +73 -0
- lm-quant-toolkit/src/lm_quant_toolkit.egg-info/SOURCES.txt +46 -0
- lm-quant-toolkit/src/lm_quant_toolkit.egg-info/dependency_links.txt +1 -0
- lm-quant-toolkit/src/lm_quant_toolkit.egg-info/requires.txt +28 -0
- lm-quant-toolkit/src/lm_quant_toolkit/__init__.py +8 -0
- lm-quant-toolkit/src/lm_quant_toolkit/__pycache__/__init__.cpython-310.pyc +0 -0
lm-quant-toolkit/scripts/experiment-llama-sensi-7b-cfg-wise.sh
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
# BUDGETS="2.13 2.25 2.51 3.13 3.25 3.51 4.13 4.25 4.51"
|
| 4 |
+
BUDGETS="4.13 4.25 4.51"
|
| 5 |
+
RESULT_DIR="/fdata/llm/mxq/results"
|
| 6 |
+
QUANT_SNAPSHOT_DIR="/fdata/llm/mxq/snapshots"
|
| 7 |
+
|
| 8 |
+
ATTEMPT="sensi-cfg-wise-7b"
|
| 9 |
+
EXP_BASE_NAME=$ATTEMPT
|
| 10 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,qnt,stor}
|
| 11 |
+
|
| 12 |
+
# Use cached dataset to speedup wikitext, c4 ppl evaluation
|
| 13 |
+
export HF_DATASETS_OFFLINE=1
|
| 14 |
+
|
| 15 |
+
weight_algo=sensi-milp
|
| 16 |
+
|
| 17 |
+
log_file="logs/bench-$(date +%Y%m%d%H%M%S).log"
|
| 18 |
+
|
| 19 |
+
mkdir -p $QUANT_SNAPSHOT_DIR/$ATTEMPT
|
| 20 |
+
mkdir -p $RESULT_DIR/${EXP_NAME}_ppl
|
| 21 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,stor}/mxq/$ATTEMPT
|
| 22 |
+
|
| 23 |
+
MODELS="0"
|
| 24 |
+
EXP_NAME="${ATTEMPT}_7B"
|
| 25 |
+
echo "=========Run perplexity evaluation on Llama-2-7b========="
|
| 26 |
+
python ../src/cli.py llm \
|
| 27 |
+
--task eval_ppl \
|
| 28 |
+
--model $MODELS \
|
| 29 |
+
--algo mxq \
|
| 30 |
+
--weight-algo $weight_algo \
|
| 31 |
+
--config ${BUDGETS} \
|
| 32 |
+
--experiment-name "${EXP_NAME}_ppl" \
|
| 33 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 34 |
+
--result-dir=$RESULT_DIR \
|
| 35 |
+
2>&1 \
|
| 36 |
+
| tee -a $log_file
|
| 37 |
+
EXIT_CODE=$?
|
| 38 |
+
if [ $EXIT_CODE -ne 0 ]; then
|
| 39 |
+
echo "Perplexity evaluation failed!"
|
| 40 |
+
exit $EXIT_CODE
|
| 41 |
+
fi
|
| 42 |
+
echo "=========Collect perplexity evaluation result on batch ${EXP_NAME}========="
|
| 43 |
+
find $RESULT_DIR/${EXP_NAME}_ppl \
|
| 44 |
+
-name "result-*.csv" \
|
| 45 |
+
-printf '%T@ %p\n' \
|
| 46 |
+
| sort -n \
|
| 47 |
+
| tail -1 \
|
| 48 |
+
| cut -d' ' -f2 \
|
| 49 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/ppl/mxq/$ATTEMPT
|
| 50 |
+
|
| 51 |
+
echo "=========Dump quantization configs on batch ${EXP_NAME}========="
|
| 52 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT
|
| 53 |
+
python ../src/cli.py dump \
|
| 54 |
+
--type quant_config \
|
| 55 |
+
--model $MODELS \
|
| 56 |
+
--budget ${BUDGETS} \
|
| 57 |
+
--attempt $ATTEMPT \
|
| 58 |
+
--quant-snapshot-dir=$QUANT_SNAPSHOT_DIR \
|
| 59 |
+
--output-file "$RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT/quant-allot-${EXP_NAME}.csv" \
|
| 60 |
+
2>&1 \
|
| 61 |
+
| tee -a $log_file
|
| 62 |
+
|
| 63 |
+
echo "=========Run memory evaluation on batch ${EXP_NAME}========="
|
| 64 |
+
algo=mxq
|
| 65 |
+
model_ids=$MODELS
|
| 66 |
+
for m in $model_ids; do
|
| 67 |
+
for cfg in ${BUDGETS}; do
|
| 68 |
+
python ../src/cli.py llm \
|
| 69 |
+
--model $m \
|
| 70 |
+
--algo ${algo} \
|
| 71 |
+
--config ${cfg} \
|
| 72 |
+
--task eval_model_storage \
|
| 73 |
+
--experiment-name "${EXP_NAME}_stor" \
|
| 74 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 75 |
+
--result-dir=$RESULT_DIR \
|
| 76 |
+
2>&1 \
|
| 77 |
+
| tee -a $log_file
|
| 78 |
+
done
|
| 79 |
+
done
|
| 80 |
+
echo "=========Collect memory evaluation result on batch ${EXP_NAME}========="
|
| 81 |
+
find $RESULT_DIR/${EXP_NAME}_stor \
|
| 82 |
+
-name "result-*.csv" \
|
| 83 |
+
-printf '%T@ %p\n' \
|
| 84 |
+
| sort -n \
|
| 85 |
+
| tail -1 \
|
| 86 |
+
| cut -d' ' -f2 \
|
| 87 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/stor/mxq/$ATTEMPT
|
| 88 |
+
|
| 89 |
+
# echo "=========Delete quantized models of batch ${batch_name}========="
|
| 90 |
+
# find $QUANT_SNAPSHOT_DIR/$ATTEMPT -maxdepth 1 -type d | xargs rm -fr
|
| 91 |
+
|
| 92 |
+
OLD_DIR=$(pwd)
|
| 93 |
+
cd $RESULT_DIR/$EXP_BASE_NAME
|
| 94 |
+
if [ ! -d pdfs/allot ]; then
|
| 95 |
+
mkdir -p pdfs/allot
|
| 96 |
+
fi
|
| 97 |
+
$OLD_DIR/../data-vis/combine.R \
|
| 98 |
+
--baseline_data_dir $OLD_DIR/../data-vis/data \
|
| 99 |
+
--mxq_data_dir data
|
| 100 |
+
$OLD_DIR/../data-vis/plot-mxq-paired.R data/combined.csv
|
| 101 |
+
$OLD_DIR/../data-vis/plot-mem-consumption.R data/combined.csv
|
| 102 |
+
$OLD_DIR/../data-vis/plot-quant-speed.R data/combined.csv
|
| 103 |
+
$OLD_DIR/../data-vis/gen-table-mxq-llm.R data/combined.csv
|
| 104 |
+
pdflatex table.tex
|
| 105 |
+
|
| 106 |
+
# plot configuration allocations for 3 * 12 MXQ combinations
|
| 107 |
+
MODELS="Llama-2-7b-hf"
|
| 108 |
+
BGS="4.13 4.25 4.51"
|
| 109 |
+
for model in $MODELS; do
|
| 110 |
+
for budget in $BGS; do
|
| 111 |
+
$OLD_DIR/../data-vis/plot-mxq-allocation.R \
|
| 112 |
+
-m $model \
|
| 113 |
+
-b $budget \
|
| 114 |
+
--attempt1 $ATTEMPT \
|
| 115 |
+
--attempt2 mxq1 \
|
| 116 |
+
--fnorm_data_dir $OLD_DIR/../src/data \
|
| 117 |
+
--quant_cfg_allot_file data/quant-cfg-allocation.csv
|
| 118 |
+
done
|
| 119 |
+
done
|
lm-quant-toolkit/scripts/experiment-llama-sensi-7b-fnorm-avg.sh
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
# BUDGETS="2.13 2.25 2.51 3.13 3.25 3.51 4.13 4.25 4.51"
|
| 4 |
+
BUDGETS="4.13 4.25 4.51"
|
| 5 |
+
RESULT_DIR="/fdata/llm/mxq/results"
|
| 6 |
+
QUANT_SNAPSHOT_DIR="/fdata/llm/mxq/snapshots"
|
| 7 |
+
|
| 8 |
+
ATTEMPT="fnorm-sensi-avg-7b"
|
| 9 |
+
EXP_BASE_NAME=$ATTEMPT
|
| 10 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,qnt,stor}
|
| 11 |
+
|
| 12 |
+
# Use cached dataset to speedup wikitext, c4 ppl evaluation
|
| 13 |
+
export HF_DATASETS_OFFLINE=1
|
| 14 |
+
|
| 15 |
+
weight_algo=sensi-milp
|
| 16 |
+
|
| 17 |
+
log_file="logs/bench-$(date +%Y%m%d%H%M%S).log"
|
| 18 |
+
|
| 19 |
+
mkdir -p $QUANT_SNAPSHOT_DIR/$ATTEMPT
|
| 20 |
+
mkdir -p $RESULT_DIR/${EXP_NAME}_ppl
|
| 21 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,stor}/mxq/$ATTEMPT
|
| 22 |
+
|
| 23 |
+
MODELS="0"
|
| 24 |
+
EXP_NAME="${ATTEMPT}_7B"
|
| 25 |
+
echo "=========Run perplexity evaluation on Llama-2-7b========="
|
| 26 |
+
python ../src/cli.py llm \
|
| 27 |
+
--task eval_ppl \
|
| 28 |
+
--model $MODELS \
|
| 29 |
+
--algo mxq \
|
| 30 |
+
--weight-algo $weight_algo \
|
| 31 |
+
--config ${BUDGETS} \
|
| 32 |
+
--experiment-name "${EXP_NAME}_ppl" \
|
| 33 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 34 |
+
--result-dir=$RESULT_DIR \
|
| 35 |
+
2>&1 \
|
| 36 |
+
| tee -a $log_file
|
| 37 |
+
EXIT_CODE=$?
|
| 38 |
+
if [ $EXIT_CODE -ne 0 ]; then
|
| 39 |
+
echo "Perplexity evaluation failed!"
|
| 40 |
+
exit $EXIT_CODE
|
| 41 |
+
fi
|
| 42 |
+
echo "=========Collect perplexity evaluation result on batch ${EXP_NAME}========="
|
| 43 |
+
find $RESULT_DIR/${EXP_NAME}_ppl \
|
| 44 |
+
-name "result-*.csv" \
|
| 45 |
+
-printf '%T@ %p\n' \
|
| 46 |
+
| sort -n \
|
| 47 |
+
| tail -1 \
|
| 48 |
+
| cut -d' ' -f2 \
|
| 49 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/ppl/mxq/$ATTEMPT
|
| 50 |
+
|
| 51 |
+
echo "=========Dump quantization configs on batch ${EXP_NAME}========="
|
| 52 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT
|
| 53 |
+
python ../src/cli.py dump \
|
| 54 |
+
--type quant_config \
|
| 55 |
+
--model $MODELS \
|
| 56 |
+
--budget ${BUDGETS} \
|
| 57 |
+
--attempt $ATTEMPT \
|
| 58 |
+
--quant-snapshot-dir=$QUANT_SNAPSHOT_DIR \
|
| 59 |
+
--output-file "$RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT/quant-allot-${EXP_NAME}.csv" \
|
| 60 |
+
2>&1 \
|
| 61 |
+
| tee -a $log_file
|
| 62 |
+
|
| 63 |
+
echo "=========Run memory evaluation on batch ${EXP_NAME}========="
|
| 64 |
+
algo=mxq
|
| 65 |
+
model_ids=$MODELS
|
| 66 |
+
for m in $model_ids; do
|
| 67 |
+
for cfg in ${BUDGETS}; do
|
| 68 |
+
python ../src/cli.py llm \
|
| 69 |
+
--model $m \
|
| 70 |
+
--algo ${algo} \
|
| 71 |
+
--config ${cfg} \
|
| 72 |
+
--task eval_model_storage \
|
| 73 |
+
--experiment-name "${EXP_NAME}_stor" \
|
| 74 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 75 |
+
--result-dir=$RESULT_DIR \
|
| 76 |
+
2>&1 \
|
| 77 |
+
| tee -a $log_file
|
| 78 |
+
done
|
| 79 |
+
done
|
| 80 |
+
echo "=========Collect memory evaluation result on batch ${EXP_NAME}========="
|
| 81 |
+
find $RESULT_DIR/${EXP_NAME}_stor \
|
| 82 |
+
-name "result-*.csv" \
|
| 83 |
+
-printf '%T@ %p\n' \
|
| 84 |
+
| sort -n \
|
| 85 |
+
| tail -1 \
|
| 86 |
+
| cut -d' ' -f2 \
|
| 87 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/stor/mxq/$ATTEMPT
|
| 88 |
+
|
| 89 |
+
# echo "=========Delete quantized models of batch ${batch_name}========="
|
| 90 |
+
# find $QUANT_SNAPSHOT_DIR/$ATTEMPT -maxdepth 1 -type d | xargs rm -fr
|
| 91 |
+
|
| 92 |
+
OLD_DIR=$(pwd)
|
| 93 |
+
cd $RESULT_DIR/$EXP_BASE_NAME
|
| 94 |
+
if [ ! -d pdfs/allot ]; then
|
| 95 |
+
mkdir -p pdfs/allot
|
| 96 |
+
fi
|
| 97 |
+
$OLD_DIR/../data-vis/combine.R \
|
| 98 |
+
--baseline_data_dir $OLD_DIR/../data-vis/data \
|
| 99 |
+
--mxq_data_dir data
|
| 100 |
+
$OLD_DIR/../data-vis/plot-mxq-paired.R data/combined.csv
|
| 101 |
+
$OLD_DIR/../data-vis/plot-mem-consumption.R data/combined.csv
|
| 102 |
+
$OLD_DIR/../data-vis/plot-quant-speed.R data/combined.csv
|
| 103 |
+
$OLD_DIR/../data-vis/gen-table-mxq-llm.R data/combined.csv
|
| 104 |
+
pdflatex table.tex
|
| 105 |
+
|
| 106 |
+
# plot configuration allocations for 3 * 12 MXQ combinations
|
| 107 |
+
MODELS="Llama-2-7b-hf"
|
| 108 |
+
BGS="4.13 4.25 4.51"
|
| 109 |
+
for model in $MODELS; do
|
| 110 |
+
for budget in $BGS; do
|
| 111 |
+
$OLD_DIR/../data-vis/plot-mxq-allocation.R \
|
| 112 |
+
-m $model \
|
| 113 |
+
-b $budget \
|
| 114 |
+
--attempt1 $ATTEMPT \
|
| 115 |
+
--attempt2 mxq1 \
|
| 116 |
+
--fnorm_data_dir $OLD_DIR/../src/data \
|
| 117 |
+
--quant_cfg_allot_file data/quant-cfg-allocation.csv
|
| 118 |
+
done
|
| 119 |
+
done
|
lm-quant-toolkit/scripts/experiment-llama-sensi-7b-protect-mlp.sh
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
# BUDGETS="2.13 2.25 2.51 3.13 3.25 3.51 4.13 4.25 4.51"
|
| 4 |
+
BUDGETS="4.13 4.25 4.51"
|
| 5 |
+
RESULT_DIR="/fdata/llm/mxq/results"
|
| 6 |
+
QUANT_SNAPSHOT_DIR="/fdata/llm/mxq/snapshots"
|
| 7 |
+
|
| 8 |
+
ATTEMPT="sensi-protect-mlp-7b"
|
| 9 |
+
EXP_BASE_NAME=$ATTEMPT
|
| 10 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,qnt,stor}
|
| 11 |
+
|
| 12 |
+
# Use cached dataset to speedup wikitext, c4 ppl evaluation
|
| 13 |
+
export HF_DATASETS_OFFLINE=1
|
| 14 |
+
|
| 15 |
+
weight_algo=sensi-milp
|
| 16 |
+
|
| 17 |
+
log_file="logs/bench-$(date +%Y%m%d%H%M%S).log"
|
| 18 |
+
|
| 19 |
+
mkdir -p $QUANT_SNAPSHOT_DIR/$ATTEMPT
|
| 20 |
+
mkdir -p $RESULT_DIR/${EXP_NAME}_ppl
|
| 21 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,stor}/mxq/$ATTEMPT
|
| 22 |
+
|
| 23 |
+
MODELS="0"
|
| 24 |
+
EXP_NAME="${ATTEMPT}"
|
| 25 |
+
echo "=========Run perplexity evaluation on Llama-2-7b========="
|
| 26 |
+
python ../src/cli.py llm \
|
| 27 |
+
--task eval_ppl \
|
| 28 |
+
--model $MODELS \
|
| 29 |
+
--algo mxq \
|
| 30 |
+
--weight-algo $weight_algo \
|
| 31 |
+
--config ${BUDGETS} \
|
| 32 |
+
--experiment-name "${EXP_NAME}_ppl" \
|
| 33 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 34 |
+
--result-dir=$RESULT_DIR \
|
| 35 |
+
2>&1 \
|
| 36 |
+
| tee -a $log_file
|
| 37 |
+
EXIT_CODE=$?
|
| 38 |
+
if [ $EXIT_CODE -ne 0 ]; then
|
| 39 |
+
echo "Perplexity evaluation failed!"
|
| 40 |
+
exit $EXIT_CODE
|
| 41 |
+
fi
|
| 42 |
+
echo "=========Collect perplexity evaluation result on batch ${EXP_NAME}========="
|
| 43 |
+
find $RESULT_DIR/${EXP_NAME}_ppl \
|
| 44 |
+
-name "result-*.csv" \
|
| 45 |
+
-printf '%T@ %p\n' \
|
| 46 |
+
| sort -n \
|
| 47 |
+
| tail -1 \
|
| 48 |
+
| cut -d' ' -f2 \
|
| 49 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/ppl/mxq/$ATTEMPT
|
| 50 |
+
|
| 51 |
+
echo "=========Dump quantization configs on batch ${EXP_NAME}========="
|
| 52 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT
|
| 53 |
+
python ../src/cli.py dump \
|
| 54 |
+
--type quant_config \
|
| 55 |
+
--model $MODELS \
|
| 56 |
+
--budget ${BUDGETS} \
|
| 57 |
+
--attempt $ATTEMPT \
|
| 58 |
+
--quant-snapshot-dir=$QUANT_SNAPSHOT_DIR \
|
| 59 |
+
--output-file "$RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT/quant-allot-${EXP_NAME}.csv" \
|
| 60 |
+
2>&1 \
|
| 61 |
+
| tee -a $log_file
|
| 62 |
+
|
| 63 |
+
echo "=========Run memory evaluation on batch ${EXP_NAME}========="
|
| 64 |
+
algo=mxq
|
| 65 |
+
model_ids=$MODELS
|
| 66 |
+
for m in $model_ids; do
|
| 67 |
+
for cfg in ${BUDGETS}; do
|
| 68 |
+
python ../src/cli.py llm \
|
| 69 |
+
--model $m \
|
| 70 |
+
--algo ${algo} \
|
| 71 |
+
--config ${cfg} \
|
| 72 |
+
--task eval_model_storage \
|
| 73 |
+
--experiment-name "${EXP_NAME}_stor" \
|
| 74 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 75 |
+
--result-dir=$RESULT_DIR \
|
| 76 |
+
2>&1 \
|
| 77 |
+
| tee -a $log_file
|
| 78 |
+
done
|
| 79 |
+
done
|
| 80 |
+
echo "=========Collect memory evaluation result on batch ${EXP_NAME}========="
|
| 81 |
+
find $RESULT_DIR/${EXP_NAME}_stor \
|
| 82 |
+
-name "result-*.csv" \
|
| 83 |
+
-printf '%T@ %p\n' \
|
| 84 |
+
| sort -n \
|
| 85 |
+
| tail -1 \
|
| 86 |
+
| cut -d' ' -f2 \
|
| 87 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/stor/mxq/$ATTEMPT
|
| 88 |
+
|
| 89 |
+
# echo "=========Delete quantized models of batch ${batch_name}========="
|
| 90 |
+
# find $QUANT_SNAPSHOT_DIR/$ATTEMPT -maxdepth 1 -type d | xargs rm -fr
|
| 91 |
+
|
| 92 |
+
OLD_DIR=$(pwd)
|
| 93 |
+
cd $RESULT_DIR/$EXP_BASE_NAME
|
| 94 |
+
if [ ! -d pdfs/allot ]; then
|
| 95 |
+
mkdir -p pdfs/allot
|
| 96 |
+
fi
|
| 97 |
+
$OLD_DIR/../data-vis/combine.R \
|
| 98 |
+
--baseline_data_dir $OLD_DIR/../data-vis/data \
|
| 99 |
+
--mxq_data_dir data
|
| 100 |
+
$OLD_DIR/../data-vis/plot-mxq-paired.R data/combined.csv
|
| 101 |
+
$OLD_DIR/../data-vis/plot-mem-consumption.R data/combined.csv
|
| 102 |
+
$OLD_DIR/../data-vis/plot-quant-speed.R data/combined.csv
|
| 103 |
+
$OLD_DIR/../data-vis/gen-table-mxq-llm.R data/combined.csv
|
| 104 |
+
pdflatex table.tex
|
| 105 |
+
|
| 106 |
+
# plot configuration allocations for 3 * 12 MXQ combinations
|
| 107 |
+
MODELS="Llama-2-7b-hf"
|
| 108 |
+
BGS="4.13 4.25 4.51"
|
| 109 |
+
for model in $MODELS; do
|
| 110 |
+
for budget in $BGS; do
|
| 111 |
+
$OLD_DIR/../data-vis/plot-mxq-allocation.R \
|
| 112 |
+
-m $model \
|
| 113 |
+
-b $budget \
|
| 114 |
+
--attempt1 $ATTEMPT \
|
| 115 |
+
--attempt2 mxq1 \
|
| 116 |
+
--fnorm_data_dir $OLD_DIR/../src/data \
|
| 117 |
+
--quant_cfg_allot_file data/quant-cfg-allocation.csv
|
| 118 |
+
done
|
| 119 |
+
done
|
lm-quant-toolkit/scripts/experiment-llama-sensi-boost.sh
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
BUDGETS="3.13 3.25 3.51 4.13 4.25 4.51"
|
| 4 |
+
RESULT_DIR="/fdata/llm/mxq/results"
|
| 5 |
+
QUANT_SNAPSHOT_DIR="/fdata/llm/mxq/snapshots"
|
| 6 |
+
|
| 7 |
+
# Use cached dataset to speedup wikitext, c4 ppl evaluation
|
| 8 |
+
export HF_DATASETS_OFFLINE=1
|
| 9 |
+
weight_algo=sensi-boost
|
| 10 |
+
MODELS="0 1 2"
|
| 11 |
+
MODEL_NAMES="Llama-2-7b-hf Llama-2-13b-hf Meta-Llama-3-8B"
|
| 12 |
+
|
| 13 |
+
|
| 14 |
+
# BOOST_STOPS="2 3"
|
| 15 |
+
BOOST_STOPS="3"
|
| 16 |
+
BOOST_TOP_MS="0"
|
| 17 |
+
|
| 18 |
+
for BOOST_STOP in $BOOST_STOPS; do
|
| 19 |
+
for BOOST_TOP_M in $BOOST_TOP_MS; do
|
| 20 |
+
if [[ $BOOST_STOP -eq 2 && $BOOST_TOP_M -eq 1 ]]; then
|
| 21 |
+
continue
|
| 22 |
+
fi
|
| 23 |
+
ATTEMPT="sensi-boost-${BOOST_STOP}-${BOOST_TOP_M}"
|
| 24 |
+
EXP_BASE_NAME=$ATTEMPT
|
| 25 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,qnt,stor}
|
| 26 |
+
|
| 27 |
+
log_file="logs/bench-${ATTEMPT}-$(date +%Y%m%d%H%M%S).log"
|
| 28 |
+
|
| 29 |
+
mkdir -p $QUANT_SNAPSHOT_DIR/$ATTEMPT
|
| 30 |
+
mkdir -p $RESULT_DIR/${EXP_NAME}_ppl
|
| 31 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,stor}/mxq/$ATTEMPT
|
| 32 |
+
|
| 33 |
+
# MODELS="0"
|
| 34 |
+
EXP_NAME="${ATTEMPT}"
|
| 35 |
+
echo "=========Run perplexity evaluation========="
|
| 36 |
+
python ../src/cli.py llm \
|
| 37 |
+
--task eval_ppl \
|
| 38 |
+
--model $MODELS \
|
| 39 |
+
--algo mxq \
|
| 40 |
+
--weight-algo $weight_algo \
|
| 41 |
+
--boost-stop $BOOST_STOP \
|
| 42 |
+
--top-m-layer $BOOST_TOP_M \
|
| 43 |
+
--config ${BUDGETS} \
|
| 44 |
+
--experiment-name "${EXP_NAME}_ppl" \
|
| 45 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 46 |
+
--result-dir=$RESULT_DIR \
|
| 47 |
+
2>&1 \
|
| 48 |
+
| tee -a $log_file
|
| 49 |
+
EXIT_CODE=$?
|
| 50 |
+
if [ $EXIT_CODE -ne 0 ]; then
|
| 51 |
+
echo "Perplexity evaluation failed!"
|
| 52 |
+
exit $EXIT_CODE
|
| 53 |
+
fi
|
| 54 |
+
echo "=========Collect perplexity evaluation result on batch ${EXP_NAME}========="
|
| 55 |
+
find $RESULT_DIR/${EXP_NAME}_ppl \
|
| 56 |
+
-name "result-*.csv" \
|
| 57 |
+
-printf '%T@ %p\n' \
|
| 58 |
+
| sort -n \
|
| 59 |
+
| tail -1 \
|
| 60 |
+
| cut -d' ' -f2 \
|
| 61 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/ppl/mxq/$ATTEMPT
|
| 62 |
+
|
| 63 |
+
echo "=========Dump quantization configs on batch ${EXP_NAME}========="
|
| 64 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT
|
| 65 |
+
python ../src/cli.py dump \
|
| 66 |
+
--type quant_config \
|
| 67 |
+
--model $MODELS \
|
| 68 |
+
--budget ${BUDGETS} \
|
| 69 |
+
--attempt $ATTEMPT \
|
| 70 |
+
--quant-snapshot-dir=$QUANT_SNAPSHOT_DIR \
|
| 71 |
+
--output-file "$RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT/quant-allot-${EXP_NAME}.csv" \
|
| 72 |
+
2>&1 \
|
| 73 |
+
| tee -a $log_file
|
| 74 |
+
|
| 75 |
+
echo "=========Run memory evaluation on batch ${EXP_NAME}========="
|
| 76 |
+
algo=mxq
|
| 77 |
+
model_ids=$MODELS
|
| 78 |
+
for m in $model_ids; do
|
| 79 |
+
for cfg in ${BUDGETS}; do
|
| 80 |
+
python ../src/cli.py llm \
|
| 81 |
+
--model $m \
|
| 82 |
+
--algo ${algo} \
|
| 83 |
+
--config ${cfg} \
|
| 84 |
+
--task eval_model_storage \
|
| 85 |
+
--experiment-name "${EXP_NAME}_stor" \
|
| 86 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 87 |
+
--result-dir=$RESULT_DIR \
|
| 88 |
+
2>&1 \
|
| 89 |
+
| tee -a $log_file
|
| 90 |
+
done
|
| 91 |
+
done
|
| 92 |
+
echo "=========Collect memory evaluation result on batch ${EXP_NAME}========="
|
| 93 |
+
find $RESULT_DIR/${EXP_NAME}_stor \
|
| 94 |
+
-name "result-*.csv" \
|
| 95 |
+
-printf '%T@ %p\n' \
|
| 96 |
+
| sort -n \
|
| 97 |
+
| tail -1 \
|
| 98 |
+
| cut -d' ' -f2 \
|
| 99 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/stor/mxq/$ATTEMPT
|
| 100 |
+
|
| 101 |
+
# echo "=========Delete quantized models of batch ${batch_name}========="
|
| 102 |
+
# find $QUANT_SNAPSHOT_DIR/$ATTEMPT -maxdepth 1 -type d | xargs rm -fr
|
| 103 |
+
|
| 104 |
+
OLD_DIR=$(pwd)
|
| 105 |
+
cd $RESULT_DIR/$EXP_BASE_NAME
|
| 106 |
+
if [ ! -d pdfs/allot ]; then
|
| 107 |
+
mkdir -p pdfs/allot
|
| 108 |
+
fi
|
| 109 |
+
$OLD_DIR/../data-vis/combine.R \
|
| 110 |
+
--baseline_data_dir $OLD_DIR/../data-vis/data \
|
| 111 |
+
--mxq_data_dir data
|
| 112 |
+
$OLD_DIR/../data-vis/plot-ppl-mem.R -d data/combined.csv
|
| 113 |
+
$OLD_DIR/../data-vis/plot-mem-consumption.R data/combined.csv
|
| 114 |
+
$OLD_DIR/../data-vis/plot-quant-speed.R data/combined.csv
|
| 115 |
+
$OLD_DIR/../data-vis/gen-table-mxq-llm.R --csv_file data/combined.csv --attempt $ATTEMPT
|
| 116 |
+
pdflatex table.tex
|
| 117 |
+
|
| 118 |
+
# plot configuration allocations for 3 * 12 MXQ combinations
|
| 119 |
+
for model in $MODEL_NAMES; do
|
| 120 |
+
for budget in $BUDGETS; do
|
| 121 |
+
$OLD_DIR/../data-vis/plot-mxq-allocation.R \
|
| 122 |
+
-m $model \
|
| 123 |
+
-b $budget \
|
| 124 |
+
--attempt1 $ATTEMPT \
|
| 125 |
+
--attempt2 mxq1 \
|
| 126 |
+
--fnorm_data_dir $OLD_DIR/../src/data \
|
| 127 |
+
--quant_cfg_allot_file data/quant-cfg-allocation.csv
|
| 128 |
+
done
|
| 129 |
+
done
|
| 130 |
+
cd $OLD_DIR
|
| 131 |
+
done
|
| 132 |
+
done
|
| 133 |
+
|
lm-quant-toolkit/scripts/experiment-llama-sensi-milp-7b.sh
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
# BUDGETS="2.13 2.25 2.51 3.13 3.25 3.51 4.13 4.25 4.51"
|
| 4 |
+
BUDGETS="4.13 4.25 4.51"
|
| 5 |
+
RESULT_DIR="/fdata/llm/mxq/results"
|
| 6 |
+
QUANT_SNAPSHOT_DIR="/fdata/llm/mxq/snapshots"
|
| 7 |
+
|
| 8 |
+
ATTEMPT="llama-sensi-milp-2x"
|
| 9 |
+
EXP_BASE_NAME=$ATTEMPT
|
| 10 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,qnt,stor}
|
| 11 |
+
|
| 12 |
+
# Use cached dataset to speedup wikitext, c4 ppl evaluation
|
| 13 |
+
export HF_DATASETS_OFFLINE=1
|
| 14 |
+
|
| 15 |
+
weight_algo=sensi-milp
|
| 16 |
+
|
| 17 |
+
log_file="logs/bench-$(date +%Y%m%d%H%M%S).log"
|
| 18 |
+
|
| 19 |
+
mkdir -p $QUANT_SNAPSHOT_DIR/$ATTEMPT
|
| 20 |
+
mkdir -p $RESULT_DIR/${EXP_NAME}_ppl
|
| 21 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,stor}/mxq/$ATTEMPT
|
| 22 |
+
|
| 23 |
+
MODELS="0 2"
|
| 24 |
+
EXP_NAME="${ATTEMPT}"
|
| 25 |
+
echo "=========Run perplexity evaluation on Llama-2-7b========="
|
| 26 |
+
python ../src/cli.py llm \
|
| 27 |
+
--task eval_ppl \
|
| 28 |
+
--model $MODELS \
|
| 29 |
+
--algo mxq \
|
| 30 |
+
--weight-algo $weight_algo \
|
| 31 |
+
--config ${BUDGETS} \
|
| 32 |
+
--experiment-name "${EXP_NAME}_ppl" \
|
| 33 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 34 |
+
--result-dir=$RESULT_DIR \
|
| 35 |
+
2>&1 \
|
| 36 |
+
| tee -a $log_file
|
| 37 |
+
EXIT_CODE=$?
|
| 38 |
+
if [ $EXIT_CODE -ne 0 ]; then
|
| 39 |
+
echo "Perplexity evaluation failed!"
|
| 40 |
+
exit $EXIT_CODE
|
| 41 |
+
fi
|
| 42 |
+
echo "=========Collect perplexity evaluation result on batch ${EXP_NAME}========="
|
| 43 |
+
find $RESULT_DIR/${EXP_NAME}_ppl \
|
| 44 |
+
-name "result-*.csv" \
|
| 45 |
+
-printf '%T@ %p\n' \
|
| 46 |
+
| sort -n \
|
| 47 |
+
| tail -1 \
|
| 48 |
+
| cut -d' ' -f2 \
|
| 49 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/ppl/mxq/$ATTEMPT
|
| 50 |
+
|
| 51 |
+
echo "=========Dump quantization configs on batch ${EXP_NAME}========="
|
| 52 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT
|
| 53 |
+
python ../src/cli.py dump \
|
| 54 |
+
--type quant_config \
|
| 55 |
+
--model $MODELS \
|
| 56 |
+
--budget ${BUDGETS} \
|
| 57 |
+
--attempt $ATTEMPT \
|
| 58 |
+
--quant-snapshot-dir=$QUANT_SNAPSHOT_DIR \
|
| 59 |
+
--output-file "$RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT/quant-allot-${EXP_NAME}.csv" \
|
| 60 |
+
2>&1 \
|
| 61 |
+
| tee -a $log_file
|
| 62 |
+
|
| 63 |
+
echo "=========Run memory evaluation on batch ${EXP_NAME}========="
|
| 64 |
+
algo=mxq
|
| 65 |
+
model_ids=$MODELS
|
| 66 |
+
for m in $model_ids; do
|
| 67 |
+
for cfg in ${BUDGETS}; do
|
| 68 |
+
python ../src/cli.py llm \
|
| 69 |
+
--model $m \
|
| 70 |
+
--algo ${algo} \
|
| 71 |
+
--config ${cfg} \
|
| 72 |
+
--task eval_model_storage \
|
| 73 |
+
--experiment-name "${EXP_NAME}_stor" \
|
| 74 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 75 |
+
--result-dir=$RESULT_DIR \
|
| 76 |
+
2>&1 \
|
| 77 |
+
| tee -a $log_file
|
| 78 |
+
done
|
| 79 |
+
done
|
| 80 |
+
echo "=========Collect memory evaluation result on batch ${EXP_NAME}========="
|
| 81 |
+
find $RESULT_DIR/${EXP_NAME}_stor \
|
| 82 |
+
-name "result-*.csv" \
|
| 83 |
+
-printf '%T@ %p\n' \
|
| 84 |
+
| sort -n \
|
| 85 |
+
| tail -1 \
|
| 86 |
+
| cut -d' ' -f2 \
|
| 87 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/stor/mxq/$ATTEMPT
|
| 88 |
+
|
| 89 |
+
# echo "=========Delete quantized models of batch ${batch_name}========="
|
| 90 |
+
# find $QUANT_SNAPSHOT_DIR/$ATTEMPT -maxdepth 1 -type d | xargs rm -fr
|
| 91 |
+
|
| 92 |
+
OLD_DIR=$(pwd)
|
| 93 |
+
cd $RESULT_DIR/$EXP_BASE_NAME
|
| 94 |
+
if [ ! -d pdfs/allot ]; then
|
| 95 |
+
mkdir -p pdfs/allot
|
| 96 |
+
fi
|
| 97 |
+
$OLD_DIR/../data-vis/combine.R \
|
| 98 |
+
--baseline_data_dir $OLD_DIR/../data-vis/data \
|
| 99 |
+
--mxq_data_dir data
|
| 100 |
+
$OLD_DIR/../data-vis/plot-mxq-paired.R data/combined.csv
|
| 101 |
+
$OLD_DIR/../data-vis/plot-mem-consumption.R data/combined.csv
|
| 102 |
+
$OLD_DIR/../data-vis/plot-quant-speed.R data/combined.csv
|
| 103 |
+
$OLD_DIR/../data-vis/gen-table-mxq-llm.R data/combined.csv
|
| 104 |
+
pdflatex table.tex
|
| 105 |
+
|
| 106 |
+
# plot configuration allocations for 3 * 12 MXQ combinations
|
| 107 |
+
MODELS="Llama-2-7b-hf Meta-Llama-3-8B"
|
| 108 |
+
BGS="4.13 4.25 4.51"
|
| 109 |
+
for model in $MODELS; do
|
| 110 |
+
for budget in $BGS; do
|
| 111 |
+
$OLD_DIR/../data-vis/plot-mxq-allocation.R \
|
| 112 |
+
-m $model \
|
| 113 |
+
-b $budget \
|
| 114 |
+
--attempt1 $ATTEMPT \
|
| 115 |
+
--attempt2 mxq1 \
|
| 116 |
+
--fnorm_data_dir $OLD_DIR/../src/data \
|
| 117 |
+
--quant_cfg_allot_file data/quant-cfg-allocation.csv
|
| 118 |
+
done
|
| 119 |
+
done
|
lm-quant-toolkit/scripts/experiment-llama-sensi-milp-ablation.sh
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
BUDGETS="6.89 5.72 5.02 4.51 4.25 4.21 4.17 4.13 4.11 4.07 3.95 3.87 3.83 3.65 3.51 3.25 3.19 3.15 3.13 3.11 3.07"
|
| 4 |
+
RESULT_DIR="/fdata/llm/mxq/results"
|
| 5 |
+
QUANT_SNAPSHOT_DIR="/fdata/llm/mxq/snapshots"
|
| 6 |
+
|
| 7 |
+
# Use cached dataset to speedup wikitext, c4 ppl evaluation
|
| 8 |
+
export HF_DATASETS_OFFLINE=1
|
| 9 |
+
weight_algo=sensi-milp
|
| 10 |
+
MODELS="0 1 2"
|
| 11 |
+
MODEL_NAMES="Llama-2-7b-hf Llama-2-13b-hf Meta-Llama-3-8B"
|
| 12 |
+
|
| 13 |
+
|
| 14 |
+
# for SensiMiLP ablation test, all topm values are equivalent
|
| 15 |
+
|
| 16 |
+
ATTEMPT="sensi-milp-abl"
|
| 17 |
+
EXP_BASE_NAME=$ATTEMPT
|
| 18 |
+
EXP_NAME="${ATTEMPT}"
|
| 19 |
+
|
| 20 |
+
log_file="logs/bench-${ATTEMPT}-$(date +%Y%m%d%H%M%S).log"
|
| 21 |
+
|
| 22 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,qnt,stor}
|
| 23 |
+
|
| 24 |
+
mkdir -p $QUANT_SNAPSHOT_DIR/$ATTEMPT
|
| 25 |
+
mkdir -p $RESULT_DIR/${EXP_NAME}_ppl
|
| 26 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,stor}/mxq/$ATTEMPT
|
| 27 |
+
|
| 28 |
+
echo "=========Run perplexity evaluation========="
|
| 29 |
+
python ../src/cli.py llm \
|
| 30 |
+
--task eval_ppl \
|
| 31 |
+
--model $MODELS \
|
| 32 |
+
--algo mxq \
|
| 33 |
+
--weight-algo $weight_algo \
|
| 34 |
+
--ablation \
|
| 35 |
+
--config ${BUDGETS} \
|
| 36 |
+
--experiment-name "${EXP_NAME}_ppl" \
|
| 37 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 38 |
+
--result-dir=$RESULT_DIR \
|
| 39 |
+
2>&1 \
|
| 40 |
+
| tee -a $log_file
|
| 41 |
+
EXIT_CODE=$?
|
| 42 |
+
if [ $EXIT_CODE -ne 0 ]; then
|
| 43 |
+
echo "Perplexity evaluation failed!"
|
| 44 |
+
exit $EXIT_CODE
|
| 45 |
+
fi
|
| 46 |
+
echo "=========Collect perplexity evaluation result on batch ${EXP_NAME}========="
|
| 47 |
+
find $RESULT_DIR/${EXP_NAME}_ppl \
|
| 48 |
+
-name "result-*.csv" \
|
| 49 |
+
-printf '%T@ %p\n' \
|
| 50 |
+
| sort -n \
|
| 51 |
+
| tail -1 \
|
| 52 |
+
| cut -d' ' -f2 \
|
| 53 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/ppl/mxq/$ATTEMPT
|
| 54 |
+
|
| 55 |
+
echo "=========Dump quantization configs on batch ${EXP_NAME}========="
|
| 56 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT
|
| 57 |
+
python ../src/cli.py dump \
|
| 58 |
+
--type quant_config \
|
| 59 |
+
--model $MODELS \
|
| 60 |
+
--budget ${BUDGETS} \
|
| 61 |
+
--attempt $ATTEMPT \
|
| 62 |
+
--quant-snapshot-dir=$QUANT_SNAPSHOT_DIR \
|
| 63 |
+
--output-file "$RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT/quant-allot-${EXP_NAME}.csv" \
|
| 64 |
+
2>&1 \
|
| 65 |
+
| tee -a $log_file
|
| 66 |
+
|
| 67 |
+
echo "=========Run memory evaluation on batch ${EXP_NAME}========="
|
| 68 |
+
algo=mxq
|
| 69 |
+
model_ids=$MODELS
|
| 70 |
+
for m in $model_ids; do
|
| 71 |
+
for cfg in ${BUDGETS}; do
|
| 72 |
+
python ../src/cli.py llm \
|
| 73 |
+
--model $m \
|
| 74 |
+
--algo ${algo} \
|
| 75 |
+
--config ${cfg} \
|
| 76 |
+
--task eval_model_storage \
|
| 77 |
+
--experiment-name "${EXP_NAME}_stor" \
|
| 78 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 79 |
+
--result-dir=$RESULT_DIR \
|
| 80 |
+
2>&1 \
|
| 81 |
+
| tee -a $log_file
|
| 82 |
+
done
|
| 83 |
+
done
|
| 84 |
+
echo "=========Collect memory evaluation result on batch ${EXP_NAME}========="
|
| 85 |
+
find $RESULT_DIR/${EXP_NAME}_stor \
|
| 86 |
+
-name "result-*.csv" \
|
| 87 |
+
-printf '%T@ %p\n' \
|
| 88 |
+
| sort -n \
|
| 89 |
+
| tail -1 \
|
| 90 |
+
| cut -d' ' -f2 \
|
| 91 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/stor/mxq/$ATTEMPT
|
| 92 |
+
|
| 93 |
+
# echo "=========Delete quantized models of batch ${batch_name}========="
|
| 94 |
+
# find $QUANT_SNAPSHOT_DIR/$ATTEMPT -maxdepth 1 -type d | xargs rm -fr
|
| 95 |
+
OLD_DIR=$(pwd)
|
| 96 |
+
cd $RESULT_DIR/$EXP_BASE_NAME
|
| 97 |
+
if [ ! -d pdfs ]; then
|
| 98 |
+
mkdir pdfs
|
| 99 |
+
fi
|
| 100 |
+
$OLD_DIR/../data-vis/combine.R \
|
| 101 |
+
--baseline_data_dir $OLD_DIR/../data-vis/data \
|
| 102 |
+
--mxq_data_dir data
|
| 103 |
+
$OLD_DIR/../data-vis/plot-ppl-mem.R -d data/combined.csv
|
| 104 |
+
$OLD_DIR/../data-vis/gen-table-mxq-llm.R --csv_file data/combined.csv --attempt $ATTEMPT
|
| 105 |
+
cd pdfs
|
| 106 |
+
pdflatex table.tex
|
| 107 |
+
cd ..
|
| 108 |
+
|
| 109 |
+
cd $OLD_DIR
|
lm-quant-toolkit/scripts/experiment-llama-sensi-milp.sh
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
BUDGETS="6.89 5.72 5.02 4.51 4.25 4.21 4.17 4.13 4.11 4.07 3.95 3.87 3.83 3.65 3.51 3.25 3.19 3.15 3.13 3.11 3.07"
|
| 4 |
+
RESULT_DIR="/fdata/llm/mxq/results"
|
| 5 |
+
QUANT_SNAPSHOT_DIR="/fdata/llm/mxq/snapshots"
|
| 6 |
+
|
| 7 |
+
# Use cached dataset to speedup wikitext, c4 ppl evaluation
|
| 8 |
+
export HF_DATASETS_OFFLINE=1
|
| 9 |
+
weight_algo=sensi-milp
|
| 10 |
+
MODELS="0 1 2"
|
| 11 |
+
MODEL_NAMES="Llama-2-7b-hf Llama-2-13b-hf Meta-Llama-3-8B"
|
| 12 |
+
|
| 13 |
+
|
| 14 |
+
BOOST_TOP_MS="3"
|
| 15 |
+
|
| 16 |
+
for BOOST_TOP_M in $BOOST_TOP_MS; do
|
| 17 |
+
ATTEMPT="sensi-milp-${BOOST_TOP_M}"
|
| 18 |
+
EXP_BASE_NAME=$ATTEMPT
|
| 19 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,qnt,stor}
|
| 20 |
+
|
| 21 |
+
log_file="logs/bench-${ATTEMPT}-$(date +%Y%m%d%H%M%S).log"
|
| 22 |
+
|
| 23 |
+
mkdir -p $QUANT_SNAPSHOT_DIR/$ATTEMPT
|
| 24 |
+
mkdir -p $RESULT_DIR/${EXP_NAME}_ppl
|
| 25 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,stor}/mxq/$ATTEMPT
|
| 26 |
+
|
| 27 |
+
# MODELS="0"
|
| 28 |
+
EXP_NAME="${ATTEMPT}"
|
| 29 |
+
echo "=========Run perplexity evaluation========="
|
| 30 |
+
python ../src/cli.py llm \
|
| 31 |
+
--task eval_ppl \
|
| 32 |
+
--model $MODELS \
|
| 33 |
+
--algo mxq \
|
| 34 |
+
--weight-algo $weight_algo \
|
| 35 |
+
--top-m-layer $BOOST_TOP_M \
|
| 36 |
+
--config ${BUDGETS} \
|
| 37 |
+
--experiment-name "${EXP_NAME}_ppl" \
|
| 38 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 39 |
+
--result-dir=$RESULT_DIR \
|
| 40 |
+
2>&1 \
|
| 41 |
+
| tee -a $log_file
|
| 42 |
+
EXIT_CODE=$?
|
| 43 |
+
if [ $EXIT_CODE -ne 0 ]; then
|
| 44 |
+
echo "Perplexity evaluation failed!"
|
| 45 |
+
exit $EXIT_CODE
|
| 46 |
+
fi
|
| 47 |
+
echo "=========Collect perplexity evaluation result on batch ${EXP_NAME}========="
|
| 48 |
+
find $RESULT_DIR/${EXP_NAME}_ppl \
|
| 49 |
+
-name "result-*.csv" \
|
| 50 |
+
-printf '%T@ %p\n' \
|
| 51 |
+
| sort -n \
|
| 52 |
+
| tail -1 \
|
| 53 |
+
| cut -d' ' -f2 \
|
| 54 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/ppl/mxq/$ATTEMPT
|
| 55 |
+
|
| 56 |
+
echo "=========Dump quantization configs on batch ${EXP_NAME}========="
|
| 57 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT
|
| 58 |
+
python ../src/cli.py dump \
|
| 59 |
+
--type quant_config \
|
| 60 |
+
--model $MODELS \
|
| 61 |
+
--budget ${BUDGETS} \
|
| 62 |
+
--attempt $ATTEMPT \
|
| 63 |
+
--quant-snapshot-dir=$QUANT_SNAPSHOT_DIR \
|
| 64 |
+
--output-file "$RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT/quant-allot-${EXP_NAME}.csv" \
|
| 65 |
+
2>&1 \
|
| 66 |
+
| tee -a $log_file
|
| 67 |
+
|
| 68 |
+
echo "=========Run memory evaluation on batch ${EXP_NAME}========="
|
| 69 |
+
algo=mxq
|
| 70 |
+
model_ids=$MODELS
|
| 71 |
+
for m in $model_ids; do
|
| 72 |
+
for cfg in ${BUDGETS}; do
|
| 73 |
+
python ../src/cli.py llm \
|
| 74 |
+
--model $m \
|
| 75 |
+
--algo ${algo} \
|
| 76 |
+
--config ${cfg} \
|
| 77 |
+
--task eval_model_storage \
|
| 78 |
+
--experiment-name "${EXP_NAME}_stor" \
|
| 79 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 80 |
+
--result-dir=$RESULT_DIR \
|
| 81 |
+
2>&1 \
|
| 82 |
+
| tee -a $log_file
|
| 83 |
+
done
|
| 84 |
+
done
|
| 85 |
+
echo "=========Collect memory evaluation result on batch ${EXP_NAME}========="
|
| 86 |
+
find $RESULT_DIR/${EXP_NAME}_stor \
|
| 87 |
+
-name "result-*.csv" \
|
| 88 |
+
-printf '%T@ %p\n' \
|
| 89 |
+
| sort -n \
|
| 90 |
+
| tail -1 \
|
| 91 |
+
| cut -d' ' -f2 \
|
| 92 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/stor/mxq/$ATTEMPT
|
| 93 |
+
|
| 94 |
+
# echo "=========Delete quantized models of batch ${batch_name}========="
|
| 95 |
+
# find $QUANT_SNAPSHOT_DIR/$ATTEMPT -maxdepth 1 -type d | xargs rm -fr
|
| 96 |
+
OLD_DIR=$(pwd)
|
| 97 |
+
cd $RESULT_DIR/$EXP_BASE_NAME
|
| 98 |
+
if [ ! -d pdfs ]; then
|
| 99 |
+
mkdir pdfs
|
| 100 |
+
fi
|
| 101 |
+
$OLD_DIR/../data-vis/combine.R \
|
| 102 |
+
--baseline_data_dir $OLD_DIR/../data-vis/data \
|
| 103 |
+
--mxq_data_dir data
|
| 104 |
+
$OLD_DIR/../data-vis/plot-ppl-mem.R -d data/combined.csv
|
| 105 |
+
$OLD_DIR/../data-vis/plot-mem-consumption.R -d data/combined.csv
|
| 106 |
+
$OLD_DIR/../data-vis/plot-quant-speed.R -d data/combined.csv
|
| 107 |
+
$OLD_DIR/../data-vis/gen-table-mxq-llm.R --csv_file data/combined.csv --attempt $ATTEMPT
|
| 108 |
+
cd pdfs
|
| 109 |
+
pdflatex table.tex
|
| 110 |
+
cd ..
|
| 111 |
+
|
| 112 |
+
# plot configuration allocations for 3 * 12 MXQ combinations
|
| 113 |
+
MODELS="Llama-2-7b-hf Llama-2-13b-hf Meta-Llama-3-8B"
|
| 114 |
+
BUDGETS=${MXQ_BATCH[@]:1}
|
| 115 |
+
for model in $MODELS; do
|
| 116 |
+
for budget in $BUDGETS; do
|
| 117 |
+
$OLD_DIR/../data-vis/plot-mxq-allocation.R \
|
| 118 |
+
-m $model \
|
| 119 |
+
-b $budget \
|
| 120 |
+
--fnorm_data_dir $OLD_DIR/../src/data \
|
| 121 |
+
--attempt1 mxq1 \
|
| 122 |
+
--attempt2 $ATTEMPT \
|
| 123 |
+
--quant_cfg_allot_file data/quant-cfg-allocation.csv
|
| 124 |
+
done
|
| 125 |
+
done
|
| 126 |
+
cd $OLD_DIR
|
| 127 |
+
|
| 128 |
+
done
|
| 129 |
+
|
lm-quant-toolkit/scripts/experiment-llama-sensi.sh
ADDED
|
@@ -0,0 +1,190 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
# BUDGETS="2.13 2.25 2.51 3.13 3.25 3.51 4.13 4.25 4.51"
|
| 4 |
+
BUDGETS="4.13 4.25 4.51"
|
| 5 |
+
RESULT_DIR="/fdata/llm/mxq/results"
|
| 6 |
+
QUANT_SNAPSHOT_DIR="/fdata/llm/mxq/snapshots"
|
| 7 |
+
|
| 8 |
+
ATTEMPT="llama-sensi"
|
| 9 |
+
EXP_BASE_NAME=$ATTEMPT
|
| 10 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,qnt,stor}
|
| 11 |
+
|
| 12 |
+
# Use cached dataset to speedup wikitext, c4 ppl evaluation
|
| 13 |
+
export HF_DATASETS_OFFLINE=1
|
| 14 |
+
|
| 15 |
+
weight_algo=sensi-directive
|
| 16 |
+
|
| 17 |
+
log_file="logs/bench-$(date +%Y%m%d%H%M%S).log"
|
| 18 |
+
|
| 19 |
+
mkdir -p $QUANT_SNAPSHOT_DIR/$ATTEMPT
|
| 20 |
+
mkdir -p $RESULT_DIR/${EXP_NAME}_ppl
|
| 21 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,stor}/mxq/$ATTEMPT
|
| 22 |
+
|
| 23 |
+
MODELS="1"
|
| 24 |
+
boost_layers="3 39"
|
| 25 |
+
EXP_NAME="${ATTEMPT}_13b"
|
| 26 |
+
echo "=========Run perplexity evaluation on Llama-2-13b========="
|
| 27 |
+
python ../src/cli.py llm \
|
| 28 |
+
--task eval_ppl \
|
| 29 |
+
--model $MODELS \
|
| 30 |
+
--algo mxq \
|
| 31 |
+
--weight-algo $weight_algo \
|
| 32 |
+
--boost-layer $boost_layers \
|
| 33 |
+
--boost-stop 2 \
|
| 34 |
+
--config ${BUDGETS} \
|
| 35 |
+
--experiment-name "${EXP_NAME}_ppl" \
|
| 36 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 37 |
+
--result-dir=$RESULT_DIR \
|
| 38 |
+
2>&1 \
|
| 39 |
+
| tee -a $log_file
|
| 40 |
+
EXIT_CODE=$?
|
| 41 |
+
if [ $EXIT_CODE -ne 0 ]; then
|
| 42 |
+
echo "Perplexity evaluation failed!"
|
| 43 |
+
exit $EXIT_CODE
|
| 44 |
+
fi
|
| 45 |
+
echo "=========Collect perplexity evaluation result on batch ${EXP_NAME}========="
|
| 46 |
+
find $RESULT_DIR/${EXP_NAME}_ppl \
|
| 47 |
+
-name "result-*.csv" \
|
| 48 |
+
-printf '%T@ %p\n' \
|
| 49 |
+
| sort -n \
|
| 50 |
+
| tail -1 \
|
| 51 |
+
| cut -d' ' -f2 \
|
| 52 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/ppl/mxq/$ATTEMPT
|
| 53 |
+
echo "=========Dump quantization configs on batch ${EXP_NAME}========="
|
| 54 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT
|
| 55 |
+
python ../src/cli.py dump \
|
| 56 |
+
--type quant_config \
|
| 57 |
+
--model $MODELS \
|
| 58 |
+
--budget ${BUDGETS} \
|
| 59 |
+
--attempt $ATTEMPT \
|
| 60 |
+
--quant-snapshot-dir=$QUANT_SNAPSHOT_DIR \
|
| 61 |
+
--output-file "$RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT/quant-allot-${EXP_NAME}.csv" \
|
| 62 |
+
2>&1 \
|
| 63 |
+
| tee -a $log_file
|
| 64 |
+
|
| 65 |
+
echo "=========Run memory evaluation on batch ${EXP_NAME}========="
|
| 66 |
+
algo=mxq
|
| 67 |
+
model_ids=$MODELS
|
| 68 |
+
for m in $model_ids; do
|
| 69 |
+
for cfg in ${BUDGETS}; do
|
| 70 |
+
python ../src/cli.py llm \
|
| 71 |
+
--model $m \
|
| 72 |
+
--algo ${algo} \
|
| 73 |
+
--config ${cfg} \
|
| 74 |
+
--task eval_model_storage \
|
| 75 |
+
--experiment-name "${EXP_NAME}_stor" \
|
| 76 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 77 |
+
--result-dir=$RESULT_DIR \
|
| 78 |
+
2>&1 \
|
| 79 |
+
| tee -a $log_file
|
| 80 |
+
done
|
| 81 |
+
done
|
| 82 |
+
echo "=========Collect memory evaluation result on batch ${EXP_NAME}========="
|
| 83 |
+
find $RESULT_DIR/${EXP_NAME}_stor \
|
| 84 |
+
-name "result-*.csv" \
|
| 85 |
+
-printf '%T@ %p\n' \
|
| 86 |
+
| sort -n \
|
| 87 |
+
| tail -1 \
|
| 88 |
+
| cut -d' ' -f2 \
|
| 89 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/stor/mxq/$ATTEMPT
|
| 90 |
+
|
| 91 |
+
MODELS="0 2"
|
| 92 |
+
boost_layers="1 31"
|
| 93 |
+
EXP_NAME="${ATTEMPT}_78"
|
| 94 |
+
echo "=========Run perplexity evaluation on Llama-2-7b & Llama-3-8B========="
|
| 95 |
+
python ../src/cli.py llm \
|
| 96 |
+
--task eval_ppl \
|
| 97 |
+
--model $MODELS \
|
| 98 |
+
--algo mxq \
|
| 99 |
+
--weight-algo $weight_algo \
|
| 100 |
+
--boost-layer $boost_layers \
|
| 101 |
+
--boost-stop 1 \
|
| 102 |
+
--config ${BUDGETS} \
|
| 103 |
+
--experiment-name "${EXP_NAME}_ppl" \
|
| 104 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 105 |
+
--result-dir=$RESULT_DIR \
|
| 106 |
+
2>&1 \
|
| 107 |
+
| tee -a $log_file
|
| 108 |
+
EXIT_CODE=$?
|
| 109 |
+
if [ $EXIT_CODE -ne 0 ]; then
|
| 110 |
+
echo "Perplexity evaluation failed!"
|
| 111 |
+
exit $EXIT_CODE
|
| 112 |
+
fi
|
| 113 |
+
echo "=========Collect perplexity evaluation result on batch ${EXP_NAME}========="
|
| 114 |
+
find $RESULT_DIR/${EXP_NAME}_ppl \
|
| 115 |
+
-name "result-*.csv" \
|
| 116 |
+
-printf '%T@ %p\n' \
|
| 117 |
+
| sort -n \
|
| 118 |
+
| tail -1 \
|
| 119 |
+
| cut -d' ' -f2 \
|
| 120 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/ppl/mxq/$ATTEMPT
|
| 121 |
+
|
| 122 |
+
echo "=========Dump quantization configs on batch ${EXP_NAME}========="
|
| 123 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT
|
| 124 |
+
python ../src/cli.py dump \
|
| 125 |
+
--type quant_config \
|
| 126 |
+
--model $MODELS \
|
| 127 |
+
--budget ${BUDGETS} \
|
| 128 |
+
--attempt $ATTEMPT \
|
| 129 |
+
--quant-snapshot-dir=$QUANT_SNAPSHOT_DIR \
|
| 130 |
+
--output-file "$RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT/quant-allot-${EXP_NAME}.csv" \
|
| 131 |
+
2>&1 \
|
| 132 |
+
| tee -a $log_file
|
| 133 |
+
|
| 134 |
+
echo "=========Run memory evaluation on batch ${EXP_NAME}========="
|
| 135 |
+
algo=mxq
|
| 136 |
+
model_ids=$MODELS
|
| 137 |
+
for m in $model_ids; do
|
| 138 |
+
for cfg in ${BUDGETS}; do
|
| 139 |
+
python ../src/cli.py llm \
|
| 140 |
+
--model $m \
|
| 141 |
+
--algo ${algo} \
|
| 142 |
+
--config ${cfg} \
|
| 143 |
+
--task eval_model_storage \
|
| 144 |
+
--experiment-name "${EXP_NAME}_stor" \
|
| 145 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 146 |
+
--result-dir=$RESULT_DIR \
|
| 147 |
+
2>&1 \
|
| 148 |
+
| tee -a $log_file
|
| 149 |
+
done
|
| 150 |
+
done
|
| 151 |
+
echo "=========Collect memory evaluation result on batch ${EXP_NAME}========="
|
| 152 |
+
find $RESULT_DIR/${EXP_NAME}_stor \
|
| 153 |
+
-name "result-*.csv" \
|
| 154 |
+
-printf '%T@ %p\n' \
|
| 155 |
+
| sort -n \
|
| 156 |
+
| tail -1 \
|
| 157 |
+
| cut -d' ' -f2 \
|
| 158 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/stor/mxq/$ATTEMPT
|
| 159 |
+
|
| 160 |
+
# echo "=========Delete quantized models of batch ${batch_name}========="
|
| 161 |
+
# find $QUANT_SNAPSHOT_DIR/$ATTEMPT -maxdepth 1 -type d | xargs rm -fr
|
| 162 |
+
|
| 163 |
+
OLD_DIR=$(pwd)
|
| 164 |
+
cd $RESULT_DIR/$EXP_BASE_NAME
|
| 165 |
+
if [ ! -d pdfs/allot ]; then
|
| 166 |
+
mkdir -p pdfs/allot
|
| 167 |
+
fi
|
| 168 |
+
$OLD_DIR/../data-vis/combine.R \
|
| 169 |
+
--baseline_data_dir $OLD_DIR/../data-vis/data \
|
| 170 |
+
--mxq_data_dir data
|
| 171 |
+
$OLD_DIR/../data-vis/plot-mxq-paired.R data/combined.csv
|
| 172 |
+
$OLD_DIR/../data-vis/plot-mem-consumption.R data/combined.csv
|
| 173 |
+
$OLD_DIR/../data-vis/plot-quant-speed.R data/combined.csv
|
| 174 |
+
$OLD_DIR/../data-vis/gen-table-mxq-llm.R data/combined.csv
|
| 175 |
+
pdflatex table.tex
|
| 176 |
+
|
| 177 |
+
# plot configuration allocations for 3 * 12 MXQ combinations
|
| 178 |
+
MODELS="Llama-2-7b-hf Llama-2-13b-hf"
|
| 179 |
+
BGS="4.13 4.25 4.51"
|
| 180 |
+
for model in $MODELS; do
|
| 181 |
+
for budget in $BGS; do
|
| 182 |
+
$OLD_DIR/../data-vis/plot-mxq-allocation.R \
|
| 183 |
+
-m $model \
|
| 184 |
+
-b $budget \
|
| 185 |
+
--attempt1 $ATTEMPT \
|
| 186 |
+
--attempt2 mxq1 \
|
| 187 |
+
--fnorm_data_dir $OLD_DIR/../src/data \
|
| 188 |
+
--quant_cfg_allot_file data/quant-cfg-allocation.csv
|
| 189 |
+
done
|
| 190 |
+
done
|
lm-quant-toolkit/scripts/experiment-llama2-13b-balanced.sh
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
# BUDGETS="2.13 2.25 2.51 3.13 3.25 3.51 4.13 4.25 4.51"
|
| 4 |
+
BUDGETS="4.13 4.25 4.51"
|
| 5 |
+
RESULT_DIR="/fdata/llm/mxq/results"
|
| 6 |
+
QUANT_SNAPSHOT_DIR="/fdata/llm/mxq/snapshots"
|
| 7 |
+
|
| 8 |
+
MODELS="1"
|
| 9 |
+
ATTEMPT="Llama2-13B-balanced"
|
| 10 |
+
EXP_BASE_NAME=$ATTEMPT
|
| 11 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,qnt,stor}
|
| 12 |
+
|
| 13 |
+
# Use cached dataset to speedup wikitext, c4 ppl evaluation
|
| 14 |
+
export HF_DATASETS_OFFLINE=1
|
| 15 |
+
|
| 16 |
+
weight_algo=sensi-directive
|
| 17 |
+
boost_layers="3 39"
|
| 18 |
+
decline_layers="0"
|
| 19 |
+
EXP_NAME="${ATTEMPT}"
|
| 20 |
+
log_file="logs/bench-$(date +%Y%m%d%H%M%S).log"
|
| 21 |
+
|
| 22 |
+
mkdir -p $QUANT_SNAPSHOT_DIR/$ATTEMPT
|
| 23 |
+
mkdir -p $RESULT_DIR/${EXP_NAME}_ppl
|
| 24 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,stor}/mxq/$ATTEMPT
|
| 25 |
+
|
| 26 |
+
echo "=========Run perplexity evaluation on batch ${EXP_NAME}========="
|
| 27 |
+
python ../src/cli.py llm \
|
| 28 |
+
--task eval_ppl \
|
| 29 |
+
--model $MODELS \
|
| 30 |
+
--algo mxq \
|
| 31 |
+
--weight-algo $weight_algo \
|
| 32 |
+
--boost-layer $boost_layers \
|
| 33 |
+
--decline-layer $decline_layers \
|
| 34 |
+
--config ${BUDGETS} \
|
| 35 |
+
--experiment-name "${EXP_NAME}_ppl" \
|
| 36 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 37 |
+
--result-dir=$RESULT_DIR \
|
| 38 |
+
2>&1 \
|
| 39 |
+
| tee -a $log_file
|
| 40 |
+
EXIT_CODE=$?
|
| 41 |
+
if [ $EXIT_CODE -ne 0 ]; then
|
| 42 |
+
echo "Perplexity evaluation failed!"
|
| 43 |
+
exit $EXIT_CODE
|
| 44 |
+
fi
|
| 45 |
+
echo "=========Collect perplexity evaluation result on batch ${EXP_NAME}========="
|
| 46 |
+
find $RESULT_DIR/${EXP_NAME}_ppl \
|
| 47 |
+
-name "result-*.csv" \
|
| 48 |
+
-printf '%T@ %p\n' \
|
| 49 |
+
| sort -n \
|
| 50 |
+
| tail -1 \
|
| 51 |
+
| cut -d' ' -f2 \
|
| 52 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/ppl/mxq/$ATTEMPT
|
| 53 |
+
|
| 54 |
+
echo "=========Dump quantization configs on batch ${EXP_NAME}========="
|
| 55 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT
|
| 56 |
+
python ../src/cli.py dump \
|
| 57 |
+
--type quant_config \
|
| 58 |
+
--model $MODELS \
|
| 59 |
+
--budget ${BUDGETS} \
|
| 60 |
+
--attempt $ATTEMPT \
|
| 61 |
+
--quant-snapshot-dir=$QUANT_SNAPSHOT_DIR \
|
| 62 |
+
--output-file "$RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT/quant-allot-${EXP_NAME}.csv" \
|
| 63 |
+
2>&1 \
|
| 64 |
+
| tee -a $log_file
|
| 65 |
+
|
| 66 |
+
echo "=========Run memory evaluation on batch ${EXP_NAME}========="
|
| 67 |
+
algo=mxq
|
| 68 |
+
model_ids=$MODELS
|
| 69 |
+
for m in $model_ids; do
|
| 70 |
+
for cfg in ${BUDGETS}; do
|
| 71 |
+
python ../src/cli.py llm \
|
| 72 |
+
--model $m \
|
| 73 |
+
--algo ${algo} \
|
| 74 |
+
--config ${cfg} \
|
| 75 |
+
--task eval_model_storage \
|
| 76 |
+
--experiment-name "${EXP_NAME}_stor" \
|
| 77 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 78 |
+
--result-dir=$RESULT_DIR \
|
| 79 |
+
2>&1 \
|
| 80 |
+
| tee -a $log_file
|
| 81 |
+
done
|
| 82 |
+
done
|
| 83 |
+
echo "=========Collect memory evaluation result on batch ${EXP_NAME}========="
|
| 84 |
+
find $RESULT_DIR/${EXP_NAME}_stor \
|
| 85 |
+
-name "result-*.csv" \
|
| 86 |
+
-printf '%T@ %p\n' \
|
| 87 |
+
| sort -n \
|
| 88 |
+
| tail -1 \
|
| 89 |
+
| cut -d' ' -f2 \
|
| 90 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/stor/mxq/$ATTEMPT
|
| 91 |
+
|
| 92 |
+
# echo "=========Delete quantized models of batch ${batch_name}========="
|
| 93 |
+
# find $QUANT_SNAPSHOT_DIR/$ATTEMPT -maxdepth 1 -type d | xargs rm -fr
|
| 94 |
+
|
| 95 |
+
OLD_DIR=$(pwd)
|
| 96 |
+
cd $RESULT_DIR/$EXP_BASE_NAME
|
| 97 |
+
if [ ! -d pdfs/allot ]; then
|
| 98 |
+
mkdir -p pdfs/allot
|
| 99 |
+
fi
|
| 100 |
+
$OLD_DIR/../data-vis/combine.R \
|
| 101 |
+
--baseline_data_dir $OLD_DIR/../data-vis/data \
|
| 102 |
+
--mxq_data_dir data
|
| 103 |
+
$OLD_DIR/../data-vis/plot-mxq-paired.R data/combined.csv
|
| 104 |
+
$OLD_DIR/../data-vis/plot-mem-consumption.R data/combined.csv
|
| 105 |
+
$OLD_DIR/../data-vis/plot-quant-speed.R data/combined.csv
|
| 106 |
+
$OLD_DIR/../data-vis/gen-table-mxq-llm.R data/combined.csv
|
| 107 |
+
pdflatex table.tex
|
| 108 |
+
|
| 109 |
+
# plot configuration allocations for 3 * 12 MXQ combinations
|
| 110 |
+
MODELS="Llama-2-13b-hf"
|
| 111 |
+
BGS="4.13 4.25 4.51"
|
| 112 |
+
for model in $MODELS; do
|
| 113 |
+
for budget in $BGS; do
|
| 114 |
+
$OLD_DIR/../data-vis/plot-mxq-allocation.R \
|
| 115 |
+
-m $model \
|
| 116 |
+
-b $budget \
|
| 117 |
+
--attempt1 $ATTEMPT \
|
| 118 |
+
--attempt2 mxq1 \
|
| 119 |
+
--fnorm_data_dir $OLD_DIR/../src/data \
|
| 120 |
+
--quant_cfg_allot_file data/quant-cfg-allocation.csv
|
| 121 |
+
done
|
| 122 |
+
done
|
lm-quant-toolkit/scripts/experiment-llama2-13b-boost.sh
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
# BUDGETS="2.13 2.25 2.51 3.13 3.25 3.51 4.13 4.25 4.51"
|
| 4 |
+
BUDGETS="4.13 4.25 4.51"
|
| 5 |
+
RESULT_DIR="/fdata/llm/mxq/results"
|
| 6 |
+
QUANT_SNAPSHOT_DIR="/fdata/llm/mxq/snapshots"
|
| 7 |
+
|
| 8 |
+
MODELS="1"
|
| 9 |
+
ATTEMPT="Llama2-13B-boost"
|
| 10 |
+
EXP_BASE_NAME=$ATTEMPT
|
| 11 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,qnt,stor}
|
| 12 |
+
|
| 13 |
+
# Use cached dataset to speedup wikitext, c4 ppl evaluation
|
| 14 |
+
export HF_DATASETS_OFFLINE=1
|
| 15 |
+
|
| 16 |
+
weight_algo=sensi-directive
|
| 17 |
+
boost_layers="3 39"
|
| 18 |
+
EXP_NAME="${ATTEMPT}"
|
| 19 |
+
log_file="logs/bench-$(date +%Y%m%d%H%M%S).log"
|
| 20 |
+
|
| 21 |
+
mkdir -p $QUANT_SNAPSHOT_DIR/$ATTEMPT
|
| 22 |
+
mkdir -p $RESULT_DIR/${EXP_NAME}_ppl
|
| 23 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,stor}/mxq/$ATTEMPT
|
| 24 |
+
|
| 25 |
+
echo "=========Run perplexity evaluation on batch ${EXP_NAME}========="
|
| 26 |
+
python ../src/cli.py llm \
|
| 27 |
+
--task eval_ppl \
|
| 28 |
+
--model $MODELS \
|
| 29 |
+
--algo mxq \
|
| 30 |
+
--weight-algo $weight_algo \
|
| 31 |
+
--boost-layer $boost_layers \
|
| 32 |
+
--boost-stop 2 \
|
| 33 |
+
--config ${BUDGETS} \
|
| 34 |
+
--experiment-name "${EXP_NAME}_ppl" \
|
| 35 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 36 |
+
--result-dir=$RESULT_DIR \
|
| 37 |
+
2>&1 \
|
| 38 |
+
| tee -a $log_file
|
| 39 |
+
EXIT_CODE=$?
|
| 40 |
+
if [ $EXIT_CODE -ne 0 ]; then
|
| 41 |
+
echo "Perplexity evaluation failed!"
|
| 42 |
+
exit $EXIT_CODE
|
| 43 |
+
fi
|
| 44 |
+
echo "=========Collect perplexity evaluation result on batch ${EXP_NAME}========="
|
| 45 |
+
find $RESULT_DIR/${EXP_NAME}_ppl \
|
| 46 |
+
-name "result-*.csv" \
|
| 47 |
+
-printf '%T@ %p\n' \
|
| 48 |
+
| sort -n \
|
| 49 |
+
| tail -1 \
|
| 50 |
+
| cut -d' ' -f2 \
|
| 51 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/ppl/mxq/$ATTEMPT
|
| 52 |
+
|
| 53 |
+
echo "=========Dump quantization configs on batch ${EXP_NAME}========="
|
| 54 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT
|
| 55 |
+
python ../src/cli.py dump \
|
| 56 |
+
--type quant_config \
|
| 57 |
+
--model $MODELS \
|
| 58 |
+
--budget ${BUDGETS} \
|
| 59 |
+
--attempt $ATTEMPT \
|
| 60 |
+
--quant-snapshot-dir=$QUANT_SNAPSHOT_DIR \
|
| 61 |
+
--output-file "$RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT/quant-allot-${EXP_NAME}.csv" \
|
| 62 |
+
2>&1 \
|
| 63 |
+
| tee -a $log_file
|
| 64 |
+
|
| 65 |
+
echo "=========Run memory evaluation on batch ${EXP_NAME}========="
|
| 66 |
+
algo=mxq
|
| 67 |
+
model_ids=$MODELS
|
| 68 |
+
for m in $model_ids; do
|
| 69 |
+
for cfg in ${BUDGETS}; do
|
| 70 |
+
python ../src/cli.py llm \
|
| 71 |
+
--model $m \
|
| 72 |
+
--algo ${algo} \
|
| 73 |
+
--config ${cfg} \
|
| 74 |
+
--task eval_model_storage \
|
| 75 |
+
--experiment-name "${EXP_NAME}_stor" \
|
| 76 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 77 |
+
--result-dir=$RESULT_DIR \
|
| 78 |
+
2>&1 \
|
| 79 |
+
| tee -a $log_file
|
| 80 |
+
done
|
| 81 |
+
done
|
| 82 |
+
echo "=========Collect memory evaluation result on batch ${EXP_NAME}========="
|
| 83 |
+
find $RESULT_DIR/${EXP_NAME}_stor \
|
| 84 |
+
-name "result-*.csv" \
|
| 85 |
+
-printf '%T@ %p\n' \
|
| 86 |
+
| sort -n \
|
| 87 |
+
| tail -1 \
|
| 88 |
+
| cut -d' ' -f2 \
|
| 89 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/stor/mxq/$ATTEMPT
|
| 90 |
+
|
| 91 |
+
# echo "=========Delete quantized models of batch ${batch_name}========="
|
| 92 |
+
# find $QUANT_SNAPSHOT_DIR/$ATTEMPT -maxdepth 1 -type d | xargs rm -fr
|
| 93 |
+
|
| 94 |
+
OLD_DIR=$(pwd)
|
| 95 |
+
cd $RESULT_DIR/$EXP_BASE_NAME
|
| 96 |
+
if [ ! -d pdfs/allot ]; then
|
| 97 |
+
mkdir -p pdfs/allot
|
| 98 |
+
fi
|
| 99 |
+
$OLD_DIR/../data-vis/combine.R \
|
| 100 |
+
--baseline_data_dir $OLD_DIR/../data-vis/data \
|
| 101 |
+
--mxq_data_dir data
|
| 102 |
+
$OLD_DIR/../data-vis/plot-mxq-paired.R data/combined.csv
|
| 103 |
+
$OLD_DIR/../data-vis/plot-mem-consumption.R data/combined.csv
|
| 104 |
+
$OLD_DIR/../data-vis/plot-quant-speed.R data/combined.csv
|
| 105 |
+
$OLD_DIR/../data-vis/gen-table-mxq-llm.R data/combined.csv
|
| 106 |
+
pdflatex table.tex
|
| 107 |
+
|
| 108 |
+
# plot configuration allocations for 3 * 12 MXQ combinations
|
| 109 |
+
MODELS="Llama-2-13b-hf"
|
| 110 |
+
BGS="4.13 4.25 4.51"
|
| 111 |
+
for model in $MODELS; do
|
| 112 |
+
for budget in $BGS; do
|
| 113 |
+
$OLD_DIR/../data-vis/plot-mxq-allocation.R \
|
| 114 |
+
-m $model \
|
| 115 |
+
-b $budget \
|
| 116 |
+
--attempt1 $ATTEMPT \
|
| 117 |
+
--attempt2 mxq1 \
|
| 118 |
+
--fnorm_data_dir $OLD_DIR/../src/data \
|
| 119 |
+
--quant_cfg_allot_file data/quant-cfg-allocation.csv
|
| 120 |
+
done
|
| 121 |
+
done
|
lm-quant-toolkit/scripts/experiment-llama3-8b-aggressive-reduction.sh
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
# BUDGETS="2.13 2.25 2.51 3.13 3.25 3.51 4.13 4.25 4.51"
|
| 4 |
+
BUDGETS="4.13 4.25 4.51"
|
| 5 |
+
RESULT_DIR="/fdata/llm/mxq/results"
|
| 6 |
+
QUANT_SNAPSHOT_DIR="/fdata/llm/mxq/snapshots"
|
| 7 |
+
|
| 8 |
+
MODELS="2"
|
| 9 |
+
ATTEMPT="Llama3-8B-aggressive"
|
| 10 |
+
EXP_BASE_NAME=$ATTEMPT
|
| 11 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,qnt,stor}
|
| 12 |
+
|
| 13 |
+
# Use cached dataset to speedup wikitext, c4 ppl evaluation
|
| 14 |
+
export HF_DATASETS_OFFLINE=1
|
| 15 |
+
|
| 16 |
+
weight_algo=sensi-directive
|
| 17 |
+
boost_layers="31 30"
|
| 18 |
+
decline_layers="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29"
|
| 19 |
+
EXP_NAME="${ATTEMPT}"
|
| 20 |
+
log_file="logs/bench-$(date +%Y%m%d%H%M%S).log"
|
| 21 |
+
|
| 22 |
+
mkdir -p $QUANT_SNAPSHOT_DIR/$ATTEMPT
|
| 23 |
+
mkdir -p $RESULT_DIR/${EXP_NAME}_ppl
|
| 24 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,stor}/mxq/$ATTEMPT
|
| 25 |
+
|
| 26 |
+
echo "=========Run perplexity evaluation on batch ${EXP_NAME}========="
|
| 27 |
+
python ../src/cli.py llm \
|
| 28 |
+
--task eval_ppl \
|
| 29 |
+
--model $MODELS \
|
| 30 |
+
--algo mxq \
|
| 31 |
+
--weight-algo $weight_algo \
|
| 32 |
+
--boost-layer $boost_layers \
|
| 33 |
+
--decline-layer $decline_layers \
|
| 34 |
+
--config ${BUDGETS} \
|
| 35 |
+
--experiment-name "${EXP_NAME}_ppl" \
|
| 36 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 37 |
+
--result-dir=$RESULT_DIR \
|
| 38 |
+
2>&1 \
|
| 39 |
+
| tee -a $log_file
|
| 40 |
+
EXIT_CODE=$?
|
| 41 |
+
if [ $EXIT_CODE -ne 0 ]; then
|
| 42 |
+
echo "Perplexity evaluation failed!"
|
| 43 |
+
exit $EXIT_CODE
|
| 44 |
+
fi
|
| 45 |
+
echo "=========Collect perplexity evaluation result on batch ${EXP_NAME}========="
|
| 46 |
+
find $RESULT_DIR/${EXP_NAME}_ppl \
|
| 47 |
+
-name "result-*.csv" \
|
| 48 |
+
-printf '%T@ %p\n' \
|
| 49 |
+
| sort -n \
|
| 50 |
+
| tail -1 \
|
| 51 |
+
| cut -d' ' -f2 \
|
| 52 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/ppl/mxq/$ATTEMPT
|
| 53 |
+
|
| 54 |
+
echo "=========Dump quantization configs on batch ${EXP_NAME}========="
|
| 55 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT
|
| 56 |
+
python ../src/cli.py dump \
|
| 57 |
+
--type quant_config \
|
| 58 |
+
--model $MODELS \
|
| 59 |
+
--budget ${BUDGETS} \
|
| 60 |
+
--attempt $ATTEMPT \
|
| 61 |
+
--quant-snapshot-dir=$QUANT_SNAPSHOT_DIR \
|
| 62 |
+
--output-file "$RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT/quant-allot-${EXP_NAME}.csv" \
|
| 63 |
+
2>&1 \
|
| 64 |
+
| tee -a $log_file
|
| 65 |
+
|
| 66 |
+
echo "=========Run memory evaluation on batch ${EXP_NAME}========="
|
| 67 |
+
algo=mxq
|
| 68 |
+
model_ids=$MODELS
|
| 69 |
+
for m in $model_ids; do
|
| 70 |
+
for cfg in ${BUDGETS}; do
|
| 71 |
+
python ../src/cli.py llm \
|
| 72 |
+
--model $m \
|
| 73 |
+
--algo ${algo} \
|
| 74 |
+
--config ${cfg} \
|
| 75 |
+
--task eval_model_storage \
|
| 76 |
+
--experiment-name "${EXP_NAME}_stor" \
|
| 77 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 78 |
+
--result-dir=$RESULT_DIR \
|
| 79 |
+
2>&1 \
|
| 80 |
+
| tee -a $log_file
|
| 81 |
+
done
|
| 82 |
+
done
|
| 83 |
+
echo "=========Collect memory evaluation result on batch ${EXP_NAME}========="
|
| 84 |
+
find $RESULT_DIR/${EXP_NAME}_stor \
|
| 85 |
+
-name "result-*.csv" \
|
| 86 |
+
-printf '%T@ %p\n' \
|
| 87 |
+
| sort -n \
|
| 88 |
+
| tail -1 \
|
| 89 |
+
| cut -d' ' -f2 \
|
| 90 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/stor/mxq/$ATTEMPT
|
| 91 |
+
|
| 92 |
+
# echo "=========Delete quantized models of batch ${batch_name}========="
|
| 93 |
+
# find $QUANT_SNAPSHOT_DIR/$ATTEMPT -maxdepth 1 -type d | xargs rm -fr
|
| 94 |
+
|
| 95 |
+
OLD_DIR=$(pwd)
|
| 96 |
+
cd $RESULT_DIR/$EXP_BASE_NAME
|
| 97 |
+
if [ ! -d pdfs/allot ]; then
|
| 98 |
+
mkdir -p pdfs/allot
|
| 99 |
+
fi
|
| 100 |
+
$OLD_DIR/../data-vis/combine.R \
|
| 101 |
+
--baseline_data_dir $OLD_DIR/../data-vis/data \
|
| 102 |
+
--mxq_data_dir data
|
| 103 |
+
$OLD_DIR/../data-vis/plot-mxq-paired.R data/combined.csv
|
| 104 |
+
$OLD_DIR/../data-vis/plot-mem-consumption.R data/combined.csv
|
| 105 |
+
$OLD_DIR/../data-vis/plot-quant-speed.R data/combined.csv
|
| 106 |
+
$OLD_DIR/../data-vis/gen-table-mxq-llm.R data/combined.csv
|
| 107 |
+
pdflatex table.tex
|
| 108 |
+
|
| 109 |
+
# plot configuration allocations for 3 * 12 MXQ combinations
|
| 110 |
+
MODELS="Meta-Llama-3-8B"
|
| 111 |
+
BGS="4.13 4.25 4.51"
|
| 112 |
+
for model in $MODELS; do
|
| 113 |
+
for budget in $BGS; do
|
| 114 |
+
$OLD_DIR/../data-vis/plot-mxq-allocation.R \
|
| 115 |
+
-m $model \
|
| 116 |
+
-b $budget \
|
| 117 |
+
--attempt1 $ATTEMPT \
|
| 118 |
+
--attempt2 mxq1 \
|
| 119 |
+
--fnorm_data_dir $OLD_DIR/../src/data \
|
| 120 |
+
--quant_cfg_allot_file data/quant-cfg-allocation.csv
|
| 121 |
+
done
|
| 122 |
+
done
|
lm-quant-toolkit/scripts/experiment-sensi-milp-mini-batch.sh
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
|
| 4 |
+
# 100%, 99%, 98%, 97%, 96%, 95% of [3.51, 4.25]
|
| 5 |
+
# MXQ2=(minibatch 3.51 3.47 3.44 3.40 3.37 3.33 4.25 4.21 4.17 4.12 4.08 4.04)
|
| 6 |
+
MXQ2=(minibatch 6.89 5.72 5.02 4.51 4.25 4.21 4.17 4.13 4.11 4.07 3.95 3.87 3.83 3.65 3.51 3.25 3.19 3.15 3.13 3.11 3.07)
|
| 7 |
+
MXQ_BATCHES=(MXQ2)
|
| 8 |
+
declare -n MXQ_BATCH
|
| 9 |
+
|
| 10 |
+
ATTEMPT="sensi-milp-mini2"
|
| 11 |
+
RESULT_DIR="/fdata/llm/mxq/results"
|
| 12 |
+
QUANT_SNAPSHOT_DIR="/fdata/llm/mxq/snapshots"
|
| 13 |
+
EXP_BASE_NAME="${ATTEMPT}"
|
| 14 |
+
QUANT_SNAPSHOT_DIR="/fdata/llm/mxq/snapshots"
|
| 15 |
+
# Setup data files directories for reporting
|
| 16 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,qnt,stor}
|
| 17 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,stor}/mxq/$ATTEMPT
|
| 18 |
+
mkdir -p $QUANT_SNAPSHOT_DIR/$ATTEMPT
|
| 19 |
+
|
| 20 |
+
weight_algo=sensi-milp
|
| 21 |
+
|
| 22 |
+
for MXQ_BATCH in "${MXQ_BATCHES[@]}"; do
|
| 23 |
+
batch_name=${MXQ_BATCH[@]:0:1}
|
| 24 |
+
EXP_NAME="${EXP_BASE_NAME}-${batch_name}"
|
| 25 |
+
mkdir -p $RESULT_DIR/${EXP_NAME}_ppl
|
| 26 |
+
mkdir -p $RESULT_DIR/${EXP_NAME}_stor
|
| 27 |
+
log_file="logs/bench-${EXP_NAME}-$(date +%Y%m%d%H%M%S).log"
|
| 28 |
+
|
| 29 |
+
echo "=========Run perplexity evaluation on batch ${batch_name}========="
|
| 30 |
+
python ../src/cli.py llm \
|
| 31 |
+
--task eval_ppl \
|
| 32 |
+
--model 0 1 2 \
|
| 33 |
+
--algo mxq \
|
| 34 |
+
--weight-algo ${weight_algo} \
|
| 35 |
+
--config ${MXQ_BATCH[@]:1} \
|
| 36 |
+
--experiment-name "${EXP_NAME}_ppl" \
|
| 37 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 38 |
+
--result-dir=$RESULT_DIR \
|
| 39 |
+
2>&1 \
|
| 40 |
+
| tee -a $log_file
|
| 41 |
+
EXIT_CODE=$?
|
| 42 |
+
if [ $EXIT_CODE -ne 0 ]; then
|
| 43 |
+
echo "Perplexity evaluation failed!"
|
| 44 |
+
exit $EXIT_CODE
|
| 45 |
+
fi
|
| 46 |
+
echo "=========Collect perplexity evaluation result on batch ${batch_name}========="
|
| 47 |
+
find $RESULT_DIR/${EXP_NAME}_ppl \
|
| 48 |
+
-name "result-*.csv" \
|
| 49 |
+
-printf '%T@ %p\n' \
|
| 50 |
+
| sort -n \
|
| 51 |
+
| tail -1 \
|
| 52 |
+
| cut -d' ' -f2 \
|
| 53 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/ppl/mxq/$ATTEMPT
|
| 54 |
+
|
| 55 |
+
echo "=========Dump quantization configs on batch ${batch_name}========="
|
| 56 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT
|
| 57 |
+
python ../src/cli.py dump \
|
| 58 |
+
--type quant_config \
|
| 59 |
+
--model 0 1 2 \
|
| 60 |
+
--budget ${MXQ_BATCH[@]:1} \
|
| 61 |
+
--attempt $ATTEMPT \
|
| 62 |
+
--quant-snapshot-dir=$QUANT_SNAPSHOT_DIR \
|
| 63 |
+
--output-file "$RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT/quant-allot-${EXP_NAME}.csv" \
|
| 64 |
+
2>&1 \
|
| 65 |
+
| tee -a $log_file
|
| 66 |
+
|
| 67 |
+
echo "=========Run memory evaluation on batch ${batch_name}========="
|
| 68 |
+
algo=mxq
|
| 69 |
+
model_ids="0 1 2"
|
| 70 |
+
for m in $model_ids; do
|
| 71 |
+
for cfg in "${MXQ_BATCH[@]:1}"; do
|
| 72 |
+
python ../src/cli.py llm \
|
| 73 |
+
--model $m \
|
| 74 |
+
--algo ${algo} \
|
| 75 |
+
--config ${cfg} \
|
| 76 |
+
--task eval_model_storage \
|
| 77 |
+
--experiment-name "${EXP_NAME}_stor" \
|
| 78 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 79 |
+
--result-dir=$RESULT_DIR \
|
| 80 |
+
2>&1 \
|
| 81 |
+
| tee -a $log_file
|
| 82 |
+
done
|
| 83 |
+
done
|
| 84 |
+
echo "=========Collect memory evaluation result on batch ${batch_name}========="
|
| 85 |
+
find $RESULT_DIR/${EXP_NAME}_stor \
|
| 86 |
+
-name "result-*.csv" \
|
| 87 |
+
-printf '%T@ %p\n' \
|
| 88 |
+
| sort -n \
|
| 89 |
+
| tail -1 \
|
| 90 |
+
| cut -d' ' -f2 \
|
| 91 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/stor/mxq/$ATTEMPT
|
| 92 |
+
|
| 93 |
+
|
| 94 |
+
# echo "=========Delete quantized models of batch ${batch_name}========="
|
| 95 |
+
# find $QUANT_SNAPSHOT_DIR/$ATTEMPT -maxdepth 1 -type d | xargs rm -fr
|
| 96 |
+
|
| 97 |
+
OLD_DIR=$(pwd)
|
| 98 |
+
cd $RESULT_DIR/$EXP_BASE_NAME
|
| 99 |
+
if [ ! -d pdfs ]; then
|
| 100 |
+
mkdir pdfs
|
| 101 |
+
fi
|
| 102 |
+
$OLD_DIR/../data-vis/combine.R \
|
| 103 |
+
--baseline_data_dir $OLD_DIR/../data-vis/data \
|
| 104 |
+
--mxq_data_dir data
|
| 105 |
+
$OLD_DIR/../data-vis/plot-ppl-mem.R -d data/combined.csv
|
| 106 |
+
$OLD_DIR/../data-vis/plot-mem-consumption.R -d data/combined.csv
|
| 107 |
+
$OLD_DIR/../data-vis/plot-quant-speed.R -d data/combined.csv
|
| 108 |
+
$OLD_DIR/../data-vis/gen-table-mxq-llm.R --csv_file data/combined.csv --attempt $ATTEMPT
|
| 109 |
+
cd pdfs
|
| 110 |
+
pdflatex table.tex
|
| 111 |
+
cd ..
|
| 112 |
+
|
| 113 |
+
# plot configuration allocations for 3 * 12 MXQ combinations
|
| 114 |
+
MODELS="Llama-2-7b-hf Llama-2-13b-hf Meta-Llama-3-8B"
|
| 115 |
+
BUDGETS=${MXQ_BATCH[@]:1}
|
| 116 |
+
for model in $MODELS; do
|
| 117 |
+
for budget in $BUDGETS; do
|
| 118 |
+
$OLD_DIR/../data-vis/plot-mxq-allocation.R \
|
| 119 |
+
-m $model \
|
| 120 |
+
-b $budget \
|
| 121 |
+
--fnorm_data_dir $OLD_DIR/../src/data \
|
| 122 |
+
--attempt1 mxq1 \
|
| 123 |
+
--attempt2 $ATTEMPT \
|
| 124 |
+
--quant_cfg_allot_file data/quant-cfg-allocation.csv
|
| 125 |
+
done
|
| 126 |
+
done
|
| 127 |
+
cd $OLD_DIR
|
| 128 |
+
done
|
lm-quant-toolkit/scripts/experiment-tail-2-4.sh
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
HEADS=(head-prioritized 1.05 1.10 1.15 1.20)
|
| 4 |
+
# TAILS=(tail-prioritized 1.05 1.10 1.15 1.20)
|
| 5 |
+
TAILS=(tail-prioritized 2.00 4.00)
|
| 6 |
+
# MXQ_BATCHES=(HEADS TAILS)
|
| 7 |
+
MXQ_BATCHES=(TAILS)
|
| 8 |
+
declare -n MXQ_BATCH
|
| 9 |
+
|
| 10 |
+
# BUDGETS="2.13 2.25 2.51 3.13 3.25 3.51 4.13 4.25 4.51"
|
| 11 |
+
BUDGETS="4.13 4.25 4.51"
|
| 12 |
+
RESULT_DIR="/fdata/llm/mxq/results"
|
| 13 |
+
QUANT_SNAPSHOT_DIR="/fdata/llm/mxq/snapshots"
|
| 14 |
+
|
| 15 |
+
# --config ${MXQ_BATCH[@]:1}
|
| 16 |
+
|
| 17 |
+
EXP_BASE_NAME="tail-big-factor"
|
| 18 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,qnt,stor}
|
| 19 |
+
|
| 20 |
+
# Use cached dataset to speedup wikitext, c4 ppl evaluation
|
| 21 |
+
export HF_DATASETS_OFFLINE=1
|
| 22 |
+
|
| 23 |
+
for MXQ_BATCH in "${MXQ_BATCHES[@]}"; do
|
| 24 |
+
weight_algo=${MXQ_BATCH[@]:0:1}
|
| 25 |
+
for factor in ${MXQ_BATCH[@]:1}; do
|
| 26 |
+
ATTEMPT="${weight_algo}_${factor/./_}"
|
| 27 |
+
EXP_NAME="${ATTEMPT}"
|
| 28 |
+
log_file="logs/bench-$(date +%Y%m%d%H%M%S).log"
|
| 29 |
+
|
| 30 |
+
mkdir -p $QUANT_SNAPSHOT_DIR/$ATTEMPT
|
| 31 |
+
mkdir -p $RESULT_DIR/${EXP_NAME}_ppl
|
| 32 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,stor}/mxq/$ATTEMPT
|
| 33 |
+
|
| 34 |
+
# echo "=========Run perplexity evaluation on batch ${EXP_NAME}========="
|
| 35 |
+
# python ../src/cli.py llm \
|
| 36 |
+
# --task eval_ppl \
|
| 37 |
+
# --model 0 1 2 \
|
| 38 |
+
# --algo mxq \
|
| 39 |
+
# --weight-algo $weight_algo \
|
| 40 |
+
# --factor $factor \
|
| 41 |
+
# --config ${BUDGETS} \
|
| 42 |
+
# --experiment-name "${EXP_NAME}_ppl" \
|
| 43 |
+
# --quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 44 |
+
# --result-dir=$RESULT_DIR \
|
| 45 |
+
# 2>&1 \
|
| 46 |
+
# | tee -a $log_file
|
| 47 |
+
# EXIT_CODE=$?
|
| 48 |
+
# if [ $EXIT_CODE -ne 0 ]; then
|
| 49 |
+
# echo "Perplexity evaluation failed!"
|
| 50 |
+
# exit $EXIT_CODE
|
| 51 |
+
# fi
|
| 52 |
+
# echo "=========Collect perplexity evaluation result on batch ${EXP_NAME}========="
|
| 53 |
+
# find $RESULT_DIR/${EXP_NAME}_ppl \
|
| 54 |
+
# -name "result-*.csv" \
|
| 55 |
+
# -printf '%T@ %p\n' \
|
| 56 |
+
# | sort -n \
|
| 57 |
+
# | tail -1 \
|
| 58 |
+
# | cut -d' ' -f2 \
|
| 59 |
+
# | xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/ppl/mxq/$ATTEMPT
|
| 60 |
+
|
| 61 |
+
echo "=========Dump quantization configs on batch ${EXP_NAME}========="
|
| 62 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT
|
| 63 |
+
python ../src/cli.py dump \
|
| 64 |
+
--type quant_config \
|
| 65 |
+
--model 0 1 2 \
|
| 66 |
+
--budget ${BUDGETS} \
|
| 67 |
+
--attempt $ATTEMPT \
|
| 68 |
+
--quant-snapshot-dir=$QUANT_SNAPSHOT_DIR \
|
| 69 |
+
--output-file "$RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT/quant-allot-${EXP_NAME}.csv" \
|
| 70 |
+
2>&1 \
|
| 71 |
+
| tee -a $log_file
|
| 72 |
+
|
| 73 |
+
# echo "=========Run memory evaluation on batch ${EXP_NAME}========="
|
| 74 |
+
# algo=mxq
|
| 75 |
+
# #model_ids="0 1 2"
|
| 76 |
+
# model_ids="0"
|
| 77 |
+
# for m in $model_ids; do
|
| 78 |
+
# for cfg in ${BUDGETS}; do
|
| 79 |
+
# python ../src/cli.py llm \
|
| 80 |
+
# --model $m \
|
| 81 |
+
# --algo ${algo} \
|
| 82 |
+
# --config ${cfg} \
|
| 83 |
+
# --task eval_model_storage \
|
| 84 |
+
# --experiment-name "${EXP_NAME}_stor" \
|
| 85 |
+
# --quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 86 |
+
# --result-dir=$RESULT_DIR \
|
| 87 |
+
# 2>&1 \
|
| 88 |
+
# | tee -a $log_file
|
| 89 |
+
# done
|
| 90 |
+
# done
|
| 91 |
+
# echo "=========Collect memory evaluation result on batch ${EXP_NAME}========="
|
| 92 |
+
# find $RESULT_DIR/${EXP_NAME}_stor \
|
| 93 |
+
# -name "result-*.csv" \
|
| 94 |
+
# -printf '%T@ %p\n' \
|
| 95 |
+
# | sort -n \
|
| 96 |
+
# | tail -1 \
|
| 97 |
+
# | cut -d' ' -f2 \
|
| 98 |
+
# | xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/stor/mxq/$ATTEMPT
|
| 99 |
+
|
| 100 |
+
done
|
| 101 |
+
|
| 102 |
+
|
| 103 |
+
# echo "=========Delete quantized models of batch ${batch_name}========="
|
| 104 |
+
# find $QUANT_SNAPSHOT_DIR/$ATTEMPT -maxdepth 1 -type d | xargs rm -fr
|
| 105 |
+
done
|
| 106 |
+
|
| 107 |
+
OLD_DIR=$(pwd)
|
| 108 |
+
cd $RESULT_DIR/$EXP_BASE_NAME
|
| 109 |
+
if [ ! -d pdfs/allot ]; then
|
| 110 |
+
mkdir -p pdfs/allot
|
| 111 |
+
fi
|
| 112 |
+
$OLD_DIR/../data-vis/combine.R \
|
| 113 |
+
--baseline_data_dir $OLD_DIR/../data-vis/data \
|
| 114 |
+
--mxq_data_dir data
|
| 115 |
+
$OLD_DIR/../data-vis/plot-mxq-paired.R data/combined.csv
|
| 116 |
+
$OLD_DIR/../data-vis/plot-mem-consumption.R data/combined.csv
|
| 117 |
+
$OLD_DIR/../data-vis/plot-quant-speed.R data/combined.csv
|
| 118 |
+
$OLD_DIR/../data-vis/gen-table-mxq-llm.R data/combined.csv
|
| 119 |
+
pdflatex table.tex
|
| 120 |
+
|
| 121 |
+
# plot configuration allocations for 3 * 12 MXQ combinations
|
| 122 |
+
# MODELS="Llama-2-7b-hf Llama-2-13b-hf Meta-Llama-3-8B"
|
| 123 |
+
MODELS="Llama-2-7b-hf"
|
| 124 |
+
BGS="4.13 4.25 4.51"
|
| 125 |
+
for model in $MODELS; do
|
| 126 |
+
for budget in $BGS; do
|
| 127 |
+
$OLD_DIR/../data-vis/plot-mxq-allocation.R \
|
| 128 |
+
-m $model \
|
| 129 |
+
-b $budget \
|
| 130 |
+
--attempt1 tail-prioritized_2_00 \
|
| 131 |
+
--attempt2 tail-prioritized_4_00 \
|
| 132 |
+
--fnorm_data_dir $OLD_DIR/../src/data \
|
| 133 |
+
--quant_cfg_allot_file data/quant-cfg-allocation.csv
|
| 134 |
+
done
|
| 135 |
+
done
|
lm-quant-toolkit/scripts/experiment-tail-boost.sh
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
# BUDGETS="2.13 2.25 2.51 3.13 3.25 3.51 4.13 4.25 4.51"
|
| 4 |
+
BUDGETS="4.13 4.25 4.51"
|
| 5 |
+
RESULT_DIR="/fdata/llm/mxq/results"
|
| 6 |
+
QUANT_SNAPSHOT_DIR="/fdata/llm/mxq/snapshots"
|
| 7 |
+
|
| 8 |
+
EXP_BASE_NAME="tail-boost"
|
| 9 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,qnt,stor}
|
| 10 |
+
|
| 11 |
+
# Use cached dataset to speedup wikitext, c4 ppl evaluation
|
| 12 |
+
export HF_DATASETS_OFFLINE=1
|
| 13 |
+
|
| 14 |
+
weight_algo=tail_boost
|
| 15 |
+
ATTEMPT="${weight_algo}"
|
| 16 |
+
EXP_NAME="${ATTEMPT}"
|
| 17 |
+
log_file="logs/bench-$(date +%Y%m%d%H%M%S).log"
|
| 18 |
+
|
| 19 |
+
mkdir -p $QUANT_SNAPSHOT_DIR/$ATTEMPT
|
| 20 |
+
mkdir -p $RESULT_DIR/${EXP_NAME}_ppl
|
| 21 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,stor}/mxq/$ATTEMPT
|
| 22 |
+
|
| 23 |
+
echo "=========Run perplexity evaluation on batch ${EXP_NAME}========="
|
| 24 |
+
python ../src/cli.py llm \
|
| 25 |
+
--task eval_ppl \
|
| 26 |
+
--model 0 1 2 \
|
| 27 |
+
--algo mxq \
|
| 28 |
+
--weight-algo $weight_algo \
|
| 29 |
+
--config ${BUDGETS} \
|
| 30 |
+
--experiment-name "${EXP_NAME}_ppl" \
|
| 31 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 32 |
+
--result-dir=$RESULT_DIR \
|
| 33 |
+
2>&1 \
|
| 34 |
+
| tee -a $log_file
|
| 35 |
+
EXIT_CODE=$?
|
| 36 |
+
if [ $EXIT_CODE -ne 0 ]; then
|
| 37 |
+
echo "Perplexity evaluation failed!"
|
| 38 |
+
exit $EXIT_CODE
|
| 39 |
+
fi
|
| 40 |
+
echo "=========Collect perplexity evaluation result on batch ${EXP_NAME}========="
|
| 41 |
+
find $RESULT_DIR/${EXP_NAME}_ppl \
|
| 42 |
+
-name "result-*.csv" \
|
| 43 |
+
-printf '%T@ %p\n' \
|
| 44 |
+
| sort -n \
|
| 45 |
+
| tail -1 \
|
| 46 |
+
| cut -d' ' -f2 \
|
| 47 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/ppl/mxq/$ATTEMPT
|
| 48 |
+
|
| 49 |
+
echo "=========Dump quantization configs on batch ${EXP_NAME}========="
|
| 50 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT
|
| 51 |
+
python ../src/cli.py dump \
|
| 52 |
+
--type quant_config \
|
| 53 |
+
--model 0 1 2 \
|
| 54 |
+
--budget ${BUDGETS} \
|
| 55 |
+
--attempt $ATTEMPT \
|
| 56 |
+
--quant-snapshot-dir=$QUANT_SNAPSHOT_DIR \
|
| 57 |
+
--output-file "$RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT/quant-allot-${EXP_NAME}.csv" \
|
| 58 |
+
2>&1 \
|
| 59 |
+
| tee -a $log_file
|
| 60 |
+
|
| 61 |
+
echo "=========Run memory evaluation on batch ${EXP_NAME}========="
|
| 62 |
+
algo=mxq
|
| 63 |
+
model_ids="0 1 2"
|
| 64 |
+
for m in $model_ids; do
|
| 65 |
+
for cfg in ${BUDGETS}; do
|
| 66 |
+
python ../src/cli.py llm \
|
| 67 |
+
--model $m \
|
| 68 |
+
--algo ${algo} \
|
| 69 |
+
--config ${cfg} \
|
| 70 |
+
--task eval_model_storage \
|
| 71 |
+
--experiment-name "${EXP_NAME}_stor" \
|
| 72 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 73 |
+
--result-dir=$RESULT_DIR \
|
| 74 |
+
2>&1 \
|
| 75 |
+
| tee -a $log_file
|
| 76 |
+
done
|
| 77 |
+
done
|
| 78 |
+
echo "=========Collect memory evaluation result on batch ${EXP_NAME}========="
|
| 79 |
+
find $RESULT_DIR/${EXP_NAME}_stor \
|
| 80 |
+
-name "result-*.csv" \
|
| 81 |
+
-printf '%T@ %p\n' \
|
| 82 |
+
| sort -n \
|
| 83 |
+
| tail -1 \
|
| 84 |
+
| cut -d' ' -f2 \
|
| 85 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/stor/mxq/$ATTEMPT
|
| 86 |
+
|
| 87 |
+
# echo "=========Delete quantized models of batch ${batch_name}========="
|
| 88 |
+
# find $QUANT_SNAPSHOT_DIR/$ATTEMPT -maxdepth 1 -type d | xargs rm -fr
|
| 89 |
+
|
| 90 |
+
OLD_DIR=$(pwd)
|
| 91 |
+
cd $RESULT_DIR/$EXP_BASE_NAME
|
| 92 |
+
if [ ! -d pdfs/allot ]; then
|
| 93 |
+
mkdir -p pdfs/allot
|
| 94 |
+
fi
|
| 95 |
+
$OLD_DIR/../data-vis/combine.R \
|
| 96 |
+
--baseline_data_dir $OLD_DIR/../data-vis/data \
|
| 97 |
+
--mxq_data_dir data
|
| 98 |
+
$OLD_DIR/../data-vis/plot-mxq-paired.R data/combined.csv
|
| 99 |
+
$OLD_DIR/../data-vis/plot-mem-consumption.R data/combined.csv
|
| 100 |
+
$OLD_DIR/../data-vis/plot-quant-speed.R data/combined.csv
|
| 101 |
+
$OLD_DIR/../data-vis/gen-table-mxq-llm.R data/combined.csv
|
| 102 |
+
pdflatex table.tex
|
| 103 |
+
|
| 104 |
+
# plot configuration allocations for 3 * 12 MXQ combinations
|
| 105 |
+
MODELS="Llama-2-7b-hf Llama-2-13b-hf Meta-Llama-3-8B"
|
| 106 |
+
BGS="4.13 4.25 4.51"
|
| 107 |
+
for model in $MODELS; do
|
| 108 |
+
for budget in $BGS; do
|
| 109 |
+
$OLD_DIR/../data-vis/plot-mxq-allocation.R \
|
| 110 |
+
-m $model \
|
| 111 |
+
-b $budget \
|
| 112 |
+
--attempt1 tail_boost \
|
| 113 |
+
--attempt2 mxq1 \
|
| 114 |
+
--fnorm_data_dir $OLD_DIR/../src/data \
|
| 115 |
+
--quant_cfg_allot_file data/quant-cfg-allocation.csv
|
| 116 |
+
done
|
| 117 |
+
done
|
lm-quant-toolkit/scripts/experiment-tail-reduction.sh
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
# BUDGETS="2.13 2.25 2.51 3.13 3.25 3.51 4.13 4.25 4.51"
|
| 4 |
+
BUDGETS="4.13 4.25 4.51"
|
| 5 |
+
RESULT_DIR="/fdata/llm/mxq/results"
|
| 6 |
+
QUANT_SNAPSHOT_DIR="/fdata/llm/mxq/snapshots"
|
| 7 |
+
|
| 8 |
+
EXP_BASE_NAME="tail-reduction"
|
| 9 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,qnt,stor}
|
| 10 |
+
|
| 11 |
+
# Use cached dataset to speedup wikitext, c4 ppl evaluation
|
| 12 |
+
export HF_DATASETS_OFFLINE=1
|
| 13 |
+
|
| 14 |
+
weight_algo=tail_boost
|
| 15 |
+
ATTEMPT="${EXP_BASE_NAME}"
|
| 16 |
+
EXP_NAME="${ATTEMPT}"
|
| 17 |
+
log_file="logs/bench-$(date +%Y%m%d%H%M%S).log"
|
| 18 |
+
|
| 19 |
+
mkdir -p $QUANT_SNAPSHOT_DIR/$ATTEMPT
|
| 20 |
+
mkdir -p $RESULT_DIR/${EXP_NAME}_ppl
|
| 21 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,stor}/mxq/$ATTEMPT
|
| 22 |
+
|
| 23 |
+
echo "=========Run perplexity evaluation on batch ${EXP_NAME}========="
|
| 24 |
+
python ../src/cli.py llm \
|
| 25 |
+
--task eval_ppl \
|
| 26 |
+
--model 0 1 2 \
|
| 27 |
+
--algo mxq \
|
| 28 |
+
--weight-algo $weight_algo \
|
| 29 |
+
--factor -1 \
|
| 30 |
+
--config ${BUDGETS} \
|
| 31 |
+
--experiment-name "${EXP_NAME}_ppl" \
|
| 32 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 33 |
+
--result-dir=$RESULT_DIR \
|
| 34 |
+
2>&1 \
|
| 35 |
+
| tee -a $log_file
|
| 36 |
+
EXIT_CODE=$?
|
| 37 |
+
if [ $EXIT_CODE -ne 0 ]; then
|
| 38 |
+
echo "Perplexity evaluation failed!"
|
| 39 |
+
exit $EXIT_CODE
|
| 40 |
+
fi
|
| 41 |
+
echo "=========Collect perplexity evaluation result on batch ${EXP_NAME}========="
|
| 42 |
+
# find $RESULT_DIR/${EXP_NAME}_ppl \
|
| 43 |
+
# -name "result-*.csv" \
|
| 44 |
+
# -printf '%T@ %p\n' \
|
| 45 |
+
# | sort -n \
|
| 46 |
+
# | tail -1 \
|
| 47 |
+
# | cut -d' ' -f2 \
|
| 48 |
+
# | xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/ppl/mxq/$ATTEMPT
|
| 49 |
+
#
|
| 50 |
+
# echo "=========Dump quantization configs on batch ${EXP_NAME}========="
|
| 51 |
+
# mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT
|
| 52 |
+
# python ../src/cli.py dump \
|
| 53 |
+
# --type quant_config \
|
| 54 |
+
# --model 0 1 2 \
|
| 55 |
+
# --budget ${BUDGETS} \
|
| 56 |
+
# --attempt $ATTEMPT \
|
| 57 |
+
# --quant-snapshot-dir=$QUANT_SNAPSHOT_DIR \
|
| 58 |
+
# --output-file "$RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT/quant-allot-${EXP_NAME}.csv" \
|
| 59 |
+
# 2>&1 \
|
| 60 |
+
# | tee -a $log_file
|
| 61 |
+
#
|
| 62 |
+
# echo "=========Run memory evaluation on batch ${EXP_NAME}========="
|
| 63 |
+
# algo=mxq
|
| 64 |
+
# model_ids="0 1 2"
|
| 65 |
+
# for m in $model_ids; do
|
| 66 |
+
# for cfg in ${BUDGETS}; do
|
| 67 |
+
# python ../src/cli.py llm \
|
| 68 |
+
# --model $m \
|
| 69 |
+
# --algo ${algo} \
|
| 70 |
+
# --config ${cfg} \
|
| 71 |
+
# --task eval_model_storage \
|
| 72 |
+
# --experiment-name "${EXP_NAME}_stor" \
|
| 73 |
+
# --quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 74 |
+
# --result-dir=$RESULT_DIR \
|
| 75 |
+
# 2>&1 \
|
| 76 |
+
# | tee -a $log_file
|
| 77 |
+
# done
|
| 78 |
+
# done
|
| 79 |
+
# echo "=========Collect memory evaluation result on batch ${EXP_NAME}========="
|
| 80 |
+
# find $RESULT_DIR/${EXP_NAME}_stor \
|
| 81 |
+
# -name "result-*.csv" \
|
| 82 |
+
# -printf '%T@ %p\n' \
|
| 83 |
+
# | sort -n \
|
| 84 |
+
# | tail -1 \
|
| 85 |
+
# | cut -d' ' -f2 \
|
| 86 |
+
# | xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/stor/mxq/$ATTEMPT
|
| 87 |
+
|
| 88 |
+
# echo "=========Delete quantized models of batch ${batch_name}========="
|
| 89 |
+
# find $QUANT_SNAPSHOT_DIR/$ATTEMPT -maxdepth 1 -type d | xargs rm -fr
|
| 90 |
+
|
| 91 |
+
OLD_DIR=$(pwd)
|
| 92 |
+
cd $RESULT_DIR/$EXP_BASE_NAME
|
| 93 |
+
if [ ! -d pdfs/allot ]; then
|
| 94 |
+
mkdir -p pdfs/allot
|
| 95 |
+
fi
|
| 96 |
+
$OLD_DIR/../data-vis/combine.R \
|
| 97 |
+
--baseline_data_dir $OLD_DIR/../data-vis/data \
|
| 98 |
+
--mxq_data_dir data
|
| 99 |
+
$OLD_DIR/../data-vis/plot-mxq-paired.R data/combined.csv
|
| 100 |
+
$OLD_DIR/../data-vis/plot-mem-consumption.R data/combined.csv
|
| 101 |
+
$OLD_DIR/../data-vis/plot-quant-speed.R data/combined.csv
|
| 102 |
+
$OLD_DIR/../data-vis/gen-table-mxq-llm.R data/combined.csv
|
| 103 |
+
pdflatex table.tex
|
| 104 |
+
|
| 105 |
+
# plot configuration allocations for 3 * 12 MXQ combinations
|
| 106 |
+
MODELS="Llama-2-7b-hf Llama-2-13b-hf Meta-Llama-3-8B"
|
| 107 |
+
BUDGETS="4.13 4.25 4.51"
|
| 108 |
+
for model in $MODELS; do
|
| 109 |
+
for budget in $BUDGETS; do
|
| 110 |
+
$OLD_DIR/../data-vis/plot-mxq-allocation.R \
|
| 111 |
+
-m $model \
|
| 112 |
+
-b $budget \
|
| 113 |
+
--attempt1 tail-reduction \
|
| 114 |
+
--attempt2 mxq1 \
|
| 115 |
+
--fnorm_data_dir $OLD_DIR/../src/data \
|
| 116 |
+
--quant_cfg_allot_file data/quant-cfg-allocation.csv
|
| 117 |
+
done
|
| 118 |
+
done
|
lm-quant-toolkit/scripts/experiment-vit-zs-mxq-kurt-boost.sh
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
if [ ! -d logs ]; then
|
| 4 |
+
mkdir logs
|
| 5 |
+
fi
|
| 6 |
+
|
| 7 |
+
# python ../src/cli.py vit \
|
| 8 |
+
# --task eval_zeroshot_cls \
|
| 9 |
+
# --model 0 1 \
|
| 10 |
+
# --config 4.51 4.25 4.13 3.51 3.25 3.13\
|
| 11 |
+
# --algo mxq \
|
| 12 |
+
# --weight-algo kurt-boost \
|
| 13 |
+
# --boost-stop 2 \
|
| 14 |
+
# --top-m-layer 1 \
|
| 15 |
+
# --experiment-name eval_zs_BH_mxq_kurt_boost \
|
| 16 |
+
# --quant-snapshot-dir="/fdata/llm/mxq/snapshots" \
|
| 17 |
+
# --result-dir="/fdata/llm/mxq/results" \
|
| 18 |
+
# 2>&1 \
|
| 19 |
+
# | tee logs/bench-vit-$(date +%Y%m%d%H%M%S).log
|
| 20 |
+
|
| 21 |
+
python ../src/cli.py vit \
|
| 22 |
+
--task eval_zeroshot_cls \
|
| 23 |
+
--model 0 1 \
|
| 24 |
+
--config 4.51 4.25 4.13 3.51 3.25 3.13\
|
| 25 |
+
--algo mxq \
|
| 26 |
+
--weight-algo kurt-boost \
|
| 27 |
+
--boost-stop 2 \
|
| 28 |
+
--top-m-layer 2 \
|
| 29 |
+
--experiment-name eval_zs_BH_mxq_kurt_boost_22 \
|
| 30 |
+
--quant-snapshot-dir="/fdata/llm/mxq/snapshots" \
|
| 31 |
+
--result-dir="/fdata/llm/mxq/results" \
|
| 32 |
+
2>&1 \
|
| 33 |
+
| tee logs/bench-vit-$(date +%Y%m%d%H%M%S).log
|
| 34 |
+
|
lm-quant-toolkit/scripts/fix-3.25-llama-7b-sensi-boost.sh
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
BUDGETS="3.25"
|
| 4 |
+
RESULT_DIR="/fdata/llm/mxq/results"
|
| 5 |
+
QUANT_SNAPSHOT_DIR="/fdata/llm/mxq/snapshots"
|
| 6 |
+
|
| 7 |
+
# Use cached dataset to speedup wikitext, c4 ppl evaluation
|
| 8 |
+
export HF_DATASETS_OFFLINE=1
|
| 9 |
+
weight_algo=sensi-boost
|
| 10 |
+
MODELS="0"
|
| 11 |
+
MODEL_NAMES="Llama-2-7b-hf"
|
| 12 |
+
|
| 13 |
+
|
| 14 |
+
# BOOST_STOPS="2 3"
|
| 15 |
+
BOOST_STOPS="3"
|
| 16 |
+
BOOST_TOP_MS="3"
|
| 17 |
+
|
| 18 |
+
for BOOST_STOP in $BOOST_STOPS; do
|
| 19 |
+
for BOOST_TOP_M in $BOOST_TOP_MS; do
|
| 20 |
+
if [[ $BOOST_STOP -eq 2 && $BOOST_TOP_M -eq 1 ]]; then
|
| 21 |
+
continue
|
| 22 |
+
fi
|
| 23 |
+
ATTEMPT="sb-3257_2-fix-${BOOST_STOP}-${BOOST_TOP_M}"
|
| 24 |
+
EXP_BASE_NAME=$ATTEMPT
|
| 25 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,qnt,stor}
|
| 26 |
+
|
| 27 |
+
log_file="logs/bench-${ATTEMPT}-$(date +%Y%m%d%H%M%S).log"
|
| 28 |
+
|
| 29 |
+
mkdir -p $QUANT_SNAPSHOT_DIR/$ATTEMPT
|
| 30 |
+
mkdir -p $RESULT_DIR/${EXP_NAME}_ppl
|
| 31 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,stor}/mxq/$ATTEMPT
|
| 32 |
+
|
| 33 |
+
# MODELS="0"
|
| 34 |
+
EXP_NAME="${ATTEMPT}"
|
| 35 |
+
echo "=========Run perplexity evaluation========="
|
| 36 |
+
python ../src/cli.py llm \
|
| 37 |
+
--task eval_ppl \
|
| 38 |
+
--model $MODELS \
|
| 39 |
+
--algo mxq \
|
| 40 |
+
--weight-algo $weight_algo \
|
| 41 |
+
--boost-stop $BOOST_STOP \
|
| 42 |
+
--top-m-layer $BOOST_TOP_M \
|
| 43 |
+
--config ${BUDGETS} \
|
| 44 |
+
--experiment-name "${EXP_NAME}_ppl" \
|
| 45 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 46 |
+
--result-dir=$RESULT_DIR \
|
| 47 |
+
2>&1 \
|
| 48 |
+
| tee -a $log_file
|
| 49 |
+
EXIT_CODE=$?
|
| 50 |
+
if [ $EXIT_CODE -ne 0 ]; then
|
| 51 |
+
echo "Perplexity evaluation failed!"
|
| 52 |
+
exit $EXIT_CODE
|
| 53 |
+
fi
|
| 54 |
+
echo "=========Collect perplexity evaluation result on batch ${EXP_NAME}========="
|
| 55 |
+
find $RESULT_DIR/${EXP_NAME}_ppl \
|
| 56 |
+
-name "result-*.csv" \
|
| 57 |
+
-printf '%T@ %p\n' \
|
| 58 |
+
| sort -n \
|
| 59 |
+
| tail -1 \
|
| 60 |
+
| cut -d' ' -f2 \
|
| 61 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/ppl/mxq/$ATTEMPT
|
| 62 |
+
|
| 63 |
+
echo "=========Dump quantization configs on batch ${EXP_NAME}========="
|
| 64 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT
|
| 65 |
+
python ../src/cli.py dump \
|
| 66 |
+
--type quant_config \
|
| 67 |
+
--model $MODELS \
|
| 68 |
+
--budget ${BUDGETS} \
|
| 69 |
+
--attempt $ATTEMPT \
|
| 70 |
+
--quant-snapshot-dir=$QUANT_SNAPSHOT_DIR \
|
| 71 |
+
--output-file "$RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT/quant-allot-${EXP_NAME}.csv" \
|
| 72 |
+
2>&1 \
|
| 73 |
+
| tee -a $log_file
|
| 74 |
+
|
| 75 |
+
echo "=========Run memory evaluation on batch ${EXP_NAME}========="
|
| 76 |
+
algo=mxq
|
| 77 |
+
model_ids=$MODELS
|
| 78 |
+
for m in $model_ids; do
|
| 79 |
+
for cfg in ${BUDGETS}; do
|
| 80 |
+
python ../src/cli.py llm \
|
| 81 |
+
--model $m \
|
| 82 |
+
--algo ${algo} \
|
| 83 |
+
--config ${cfg} \
|
| 84 |
+
--task eval_model_storage \
|
| 85 |
+
--experiment-name "${EXP_NAME}_stor" \
|
| 86 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 87 |
+
--result-dir=$RESULT_DIR \
|
| 88 |
+
2>&1 \
|
| 89 |
+
| tee -a $log_file
|
| 90 |
+
done
|
| 91 |
+
done
|
| 92 |
+
echo "=========Collect memory evaluation result on batch ${EXP_NAME}========="
|
| 93 |
+
find $RESULT_DIR/${EXP_NAME}_stor \
|
| 94 |
+
-name "result-*.csv" \
|
| 95 |
+
-printf '%T@ %p\n' \
|
| 96 |
+
| sort -n \
|
| 97 |
+
| tail -1 \
|
| 98 |
+
| cut -d' ' -f2 \
|
| 99 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/stor/mxq/$ATTEMPT
|
| 100 |
+
|
| 101 |
+
# echo "=========Delete quantized models of batch ${batch_name}========="
|
| 102 |
+
# find $QUANT_SNAPSHOT_DIR/$ATTEMPT -maxdepth 1 -type d | xargs rm -fr
|
| 103 |
+
|
| 104 |
+
OLD_DIR=$(pwd)
|
| 105 |
+
cd $RESULT_DIR/$EXP_BASE_NAME
|
| 106 |
+
if [ ! -d pdfs/allot ]; then
|
| 107 |
+
mkdir -p pdfs/allot
|
| 108 |
+
fi
|
| 109 |
+
$OLD_DIR/../data-vis/combine.R \
|
| 110 |
+
--baseline_data_dir $OLD_DIR/../data-vis/data \
|
| 111 |
+
--mxq_data_dir data
|
| 112 |
+
|
| 113 |
+
cd $OLD_DIR
|
| 114 |
+
done
|
| 115 |
+
done
|
| 116 |
+
|
lm-quant-toolkit/scripts/fix-experiment-llama-kurt-milp-ablation.sh
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
BUDGETS="6.89 5.72 5.02 4.51 4.25 4.21 4.17 4.13 4.11 4.07 3.95 3.87 3.83 3.65 3.51 3.25 3.19 3.15 3.13 3.11 3.07"
|
| 4 |
+
RESULT_DIR="/fdata/llm/mxq/results"
|
| 5 |
+
QUANT_SNAPSHOT_DIR="/fdata/llm/mxq/snapshots"
|
| 6 |
+
|
| 7 |
+
# Use cached dataset to speedup wikitext, c4 ppl evaluation
|
| 8 |
+
export HF_DATASETS_OFFLINE=1
|
| 9 |
+
weight_algo=kurt-milp
|
| 10 |
+
MODELS="0 1 2"
|
| 11 |
+
MODEL_NAMES="Llama-2-7b-hf Llama-2-13b-hf Meta-Llama-3-8B"
|
| 12 |
+
|
| 13 |
+
|
| 14 |
+
# for SensiMiLP ablation test, all topm values are equivalent
|
| 15 |
+
|
| 16 |
+
ATTEMPT="kurt-milp-abl"
|
| 17 |
+
EXP_BASE_NAME=$ATTEMPT
|
| 18 |
+
EXP_NAME="${ATTEMPT}"
|
| 19 |
+
|
| 20 |
+
log_file="logs/bench-${ATTEMPT}-$(date +%Y%m%d%H%M%S).log"
|
| 21 |
+
|
| 22 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,qnt,stor}
|
| 23 |
+
|
| 24 |
+
mkdir -p $QUANT_SNAPSHOT_DIR/$ATTEMPT
|
| 25 |
+
mkdir -p $RESULT_DIR/${EXP_NAME}_ppl
|
| 26 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,stor}/mxq/$ATTEMPT
|
| 27 |
+
|
| 28 |
+
echo "=========Dump quantization configs on batch ${EXP_NAME}========="
|
| 29 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT
|
| 30 |
+
python ../src/cli.py dump \
|
| 31 |
+
--type quant_config \
|
| 32 |
+
--model $MODELS \
|
| 33 |
+
--budget ${BUDGETS} \
|
| 34 |
+
--attempt $ATTEMPT \
|
| 35 |
+
--quant-snapshot-dir=$QUANT_SNAPSHOT_DIR \
|
| 36 |
+
--output-file "$RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT/quant-allot-${EXP_NAME}.csv" \
|
| 37 |
+
2>&1 \
|
| 38 |
+
| tee -a $log_file
|
| 39 |
+
|
| 40 |
+
echo "=========Run memory evaluation on batch ${EXP_NAME}========="
|
| 41 |
+
algo=mxq
|
| 42 |
+
model_ids=$MODELS
|
| 43 |
+
for m in $model_ids; do
|
| 44 |
+
for cfg in ${BUDGETS}; do
|
| 45 |
+
python ../src/cli.py llm \
|
| 46 |
+
--model $m \
|
| 47 |
+
--algo ${algo} \
|
| 48 |
+
--config ${cfg} \
|
| 49 |
+
--task eval_model_storage \
|
| 50 |
+
--experiment-name "${EXP_NAME}_stor" \
|
| 51 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 52 |
+
--result-dir=$RESULT_DIR \
|
| 53 |
+
2>&1 \
|
| 54 |
+
| tee -a $log_file
|
| 55 |
+
done
|
| 56 |
+
done
|
| 57 |
+
echo "=========Collect memory evaluation result on batch ${EXP_NAME}========="
|
| 58 |
+
find $RESULT_DIR/${EXP_NAME}_stor \
|
| 59 |
+
-name "result-*.csv" \
|
| 60 |
+
-printf '%T@ %p\n' \
|
| 61 |
+
| sort -n \
|
| 62 |
+
| tail -1 \
|
| 63 |
+
| cut -d' ' -f2 \
|
| 64 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/stor/mxq/$ATTEMPT
|
| 65 |
+
|
| 66 |
+
# echo "=========Delete quantized models of batch ${batch_name}========="
|
| 67 |
+
# find $QUANT_SNAPSHOT_DIR/$ATTEMPT -maxdepth 1 -type d | xargs rm -fr
|
| 68 |
+
OLD_DIR=$(pwd)
|
| 69 |
+
cd $RESULT_DIR/$EXP_BASE_NAME
|
| 70 |
+
if [ ! -d pdfs ]; then
|
| 71 |
+
mkdir pdfs
|
| 72 |
+
fi
|
| 73 |
+
$OLD_DIR/../data-vis/combine.R \
|
| 74 |
+
--baseline_data_dir $OLD_DIR/../data-vis/data \
|
| 75 |
+
--mxq_data_dir data
|
| 76 |
+
$OLD_DIR/../data-vis/plot-ppl-mem.R -d data/combined.csv
|
| 77 |
+
$OLD_DIR/../data-vis/gen-table-mxq-llm.R --csv_file data/combined.csv --attempt $ATTEMPT
|
| 78 |
+
cd pdfs
|
| 79 |
+
pdflatex table.tex
|
| 80 |
+
cd ..
|
| 81 |
+
|
| 82 |
+
cd $OLD_DIR
|
lm-quant-toolkit/scripts/fix-experiment-llama-sensi-milp-ablation.sh
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
BUDGETS="6.89 5.72 5.02 4.51 4.25 4.21 4.17 4.13 4.11 4.07 3.95 3.87 3.83 3.65 3.51 3.25 3.19 3.15 3.13 3.11 3.07"
|
| 4 |
+
RESULT_DIR="/fdata/llm/mxq/results"
|
| 5 |
+
QUANT_SNAPSHOT_DIR="/fdata/llm/mxq/snapshots"
|
| 6 |
+
|
| 7 |
+
# Use cached dataset to speedup wikitext, c4 ppl evaluation
|
| 8 |
+
export HF_DATASETS_OFFLINE=1
|
| 9 |
+
weight_algo=sensi-milp
|
| 10 |
+
MODELS="0 1 2"
|
| 11 |
+
MODEL_NAMES="Llama-2-7b-hf Llama-2-13b-hf Meta-Llama-3-8B"
|
| 12 |
+
|
| 13 |
+
|
| 14 |
+
BOOST_TOP_MS="3"
|
| 15 |
+
|
| 16 |
+
for BOOST_TOP_M in $BOOST_TOP_MS; do
|
| 17 |
+
ATTEMPT="sensi-milp-abl-${BOOST_TOP_M}"
|
| 18 |
+
EXP_BASE_NAME=$ATTEMPT
|
| 19 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,qnt,stor}
|
| 20 |
+
|
| 21 |
+
log_file="logs/bench-${ATTEMPT}-$(date +%Y%m%d%H%M%S).log"
|
| 22 |
+
|
| 23 |
+
mkdir -p $QUANT_SNAPSHOT_DIR/$ATTEMPT
|
| 24 |
+
mkdir -p $RESULT_DIR/${EXP_NAME}_ppl
|
| 25 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,stor}/mxq/$ATTEMPT
|
| 26 |
+
|
| 27 |
+
EXP_NAME="${ATTEMPT}"
|
| 28 |
+
|
| 29 |
+
echo "=========Dump quantization configs on batch ${EXP_NAME}========="
|
| 30 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT
|
| 31 |
+
python ../src/cli.py dump \
|
| 32 |
+
--type quant_config \
|
| 33 |
+
--model $MODELS \
|
| 34 |
+
--budget ${BUDGETS} \
|
| 35 |
+
--attempt $ATTEMPT \
|
| 36 |
+
--quant-snapshot-dir=$QUANT_SNAPSHOT_DIR \
|
| 37 |
+
--output-file "$RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT/quant-allot-${EXP_NAME}.csv" \
|
| 38 |
+
2>&1 \
|
| 39 |
+
| tee -a $log_file
|
| 40 |
+
|
| 41 |
+
echo "=========Run memory evaluation on batch ${EXP_NAME}========="
|
| 42 |
+
algo=mxq
|
| 43 |
+
model_ids=$MODELS
|
| 44 |
+
for m in $model_ids; do
|
| 45 |
+
for cfg in ${BUDGETS}; do
|
| 46 |
+
python ../src/cli.py llm \
|
| 47 |
+
--model $m \
|
| 48 |
+
--algo ${algo} \
|
| 49 |
+
--config ${cfg} \
|
| 50 |
+
--task eval_model_storage \
|
| 51 |
+
--experiment-name "${EXP_NAME}_stor" \
|
| 52 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 53 |
+
--result-dir=$RESULT_DIR \
|
| 54 |
+
2>&1 \
|
| 55 |
+
| tee -a $log_file
|
| 56 |
+
done
|
| 57 |
+
done
|
| 58 |
+
echo "=========Collect memory evaluation result on batch ${EXP_NAME}========="
|
| 59 |
+
find $RESULT_DIR/${EXP_NAME}_stor \
|
| 60 |
+
-name "result-*.csv" \
|
| 61 |
+
-printf '%T@ %p\n' \
|
| 62 |
+
| sort -n \
|
| 63 |
+
| tail -1 \
|
| 64 |
+
| cut -d' ' -f2 \
|
| 65 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/stor/mxq/$ATTEMPT
|
| 66 |
+
|
| 67 |
+
# echo "=========Delete quantized models of batch ${batch_name}========="
|
| 68 |
+
# find $QUANT_SNAPSHOT_DIR/$ATTEMPT -maxdepth 1 -type d | xargs rm -fr
|
| 69 |
+
OLD_DIR=$(pwd)
|
| 70 |
+
cd $RESULT_DIR/$EXP_BASE_NAME
|
| 71 |
+
if [ ! -d pdfs ]; then
|
| 72 |
+
mkdir pdfs
|
| 73 |
+
fi
|
| 74 |
+
$OLD_DIR/../data-vis/combine.R \
|
| 75 |
+
--baseline_data_dir $OLD_DIR/../data-vis/data \
|
| 76 |
+
--mxq_data_dir data
|
| 77 |
+
$OLD_DIR/../data-vis/plot-ppl-mem.R -d data/combined.csv
|
| 78 |
+
$OLD_DIR/../data-vis/gen-table-mxq-llm.R --csv_file data/combined.csv --attempt $ATTEMPT
|
| 79 |
+
cd pdfs
|
| 80 |
+
pdflatex table.tex
|
| 81 |
+
cd ..
|
| 82 |
+
|
| 83 |
+
cd $OLD_DIR
|
| 84 |
+
|
| 85 |
+
done
|
| 86 |
+
|
lm-quant-toolkit/scripts/fix-llama-sensi-milp.sh
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
BUDGETS="6.89 5.72 5.02 4.51 4.25 4.21 4.17 4.13 4.11 4.07 3.95 3.87 3.83 3.65 3.51 3.25 3.19 3.15 3.13 3.11 3.07"
|
| 4 |
+
RESULT_DIR="/fdata/llm/mxq/results"
|
| 5 |
+
QUANT_SNAPSHOT_DIR="/fdata/llm/mxq/snapshots"
|
| 6 |
+
|
| 7 |
+
# Use cached dataset to speedup wikitext, c4 ppl evaluation
|
| 8 |
+
export HF_DATASETS_OFFLINE=1
|
| 9 |
+
weight_algo=sensi-milp
|
| 10 |
+
MODELS="0 1 2"
|
| 11 |
+
MODEL_NAMES="Llama-2-7b-hf Llama-2-13b-hf Meta-Llama-3-8B"
|
| 12 |
+
|
| 13 |
+
|
| 14 |
+
BOOST_TOP_MS="3"
|
| 15 |
+
|
| 16 |
+
for BOOST_TOP_M in $BOOST_TOP_MS; do
|
| 17 |
+
ATTEMPT="sensi-milp-${BOOST_TOP_M}"
|
| 18 |
+
EXP_BASE_NAME=$ATTEMPT
|
| 19 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,qnt,stor}
|
| 20 |
+
|
| 21 |
+
log_file="logs/bench-${ATTEMPT}-$(date +%Y%m%d%H%M%S).log"
|
| 22 |
+
|
| 23 |
+
mkdir -p $QUANT_SNAPSHOT_DIR/$ATTEMPT
|
| 24 |
+
mkdir -p $RESULT_DIR/${EXP_NAME}_ppl
|
| 25 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,stor}/mxq/$ATTEMPT
|
| 26 |
+
|
| 27 |
+
# MODELS="0"
|
| 28 |
+
EXP_NAME="${ATTEMPT}"
|
| 29 |
+
echo "=========Run perplexity evaluation========="
|
| 30 |
+
python ../src/cli.py llm \
|
| 31 |
+
--task eval_ppl \
|
| 32 |
+
--model $MODELS \
|
| 33 |
+
--algo mxq \
|
| 34 |
+
--weight-algo $weight_algo \
|
| 35 |
+
--top-m-layer $BOOST_TOP_M \
|
| 36 |
+
--config ${BUDGETS} \
|
| 37 |
+
--experiment-name "${EXP_NAME}_ppl" \
|
| 38 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 39 |
+
--result-dir=$RESULT_DIR \
|
| 40 |
+
2>&1 \
|
| 41 |
+
| tee -a $log_file
|
| 42 |
+
EXIT_CODE=$?
|
| 43 |
+
if [ $EXIT_CODE -ne 0 ]; then
|
| 44 |
+
echo "Perplexity evaluation failed!"
|
| 45 |
+
exit $EXIT_CODE
|
| 46 |
+
fi
|
| 47 |
+
echo "=========Collect perplexity evaluation result on batch ${EXP_NAME}========="
|
| 48 |
+
find $RESULT_DIR/${EXP_NAME}_ppl \
|
| 49 |
+
-name "result-*.csv" \
|
| 50 |
+
-printf '%T@ %p\n' \
|
| 51 |
+
| sort -n \
|
| 52 |
+
| tail -1 \
|
| 53 |
+
| cut -d' ' -f2 \
|
| 54 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/ppl/mxq/$ATTEMPT
|
| 55 |
+
|
| 56 |
+
echo "=========Dump quantization configs on batch ${EXP_NAME}========="
|
| 57 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT
|
| 58 |
+
python ../src/cli.py dump \
|
| 59 |
+
--type quant_config \
|
| 60 |
+
--model $MODELS \
|
| 61 |
+
--budget ${BUDGETS} \
|
| 62 |
+
--attempt $ATTEMPT \
|
| 63 |
+
--quant-snapshot-dir=$QUANT_SNAPSHOT_DIR \
|
| 64 |
+
--output-file "$RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT/quant-allot-${EXP_NAME}.csv" \
|
| 65 |
+
2>&1 \
|
| 66 |
+
| tee -a $log_file
|
| 67 |
+
|
| 68 |
+
echo "=========Run memory evaluation on batch ${EXP_NAME}========="
|
| 69 |
+
algo=mxq
|
| 70 |
+
model_ids=$MODELS
|
| 71 |
+
for m in $model_ids; do
|
| 72 |
+
for cfg in ${BUDGETS}; do
|
| 73 |
+
python ../src/cli.py llm \
|
| 74 |
+
--model $m \
|
| 75 |
+
--algo ${algo} \
|
| 76 |
+
--config ${cfg} \
|
| 77 |
+
--task eval_model_storage \
|
| 78 |
+
--experiment-name "${EXP_NAME}_stor" \
|
| 79 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 80 |
+
--result-dir=$RESULT_DIR \
|
| 81 |
+
2>&1 \
|
| 82 |
+
| tee -a $log_file
|
| 83 |
+
done
|
| 84 |
+
done
|
| 85 |
+
echo "=========Collect memory evaluation result on batch ${EXP_NAME}========="
|
| 86 |
+
find $RESULT_DIR/${EXP_NAME}_stor \
|
| 87 |
+
-name "result-*.csv" \
|
| 88 |
+
-printf '%T@ %p\n' \
|
| 89 |
+
| sort -n \
|
| 90 |
+
| tail -1 \
|
| 91 |
+
| cut -d' ' -f2 \
|
| 92 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/stor/mxq/$ATTEMPT
|
| 93 |
+
|
| 94 |
+
# echo "=========Delete quantized models of batch ${batch_name}========="
|
| 95 |
+
# find $QUANT_SNAPSHOT_DIR/$ATTEMPT -maxdepth 1 -type d | xargs rm -fr
|
| 96 |
+
OLD_DIR=$(pwd)
|
| 97 |
+
cd $RESULT_DIR/$EXP_BASE_NAME
|
| 98 |
+
if [ ! -d pdfs ]; then
|
| 99 |
+
mkdir pdfs
|
| 100 |
+
fi
|
| 101 |
+
$OLD_DIR/../data-vis/combine.R \
|
| 102 |
+
--baseline_data_dir $OLD_DIR/../data-vis/data \
|
| 103 |
+
--mxq_data_dir data
|
| 104 |
+
$OLD_DIR/../data-vis/plot-ppl-mem.R -d data/combined.csv
|
| 105 |
+
$OLD_DIR/../data-vis/plot-mem-consumption.R -d data/combined.csv
|
| 106 |
+
$OLD_DIR/../data-vis/plot-quant-speed.R -d data/combined.csv
|
| 107 |
+
$OLD_DIR/../data-vis/gen-table-mxq-llm.R --csv_file data/combined.csv --attempt $ATTEMPT
|
| 108 |
+
cd pdfs
|
| 109 |
+
pdflatex table.tex
|
| 110 |
+
cd ..
|
| 111 |
+
|
| 112 |
+
# plot configuration allocations for 3 * 12 MXQ combinations
|
| 113 |
+
MODELS="Llama-2-7b-hf Llama-2-13b-hf Meta-Llama-3-8B"
|
| 114 |
+
BUDGETS=${MXQ_BATCH[@]:1}
|
| 115 |
+
for model in $MODELS; do
|
| 116 |
+
for budget in $BUDGETS; do
|
| 117 |
+
$OLD_DIR/../data-vis/plot-mxq-allocation.R \
|
| 118 |
+
-m $model \
|
| 119 |
+
-b $budget \
|
| 120 |
+
--fnorm_data_dir $OLD_DIR/../src/data \
|
| 121 |
+
--attempt1 mxq1 \
|
| 122 |
+
--attempt2 $ATTEMPT \
|
| 123 |
+
--quant_cfg_allot_file data/quant-cfg-allocation.csv
|
| 124 |
+
done
|
| 125 |
+
done
|
| 126 |
+
cd $OLD_DIR
|
| 127 |
+
|
| 128 |
+
done
|
| 129 |
+
|
lm-quant-toolkit/scripts/fix_experiment-llama-kurt-milp.sh
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
BUDGETS="6.89 5.72 5.02 4.51 4.25 4.21 4.17 4.13 4.11 4.07 3.95 3.87 3.83 3.65 3.51 3.25 3.19 3.15 3.13 3.11 3.07"
|
| 4 |
+
RESULT_DIR="/fdata/llm/mxq/results"
|
| 5 |
+
QUANT_SNAPSHOT_DIR="/fdata/llm/mxq/snapshots"
|
| 6 |
+
|
| 7 |
+
# Use cached dataset to speedup wikitext, c4 ppl evaluation
|
| 8 |
+
export HF_DATASETS_OFFLINE=1
|
| 9 |
+
weight_algo=kurt-milp
|
| 10 |
+
MODELS="0 1 2"
|
| 11 |
+
MODEL_NAMES="Llama-2-7b-hf Llama-2-13b-hf Meta-Llama-3-8B"
|
| 12 |
+
|
| 13 |
+
|
| 14 |
+
BOOST_TOP_MS="1"
|
| 15 |
+
|
| 16 |
+
for BOOST_TOP_M in $BOOST_TOP_MS; do
|
| 17 |
+
ATTEMPT="kurt-milp-${BOOST_TOP_M}"
|
| 18 |
+
EXP_BASE_NAME=$ATTEMPT
|
| 19 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,qnt,stor}
|
| 20 |
+
|
| 21 |
+
log_file="logs/bench-${ATTEMPT}-$(date +%Y%m%d%H%M%S).log"
|
| 22 |
+
|
| 23 |
+
mkdir -p $QUANT_SNAPSHOT_DIR/$ATTEMPT
|
| 24 |
+
mkdir -p $RESULT_DIR/${EXP_NAME}_ppl
|
| 25 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,stor}/mxq/$ATTEMPT
|
| 26 |
+
|
| 27 |
+
# MODELS="0"
|
| 28 |
+
EXP_NAME="${ATTEMPT}"
|
| 29 |
+
|
| 30 |
+
echo "=========Dump quantization configs on batch ${EXP_NAME}========="
|
| 31 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT
|
| 32 |
+
python ../src/cli.py dump \
|
| 33 |
+
--type quant_config \
|
| 34 |
+
--model $MODELS \
|
| 35 |
+
--budget ${BUDGETS} \
|
| 36 |
+
--attempt $ATTEMPT \
|
| 37 |
+
--quant-snapshot-dir=$QUANT_SNAPSHOT_DIR \
|
| 38 |
+
--output-file "$RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT/quant-allot-${EXP_NAME}.csv" \
|
| 39 |
+
2>&1 \
|
| 40 |
+
| tee -a $log_file
|
| 41 |
+
|
| 42 |
+
echo "=========Run memory evaluation on batch ${EXP_NAME}========="
|
| 43 |
+
algo=mxq
|
| 44 |
+
model_ids=$MODELS
|
| 45 |
+
for m in $model_ids; do
|
| 46 |
+
for cfg in ${BUDGETS}; do
|
| 47 |
+
python ../src/cli.py llm \
|
| 48 |
+
--model $m \
|
| 49 |
+
--algo ${algo} \
|
| 50 |
+
--config ${cfg} \
|
| 51 |
+
--task eval_model_storage \
|
| 52 |
+
--experiment-name "${EXP_NAME}_stor" \
|
| 53 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 54 |
+
--result-dir=$RESULT_DIR \
|
| 55 |
+
2>&1 \
|
| 56 |
+
| tee -a $log_file
|
| 57 |
+
done
|
| 58 |
+
done
|
| 59 |
+
echo "=========Collect memory evaluation result on batch ${EXP_NAME}========="
|
| 60 |
+
find $RESULT_DIR/${EXP_NAME}_stor \
|
| 61 |
+
-name "result-*.csv" \
|
| 62 |
+
-printf '%T@ %p\n' \
|
| 63 |
+
| sort -n \
|
| 64 |
+
| tail -1 \
|
| 65 |
+
| cut -d' ' -f2 \
|
| 66 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/stor/mxq/$ATTEMPT
|
| 67 |
+
|
| 68 |
+
# echo "=========Delete quantized models of batch ${batch_name}========="
|
| 69 |
+
# find $QUANT_SNAPSHOT_DIR/$ATTEMPT -maxdepth 1 -type d | xargs rm -fr
|
| 70 |
+
OLD_DIR=$(pwd)
|
| 71 |
+
cd $RESULT_DIR/$EXP_BASE_NAME
|
| 72 |
+
if [ ! -d pdfs ]; then
|
| 73 |
+
mkdir pdfs
|
| 74 |
+
fi
|
| 75 |
+
$OLD_DIR/../data-vis/combine.R \
|
| 76 |
+
--baseline_data_dir $OLD_DIR/../data-vis/data \
|
| 77 |
+
--mxq_data_dir data
|
| 78 |
+
$OLD_DIR/../data-vis/plot-ppl-mem.R -d data/combined.csv
|
| 79 |
+
$OLD_DIR/../data-vis/gen-table-mxq-llm.R --csv_file data/combined.csv --attempt $ATTEMPT
|
| 80 |
+
cd pdfs
|
| 81 |
+
pdflatex table.tex
|
| 82 |
+
cd ..
|
| 83 |
+
|
| 84 |
+
cd $OLD_DIR
|
| 85 |
+
|
| 86 |
+
done
|
| 87 |
+
|
lm-quant-toolkit/scripts/plot-allot-kurt-scaled-dense.sh
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
# MXQ1=(2bit 2.13 2.15 2.17 2.19 2.21 2.23 2.25 2.27 2.29 2.31 2.45 2.47 2.49 2.51 2.53 2.55 2.57)
|
| 4 |
+
# MXQ2=(3bit 3.07 3.09 3.11 3.13 3.15 3.17 3.19 3.21 3.23 3.25 3.27 3.29 3.31 3.33 3.35 3.37 3.39 3.41 3.42 3.43 3.45 3.47 3.49 3.51 3.53 3.55 3.57 3.59 3.61 3.63 3.65 3.67 3.69 3.71 3.73 3.75 3.77 3.79 3.81 3.83 3.85 3.87 3.89 3.91 3.93 3.95 3.97 3.99)
|
| 5 |
+
# Removed 4.99 which is unsolvable with kurt-scaled scheme
|
| 6 |
+
MXQ4=(4bit 4.01 4.03 4.05 4.07 4.09 4.11 4.13 4.15 4.17 4.19 4.21 4.23 4.25 4.27 4.29 4.31 4.33 4.35 4.37 4.39 4.41 4.43 4.45 4.47 4.49 4.51 4.53 4.55 4.57 4.59 4.61 4.63 4.65 4.67 4.69 4.71 4.73 4.75 4.77 4.79 4.81 4.83 4.85 4.87 4.89 4.91 4.93 4.95 4.97)
|
| 7 |
+
# Remove 5.01 5.02, 5.04 5.10 5.32 which is unsolvable with kurt-scaled scheme
|
| 8 |
+
#MXQ5=(5bit 5.00 5.03 5.06 5.08 5.09 5.12 5.14 5.16 5.18 5.20 5.22 5.24 5.26 5.28 5.30 5.33 5.34 5.36 5.38 5.40 5.42 5.44 5.46 5.48 5.50 5.52 5.54 5.56 5.58 5.60 5.62 5.64 5.66 5.68 5.70 5.72 5.74 5.76 5.78 5.80 5.82 5.84 5.86 5.88 5.90 5.92 5.94 5.96 5.98)
|
| 9 |
+
#MXQ6=(6bit 6.00 6.02 6.03 6.04 6.05 6.06 6.07 6.09 6.11 6.13 6.15 6.17 6.19 6.21 6.23 6.25 6.27 6.29 6.31 6.33 6.35 6.37 6.39 6.41 6.43 6.45 6.47 6.49 6.51 6.53 6.55 6.57 6.59 6.61 6.63 6.65 6.68 6.69 6.71 6.72 6.75 6.77 6.78 6.81 6.83 6.86 6.87 6.89 6.92 6.95 6.96 6.98)
|
| 10 |
+
# MXQ7=(78bit 7.01 7.02 7.04 7.06 7.08 7.10 7.13 7.14 7.16 7.19 7.20 7.22 7.24 7.26 7.29 7.30 7.32 7.34 7.36 7.38 7.41 7.42 7.44 7.47 7.48 7.50 7.53 7.54 7.56 7.57 7.60 7.62 7.63 7.66 7.68 7.70 7.72 7.74 7.76 8.13 8.25 8.51)
|
| 11 |
+
MXQ_BATCHES=(MXQ4)
|
| 12 |
+
declare -n MXQ_BATCH
|
| 13 |
+
|
| 14 |
+
ATTEMPT="kurt-scaled"
|
| 15 |
+
RESULT_DIR="/fdata/llm/mxq/results"
|
| 16 |
+
QUANT_SNAPSHOT_DIR="/fdata/llm/mxq/snapshots"
|
| 17 |
+
EXP_BASE_NAME="${ATTEMPT}-dense"
|
| 18 |
+
QUANT_SNAPSHOT_DIR="/fdata/llm/mxq/snapshots"
|
| 19 |
+
# Setup data files directories for reporting
|
| 20 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,qnt,stor}
|
| 21 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,stor}/mxq/$ATTEMPT
|
| 22 |
+
mkdir -p $QUANT_SNAPSHOT_DIR/$ATTEMPT
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
OLD_DIR=$(pwd)
|
| 26 |
+
cd $RESULT_DIR/$EXP_BASE_NAME
|
| 27 |
+
if [ ! -d pdfs ]; then
|
| 28 |
+
mkdir pdfs
|
| 29 |
+
fi
|
| 30 |
+
$OLD_DIR/../data-vis/combine.R \
|
| 31 |
+
--baseline_data_dir $OLD_DIR/../data-vis/data \
|
| 32 |
+
--mxq_data_dir data
|
| 33 |
+
|
| 34 |
+
# plot configuration allocations for 3 * 12 MXQ combinations
|
| 35 |
+
# MODELS="Llama-2-7b-hf Llama-2-13b-hf Meta-Llama-3-8B"
|
| 36 |
+
MODELS="Llama-2-7b-hf"
|
| 37 |
+
BUDGETS="4.13 4.25 4.51"
|
| 38 |
+
for model in $MODELS; do
|
| 39 |
+
for budget in $BUDGETS; do
|
| 40 |
+
$OLD_DIR/../data-vis/plot-mxq-allocation.R -m $model -b $budget \
|
| 41 |
+
--fnorm_data_dir $OLD_DIR/../src/data \
|
| 42 |
+
--attempt1 mxq1 \
|
| 43 |
+
--attempt2 $ATTEMPT \
|
| 44 |
+
--quant_cfg_allot_file data/quant-cfg-allocation.csv
|
| 45 |
+
done
|
| 46 |
+
done
|
lm-quant-toolkit/scripts/plot-llama-sensi.sh
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
# BUDGETS="2.13 2.25 2.51 3.13 3.25 3.51 4.13 4.25 4.51"
|
| 4 |
+
BUDGETS="4.13 4.25 4.51"
|
| 5 |
+
RESULT_DIR="/fdata/llm/mxq/results"
|
| 6 |
+
QUANT_SNAPSHOT_DIR="/fdata/llm/mxq/snapshots"
|
| 7 |
+
|
| 8 |
+
ATTEMPT="llama-sensi"
|
| 9 |
+
EXP_BASE_NAME=$ATTEMPT
|
| 10 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,qnt,stor}
|
| 11 |
+
|
| 12 |
+
# Use cached dataset to speedup wikitext, c4 ppl evaluation
|
| 13 |
+
export HF_DATASETS_OFFLINE=1
|
| 14 |
+
|
| 15 |
+
weight_algo=sensi-directive
|
| 16 |
+
|
| 17 |
+
log_file="logs/bench-$(date +%Y%m%d%H%M%S).log"
|
| 18 |
+
|
| 19 |
+
mkdir -p $QUANT_SNAPSHOT_DIR/$ATTEMPT
|
| 20 |
+
mkdir -p $RESULT_DIR/${EXP_NAME}_ppl
|
| 21 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,stor}/mxq/$ATTEMPT
|
| 22 |
+
|
| 23 |
+
OLD_DIR=$(pwd)
|
| 24 |
+
cd $RESULT_DIR/$EXP_BASE_NAME
|
| 25 |
+
if [ ! -d pdfs/allot ]; then
|
| 26 |
+
mkdir -p pdfs/allot
|
| 27 |
+
fi
|
| 28 |
+
|
| 29 |
+
# plot configuration allocations for 3 * 12 MXQ combinations
|
| 30 |
+
MODELS="Llama-2-7b-hf"
|
| 31 |
+
BGS="4.13 4.25 4.51"
|
| 32 |
+
for model in $MODELS; do
|
| 33 |
+
for budget in $BGS; do
|
| 34 |
+
$OLD_DIR/../data-vis/plot-mxq-allocation.R \
|
| 35 |
+
-m $model \
|
| 36 |
+
-b $budget \
|
| 37 |
+
--fnorm FALSE \
|
| 38 |
+
--attempt1 $ATTEMPT \
|
| 39 |
+
--attempt2 mxq1 \
|
| 40 |
+
--fnorm_data_dir $OLD_DIR/../src/data \
|
| 41 |
+
--quant_cfg_allot_file data/quant-cfg-allocation.csv
|
| 42 |
+
done
|
| 43 |
+
done
|
lm-quant-toolkit/scripts/plot-milp-low-bit.sh
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
BUDGETS="4.25"
|
| 4 |
+
RESULT_DIR="/fdata/llm/mxq/results"
|
| 5 |
+
QUANT_SNAPSHOT_DIR="/fdata/llm/mxq/snapshots"
|
| 6 |
+
|
| 7 |
+
FACTOR=2
|
| 8 |
+
ATTEMPT="sensi-milp-debug-lowbits9"
|
| 9 |
+
EXP_BASE_NAME=$ATTEMPT
|
| 10 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,qnt,stor}
|
| 11 |
+
|
| 12 |
+
# Use cached dataset to speedup wikitext, c4 ppl evaluation
|
| 13 |
+
export HF_DATASETS_OFFLINE=1
|
| 14 |
+
|
| 15 |
+
weight_algo=sensi-milp
|
| 16 |
+
|
| 17 |
+
log_file="logs/bench-${ATTEMPT}-$(date +%Y%m%d%H%M%S).log"
|
| 18 |
+
|
| 19 |
+
# MODELS="0 1 2"
|
| 20 |
+
MODELS="0"
|
| 21 |
+
EXP_NAME="${ATTEMPT}"
|
| 22 |
+
|
| 23 |
+
echo "=========Collect perplexity evaluation result on batch ${EXP_NAME}========="
|
| 24 |
+
find $RESULT_DIR/${EXP_NAME}_ppl \
|
| 25 |
+
-name "result-*.csv" \
|
| 26 |
+
-printf '%T@ %p\n' \
|
| 27 |
+
| sort -n \
|
| 28 |
+
| tail -1 \
|
| 29 |
+
| cut -d' ' -f2 \
|
| 30 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/ppl/mxq/$ATTEMPT
|
| 31 |
+
|
| 32 |
+
echo "=========Dump quantization configs on batch ${EXP_NAME}========="
|
| 33 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT
|
| 34 |
+
python ../src/cli.py dump \
|
| 35 |
+
--type quant_config \
|
| 36 |
+
--model $MODELS \
|
| 37 |
+
--budget ${BUDGETS} \
|
| 38 |
+
--attempt $ATTEMPT \
|
| 39 |
+
--quant-snapshot-dir=$QUANT_SNAPSHOT_DIR \
|
| 40 |
+
--output-file "$RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT/quant-allot-${EXP_NAME}.csv" \
|
| 41 |
+
2>&1 \
|
| 42 |
+
| tee -a $log_file
|
| 43 |
+
|
| 44 |
+
echo "=========Run memory evaluation on batch ${EXP_NAME}========="
|
| 45 |
+
algo=mxq
|
| 46 |
+
model_ids=$MODELS
|
| 47 |
+
for m in $model_ids; do
|
| 48 |
+
for cfg in ${BUDGETS}; do
|
| 49 |
+
python ../src/cli.py llm \
|
| 50 |
+
--model $m \
|
| 51 |
+
--algo ${algo} \
|
| 52 |
+
--config ${cfg} \
|
| 53 |
+
--task eval_model_storage \
|
| 54 |
+
--experiment-name "${EXP_NAME}_stor" \
|
| 55 |
+
--quant-snapshot-dir="$QUANT_SNAPSHOT_DIR/$ATTEMPT" \
|
| 56 |
+
--result-dir=$RESULT_DIR \
|
| 57 |
+
2>&1 \
|
| 58 |
+
| tee -a $log_file
|
| 59 |
+
done
|
| 60 |
+
done
|
| 61 |
+
echo "=========Collect memory evaluation result on batch ${EXP_NAME}========="
|
| 62 |
+
find $RESULT_DIR/${EXP_NAME}_stor \
|
| 63 |
+
-name "result-*.csv" \
|
| 64 |
+
-printf '%T@ %p\n' \
|
| 65 |
+
| sort -n \
|
| 66 |
+
| tail -1 \
|
| 67 |
+
| cut -d' ' -f2 \
|
| 68 |
+
| xargs -i cp {} $RESULT_DIR/$EXP_BASE_NAME/data/stor/mxq/$ATTEMPT
|
| 69 |
+
|
| 70 |
+
# echo "=========Delete quantized models of batch ${batch_name}========="
|
| 71 |
+
# find $QUANT_SNAPSHOT_DIR/$ATTEMPT -maxdepth 1 -type d | xargs rm -fr
|
| 72 |
+
|
| 73 |
+
OLD_DIR=$(pwd)
|
| 74 |
+
cd $RESULT_DIR/$EXP_BASE_NAME
|
| 75 |
+
if [ ! -d pdfs/allot ]; then
|
| 76 |
+
mkdir -p pdfs/allot
|
| 77 |
+
fi
|
| 78 |
+
$OLD_DIR/../data-vis/combine.R \
|
| 79 |
+
--baseline_data_dir $OLD_DIR/../data-vis/data \
|
| 80 |
+
--mxq_data_dir data
|
| 81 |
+
$OLD_DIR/../data-vis/plot-mxq-paired.R data/combined.csv
|
| 82 |
+
$OLD_DIR/../data-vis/plot-mem-consumption.R data/combined.csv
|
| 83 |
+
$OLD_DIR/../data-vis/plot-quant-speed.R data/combined.csv
|
| 84 |
+
$OLD_DIR/../data-vis/gen-table-mxq-llm.R --csv_file data/combined.csv --attempt $ATTEMPT
|
| 85 |
+
pdflatex table.tex
|
| 86 |
+
|
| 87 |
+
# plot configuration allocations for 3 * 12 MXQ combinations
|
| 88 |
+
MODELS="Llama-2-7b-hf"
|
| 89 |
+
for model in $MODELS; do
|
| 90 |
+
for budget in $BUDGETS; do
|
| 91 |
+
$OLD_DIR/../data-vis/plot-mxq-allocation.R \
|
| 92 |
+
-m $model \
|
| 93 |
+
-b $budget \
|
| 94 |
+
--attempt1 $ATTEMPT \
|
| 95 |
+
--attempt2 mxq1 \
|
| 96 |
+
--fnorm_data_dir $OLD_DIR/../src/data \
|
| 97 |
+
--quant_cfg_allot_file data/quant-cfg-allocation.csv
|
| 98 |
+
done
|
| 99 |
+
done
|
lm-quant-toolkit/scripts/plot-qwen-sensi-metrics.sh
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
RESULT_BASE_DIR="/fdata/llm/mxq/results"
|
| 4 |
+
CALIB_DATASETS="bos pileval wikitext c4"
|
| 5 |
+
CONFIGS="b2g128 b2g64 b2g32 b3g128 b3g64 b3g32 b4g128 b4g64 b4g32 b8g128 b8g64 b8g32"
|
| 6 |
+
MODELS="Qwen/Qwen2.5-7B Qwen/Qwen2.5-Coder-7B Qwen/Qwen2.5-Coder-7B-Instruct Qwen/Qwen2.5-Math-7B"
|
| 7 |
+
|
| 8 |
+
EXP_NAME=sensi_qwen25
|
| 9 |
+
RESULT_DIR=$RESULT_BASE_DIR/$EXP_NAME
|
| 10 |
+
mkdir -p $RESULT_DIR/data
|
| 11 |
+
|
| 12 |
+
OLD_DIR=$(pwd)
|
| 13 |
+
cd $RESULT_DIR
|
| 14 |
+
if [ ! -d pdfs ]; then
|
| 15 |
+
mkdir -p pdfs
|
| 16 |
+
fi
|
| 17 |
+
$OLD_DIR/../data-vis/plot-variant-sensi.R data/
|
lm-quant-toolkit/scripts/plot-sensi-milp-mini-batch.sh
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
|
| 4 |
+
# 100%, 99%, 98%, 97%, 96%, 95% of [3.51, 4.25]
|
| 5 |
+
# MXQ2=(minibatch 3.51 3.47 3.44 3.40 3.37 3.33 4.25 4.21 4.17 4.12 4.08 4.04)
|
| 6 |
+
MXQ2=(minibatch 6.89 5.72 5.02 4.51 4.25 4.21 4.17 4.13 4.11 4.07 3.95 3.87 3.83 3.65 3.51 3.25 3.19 3.15 3.13 3.11 3.07)
|
| 7 |
+
MXQ_BATCHES=(MXQ2)
|
| 8 |
+
declare -n MXQ_BATCH
|
| 9 |
+
|
| 10 |
+
ATTEMPT="sensi-milp-mini2"
|
| 11 |
+
RESULT_DIR="/fdata/llm/mxq/results"
|
| 12 |
+
QUANT_SNAPSHOT_DIR="/fdata/llm/mxq/snapshots"
|
| 13 |
+
EXP_BASE_NAME="${ATTEMPT}"
|
| 14 |
+
QUANT_SNAPSHOT_DIR="/fdata/llm/mxq/snapshots"
|
| 15 |
+
# Setup data files directories for reporting
|
| 16 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,qnt,stor}
|
| 17 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/{ppl,stor}/mxq/$ATTEMPT
|
| 18 |
+
mkdir -p $QUANT_SNAPSHOT_DIR/$ATTEMPT
|
| 19 |
+
|
| 20 |
+
weight_algo=sensi-milp
|
| 21 |
+
|
| 22 |
+
for MXQ_BATCH in "${MXQ_BATCHES[@]}"; do
|
| 23 |
+
batch_name=${MXQ_BATCH[@]:0:1}
|
| 24 |
+
EXP_NAME="${EXP_BASE_NAME}-${batch_name}"
|
| 25 |
+
mkdir -p $RESULT_DIR/${EXP_NAME}_ppl
|
| 26 |
+
mkdir -p $RESULT_DIR/${EXP_NAME}_stor
|
| 27 |
+
log_file="logs/bench-${EXP_NAME}-$(date +%Y%m%d%H%M%S).log"
|
| 28 |
+
|
| 29 |
+
# echo "=========Delete quantized models of batch ${batch_name}========="
|
| 30 |
+
# find $QUANT_SNAPSHOT_DIR/$ATTEMPT -maxdepth 1 -type d | xargs rm -fr
|
| 31 |
+
|
| 32 |
+
OLD_DIR=$(pwd)
|
| 33 |
+
cd $RESULT_DIR/$EXP_BASE_NAME
|
| 34 |
+
if [ ! -d pdfs ]; then
|
| 35 |
+
mkdir pdfs
|
| 36 |
+
fi
|
| 37 |
+
|
| 38 |
+
# plot configuration allocations for 3 * 12 MXQ combinations
|
| 39 |
+
MODELS="Llama-2-7b-hf Llama-2-13b-hf Meta-Llama-3-8B"
|
| 40 |
+
BUDGETS=${MXQ_BATCH[@]:1}
|
| 41 |
+
for model in $MODELS; do
|
| 42 |
+
for budget in $BUDGETS; do
|
| 43 |
+
$OLD_DIR/../data-vis/plot-mxq-allocation.R \
|
| 44 |
+
-m $model \
|
| 45 |
+
-b $budget \
|
| 46 |
+
--fnorm_data_dir $OLD_DIR/../src/data \
|
| 47 |
+
--attempt1 mxq1 \
|
| 48 |
+
--attempt2 $ATTEMPT \
|
| 49 |
+
--quant_cfg_allot_file data/quant-cfg-allocation.csv
|
| 50 |
+
done
|
| 51 |
+
done
|
| 52 |
+
cd $OLD_DIR
|
| 53 |
+
done
|
lm-quant-toolkit/scripts/quant-llm-13b-awq.sh
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
if [ ! -d logs ]; then
|
| 4 |
+
mkdir logs
|
| 5 |
+
fi
|
| 6 |
+
|
| 7 |
+
export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
|
| 8 |
+
|
| 9 |
+
python ../src/cli.py llm \
|
| 10 |
+
--task quant \
|
| 11 |
+
--model 1 \
|
| 12 |
+
--algo awq \
|
| 13 |
+
--config b4g32 b4g64 b4g128 \
|
| 14 |
+
--experiment-name quant_llm_13B-awq2 \
|
| 15 |
+
--quant-snapshot-dir="/fdata/llm/mxq/snapshots" \
|
| 16 |
+
--result-dir="/fdata/llm/mxq/results" \
|
| 17 |
+
2>&1 \
|
| 18 |
+
| tee logs/bench-$(date +%Y%m%d%H%M%S).log
|
lm-quant-toolkit/scripts/quant-llm-2bit-dense1-mxq.sh
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
# export HF_HOME=/data/hugginface
|
| 4 |
+
# conda activate quant-eval
|
| 5 |
+
|
| 6 |
+
if [ ! -d logs ]; then
|
| 7 |
+
mkdir logs
|
| 8 |
+
fi
|
| 9 |
+
|
| 10 |
+
export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
|
| 11 |
+
|
| 12 |
+
python ../src/cli.py llm \
|
| 13 |
+
--task quant \
|
| 14 |
+
--model 0 1 2 \
|
| 15 |
+
--algo mxq \
|
| 16 |
+
--config 2.57 2.55 2.53 2.51 2.49 2.47 2.45 2.31 2.29 2.27 2.25 2.23 2.21 2.19 2.17 2.15 2.13 \
|
| 17 |
+
--experiment-name quant_llm_2bit_dense1-mxq \
|
| 18 |
+
--quant-snapshot-dir="/fdata/llm/mxq/snapshots" \
|
| 19 |
+
--result-dir="/fdata/llm/mxq/results" \
|
| 20 |
+
2>&1 \
|
| 21 |
+
| tee logs/bench-$(date +%Y%m%d%H%M%S).log
|
lm-quant-toolkit/scripts/quant-llm-3bit-dense1-mxq.sh
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
# export HF_HOME=/data/hugginface
|
| 4 |
+
# conda activate quant-eval
|
| 5 |
+
|
| 6 |
+
if [ ! -d logs ]; then
|
| 7 |
+
mkdir logs
|
| 8 |
+
fi
|
| 9 |
+
|
| 10 |
+
export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
|
| 11 |
+
|
| 12 |
+
python ../src/cli.py llm \
|
| 13 |
+
--task quant \
|
| 14 |
+
--model 0 1 2 \
|
| 15 |
+
--algo mxq \
|
| 16 |
+
--config 3.57 3.55 3.53 3.51 3.49 3.47 3.45 3.31 3.29 3.27 3.25 3.23 3.21 3.19 3.17 3.15 3.13 3.11 3.09 3.07 \
|
| 17 |
+
--experiment-name quant_llm_3bit_dense1-mxq \
|
| 18 |
+
--quant-snapshot-dir="/fdata/llm/mxq/snapshots" \
|
| 19 |
+
--result-dir="/fdata/llm/mxq/results" \
|
| 20 |
+
2>&1 \
|
| 21 |
+
| tee logs/bench-$(date +%Y%m%d%H%M%S).log
|
lm-quant-toolkit/scripts/quant-llm-4_51-mxq.sh
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
# export HF_HOME=/data/hugginface
|
| 4 |
+
# conda activate quant-eval
|
| 5 |
+
|
| 6 |
+
if [ ! -d logs ]; then
|
| 7 |
+
mkdir logs
|
| 8 |
+
fi
|
| 9 |
+
|
| 10 |
+
export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
|
| 11 |
+
|
| 12 |
+
python ../src/cli.py llm \
|
| 13 |
+
--task quant \
|
| 14 |
+
--model 0 \
|
| 15 |
+
--algo mxq \
|
| 16 |
+
--config 4.51 \
|
| 17 |
+
--experiment-name quant_llm_4_51-mxq \
|
| 18 |
+
--quant-snapshot-dir="/fdata/llm/mxq/snapshots" \
|
| 19 |
+
--result-dir="/fdata/llm/mxq/results" \
|
| 20 |
+
2>&1 \
|
| 21 |
+
| tee logs/bench-$(date +%Y%m%d%H%M%S).log
|
lm-quant-toolkit/scripts/quant-llm-4bit-dense1-mxq.sh
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
# export HF_HOME=/data/hugginface
|
| 4 |
+
# conda activate quant-eval
|
| 5 |
+
|
| 6 |
+
if [ ! -d logs ]; then
|
| 7 |
+
mkdir logs
|
| 8 |
+
fi
|
| 9 |
+
|
| 10 |
+
export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
|
| 11 |
+
|
| 12 |
+
python ../src/cli.py llm \
|
| 13 |
+
--task quant \
|
| 14 |
+
--model 0 1 2 \
|
| 15 |
+
--algo mxq \
|
| 16 |
+
--config 4.61 4.59 4.57 4.55 4.53 4.51 4.49 4.47 4.45 4.43 4.41 4.35 4.33 4.31 4.29 4.27 4.25 4.23 4.21 4.19 4.17 4.15 4.13 4.11 4.09 4.07 4.05 4.03 \
|
| 17 |
+
--experiment-name quant_llm_4bit_dense1-mxq \
|
| 18 |
+
--quant-snapshot-dir="/fdata/llm/mxq/snapshots" \
|
| 19 |
+
--result-dir="/fdata/llm/mxq/results" \
|
| 20 |
+
2>&1 \
|
| 21 |
+
| tee logs/bench-$(date +%Y%m%d%H%M%S).log
|
lm-quant-toolkit/scripts/quant-llm-8bit-gptq.sh
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
if [ ! -d logs ]; then
|
| 4 |
+
mkdir logs
|
| 5 |
+
fi
|
| 6 |
+
|
| 7 |
+
export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
|
| 8 |
+
|
| 9 |
+
python ../src/cli.py llm \
|
| 10 |
+
--task quant \
|
| 11 |
+
--model 0 1 2 \
|
| 12 |
+
--algo gptq \
|
| 13 |
+
--config b8g32 b8g64 b8g128 \
|
| 14 |
+
--experiment-name quant_llm-8bit-gptq \
|
| 15 |
+
--quant-snapshot-dir="/fdata/llm/mxq/snapshots" \
|
| 16 |
+
--result-dir="/fdata/llm/mxq/results" \
|
| 17 |
+
2>&1 \
|
| 18 |
+
| tee logs/bench-$(date +%Y%m%d%H%M%S).log
|
lm-quant-toolkit/scripts/quant-llm-awq.sh
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
if [ ! -d logs ]; then
|
| 4 |
+
mkdir logs
|
| 5 |
+
fi
|
| 6 |
+
|
| 7 |
+
export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
|
| 8 |
+
|
| 9 |
+
python ../src/cli.py llm \
|
| 10 |
+
--task quant \
|
| 11 |
+
--model 1 \
|
| 12 |
+
--algo awq \
|
| 13 |
+
--config b4g32 b4g64 b4g128 \
|
| 14 |
+
--experiment-name quant_llm_13B-awq \
|
| 15 |
+
--quant-snapshot-dir="/fdata/llm/mxq/snapshots" \
|
| 16 |
+
--result-dir="/fdata/llm/mxq/results" \
|
| 17 |
+
2>&1 \
|
| 18 |
+
| tee logs/bench-$(date +%Y%m%d%H%M%S).log
|
lm-quant-toolkit/scripts/quant-llm-b4-mxq.sh
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
# export HF_HOME=/data/hugginface
|
| 4 |
+
# conda activate quant-eval
|
| 5 |
+
|
| 6 |
+
if [ ! -d logs ]; then
|
| 7 |
+
mkdir logs
|
| 8 |
+
fi
|
| 9 |
+
|
| 10 |
+
export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
|
| 11 |
+
|
| 12 |
+
python ../src/cli.py llm \
|
| 13 |
+
--task quant \
|
| 14 |
+
--model 0 1 2 \
|
| 15 |
+
--algo mxq \
|
| 16 |
+
--config 4.51 4.25 4.13 \
|
| 17 |
+
--experiment-name quant_llm_b4-mxq2 \
|
| 18 |
+
--quant-snapshot-dir="/fdata/llm/mxq/snapshots" \
|
| 19 |
+
--result-dir="/fdata/llm/mxq/results" \
|
| 20 |
+
2>&1 \
|
| 21 |
+
| tee logs/bench-$(date +%Y%m%d%H%M%S).log
|
lm-quant-toolkit/scripts/quant-llm-gptq.sh
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
if [ ! -d logs ]; then
|
| 4 |
+
mkdir logs
|
| 5 |
+
fi
|
| 6 |
+
|
| 7 |
+
export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
|
| 8 |
+
|
| 9 |
+
python ../src/lm-quant-toolkit/src/cli.py llm \
|
| 10 |
+
--task quant \
|
| 11 |
+
--model 0 1 2 \
|
| 12 |
+
--algo gptq \
|
| 13 |
+
--experiment-name quant_llm-gptq \
|
| 14 |
+
--quant-snapshot-dir="/fdata/llm/mxq/snapshots" \
|
| 15 |
+
--result-dir="/fdata/llm/mxq/results" \
|
| 16 |
+
2>&1 \
|
| 17 |
+
| tee logs/bench-$(date +%Y%m%d%H%M%S).log
|
lm-quant-toolkit/scripts/quant-llm-hqq.sh
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
# export HF_HOME=/data/hugginface
|
| 4 |
+
# conda activate quant-eval
|
| 5 |
+
|
| 6 |
+
if [ ! -d logs ]; then
|
| 7 |
+
mkdir logs
|
| 8 |
+
fi
|
| 9 |
+
|
| 10 |
+
export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
|
| 11 |
+
|
| 12 |
+
python ../src/cli.py llm \
|
| 13 |
+
--task quant \
|
| 14 |
+
--model 0 1 2 \
|
| 15 |
+
--algo hqq \
|
| 16 |
+
--experiment-name quant_llm-hqq \
|
| 17 |
+
--quant-snapshot-dir="/fdata/llm/mxq/snapshots" \
|
| 18 |
+
--result-dir="/fdata/llm/mxq/results" \
|
| 19 |
+
2>&1 \
|
| 20 |
+
| tee logs/bench-$(date +%Y%m%d%H%M%S).log
|
lm-quant-toolkit/scripts/quant-llm-kurt-13b-mxq.sh
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
# export HF_HOME=/data/hugginface
|
| 4 |
+
# conda activate quant-eval
|
| 5 |
+
|
| 6 |
+
if [ ! -d logs ]; then
|
| 7 |
+
mkdir logs
|
| 8 |
+
fi
|
| 9 |
+
|
| 10 |
+
export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
|
| 11 |
+
|
| 12 |
+
python ../src/cli.py llm \
|
| 13 |
+
--task quant \
|
| 14 |
+
--model 1 \
|
| 15 |
+
--algo mxq \
|
| 16 |
+
--config 4.51 4.25 4.13 \
|
| 17 |
+
--experiment-name quant_llm-weighted-113b-mxq \
|
| 18 |
+
--quant-snapshot-dir="/fdata/llm/mxq/snapshots-kurt" \
|
| 19 |
+
--result-dir="/fdata/llm/mxq/results" \
|
| 20 |
+
2>&1 \
|
| 21 |
+
| tee logs/bench-$(date +%Y%m%d%H%M%S).log
|
lm-quant-toolkit/scripts/quant-llm-mxq.sh
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
# export HF_HOME=/data/hugginface
|
| 4 |
+
# conda activate quant-eval
|
| 5 |
+
|
| 6 |
+
if [ ! -d logs ]; then
|
| 7 |
+
mkdir logs
|
| 8 |
+
fi
|
| 9 |
+
|
| 10 |
+
export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
|
| 11 |
+
|
| 12 |
+
python ../src/cli.py llm \
|
| 13 |
+
--task quant \
|
| 14 |
+
--model 0 1 2 \
|
| 15 |
+
--algo mxq \
|
| 16 |
+
--experiment-name quant_llm-mxq \
|
| 17 |
+
--quant-snapshot-dir="/fdata/llm/mxq/snapshots" \
|
| 18 |
+
--result-dir="/fdata/llm/mxq/results" \
|
| 19 |
+
2>&1 \
|
| 20 |
+
| tee logs/bench-$(date +%Y%m%d%H%M%S).log
|
lm-quant-toolkit/scripts/sim-quant-allot.sh
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
# BUDGETS="2.13 2.25 2.51 3.13 3.25 3.51 4.13 4.25 4.51"
|
| 4 |
+
BUDGETS="4.13 4.25 4.51"
|
| 5 |
+
RESULT_DIR="/fdata/llm/mxq/results"
|
| 6 |
+
|
| 7 |
+
TAILS=(tail-prioritized 2.00 4.00)
|
| 8 |
+
# MXQ_BATCHES=(HEADS TAILS)
|
| 9 |
+
MXQ_BATCHES=(TAILS)
|
| 10 |
+
declare -n MXQ_BATCH
|
| 11 |
+
|
| 12 |
+
EXP_BASE_NAME="tail-factor-search"
|
| 13 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME
|
| 14 |
+
|
| 15 |
+
for MXQ_BATCH in "${MXQ_BATCHES[@]}"; do
|
| 16 |
+
weight_algo=${MXQ_BATCH[@]:0:1}
|
| 17 |
+
for factor in ${MXQ_BATCH[@]:1}; do
|
| 18 |
+
ATTEMPT="${weight_algo}_${factor/./_}"
|
| 19 |
+
EXP_NAME="${ATTEMPT}"
|
| 20 |
+
log_file="logs/bench-$(date +%Y%m%d%H%M%S).log"
|
| 21 |
+
|
| 22 |
+
mkdir -p $RESULT_DIR/${EXP_NAME}_ppl
|
| 23 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT
|
| 24 |
+
|
| 25 |
+
# python -m pdb ../src/cli.py dump \
|
| 26 |
+
python ../src/cli.py dump \
|
| 27 |
+
--type quant_config_sim \
|
| 28 |
+
--model 0 1 2 \
|
| 29 |
+
--weight-algo $weight_algo \
|
| 30 |
+
--factor $factor \
|
| 31 |
+
--budget ${BUDGETS} \
|
| 32 |
+
--output-file="$RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT/${EXP_NAME}.csv"\
|
| 33 |
+
2>&1 \
|
| 34 |
+
| tee -a $log_file
|
| 35 |
+
|
| 36 |
+
done
|
| 37 |
+
|
| 38 |
+
done
|
| 39 |
+
|
| 40 |
+
OLD_DIR=$(pwd)
|
| 41 |
+
cd $RESULT_DIR/$EXP_BASE_NAME
|
| 42 |
+
if [ ! -d pdfs/allot ]; then
|
| 43 |
+
mkdir -p pdfs/allot
|
| 44 |
+
fi
|
| 45 |
+
$OLD_DIR/../data-vis/combine.R \
|
| 46 |
+
--baseline_data_dir $OLD_DIR/../data-vis/data \
|
| 47 |
+
--mxq_data_dir data
|
| 48 |
+
# plot configuration allocations for 3 * 12 MXQ combinations
|
| 49 |
+
MODELS="Llama-2-7b-hf Llama-2-13b-hf Meta-Llama-3-8B"
|
| 50 |
+
for model in $MODELS; do
|
| 51 |
+
for budget in $BUDGETS; do
|
| 52 |
+
$OLD_DIR/../data-vis/plot-mxq-allocation.R \
|
| 53 |
+
-m $model \
|
| 54 |
+
-b $budget \
|
| 55 |
+
--attempt1 tail-prioritized_2_00 \
|
| 56 |
+
--attempt2 tail-prioritized_4_00 \
|
| 57 |
+
--fnorm_data_dir $OLD_DIR/../src/data \
|
| 58 |
+
--quant_cfg_allot_file data/quant-cfg-allocation.csv
|
| 59 |
+
done
|
| 60 |
+
done
|
lm-quant-toolkit/scripts/sim-quant-milp.sh
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
# python ../src/lm_quant_toolkit/eval/common.py > 2-8-quant-bits.txt
|
| 4 |
+
python ../src/lm_quant_toolkit/eval/common.py > 2-8-quant-bits-sensi.txt
|
lm-quant-toolkit/scripts/sim-tail-boost-quant-allot.sh
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
# BUDGETS="2.13 2.25 2.51 3.13 3.25 3.51 4.13 4.25 4.51"
|
| 4 |
+
BUDGETS="4.13 4.25 4.51"
|
| 5 |
+
RESULT_DIR="/fdata/llm/mxq/results"
|
| 6 |
+
weight_algo="tail_boost"
|
| 7 |
+
EXP_BASE_NAME="$weight_algo"
|
| 8 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME
|
| 9 |
+
|
| 10 |
+
ATTEMPT="$weight_algo"
|
| 11 |
+
EXP_NAME="${ATTEMPT}"
|
| 12 |
+
log_file="logs/bench-$(date +%Y%m%d%H%M%S).log"
|
| 13 |
+
|
| 14 |
+
mkdir -p $RESULT_DIR/${EXP_NAME}_ppl
|
| 15 |
+
mkdir -p $RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT
|
| 16 |
+
|
| 17 |
+
# python -m pdb ../src/cli.py dump \
|
| 18 |
+
python ../src/cli.py dump \
|
| 19 |
+
--type quant_config_sim \
|
| 20 |
+
--model 0 1 2 \
|
| 21 |
+
--weight-algo $weight_algo \
|
| 22 |
+
--budget ${BUDGETS} \
|
| 23 |
+
--output-file="$RESULT_DIR/$EXP_BASE_NAME/data/allot/mxq/$ATTEMPT/${EXP_NAME}.csv"\
|
| 24 |
+
2>&1 \
|
| 25 |
+
| tee -a $log_file
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
OLD_DIR=$(pwd)
|
| 29 |
+
cd $RESULT_DIR/$EXP_BASE_NAME
|
| 30 |
+
if [ ! -d pdfs/allot ]; then
|
| 31 |
+
mkdir -p pdfs/allot
|
| 32 |
+
fi
|
| 33 |
+
$OLD_DIR/../data-vis/combine.R \
|
| 34 |
+
--baseline_data_dir $OLD_DIR/../data-vis/data \
|
| 35 |
+
--mxq_data_dir data
|
| 36 |
+
# plot configuration allocations for 3 * 12 MXQ combinations
|
| 37 |
+
MODELS="Llama-2-7b-hf Llama-2-13b-hf Meta-Llama-3-8B"
|
| 38 |
+
for model in $MODELS; do
|
| 39 |
+
for budget in $BUDGETS; do
|
| 40 |
+
$OLD_DIR/../data-vis/plot-mxq-allocation.R \
|
| 41 |
+
-m $model \
|
| 42 |
+
-b $budget \
|
| 43 |
+
--attempt1 $weight_algo \
|
| 44 |
+
--attempt2 mxq1 \
|
| 45 |
+
--fnorm_data_dir $OLD_DIR/../src/data \
|
| 46 |
+
--quant_cfg_allot_file data/quant-cfg-allocation.csv
|
| 47 |
+
done
|
| 48 |
+
done
|
lm-quant-toolkit/src/data/fnorm-Llama-2-70b-hf.csv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
lm-quant-toolkit/src/data/fnorm-Llama-3-70B.csv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
lm-quant-toolkit/src/data/fnorm-Meta-Llama-3-8B.csv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
lm-quant-toolkit/src/data/kurtosis-CLIP-ViT-L-14-laion2B-s32B-b82K.csv
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
module,layer,kurtosis
|
| 2 |
+
vision.mlp.c_fc,0,82.60432030937712
|
| 3 |
+
vision.mlp.c_fc,1,12.176342485174775
|
| 4 |
+
vision.mlp.c_fc,2,9.386186464371631
|
| 5 |
+
vision.mlp.c_fc,3,6.0384986521099115
|
| 6 |
+
vision.mlp.c_fc,4,5.121874436272312
|
| 7 |
+
vision.mlp.c_fc,5,4.184969377709542
|
| 8 |
+
vision.mlp.c_fc,6,4.256117717855523
|
| 9 |
+
vision.mlp.c_fc,7,3.953278547908379
|
| 10 |
+
vision.mlp.c_fc,8,3.923302040046366
|
| 11 |
+
vision.mlp.c_fc,9,3.640527020435186
|
| 12 |
+
vision.mlp.c_fc,10,3.8766116638521972
|
| 13 |
+
vision.mlp.c_fc,11,3.364467358103123
|
| 14 |
+
vision.mlp.c_fc,12,3.2501048983174172
|
| 15 |
+
vision.mlp.c_fc,13,3.144904609090658
|
| 16 |
+
vision.mlp.c_fc,14,3.1176022019209833
|
| 17 |
+
vision.mlp.c_fc,15,3.170790033142059
|
| 18 |
+
vision.mlp.c_fc,16,3.1901952176386157
|
| 19 |
+
vision.mlp.c_fc,17,3.1728736833856566
|
| 20 |
+
vision.mlp.c_fc,18,3.1092420753715064
|
| 21 |
+
vision.mlp.c_fc,19,3.1289105323616995
|
| 22 |
+
vision.mlp.c_fc,20,3.1633778054509616
|
| 23 |
+
vision.mlp.c_fc,21,3.1948778928908625
|
| 24 |
+
vision.mlp.c_fc,22,3.153364851937131
|
| 25 |
+
vision.mlp.c_fc,23,3.1481862277653847
|
| 26 |
+
vision.mlp.c_proj,0,48.91602226406029
|
| 27 |
+
vision.mlp.c_proj,1,7.994586159177927
|
| 28 |
+
vision.mlp.c_proj,2,9.259903305960076
|
| 29 |
+
vision.mlp.c_proj,3,12.161504492865403
|
| 30 |
+
vision.mlp.c_proj,4,11.137208824577082
|
| 31 |
+
vision.mlp.c_proj,5,4.50118105140538
|
| 32 |
+
vision.mlp.c_proj,6,3.9747365034192206
|
| 33 |
+
vision.mlp.c_proj,7,4.846873977315018
|
| 34 |
+
vision.mlp.c_proj,8,4.914742513787588
|
| 35 |
+
vision.mlp.c_proj,9,5.0506453475209065
|
| 36 |
+
vision.mlp.c_proj,10,13.838509154283804
|
| 37 |
+
vision.mlp.c_proj,11,4.258906842824289
|
| 38 |
+
vision.mlp.c_proj,12,3.4482411935554316
|
| 39 |
+
vision.mlp.c_proj,13,3.4563538182296156
|
| 40 |
+
vision.mlp.c_proj,14,3.1506796697623156
|
| 41 |
+
vision.mlp.c_proj,15,3.140821870180245
|
| 42 |
+
vision.mlp.c_proj,16,3.1870137578290736
|
| 43 |
+
vision.mlp.c_proj,17,3.1622263243928037
|
| 44 |
+
vision.mlp.c_proj,18,3.1727003318990294
|
| 45 |
+
vision.mlp.c_proj,19,3.126420350320576
|
| 46 |
+
vision.mlp.c_proj,20,3.214422564736524
|
| 47 |
+
vision.mlp.c_proj,21,3.5410765909033515
|
| 48 |
+
vision.mlp.c_proj,22,3.885907825953595
|
| 49 |
+
vision.mlp.c_proj,23,3.241221353196137
|
| 50 |
+
text.mlp.c_fc,0,3.111321629333239
|
| 51 |
+
text.mlp.c_fc,1,3.1040094243226832
|
| 52 |
+
text.mlp.c_fc,2,3.0476798189406455
|
| 53 |
+
text.mlp.c_fc,3,3.0567396405641647
|
| 54 |
+
text.mlp.c_fc,4,3.072398311749821
|
| 55 |
+
text.mlp.c_fc,5,3.0581450022889753
|
| 56 |
+
text.mlp.c_fc,6,3.053470998692992
|
| 57 |
+
text.mlp.c_fc,7,3.0531601497538126
|
| 58 |
+
text.mlp.c_fc,8,3.0696775698776992
|
| 59 |
+
text.mlp.c_fc,9,3.065453985089178
|
| 60 |
+
text.mlp.c_fc,10,3.067657384247557
|
| 61 |
+
text.mlp.c_fc,11,3.086129858871849
|
| 62 |
+
text.mlp.c_proj,0,16.411416535361464
|
| 63 |
+
text.mlp.c_proj,1,10.636934397271798
|
| 64 |
+
text.mlp.c_proj,2,5.467879831695406
|
| 65 |
+
text.mlp.c_proj,3,3.117101945617834
|
| 66 |
+
text.mlp.c_proj,4,3.162125318135728
|
| 67 |
+
text.mlp.c_proj,5,3.114353715482094
|
| 68 |
+
text.mlp.c_proj,6,3.1560610360682673
|
| 69 |
+
text.mlp.c_proj,7,3.230989551532942
|
| 70 |
+
text.mlp.c_proj,8,3.273957420333387
|
| 71 |
+
text.mlp.c_proj,9,3.322224898837691
|
| 72 |
+
text.mlp.c_proj,10,3.252371370612472
|
| 73 |
+
text.mlp.c_proj,11,3.2207147468979427
|
lm-quant-toolkit/src/lm_quant_toolkit.egg-info/SOURCES.txt
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
LICENSE
|
| 2 |
+
MANIFEST.in
|
| 3 |
+
README.md
|
| 4 |
+
pyproject.toml
|
| 5 |
+
docs/Makefile
|
| 6 |
+
docs/source/CHANGELOG.rst
|
| 7 |
+
docs/source/conf.py
|
| 8 |
+
docs/source/index.rst
|
| 9 |
+
docs/source/modules/index.rst
|
| 10 |
+
src/cli.py
|
| 11 |
+
src/dump.py
|
| 12 |
+
src/lm_quant_toolkit/__init__.py
|
| 13 |
+
src/lm_quant_toolkit.egg-info/PKG-INFO
|
| 14 |
+
src/lm_quant_toolkit.egg-info/SOURCES.txt
|
| 15 |
+
src/lm_quant_toolkit.egg-info/dependency_links.txt
|
| 16 |
+
src/lm_quant_toolkit.egg-info/requires.txt
|
| 17 |
+
src/lm_quant_toolkit.egg-info/top_level.txt
|
| 18 |
+
src/lm_quant_toolkit/adapter/__init__.py
|
| 19 |
+
src/lm_quant_toolkit/adapter/autoawq.py
|
| 20 |
+
src/lm_quant_toolkit/adapter/autogptq.py
|
| 21 |
+
src/lm_quant_toolkit/adapter/awq.py
|
| 22 |
+
src/lm_quant_toolkit/adapter/bnb.py
|
| 23 |
+
src/lm_quant_toolkit/adapter/common.py
|
| 24 |
+
src/lm_quant_toolkit/adapter/fp16.py
|
| 25 |
+
src/lm_quant_toolkit/adapter/hqq.py
|
| 26 |
+
src/lm_quant_toolkit/adapter/mxq.py
|
| 27 |
+
src/lm_quant_toolkit/adapter/vit/hqq.py
|
| 28 |
+
src/lm_quant_toolkit/eval/__init__.py
|
| 29 |
+
src/lm_quant_toolkit/eval/bench.py
|
| 30 |
+
src/lm_quant_toolkit/eval/bench_vit.py
|
| 31 |
+
src/lm_quant_toolkit/eval/clipbenchmark.py
|
| 32 |
+
src/lm_quant_toolkit/eval/common.py
|
| 33 |
+
src/lm_quant_toolkit/eval/leaderboard.py
|
| 34 |
+
src/lm_quant_toolkit/eval/perplexity.py
|
| 35 |
+
src/lm_quant_toolkit/misc/__init__.py
|
| 36 |
+
src/lm_quant_toolkit/misc/lp_norm.py
|
| 37 |
+
src/lm_quant_toolkit/misc/quant_sim.py
|
| 38 |
+
src/lm_quant_toolkit/misc/qweight.py
|
| 39 |
+
src/lm_quant_toolkit/prep/__init__.py
|
| 40 |
+
src/lm_quant_toolkit/prep/fnorm.py
|
| 41 |
+
src/lm_quant_toolkit/prep/sensitivity.py
|
| 42 |
+
src/lm_quant_toolkit/prep/wdist.py
|
| 43 |
+
src/lm_quant_toolkit/utils/__init__.py
|
| 44 |
+
src/lm_quant_toolkit/utils/hub.py
|
| 45 |
+
src/lm_quant_toolkit/utils/pickle.py
|
| 46 |
+
src/lm_quant_toolkit/utils/safetensors.py
|
lm-quant-toolkit/src/lm_quant_toolkit.egg-info/dependency_links.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
|
lm-quant-toolkit/src/lm_quant_toolkit.egg-info/requires.txt
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
accelerate>=0.30.1
|
| 2 |
+
bitsandbytes>0.37.0
|
| 3 |
+
antlr4-python3-runtime==4.11.0
|
| 4 |
+
datasets==2.20.0
|
| 5 |
+
Jinja2==3.1.4
|
| 6 |
+
langdetect==1.0.9
|
| 7 |
+
nltk==3.9.1
|
| 8 |
+
numpy==1.26.4
|
| 9 |
+
optimum>=1.21.4
|
| 10 |
+
pandas==2.2.2
|
| 11 |
+
safetensors==0.4.3
|
| 12 |
+
scikit-learn==1.4.2
|
| 13 |
+
scipy==1.13.0
|
| 14 |
+
sentencepiece==0.2.0
|
| 15 |
+
tokenizers>=0.19.1
|
| 16 |
+
torch>=2.1.0
|
| 17 |
+
tqdm==4.66.4
|
| 18 |
+
transformers>=4.41.2
|
| 19 |
+
|
| 20 |
+
[dev]
|
| 21 |
+
bumpver
|
| 22 |
+
pip-tools
|
| 23 |
+
|
| 24 |
+
[doc]
|
| 25 |
+
sphinx
|
| 26 |
+
|
| 27 |
+
[test]
|
| 28 |
+
tox
|
lm-quant-toolkit/src/lm_quant_toolkit/__init__.py
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Packages for LLM Quantization Evaluation."""
|
| 2 |
+
|
| 3 |
+
from importlib.metadata import PackageNotFoundError, version
|
| 4 |
+
|
| 5 |
+
try:
|
| 6 |
+
__version__ = version("llm_quant_eval")
|
| 7 |
+
except PackageNotFoundError:
|
| 8 |
+
__version__ = "unknown version"
|
lm-quant-toolkit/src/lm_quant_toolkit/__pycache__/__init__.cpython-310.pyc
ADDED
|
Binary file (414 Bytes). View file
|
|
|