예제 소스
SGF 기보로 학습하는 바둑 LLM 인공지능 · 파일 169개
daemon_qwen_smoke_train.py
#!/usr/bin/env python3
"""Double-fork launcher for Qwen baduk_v3 smoke LoRA train."""
from __future__ import annotations
import os
import sys
from pathlib import Path
ROOT = Path("~/project")
LOG = ROOT / "logs" / "vlm_eval_day" / "qwen_smoke_train.log"
PY = str(ROOT / ".venv" / "bin" / "python")
def main() -> int:
LOG.parent.mkdir(parents=True, exist_ok=True)
if os.fork() > 0:
return 0
os.setsid()
if os.fork() > 0:
os._exit(0)
os.chdir(ROOT)
os.umask(0)
env = os.environ.copy()
env["HF_HOME"] = str(ROOT / "vlm_models")
env["HF_HUB_CACHE"] = str(ROOT / "vlm_models")
env["TOKENIZERS_PARALLELISM"] = "********"
env["PYTHONUNBUFFERED"] = "1"
with open(LOG, "a", encoding="utf-8") as logf:
os.dup2(logf.fileno(), 1)
os.dup2(logf.fileno(), 2)
dn = os.open(os.devnull, os.O_RDONLY)
os.dup2(dn, 0)
os.close(dn)
cmd = [
PY,
"-m",
"vlm_server.train_lora",
"--dataset-jsonl",
"sft_data/baduk_v3_smoke/train.jsonl",
"--model",
"********",
"--output-dir",
"********",
"--epochs",
"1",
"--batch-size",
"1",
"--grad-accum",
"8",
"--lr",
"1e-4",
"--lora-rank",
"16",
"--lora-alpha",
"32",
"--max-seq-length",
"4096",
"--max-samples",
"400",
"--grad-checkpoint",
]
os.execve(PY, cmd, env)
return 1
if __name__ == "__main__":
raise SystemExit(main())