0xarchit commited on
Commit
78e4a96
·
1 Parent(s): f5bcacf

Auto-tune ctx-size, batch and cache types for low-memory (<=16GB) Spaces; export CACHE_TYPE_{K,V}

Browse files
Files changed (1) hide show
  1. start.sh +30 -2
start.sh CHANGED
@@ -13,6 +13,8 @@ export MODEL_PATH="${MODEL_PATH:-/data/models/model.gguf}"
13
  export CTX_SIZE="${CONTEXT_LENGTH:-${CTX_SIZE:-4096}}"
14
  export QUANT_PREFERENCE="${QUANT_PREFERENCE:-q4_k_m,q4_k_s,q4_k,q4_0,q4_1}"
15
  export PERF_PROFILE="${PERF_PROFILE:-balanced}"
 
 
16
 
17
  # Ensure data directories exist and are writable. Run as root in container startup.
18
  echo "preparing storage: $HF_HOME and $MODEL_DIR"
@@ -53,6 +55,32 @@ case "$PERF_PROFILE" in
53
  ;;
54
  esac
55
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
  server_args=(
57
  --model "$MODEL_PATH"
58
  --host 0.0.0.0
@@ -65,8 +93,8 @@ server_args=(
65
  --batch-size "${BATCH_SIZE:-$DEFAULT_BATCH}"
66
  --ubatch-size "${UBATCH_SIZE:-$DEFAULT_UBATCH}"
67
  --ctx-size "${CTX_SIZE:-4096}"
68
- --cache-type-k "${CACHE_TYPE_K:-f16}"
69
- --cache-type-v "${CACHE_TYPE_V:-f16}"
70
  --metrics
71
  )
72
 
 
13
  export CTX_SIZE="${CONTEXT_LENGTH:-${CTX_SIZE:-4096}}"
14
  export QUANT_PREFERENCE="${QUANT_PREFERENCE:-q4_k_m,q4_k_s,q4_k,q4_0,q4_1}"
15
  export PERF_PROFILE="${PERF_PROFILE:-balanced}"
16
+ export CACHE_TYPE_K="${CACHE_TYPE_K:-f16}"
17
+ export CACHE_TYPE_V="${CACHE_TYPE_V:-f16}"
18
 
19
  # Ensure data directories exist and are writable. Run as root in container startup.
20
  echo "preparing storage: $HF_HOME and $MODEL_DIR"
 
55
  ;;
56
  esac
57
 
58
+ # Adjust defaults for low-memory environments (Spaces free tier: ~16GB)
59
+ if [ -r /proc/meminfo ]; then
60
+ MEM_KB=$(awk '/MemTotal/ {print $2}' /proc/meminfo || echo 0)
61
+ else
62
+ MEM_KB=0
63
+ fi
64
+ echo "detected memory (KB): $MEM_KB"
65
+ if [ "$MEM_KB" -gt 0 ] && [ "$MEM_KB" -le 18000000 ]; then
66
+ echo "low-memory profile detected: adjusting ctx-size and cache types"
67
+ # reduce default context to save KV cache memory
68
+ CTX_SIZE="${CTX_SIZE:-2048}"
69
+ # use compact cache formats
70
+ CACHE_TYPE_K="${CACHE_TYPE_K:-f16}"
71
+ CACHE_TYPE_V="${CACHE_TYPE_V:-f16}"
72
+ # further reduce batch sizes if balanced/throughput
73
+ if [ "$PERF_PROFILE" = "balanced" ]; then
74
+ DEFAULT_BATCH=4
75
+ DEFAULT_UBATCH=4
76
+ elif [ "$PERF_PROFILE" = "throughput" ]; then
77
+ DEFAULT_BATCH=64
78
+ DEFAULT_UBATCH=64
79
+ fi
80
+ fi
81
+
82
+ export CACHE_TYPE_K CACHE_TYPE_V CTX_SIZE
83
+
84
  server_args=(
85
  --model "$MODEL_PATH"
86
  --host 0.0.0.0
 
93
  --batch-size "${BATCH_SIZE:-$DEFAULT_BATCH}"
94
  --ubatch-size "${UBATCH_SIZE:-$DEFAULT_UBATCH}"
95
  --ctx-size "${CTX_SIZE:-4096}"
96
+ --cache-type-k "${CACHE_TYPE_K}"
97
+ --cache-type-v "${CACHE_TYPE_V}"
98
  --metrics
99
  )
100