GenbaLabs's picture
card, MLX package and runtime
88a6753 verified
Raw History Blame Contribute Delete
1.62 kB
#!/bin/bash
# Serve this checkpoint on a Mac: the MLX engine on :8000, then the structured decision
# server on :8011. The DJEV_* defaults are the published deployment's, so answers match the
# hosted API's.
#
# MODEL=$(pwd) ./runtime/run.sh # from a downloaded snapshot
set -euo pipefail
cd "$(dirname "$0")/.."
PY=${PY:-python3}
MODEL=${MODEL:-$(pwd)}
CANVAS=${CANVAS:-128}
export DJEV_DOC_FIRST=${DJEV_DOC_FIRST:-1} DJEV_BIDIR=${DJEV_BIDIR:-qsep} DJEV_BIDIR_MAXPROMPT=${DJEV_BIDIR_MAXPROMPT:-8192}
export DJEV_NOUL_COMMIT=${DJEV_NOUL_COMMIT:-0.8} DJEV_TEMPS=${DJEV_TEMPS:-score=0.375}
export DJEV_ADAPTIVE_THINK=${DJEV_ADAPTIVE_THINK:-choice=0.7,score=0.7,noul=0.85,budget=512,min_tokens=0,max_inflight=2,max_questions=2}
export DJEV_THINK_STEPS=${DJEV_THINK_STEPS:-8} DJEV_MANY_OPTIONS=${DJEV_MANY_OPTIONS:-chunk=20,top=3,think1=0,think2=0}
export DEFAULT_SAMPLES=${DEFAULT_SAMPLES:-1} SERVER_EXTRA_ARGS=${SERVER_EXTRA_ARGS:---constrained --engine-samples}
# Memory floor: the weights are ~19 GB active and an 8k-token prefill peaks around 21 GB.
$PY -m superdecider.server --model "$MODEL" --canvas "$CANVAS" --port 8000 --max-prompt "${MAX_PROMPT:-12288}" &
ENGINE_PID=$!
trap 'kill $ENGINE_PID 2>/dev/null || true' EXIT
until curl -sf 127.0.0.1:8000/v1/models >/dev/null; do
kill -0 $ENGINE_PID 2>/dev/null || { echo "engine exited"; exit 1; }
sleep 1
done
echo "engine ready on :8000"
exec $PY runtime/structured_server.py --upstream http://127.0.0.1:8000 --model super-decider \
--tokenizer "$MODEL" --canvas "$CANVAS" --host "${HOST:-127.0.0.1}" --port "${PORT:-8011}" $SERVER_EXTRA_ARGS