refactor: simplify deploy script, add train-on-this-server.sh

This commit is contained in:
Christian Medina
2026-06-30 15:22:54 -04:00
parent 0614166c7a
commit 44939e374b
2 changed files with 106 additions and 123 deletions

74
train-on-this-server.sh Normal file
View File

@@ -0,0 +1,74 @@
#!/bin/bash
# Train LoRA on this server (assumes GPU is available).
# Run this after deploy-and-train.sh has cloned the repo.
set -e
REPO_DIR="${1:-$(pwd)}"
echo "=== LoRA Training Setup ==="
echo "Repo: ${REPO_DIR}"
echo ""
# Check Python
if ! command -v python3 &> /dev/null; then
echo "ERROR: python3 not found"
exit 1
fi
echo "[1/4] Setup Python environment..."
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
echo "[2/4] Install PyTorch with CUDA..."
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
echo "[3/4] Install training dependencies..."
pip install transformers datasets trl peft accelerate bitsandbytes
# Check GPU
echo ""
echo "[4/4] Checking GPU..."
python3 -c "
import torch
if torch.cuda.is_available():
print(f' ✓ GPU: {torch.cuda.get_device_name(0)}')
print(f' ✓ VRAM: {torch.cuda.get_device_properties(0).total_mem / 1e9:.1f} GB')
else:
print(' ✗ No GPU detected')
print(' Please ensure CUDA drivers are installed')
exit(1)
"
echo ""
echo "=== Dataset Preparation ==="
echo "Checking for combined_20k.jsonl..."
if [ ! -f "dataset/combined_20k.jsonl" ]; then
echo "Dataset not found. Downloading..."
curl -L -o dataset/combined_20k.jsonl https://gitea.cyaren.com/cmedina/agenx-lora-training/raw/branch/main/dataset/combined_20k.jsonl
fi
echo "Preparing dataset..."
python3 training/scripts/prepare_dataset.py --input dataset/combined_20k.jsonl --output training/data
echo ""
echo "=== Starting Training ==="
echo "Config: training/configs/llama2-7b-lora.yaml"
echo "Output: training/output/llama2-7b-lora/"
echo ""
echo "Training will take 6-24 hours depending on GPU."
echo "Press Ctrl+C to stop (model will be saved at checkpoint)."
echo ""
python3 training/scripts/train.py --config training/configs/llama2-7b-lora.yaml
echo ""
echo "=== Training Complete ==="
echo "Model saved to: training/output/llama2-7b-lora/"
echo ""
echo "To generate summaries:"
echo " python3 training/scripts/inference.py \\"
echo " --model training/output/llama2-7b-lora \\"
echo " --task \"Your task here\" \\"
echo " --files src/file.py"