Repository navigation
Expand file tree
/
Copy pathfineweb-code-sec-gpt.sh
More file actions
70 lines (63 loc) · 1.97 KB
/
Copy pathfineweb-code-sec-gpt.sh
File metadata and controls
70 lines (63 loc) · 1.97 KB
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
#!/usr/bin/env bash
# ============================================================
# fineweb-code-sec-gpt.sh — nanochat pretraining on mixed data
# ============================================================
# Trains a d12 (286M params) transformer on:
# - github-code (38 shards, ~3.9M code files)
# - sec-edgar (17 10-K filings)
# - fineweb-edu (9 shards, ~4.3B tokens from CommonCrawl)
#
# Data pipeline (run once):
# bash /mnt/data/zz/prepare_data.sh
#
# Usage:
# bash /mnt/data/zz/fineweb-code-sec-gpt.sh # full 50k steps (~16h)
# bash /mnt/data/zz/fineweb-code-sec-gpt.sh --smoke # 200-step smoke test
# ============================================================
set -euo pipefail
SMOKE="${1:-}"
MODE="${SMOKE:---full}"
NANOCHAT_DIR="/mnt/data/nanochat"
export NANOCHAT_DATA_DIR="/mnt/data/zz/datasets/nanochat-mixed"
cd "$NANOCHAT_DIR"
source .venv/bin/activate
# Free GPU memory — kill background LLM servers that consume VRAM
for proc in llama-server vllm ollama; do
if pgrep -x "$proc" >/dev/null 2>&1; then
echo " Killing $proc to free GPU memory..."
pkill -x "$proc" 2>/dev/null || true
sleep 2
fi
done
BASE_ARGS=(
--depth=12
--device-batch-size=8
--total-batch-size=65536
--max-seq-len=2048
--window-pattern=L
--tracker=none
--run=code-sec-fineweb-d12
)
if [ "$MODE" = "--smoke" ]; then
echo "=== SMOKE TEST: 200 steps ==="
python -m scripts.base_train \
"${BASE_ARGS[@]}" \
--num-iterations=200 \
--eval-every=100 \
--sample-every=-1 \
--save-every=-1
else
echo "=== FULL TRAIN: 50,000 steps ==="
echo " Data: $NANOCHAT_DATA_DIR"
echo " Model: d12 (286M params), seq=2048"
echo " Batch: 65,536 tokens/step, grad_accum=4"
echo " Total tokens: 3.28B (ratio 29.8x params)"
echo " Est time: ~16.5 hours @ 0.84 steps/sec"
echo ""
python -m scripts.base_train \
"${BASE_ARGS[@]}" \
--num-iterations=50000 \
--eval-every=2000 \
--sample-every=5000 \
--save-every=5000
fi