Metaflow 디버깅과 resume
Metaflow 디버깅과 resume
Metaflow는 플로우 실행이 실패했을 때 원인을 파악하고, 고친 뒤 실패 지점부터 이어서 실행할 수 있는 기능을 제공해요. 저장된 아티팩트를 통해 실패 전 데이터를 확인할 수 있고, resume 명령으로 처음부터 다시 돌지 않고 중단된 지점에서 재개할 수 있어요.
과거 데이터로 디버깅
Metaflow의 아티팩트는 영속적으로 남으므로, 실패가 발생한 스텝 직전의 데이터를 Client API로 확인할 수 있어요. 실패 원인이 잘못된 데이터 처리라면 그 데이터를 눈으로 확인해 문제를 찾을 수 있어요. 이렇게 「되짚어 보는 디버깅」이 가능한 게 아티팩트 저장의 큰 장점이에요.
resume으로 재개하기
플로우 중간에서 실패했다면 코드를 고치고 resume 옵션으로 다시 실행할 수 있어요. 이때 처음부터 다시 도는 게 아니라, 가장 최근 성공한 지점부터 이어서 실행해요. 이미 저장된 아티팩트를 재사용하므로 시간과 비용을 크게 아낄 수 있어요.
python my_flow.py resume
재귀 루프와 재개
Metaflow는 일반적인 반복 대신 재귀 스텝(recursive step) 으로 특정 스텝을 여러 번 실행하는 방식을 지원해요. 이 재귀 실행이 실패했을 때도 resume으로 가장 최근 성공한 반복부터 이어서 진행할 수 있어요. 하이퍼파라미터 최적화 루프처럼 반복이 많은 작업에서 특히 유용해요.
디버깅 요령
브랜치·foreach가 많을수록 어느 지점에서 실패했는지 파악이 중요해요. 각 태스크의 상태·아티팩트를 확인하고, 필요하면 특정 태스크의 데이터를 조회해 문제를 좁혀가면 됩니다. 저장된 실행 이력이 이 과정을 뒷받침해요.
더 알아보기
- 지난 데이터 조회: Client API
- 플로우 기본: Creating Flows