ZenML 아티팩트와 머티리얼라이저

ZenML 아티팩트와 머티리얼라이저

ZenML에서 스텝 사이를 오가는 데이터를 아티팩트(artifact) 라고 불러요. 아티팩트는 스텝이 반환하는 객체나 값이 만들어낸 결과로, ZenML이 자동으로 추적하고 아티팩트 스토어에 저장해요. 중요한 점은 데이터가 스텝 사이를 메모리로 직접 전달되지 않는다는 거예요. 한 스텝의 실행이 끝나면 저장소에 기록되고, 다음 스텝이 실행될 때 저장소에서 다시 불러와져요.

출처: ZenML Artifacts

아티팩트가 중요한 이유

아티팩트가 저장소를 거치기 때문에 다음과 같은 편리한 기능을 쓸 수 있어요.

  • 캐싱 — 같은 입력으로 같은 스텝을 다시 실행하려고 하면, 저장된 아티팩트를 재사용해서 시간을 아껴요.
  • 버전 관리 — 실행 때마다 아티팩트가 버전으로 남아, 나중에 과거 실행 결과를 꺼내볼 수 있어요.
  • 데이터 계보 — 어떤 아티팩트가 어떤 스텝에서 만들어졌는지 추적해서 워크플로의 흐름을 파악할 수 있어요.

머티리얼라이저(Materializer)

아티팩트가 스텝 사이에서 어떻게 존재할지는 머티리얼라이저가 정해요. 머티리얼라이저는 특정 데이터 타입을 어떻게 직렬화하고 역직렬화할지를 정의해요. 덕분에 스텝은 입력 데이터를 불러오고 출력 데이터를 저장할 수 있는 거예요.

ZenML은 많은 내장 머티리얼라이저를 제공하지만, 커스텀 타입을 다뤄야 한다면 직접 머티리얼라이저를 만들어 등록할 수도 있어요. 이렇게 하면 데이터프레임, 이미지, 모델 가중치처럼 다양한 형태의 데이터를 파이프라인에서 자유롭게 주고받을 수 있어요.

아티팩트와 실행

아티팩트는 스텝 입력·출력으로만 존재하는 게 아니라, 파이프라인 실행 기록과 함께 관리돼요. 파이프라인 런(run)이 만들어질 때 모든 스텝이 어떤 아티팩트를 만들었는지 기록되므로, 훗날 실행 이력을 보고 같은 데이터를 다시 불러오는 게 가능해요. 디버깅이나 재현에 특히 유용한 특징이에요.

더 알아보기