メインコンテンツへスキップ
W&B Automations API を使用すると、ML パイプライン内のイベントに応答する自動ワークフローをプログラムから作成および管理できます。モデルの性能のしきい値やアーティファクトの作成など、特定の条件が満たされたときにトリガーされるアクションを構成できます。

コアクラス

ClassDescription
Automation設定とともに保存されたオートメーションインスタンスを表します。
NewAutomation新しいオートメーションを作成するためのビルダークラスです。

イベント(トリガー)

イベント説明
OnRunMetricrun のメトリクスが所定の条件(しきい値、変化量など)を満たしたときにトリガーされます。
OnCreateArtifactコレクション内に新しいアーティファクトが作成されたときにトリガーされます。
OnLinkArtifactアーティファクトがレジストリにリンクされたときにトリガーされます。
OnAddArtifactAliasアーティファクトにエイリアスが追加されたときにトリガーされます。

アクション

アクション説明
SendNotificationSlack またはその他の連携チャネル経由で通知を送信します。
SendWebhook外部サービスに HTTP webhook リクエストを送信します。
DoNothing自動化設定をテストするためのプレースホルダーのアクションです。

フィルター

フィルター説明
MetricThresholdFilterメトリクス値をしきい値と比較した結果に基づいて run をフィルタリングします。
MetricChangeFilterメトリクス値の経時的な変化に基づいて run をフィルタリングします。

代表的なユースケース

モデルパフォーマンスの監視

  • モデルの精度がしきい値を下回ったときにアラートを送信する
  • 学習損失が横ばいになったときにチームに通知する
  • パフォーマンスメトリクスに基づいて再学習パイプラインを起動する

アーティファクト管理

  • 新しいモデルバージョンが作成されたときに通知を送る
  • アーティファクトにタグが付けられたときにデプロイワークフローを起動する
  • データセットが更新されたときに後続処理を自動化する

実験トラッキング

  • 失敗またはクラッシュした run にアラートを送信する
  • 長時間実行中の実験が完了したときに通知する
  • 実験メトリクスの日次サマリーを送信する

インテグレーションワークフロー

  • Webhook 経由で外部のトラッキングシステムを更新する
  • モデルレジストリとデプロイプラットフォームを同期する
  • 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="'custom-metric' が 10 を超えるたびに Slack メッセージを送信する。",
)
Automations API のより詳しい使い方については、Automations Guide を参照してください。