게시판SGF 기보로 학습하는 바둑 LLM 인공지능예제 소스

예제 소스

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())