콘텐츠로 이동

로깅과 지표

프로젝트는 lab_logging.LabRun 하나만 쓴다.

from lab_logging import LabRun

with LabRun(cfg, run_id=args.run_id, template="bare-gym", robot="sim:gymnasium:cartpole") as run:
    run.log(global_step, {"reward/alive": 1.0, "train/kl": 0.01, "env/ep_return": r, "sys/steps_per_s": s, ...})
    run.log_checkpoint(path, global_step)          # SeaweedFS 업로드 + sys/ckpt_step
    run.mark_final_checkpoint(path)                # 종료 시 checkpoints/ 에 업로드, 태그 final_checkpoint

자동으로 기록되는 것: 계보 태그, 노드·GPU, 해석된 config(config/resolved.yaml), 5초 집계, NaN 감지(sys/nan_flag), Pushgateway 전송.

지표 이름

<group>/<name>, 소문자·숫자·밑줄. group 은 다섯 개뿐이다.

group
reward/ reward/<term>config.reward.terms 의 키와 정확히 일치
train/ train/loss_value train/loss_policy train/kl train/entropy train/lr train/grad_norm
env/ env/ep_len env/ep_return env/success_rate env/curriculum_level
sys/ sys/steps_per_s sys/gpu_mem_gb sys/nan_flag sys/ckpt_step
custom/ 프로젝트 고유

필수 지표 (없으면 런 실패): reward/<모든 term> train/loss_value train/loss_policy train/kl env/ep_len env/ep_return sys/steps_per_s sys/nan_flag sys/ckpt_step.

x축은 global_step(환경 스텝 누적). 단위는 SI (m, rad, s, N, N·m). 비율은 0~1 에 _rate 접미사.

MLflow 태그

schema_version project template git_hash git_dirty config_hash asset_hash image_digest robot algo priority, 평가 시 suite, 스윕 시 parent_run sweep_id.

아티팩트 경로

config/resolved.yaml  config/schema_version
checkpoints/step_<n>.pt
eval/<suite>/report.json
export/policy.onnx  export/io_spec.json  export/check.json
sweep/sweep.json