QLoRA training kernel for Qwen2.5-7B-Instruct on a T4
Browse files- train_qwen.py +13 -2
train_qwen.py
CHANGED
|
@@ -21,8 +21,19 @@ MODEL = "Qwen/Qwen2.5-7B-Instruct"
|
|
| 21 |
HF_TOKEN = os.environ.get("HF_TOKEN", "")
|
| 22 |
assert HF_TOKEN, "set HF_TOKEN env var (never hardcode tokens in code)"
|
| 23 |
OUT_ADAPTER = "/kaggle/working/adapter"
|
| 24 |
-
|
| 25 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 26 |
|
| 27 |
assert torch.cuda.is_available(), "No GPU — set accelerator to GPU T4 x1"
|
| 28 |
print("torch", torch.__version__, "|", torch.cuda.get_device_name(0))
|
|
|
|
| 21 |
HF_TOKEN = os.environ.get("HF_TOKEN", "")
|
| 22 |
assert HF_TOKEN, "set HF_TOKEN env var (never hardcode tokens in code)"
|
| 23 |
OUT_ADAPTER = "/kaggle/working/adapter"
|
| 24 |
+
|
| 25 |
+
# ---------- locate data: Kaggle dataset mount first, then /kaggle/working ----------
|
| 26 |
+
import glob
|
| 27 |
+
DATA = VAL = None
|
| 28 |
+
for cand in glob.glob("/kaggle/input/*/synthetic_train.jsonl"):
|
| 29 |
+
DATA = cand
|
| 30 |
+
VAL = cand.replace("synthetic_train.jsonl", "synthetic_val.jsonl")
|
| 31 |
+
break
|
| 32 |
+
if DATA is None:
|
| 33 |
+
DATA, VAL = "/kaggle/working/synthetic_train.jsonl", "/kaggle/working/synthetic_val.jsonl"
|
| 34 |
+
assert os.path.exists(DATA), "synthetic_train.jsonl not found"
|
| 35 |
+
print("data:", DATA, os.path.getsize(DATA), "bytes")
|
| 36 |
+
|
| 37 |
|
| 38 |
assert torch.cuda.is_available(), "No GPU — set accelerator to GPU T4 x1"
|
| 39 |
print("torch", torch.__version__, "|", torch.cuda.get_device_name(0))
|