メインコンテンツへスキップ
run がクラッシュしたときや、カスタムトリガーに応じて、Slack またはメールでアラートを作成できます。たとえば、トレーニングループの gradient が発散し始めたとき (NaN を返したとき) や、ML パイプラインの step が完了したときにアラートを作成できます。アラートは、個人のプロジェクトとチームのプロジェクトを含め、run を初期化したすべてのプロジェクトに適用されます。 設定すると、Slack (またはメール) で W&B Alerts のメッセージを確認できます。
Slack アラートの設定
W&B Alerts を使用するには、コードに run.alert() を追加する必要があります。コードを変更しなくても、Automations を使えば、artifact のバージョンが作成されたときや、run metric がしきい値に達したとき、またはしきい値を超えて変化したときなど、W&B 内のイベントに基づいて Slack に通知する別の方法を利用できます。たとえば、automation を使うと、新しいバージョンが作成されたときに Slack チャンネルに通知したり、artifact に production エイリアスが追加されたときに自動テスト用 webhook を実行したり、run の loss が許容範囲内にある場合にのみ検証ジョブを開始したりできます。Automations の概要を読むか、automation を作成してください。
以下のガイドは、Multi-tenant Cloud のアラートにのみ適用されます。Private Cloud 上の W&B Server または W&B 専用クラウドを使用している場合は、W&B Server で Slack アラートを設定する を参照して Slack アラートを設定してください。
アラートを設定するには、以下のセクションで詳しく説明する次の step を実行します。
  1. W&B の User Settings で Alerts を有効にします。
  2. コードに run.alert() を追加します。
  3. 設定をテストします。

1. W&B User Settingsでアラートを有効にする

User Settingsで、以下を行います。
  • Alerts セクションまでスクロールします
  • run.alert() からのアラートを受け取るには、Scriptable run alerts を有効にします
  • アラートの送信先となる Slack チャンネルを選ぶには、Connect Slack を使用します。アラートを非公開に保てるため、Slackbot チャンネルを推奨します。
  • Email は、W&B の登録時に使用したメールアドレスに送信されます。これらのアラートで受信トレイがいっぱいにならないよう、メール側でフィルターを設定してフォルダーに振り分けることをおすすめします。
この設定が必要なのは、初めて W&B Alerts を設定するとき、またはアラートの受信方法を変更したいときだけです。
W&B User SettingsのAlerts設定

2. コードに run.alert() を追加する

run.alert() をトリガーしたい箇所に、コード (Notebook または Python スクリプト) へ追加します
import wandb

with wandb.init() as run:
    run.alert(title="High Loss", text="Loss is increasing rapidly")

3. 設定をテストする

Slack またはメールでアラートメッセージを確認してください。どちらにも届いていない場合は、User SettingsScriptable Alerts のメールまたは Slack が有効になっていることを確認してください。

このシンプルなアラートは、accuracy がしきい値を下回ると警告を送信します。この例では、アラートは少なくとも 5 分以上の間隔を空けて送信されます。
import wandb
from wandb import AlertLevel

with wandb.init() as run:

    if acc < threshold:
        run.alert(
            title="Low accuracy",
            text=f"Accuracy {acc} is below the acceptable threshold {threshold}",
            level=AlertLevel.WARN,
            wait_duration=300,
        )

ユーザーをタグ付けまたはメンションする

アラートのタイトルまたは本文で自分や同僚をタグ付けするには、SlackユーザーIDの前にアットマーク @ を付けます。SlackユーザーIDは、Slackのプロフィールページで確認できます。
run.alert(title="Loss is NaN", text=f"Hey <@U1234ABCD> loss has gone to NaN")

チームアラートを設定する

チーム管理者は、チーム設定ページ wandb.ai/teams/your-team でチーム向けのアラートを設定できます。 チームアラートはチームの全員に適用されます。アラートを非公開に保てるため、W&B では Slackbot チャンネルの使用を推奨しています。

アラートの送信先の Slack チャンネルを変更する

アラートの送信先チャンネルを変更するには、Slack の接続を解除 をクリックしてから、もう一度接続してください。再接続後に、別の Slack チャンネルを選択します。