chen459664 commited on
Commit
64ddf8d
·
verified ·
1 Parent(s): f420a61

Add files using upload-large-folder tool

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. lm-quant-toolkit/scripts/experiment-llama-sensi-7b-cfg-wise.sh +119 -0
  2. lm-quant-toolkit/scripts/experiment-llama-sensi-7b-fnorm-avg.sh +119 -0
  3. lm-quant-toolkit/scripts/experiment-llama-sensi-7b-protect-mlp.sh +119 -0
  4. lm-quant-toolkit/scripts/experiment-llama-sensi-boost.sh +133 -0
  5. lm-quant-toolkit/scripts/experiment-llama-sensi-milp-7b.sh +119 -0
  6. lm-quant-toolkit/scripts/experiment-llama-sensi-milp-ablation.sh +109 -0
  7. lm-quant-toolkit/scripts/experiment-llama-sensi-milp.sh +129 -0
  8. lm-quant-toolkit/scripts/experiment-llama-sensi.sh +190 -0
  9. lm-quant-toolkit/scripts/experiment-llama2-13b-balanced.sh +122 -0
  10. lm-quant-toolkit/scripts/experiment-llama2-13b-boost.sh +121 -0
  11. lm-quant-toolkit/scripts/experiment-llama3-8b-aggressive-reduction.sh +122 -0
  12. lm-quant-toolkit/scripts/experiment-sensi-milp-mini-batch.sh +128 -0
  13. lm-quant-toolkit/scripts/experiment-tail-2-4.sh +135 -0
  14. lm-quant-toolkit/scripts/experiment-tail-boost.sh +117 -0
  15. lm-quant-toolkit/scripts/experiment-tail-reduction.sh +118 -0
  16. lm-quant-toolkit/scripts/experiment-vit-zs-mxq-kurt-boost.sh +34 -0
  17. lm-quant-toolkit/scripts/fix-3.25-llama-7b-sensi-boost.sh +116 -0
  18. lm-quant-toolkit/scripts/fix-experiment-llama-kurt-milp-ablation.sh +82 -0
  19. lm-quant-toolkit/scripts/fix-experiment-llama-sensi-milp-ablation.sh +86 -0
  20. lm-quant-toolkit/scripts/fix-llama-sensi-milp.sh +129 -0
  21. lm-quant-toolkit/scripts/fix_experiment-llama-kurt-milp.sh +87 -0
  22. lm-quant-toolkit/scripts/plot-allot-kurt-scaled-dense.sh +46 -0
  23. lm-quant-toolkit/scripts/plot-llama-sensi.sh +43 -0
  24. lm-quant-toolkit/scripts/plot-milp-low-bit.sh +99 -0
  25. lm-quant-toolkit/scripts/plot-qwen-sensi-metrics.sh +17 -0
  26. lm-quant-toolkit/scripts/plot-sensi-milp-mini-batch.sh +53 -0
  27. lm-quant-toolkit/scripts/quant-llm-13b-awq.sh +18 -0
  28. lm-quant-toolkit/scripts/quant-llm-2bit-dense1-mxq.sh +21 -0
  29. lm-quant-toolkit/scripts/quant-llm-3bit-dense1-mxq.sh +21 -0
  30. lm-quant-toolkit/scripts/quant-llm-4_51-mxq.sh +21 -0
  31. lm-quant-toolkit/scripts/quant-llm-4bit-dense1-mxq.sh +21 -0
  32. lm-quant-toolkit/scripts/quant-llm-8bit-gptq.sh +18 -0
  33. lm-quant-toolkit/scripts/quant-llm-awq.sh +18 -0
  34. lm-quant-toolkit/scripts/quant-llm-b4-mxq.sh +21 -0
  35. lm-quant-toolkit/scripts/quant-llm-gptq.sh +17 -0
  36. lm-quant-toolkit/scripts/quant-llm-hqq.sh +20 -0
  37. lm-quant-toolkit/scripts/quant-llm-kurt-13b-mxq.sh +21 -0
  38. lm-quant-toolkit/scripts/quant-llm-mxq.sh +20 -0
  39. lm-quant-toolkit/scripts/sim-quant-allot.sh +60 -0
  40. lm-quant-toolkit/scripts/sim-quant-milp.sh +4 -0
  41. lm-quant-toolkit/scripts/sim-tail-boost-quant-allot.sh +48 -0
  42. lm-quant-toolkit/src/data/fnorm-Llama-2-70b-hf.csv +0 -0
  43. lm-quant-toolkit/src/data/fnorm-Llama-3-70B.csv +0 -0
  44. lm-quant-toolkit/src/data/fnorm-Meta-Llama-3-8B.csv +0 -0
  45. lm-quant-toolkit/src/data/kurtosis-CLIP-ViT-L-14-laion2B-s32B-b82K.csv +73 -0
  46. lm-quant-toolkit/src/lm_quant_toolkit.egg-info/SOURCES.txt +46 -0
  47. lm-quant-toolkit/src/lm_quant_toolkit.egg-info/dependency_links.txt +1 -0
  48. lm-quant-toolkit/src/lm_quant_toolkit.egg-info/requires.txt +28 -0
  49. lm-quant-toolkit/src/lm_quant_toolkit/__init__.py +8 -0
  50. 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