Skip to content

fit_two_tier_grm: EM 진행 상황을 관측할 수단이 없어 장시간 적합의 상태를 판별할 수 없음 #2021

Description

@seonghobae

무엇이 관측되었나

s1에서 A4(정서성 G+4+W) Oakes SE 적합이 q_primary=241 q_specific=241 n=340 max_iter=2000으로 돌고 있습니다. 프로세스는 8시간 가까이 단일 코어 100%로 누적 CPU 28,077초를 쓰고 있고, 표준출력에는 시작 줄 하나만 있습니다.

starting fit_two_tier_grm q_primary=241 q_specific=241 n_starts=1 seed=20260914 n=340 rss_abort_gb=80.0

호출 측(analysis/library_emotionality_g4w_oakes.py)은 적합이 끝난 뒤에야 출력합니다. write_bytes는 4096에서 멈춰 있습니다.

왜 문제인가

fast_mlsirm 0.11.4fit_two_tier_grm 시그니처에는 verbose도, 반복 callback도, 진행 상황을 내보내는 어떤 인자도 없습니다(docstring 확인: verbose/callback/progress 모두 없음). 그래서 다음 두 상태를 밖에서 구분할 수 없습니다.

  • 반복 12회째를 지나는 중이고 느리지만 수렴하고 있다
  • 로그우도가 진동하며 max_iter=2000까지 갈 예정이다

max_iter 소진은 converged=False로 돌아오지만, 그 사실은 최대 2000회가 다 끝난 뒤에야 알 수 있습니다. 반복당 비용이 큰 설정에서는 그 시점이 며칠 뒤일 수 있고, 그 동안 호스트 한 대가 묶입니다. 실행을 중단해 확인할 수도 없습니다 — 중단하면 지금까지의 계산이 사라집니다.

요청

fit_two_tier_grm(및 같은 성질을 가진 다른 장시간 적합 함수)이 반복 단위 진행 상황을 내보낼 수단을 갖게 해 주십시오. 형태는 구현자 판단이되, 적어도 반복 번호와 현재 로그우도, 직전 반복 대비 변화량을 알 수 있어야 합니다.

판단 근거를 덧붙입니다. Bock과 Aitkin(1981, Psychometrika, 46(4), 443–459, pp. 445, 448)의 MML EM은 매 반복에서 주변 로그우도를 평가하므로, 그 값은 이미 계산돼 있고 내보내는 데 추가 계산이 들지 않습니다. 수렴 판정에 쓰이는 바로 그 수치입니다.

확인한 환경

  • fast-mlsirm 0.11.4 (/data/orca/workspaces/a4-oakes-s1-0114/venv)
  • s1, 12코어, 실행 중인 PID 2716563, 시작 2026-09-18 22:20:23 +0900
  • 호출 스크립트: analysis/library_emotionality_g4w_oakes.py(late-life-anxiety-reanalysis), MAX_ITER = 2000

돌고 있는 A4 실행은 건드리지 않았습니다.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions