DGX_AI / codeforge /ralph /checkpoint.py
vasiuuu's picture
Initial commit for CodeForge GRPO training
acf77ab
raw
history blame contribute delete
743 Bytes
from __future__ import annotations
import os
from pathlib import Path
from codeforge.ralph.models import RunResult
def save_checkpoint(run: RunResult, checkpoint_dir: Path) -> Path:
"""Atomically write a RunResult to ``checkpoint_dir/run_{run_id}.json``."""
checkpoint_dir.mkdir(parents=True, exist_ok=True)
final = checkpoint_dir / f"run_{run.run_id}.json"
tmp = final.with_suffix(".json.tmp")
tmp.write_text(run.model_dump_json(indent=2), encoding="utf-8")
os.replace(tmp, final)
return final
def load_checkpoint(checkpoint_path: Path) -> RunResult:
"""Load a RunResult from a checkpoint JSON file."""
return RunResult.model_validate_json(
checkpoint_path.read_text(encoding="utf-8"),
)