Astraeus_AI_LO_IDE / start_master.sh
Vyolett's picture
Upload 24 files
2ca5874 verified
Raw
History Blame Contribute Delete
2.93 kB
#!/bin/bash
# start_master.sh β€” universeller RPC-Master fΓΌr alle Modelle
#
# Verwendung:
# start_master.sh <model_path> [context] [chat_template]
#
# Beispiele:
# start_master.sh ../models/model.gguf 32768
# start_master.sh ../models/model.gguf 131072 chatml
export HIP_VISIBLE_DEVICES="0"
# ── Argumente ──────────────────────────────────────────────────────────────────
MODEL_PATH="${1:-../models/model.gguf}"
CONTEXT="${2:-32768}"
CHAT_TEMPLATE="${3:-none}"
shift 3 || true
EXTRA_ARGS="$@"
LLAMA_DIR="../llama.cpp/build/bin"
# ── Worker-Tabelle: "ip:port:vram_gb" ─────────────────────────────────────────
WORKERS=(
# Add your worker nodes here in the format "IP:PORT:VRAM_GB"
# Example:
# "192.168.1.100:50051:24" # Master RPC Node (24GB)
# "192.168.1.101:50052:16" # Worker 1 (16GB)
)
echo "πŸ” PrΓΌfe alle Worker..."
AVAILABLE=()
for entry in "${WORKERS[@]}"; do
ip="${entry%%:*}"
rest="${entry#*:}"
port="${rest%%:*}"
vram="${rest##*:}"
if nc -z -w 1 "$ip" "$port" >/dev/null 2>&1; then
echo "[+] $ip:$port erreichbar (${vram}GB)"
AVAILABLE+=("$vram:$ip:$port")
else
echo "[-] $ip:$port nicht erreichbar"
fi
done
if [ ${#AVAILABLE[@]} -eq 0 ]; then
echo "❌ Keine Worker gefunden β€” starte lokal ohne RPC."
RPC_FLAG=""
else
# Sortiere nach VRAM absteigend (grâßte GPU zuerst)
IFS=$'\n' SORTED=($(sort -t: -k1 -rn <<< "${AVAILABLE[*]}"))
unset IFS
RPC_NODES=""
echo ""
echo "πŸ“Š Worker-Reihenfolge nach VRAM:"
for entry in "${SORTED[@]}"; do
vram="${entry%%:*}"
rest="${entry#*:}"
ip="${rest%%:*}"
port="${rest##*:}"
echo " ${vram}GB -> $ip:$port"
[ -z "$RPC_NODES" ] && RPC_NODES="$ip:$port" || RPC_NODES="$RPC_NODES,$ip:$port"
done
RPC_FLAG="--rpc $RPC_NODES"
fi
# ── Chat-Template Flag ─────────────────────────────────────────────────────────
TEMPLATE_FLAG=""
if [ "$CHAT_TEMPLATE" != "none" ] && [ -n "$CHAT_TEMPLATE" ]; then
TEMPLATE_FLAG="--chat-template $CHAT_TEMPLATE"
fi
echo ""
echo "========================================="
echo "πŸš€ Starte Master Server"
echo "Modell: $(basename "$MODEL_PATH")"
echo "Kontext: $CONTEXT"
echo "RPC: ${RPC_NODES:-keine Worker}"
echo "Template: ${CHAT_TEMPLATE:-standard}"
echo "========================================="
cd "$LLAMA_DIR" || exit 1
./llama-server \
-m "$MODEL_PATH" \
-c "$CONTEXT" \
--no-kv-offload \
$RPC_FLAG \
--host 0.0.0.0 \
--port 8081 \
$TEMPLATE_FLAG \
$EXTRA_ARGS