diff --git a/tooling/pipeline/runpod/start.sh b/tooling/pipeline/runpod/start.sh index 5a59d8e..8deabaa 100644 --- a/tooling/pipeline/runpod/start.sh +++ b/tooling/pipeline/runpod/start.sh @@ -1,7 +1,6 @@ #!/bin/bash set -e -# Configuration / Defaults MODEL_PATH="${BIERGARTEN_MODEL_PATH:-/workspace/models/google_gemma-4-E4B-it-Q6_K.gguf}" OUTPUT_DIR="${BIERGARTEN_OUTPUT_DIR:-/workspace/output}" LOG_PATH="${BIERGARTEN_LOG_PATH:-/workspace/logs/pipeline.log}" @@ -10,50 +9,50 @@ PROMPT_DIR="/app/prompts" echo "--- Starting Biergarten Pipeline Environment Check ---" -# 1. Ensure volume mount directories exist +# Ensure directories exist mkdir -p "$OUTPUT_DIR" mkdir -p "$(dirname "$LOG_PATH")" - -# 3. Build the command arguments -ARGS=( - "--model" "$MODEL_PATH" - "--prompt-dir" "$PROMPT_DIR" - "--output" "$OUTPUT_DIR" - "--log-path" "$LOG_PATH" -) - -# Optional hyperparameters -[[ -n "$BIERGARTEN_TEMPERATURE" ]] && ARGS+=("--temperature" "$BIERGARTEN_TEMPERATURE") -[[ -n "$BIERGARTEN_TOP_P" ]] && ARGS+=("--top-p" "$BIERGARTEN_TOP_P") -[[ -n "$BIERGARTEN_TOP_K" ]] && ARGS+=("--top-k" "$BIERGARTEN_TOP_K") -[[ -n "$BIERGARTEN_N_CTX" ]] && ARGS+=("--n-ctx" "$BIERGARTEN_N_CTX") -[[ -n "$BIERGARTEN_SEED" ]] && ARGS+=("--seed" "$BIERGARTEN_SEED") -[[ -n "$BIERGARTEN_GL_LAYERS" ]] && ARGS+=("--n-gpu-layers" "$BIERGARTEN_GL_LAYERS") - -# Append any extra custom args -if [[ -n "$BIERGARTEN_EXTRA_ARGS" ]]; then - ARGS+=($BIERGARTEN_EXTRA_ARGS) -fi - -echo "--- Executing: $EXECUTABLE ${ARGS[*]} ---" -# 2. Ensure model directory exists mkdir -p "$(dirname "$MODEL_PATH")" -# 3. Download model if missing +# Download model if missing if [ ! -f "$MODEL_PATH" ]; then - echo "Model not found. Downloading..." + echo "Model not found. Downloading (this may take a while)..." - curl -L \ + curl -L -C - \ -o "$MODEL_PATH" \ "https://huggingface.co/bartowski/google_gemma-4-E4B-it-GGUF/resolve/main/google_gemma-4-E4B-it-Q6_K.gguf?download=true" echo "Download complete." fi -# 4. Verify model exists +# Verify model exists if [ ! -f "$MODEL_PATH" ]; then echo "ERROR: Model still not found after download attempt." exit 1 fi -# Execute the binary directly, replacing the shell process + +# Default GPU layers +GL_LAYERS="${BIERGARTEN_GL_LAYERS:-40}" + +# Build args +ARGS=( + "--model" "$MODEL_PATH" + "--prompt-dir" "$PROMPT_DIR" + "--output" "$OUTPUT_DIR" + "--log-path" "$LOG_PATH" + "--n-gpu-layers" "$GL_LAYERS" +) + +# Optional params +[[ -n "$BIERGARTEN_TEMPERATURE" ]] && ARGS+=("--temperature" "$BIERGARTEN_TEMPERATURE") +[[ -n "$BIERGARTEN_TOP_P" ]] && ARGS+=("--top-p" "$BIERGARTEN_TOP_P") +[[ -n "$BIERGARTEN_TOP_K" ]] && ARGS+=("--top-k" "$BIERGARTEN_TOP_K") +[[ -n "$BIERGARTEN_N_CTX" ]] && ARGS+=("--n-ctx" "$BIERGARTEN_N_CTX") +[[ -n "$BIERGARTEN_SEED" ]] && ARGS+=("--seed" "$BIERGARTEN_SEED") + +# Extra args +[[ -n "$BIERGARTEN_EXTRA_ARGS" ]] && ARGS+=($BIERGARTEN_EXTRA_ARGS) + +echo "--- Executing: $EXECUTABLE ${ARGS[*]} ---" + exec "$EXECUTABLE" "${ARGS[@]}"