메인 콘텐츠로 건너뛰기
W&B Automations API를 사용하면 ML 파이프라인에서 발생하는 이벤트에 반응하는 자동화된 워크플로를 프로그램적으로 생성하고 관리할 수 있습니다. 모델 성능 기준값이나 아티팩트 생성과 같이 특정 조건이 충족될 때 실행될 작업을 구성하세요.

핵심 클래스

ClassDescription
Automation해당 구성과 함께 저장된 Automation 인스턴스를 나타냅니다.
NewAutomation새 Automation을 생성하기 위한 빌더 클래스입니다.

이벤트(트리거)

EventDescription
OnRunMetric실행의 메트릭이 미리 정의한 조건(임계값, 변화 등)을 만족할 때 트리거됩니다.
OnCreateArtifact컬렉션에 새로운 아티팩트가 생성될 때 트리거됩니다.
OnLinkArtifact아티팩트가 레지스트리에 연결될 때 트리거됩니다.
OnAddArtifactAlias아티팩트에 별칭이 추가될 때 트리거됩니다.

작업

작업설명
SendNotificationSlack 또는 기타 통합 채널을 통해 알림을 전송합니다.
SendWebhook외부 서비스로 HTTP 웹훅 요청을 전송합니다.
DoNothing자동화 구성을 테스트하기 위한 플레이스홀더 작업입니다.

필터

필터설명
MetricThresholdFilter메트릭 값을 임계값과 비교해 실행을 필터링합니다.
MetricChangeFilter시간에 따른 메트릭 값 변화를 기준으로 실행을 필터링합니다.

주요 사용 사례

모델 성능 모니터링

  • 모델 정확도가 임계값 아래로 떨어지면 알림 보내기
  • 학습 손실이 더 이상 감소하지 않고 정체될 때 팀에 알리기
  • 성능 지표를 기준으로 재학습 파이프라인 실행하기

아티팩트 관리

  • 새 모델 버전이 생성되면 알림을 보냅니다
  • 아티팩트에 태그가 지정되면 배포 워크플로우를 실행합니다
  • 데이터셋이 업데이트되면 후속 처리를 자동화합니다

실험 추적

  • 실패하거나 중단된 실행에 대한 알림
  • 장시간 실행되는 실험이 완료되었을 때 알림
  • 실험 지표에 대한 일간 요약 전송

통합 워크플로우

  • 웹훅을 통해 외부 추적 시스템을 업데이트합니다
  • 배포 플랫폼과 모델 레지스트리를 동기화합니다
  • W&B 이벤트를 기준으로 CI/CD 파이프라인을 트리거합니다

사용 예시

다음 예시는 custom-metric이라는 메트릭이 10을 초과할 때마다 Slack 알림을 보내는 자동화를 만듭니다. custom-metric은 학습 중에 wandb.Run.log({"custom-metric": value})를 사용해 로그된다고 가정합니다.
import wandb
from wandb.automations import OnRunMetric, RunEvent, SendNotification

api = wandb.Api()

project = api.project("<my-project>", entity="<my-team>")

# 팀의 첫 번째 Slack 통합 사용
slack_hook = next(api.slack_integrations(entity="<my-team>"))

# 트리거 이벤트 생성
event = OnRunMetric(
     scope=project,
     filter=RunEvent.metric("custom-metric") > 10,
)

# 이벤트에 응답하는 액션 생성
action = SendNotification.from_integration(slack_hook)

# 자동화 생성
automation = api.create_automation(
     event >> action,
     name="my-automation",
     description="Send a Slack message whenever 'custom-metric' exceeds 10.",
)
Automations API 사용 방법에 대해서는 Automations 가이드를 참고하세요.