| | #!/usr/bin/env bash |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | set -euo pipefail |
| |
|
| | QUANT="${QUANT:-Q4_K_M}" |
| | MODEL_NAME="frankenstallm-3b" |
| | SKIP_CONVERT=false |
| |
|
| | while [[ $# -gt 0 ]]; do |
| | case "$1" in |
| | --quant) QUANT="$2"; shift 2 ;; |
| | --skip_convert) SKIP_CONVERT=true; shift ;; |
| | -h|--help) |
| | grep '^#' "$0" | head -20 | sed 's/^# \{0,1\}//' |
| | exit 0 ;; |
| | *) echo "ERROR: μ μ μλ μ΅μ
: $1"; exit 1 ;; |
| | esac |
| | done |
| |
|
| | PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" |
| | cd "$PROJECT_DIR" |
| |
|
| | GGUF_PATH="outputs/gguf/frankenstallm-3b-${QUANT}.gguf" |
| | MODELFILE="Modelfile.3b" |
| |
|
| | echo "==================================================================" |
| | echo " FRANKENSTALLM 3B Ollama λ°°ν¬" |
| | echo " μμν : $QUANT" |
| | echo " GGUF : $GGUF_PATH" |
| | echo " Modelfile: $MODELFILE" |
| | echo "==================================================================" |
| |
|
| | |
| | if [[ "$SKIP_CONVERT" == "false" ]]; then |
| | if [[ ! -f "$GGUF_PATH" ]]; then |
| | echo "" |
| | echo "[Step 1] GGUF λ³ν μ€ν μ€ ..." |
| | bash scripts/convert_3b_gguf.sh \ |
| | --input_dir checkpoints/korean_3b_orpo_v1/checkpoint-9840 |
| | else |
| | echo "[Step 1] GGUF νμΌ μ΄λ―Έ μ‘΄μ¬ β λ³ν 건λλ" |
| | fi |
| | else |
| | echo "[Step 1] λ³ν 건λλ (--skip_convert)" |
| | fi |
| |
|
| | if [[ ! -f "$GGUF_PATH" ]]; then |
| | echo "ERROR: GGUF νμΌ μμ: $GGUF_PATH" |
| | exit 1 |
| | fi |
| |
|
| | echo " GGUF ν¬κΈ°: $(du -sh "$GGUF_PATH" | cut -f1)" |
| |
|
| | |
| | if ! command -v ollama &>/dev/null; then |
| | echo "" |
| | echo "[Step 2] Ollama λ―Έμ€μΉ β μ€μΉ μ€ ..." |
| | curl -fsSL https://ollama.com/install.sh | sh |
| | fi |
| |
|
| | |
| | if ! ollama list &>/dev/null 2>&1; then |
| | echo "[Step 2] Ollama μλ² μμ μ€ ..." |
| | ollama serve &>/tmp/ollama_serve.log & |
| | for i in $(seq 1 15); do |
| | if ollama list &>/dev/null 2>&1; then |
| | echo " [OK] Ollama μλ² μ€λΉ (${i}μ΄)" |
| | break |
| | fi |
| | sleep 1 |
| | done |
| | fi |
| |
|
| | |
| | echo "" |
| | echo "[Step 3] Ollama λͺ¨λΈ λ±λ‘: $MODEL_NAME" |
| | ollama create "$MODEL_NAME" -f "$MODELFILE" |
| | echo " [OK] λ±λ‘ μλ£" |
| |
|
| | |
| | echo "" |
| | echo "[Step 4] μλ ν
μ€νΈ ..." |
| | declare -a QUICK_TESTS=( |
| | "λνλ―Όκ΅μ μλλ?" |
| | "μΈκ³΅μ§λ₯μ΄λ 무μμΈκ°μ?" |
| | "νκ΅μ μ ν΅ μμ μ€μμ κΉμΉμ λν΄ μ€λͺ
ν΄μ£ΌμΈμ." |
| | ) |
| |
|
| | for prompt in "${QUICK_TESTS[@]}"; do |
| | echo " Q: $prompt" |
| | RESP=$(timeout 60 ollama run "$MODEL_NAME" "$prompt" 2>&1 || echo "[TIMEOUT/ERROR]") |
| | echo " A: ${RESP:0:200}" |
| | echo "" |
| | done |
| |
|
| | |
| | echo "[Step 5] λ°λ³΅λ₯ κ²μ¦ (15κ° ν둬ννΈ) ..." |
| | python3 scripts/test_ollama_repetition.py --model "$MODEL_NAME" |
| |
|
| | echo "" |
| | echo "==================================================================" |
| | echo " λ°°ν¬ μλ£!" |
| | echo " μ¬μ©λ²: ollama run $MODEL_NAME" |
| | echo "==================================================================" |
| |
|