| # Launch llama-server with the FormScout Judge/Classifier VLM. | |
| # | |
| # Default model: Qwen3-VL-8B-Instruct Q4_K_M (checkpoints/qwen3-vl/). | |
| # To serve a fine-tuned GGUF instead, set: | |
| # FORMSCOUT_JUDGE_GGUF=/path/to/finetuned.gguf | |
| # FORMSCOUT_JUDGE_MMPROJ=/path/to/mmproj.gguf (only if it ships its own) | |
| # | |
| # Requires: brew install llama.cpp | |
| set -euo pipefail | |
| # Homebrew bin may be missing from non-interactive shells | |
| export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH" | |
| ROOT="$(cd "$(dirname "$0")/.." && pwd)" | |
| GGUF="${FORMSCOUT_JUDGE_GGUF:-$ROOT/checkpoints/qwen3-vl/Qwen3VL-8B-Instruct-Q4_K_M.gguf}" | |
| MMPROJ="${FORMSCOUT_JUDGE_MMPROJ:-$ROOT/checkpoints/qwen3-vl/mmproj-Qwen3VL-8B-Instruct-F16.gguf}" | |
| HOST="${FORMSCOUT_LLAMA_HOST:-127.0.0.1}" | |
| PORT="${FORMSCOUT_LLAMA_PORT:-8080}" | |
| if [[ ! -f "$GGUF" ]]; then | |
| echo "Model not found: $GGUF" >&2 | |
| echo "Download it with:" >&2 | |
| echo " python3 -c \"from huggingface_hub import hf_hub_download; [hf_hub_download('Qwen/Qwen3-VL-8B-Instruct-GGUF', f, local_dir='$ROOT/checkpoints/qwen3-vl') for f in ['Qwen3VL-8B-Instruct-Q4_K_M.gguf', 'mmproj-Qwen3VL-8B-Instruct-F16.gguf']]\"" >&2 | |
| exit 1 | |
| fi | |
| exec llama-server \ | |
| --model "$GGUF" \ | |
| --mmproj "$MMPROJ" \ | |
| --host "$HOST" \ | |
| --port "$PORT" \ | |
| --ctx-size 16384 \ | |
| --n-gpu-layers 99 \ | |
| --no-warmup | |