アラートを送信する

Python コードからトリガーされたアラートを Slack またはメールに送信する

run がクラッシュしたり、カスタムトリガーで Slack やメールでアラートを作成します。例えば、トレーニングループの勾配が膨らみ始めた場合(NaNを報告)や、ML パイプライン内のステップが完了した場合などです。アラートは、個人およびチームプロジェクトの両方を含む、run を初期化するすべての Projects に適用されます。

その後、Slack(またはメール)で W&B Alerts メッセージを確認します。

アラートの作成方法

アラートを設定するための主なステップは2つあります。

  1. W&B の User Settings で Alerts をオンにする
  2. コードに run.alert() を追加する
  3. アラートが正しく設定されているか確認する

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

User Settings の中で:

  • Alerts セクションまでスクロールします
  • Scriptable run alerts をオンにして run.alert() からのアラートを受け取ります
  • Connect Slack を使用して、アラートを投稿する Slack チャンネルを選択します。アラートを非公開に保持するため、Slackbot チャンネルをお勧めします。
  • Email は W&B にサインアップしたときに使用したメールアドレスに送られます。これらのアラートがフォルダに入り、受信トレイを埋めないようにメールにフィルターを設定することをお勧めします。

W&B Alerts を初めて設定する際、またはアラートの受け取り方を変更したい場合にのみ、これを行う必要があります。

Alerts settings in W&B User Settings

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

ノートブックや Python スクリプトのどこでトリガーしたいかに run.alert() をコードに追加します。

import wandb

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

3. Slack またはメールを確認する

アラートメッセージのために Slack またはメールをチェックします。受信していない場合は、User SettingsScriptable Alerts 用のメールまたは Slack がオンになっていることを確認してください

このシンプルなアラートは、精度が閾値を下回ると警告を送信します。この例では、少なくとも 5 分おきにアラートを送信します。

import wandb
from wandb import AlertLevel

run = wandb.init()

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 チャンネルを変更する

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