File size: 3,149 Bytes
5a28a50
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#!/bin/bash
# =============================================================
#  Spam Classifier — Liquid AI LoRA Retrain
#  Double-click to choose fast or full retrain mode.
#  Replaces retrain-fast.command and retrain-full.command.
# =============================================================

cd "$(dirname "$0")"
source venv/bin/activate

echo "============================================================"
echo "  Liquid AI LoRA Retrain — Spam / Ham / Phishing"
echo "  Model: LiquidAI/LFM2.5-1.2B-Instruct"
echo "============================================================"
echo ""
echo "  f) Fast retrain  — ~8,000 examples, ~1-1.5 hours"
echo "  u) Full retrain  — ~16,000 examples, ~2 hours"
echo "  q) Quit"
echo ""
echo "  Memory optimizations: MPS cache flush, gradient checkpointing, bf16, fused AdamW."
echo ""
read -p "Choice [f/u/q]: " MODE_CHOICE

case "$MODE_CHOICE" in
    q|Q)
        echo "Bye!"
        sleep 2
        exit 0
        ;;
    f|F)
        MODE="fast"
        ADAPTER_DIR="$(dirname "$0")/adapters_fast"
        echo ""
        echo "  Starting FAST retrain (~8K examples, ~1-1.5 hours)..."
        ;;
    u|U)
        MODE="full"
        ADAPTER_DIR="$(dirname "$0")/adapters_full"
        echo ""
        echo "  Starting FULL retrain (~16K examples, ~2 hours)..."
        ;;
    *)
        echo "Invalid choice."
        sleep 3
        exit 1
        ;;
esac

echo ""
python3 "../new_training_data/retrain_liquid.py" --mode "$MODE"
RETRAIN_STATUS=$?

if [[ $RETRAIN_STATUS -ne 0 ]]; then
    echo ""
    echo "Retrain failed (exit $RETRAIN_STATUS)."
    echo ""
    read -p "Press any key to close..."
    exit 1
fi

echo ""
echo "============================================================"
echo "  Retrain complete!"
echo "  New adapter: $ADAPTER_DIR"
echo "============================================================"
echo ""
echo "Would you like to make this the default adapter?"
echo "  - Backs up current adapters/ -> adapters_backup/"
echo "  - Copies adapters_${MODE}/ -> adapters/"
echo "  - The app and notebook will use the new adapter automatically"
echo ""
read -p "Swap in as default? [y/N]: " SWAP

if [[ "$SWAP" == "y" || "$SWAP" == "Y" ]]; then
    PROJ_DIR="$(dirname "$0")"
    if [[ -d "$PROJ_DIR/adapters" ]] && [[ ! -d "$PROJ_DIR/adapters_backup" ]]; then
        mv "$PROJ_DIR/adapters" "$PROJ_DIR/adapters_backup"
        echo "  Backed up adapters/ -> adapters_backup/"
    elif [[ -d "$PROJ_DIR/adapters" ]]; then
        rm -rf "$PROJ_DIR/adapters_old_backup"
        mv "$PROJ_DIR/adapters_backup" "$PROJ_DIR/adapters_old_backup" 2>/dev/null
        mv "$PROJ_DIR/adapters" "$PROJ_DIR/adapters_backup"
        echo "  Backed up adapters/ -> adapters_backup/"
    fi
    cp -r "$ADAPTER_DIR" "$PROJ_DIR/adapters"
    echo "  Copied adapters_${MODE}/ -> adapters/"
    echo "  The app and notebook now use the new adapter!"
else
    echo "  Skipped. To use later, copy adapters_${MODE}/ to adapters/"
fi

echo ""
echo "Next: run Retrain.command in the LLM Project folder to"
echo "rebuild the GGUF and upload to HuggingFace."
echo ""
read -p "Press any key to close..."