メインコンテンツまでスキップ

wandb.alertを使ってアラートを送信する

Open In Colab

W&B Alertsを使用すると、W&B Runがクラッシュした場合や、損失がNaNになったり、MLパイプラインのステップが完了したなどのカスタムトリガーが達成された場合に、Slackまたはメールで通知を受け取ることができます。W&B Alertsは、個人プロジェクトとチームプロジェクトの両方を含む、runを起動するすべてのプロジェクトに適用されます。

以下のようにアラートを設定することができます:

text = f"精度 {acc} は許容範囲 {thresh} を下回っています"

wandb.alert(title="低い精度", text=text)

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

はじめに

備考

この手順は、パブリッククラウドでのみアラートを有効にする方法です。

プライベートクラウドやW&B専用クラウドでW&Bサーバーを使用している場合は、このドキュメントを参照してSlackアラートのセットアップを行ってください。

コードからSlackやメールでアラートを送信するためには、最初に以下の2つの手順を行ってください。

  1. W&B ユーザー設定でアラートを有効にする
  2. wandb.alert()をコードに追加する

1. W&Bユーザー設定でアラートを有効にする

ユーザー設定で:

  • アラートセクションまでスクロールする
  • `wandb.alert()`からアラートを受け取るために、スクリプトで実行可能なアラート を有効にする
  • Slackに接続を使用して、アラートを投稿するSlackチャンネルを選択します。アラートをプライベートに保つために、Slackbotチャンネルをお勧めします。
  • メールは、W&Bにサインアップした際に使用したメールアドレスに送信されます。すべてのこれらのアラートがフォルダに入り、受信トレイがいっぱいにならないように、メールでフィルタを設定することをお勧めします。

W&Bアラートの設定を初めて行う場合や、アラートの受信方法を変更したい場合に、この作業を行う必要があります。

W&Bユーザー設定のアラート設定

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

コード(ノートブックまたはPythonスクリプト)にwandb.alert()を追加し、アラートがトリガーされる場所を選択します。

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

Slackまたはメールを確認してください

アラートメッセージがSlackまたはメールに届いているか確認してください。もし届いていない場合は、ユーザー設定スクリプト可能なアラートに対してメールまたはSlackが有効になっているか確認してください。

wandb.alert()の使用法

引数説明
title (string)アラートの短い説明。例:「精度が低い」
text (string)アラートのトリガーとなった事象についてのより詳細な説明
level (任意)アラートの重要度。AlertLevel.INFOAlertLevel.WARN、またはAlertLevel.ERRORのいずれかである必要があります。wandbからAlertLevel.xxxをインポートできます。
wait_duration (任意)同じタイトルで別のアラートを送信するまでの秒数。これにより、アラートのスパムが減少します。

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

コードを実行 →

import wandb
from wandb import AlertLevel

if acc < threshold:
wandb.alert(
title="低い精度",
text=f"精度 {acc} は許容範囲 {threshold} を下回っています",
level=AlertLevel.WARN,
wait_duration=300,
)

詳細情報

タグ付け/ユーザーのメンション

Slackでアラートを送る際、自分自身や同僚にメンションを送ることができます。そのためには、アラートのタイトルやテキスト内にSlackユーザーIDを <@USER_ID> として追加してください。SlackプロフィールページからSlackユーザーIDを見つけることができます。

wandb.alert(title="Loss is NaN", text=f"Hey <@U1234ABCD> lossがNaNになってしまいました")

W&Bチームアラート

チームの管理者は、チーム設定ページでチームに対するアラートを設定できます: wandb.ai/teams/ your-team。これらのアラートは、チーム内の全員に適用されます。アラートをプライベートに保つために、Slackbotチャンネルの使用をお勧めします。

Slackチャンネルの変更

投稿先のチャンネルを変更するには、Slackの接続解除をクリックしてから、再接続して別の宛先チャンネルを選択してください。

FAQ(よくある質問)

Jupyterノートブックでは「Run Finished」アラートは機能しますか?

ユーザー設定で「Run Finished」設定をオンにすることで有効になる 「Run Finished」 アラートは、Pythonスクリプトでのみ動作し、Jupyter Notebooks環境では各セルの実行ごとにアラート通知が発生しないように無効にされています。代わりに、Jupyter Notebook環境で wandb.alert() を使用してください。

Was this page helpful?👍👎