これは、このセクションの複数ページの印刷可能なビューです。 印刷するには、ここをクリックしてください.

このページの通常のビューに戻る.

Automations

This feature requires a Pro or Enterprise plan.

このページでは、W&B の automations について説明します。W&B のイベント(artifact Artifacts のバージョンが作成されたときなど)に基づいて、自動モデルテストやデプロイメントなどのワークフローステップをトリガーする オートメーションの作成 を行います。

たとえば、新しいバージョンが作成されたときに Slack チャンネルに投稿したり、production エイリアスが Artifacts に追加されたときに webhook を実行して自動テストをトリガーしたりできます。

Overview

Automation は、特定の event が Registry または Project で発生したときに実行できます。

Registry 内の Artifacts の場合、Automation の実行を次のように設定できます。

  • 新しい Artifacts バージョンがコレクションにリンクされたとき。たとえば、新しい候補 Models のテストと検証のワークフローをトリガーします。
  • エイリアスが Artifacts バージョンに追加されたとき。たとえば、エイリアスが Model バージョンに追加されたときに、デプロイメント ワークフローをトリガーします。

Project 内の Artifacts の場合、Automation の実行を次のように設定できます。

  • 新しいバージョンが Artifacts に追加されたとき。たとえば、Dataset Artifacts の新しいバージョンが特定のコレクションに追加されたときに、Training ジョブを開始します。
  • エイリアスが Artifacts バージョンに追加されたとき。たとえば、エイリアス「redaction」が Dataset Artifacts に追加されたときに、PII 編集ワークフローをトリガーします。

詳細については、オートメーションイベントとスコープ を参照してください。

オートメーションを作成 するには、次の手順を実行します。

  1. 必要に応じて、アクセストークン、パスワード、または機密性の高い設定の詳細など、Automation で必要な機密文字列の secrets を設定します。Secrets は、Team Settings で定義されます。Secrets は、webhook Automation で最も一般的に使用され、認証情報またはトークンをプレーンテキストで公開したり、webhook のペイロードにハードコーディングしたりすることなく、webhook の外部サービスに安全に渡すために使用されます。
  2. W&B が Slack に投稿したり、ユーザーに代わって webhook を実行したりすることを承認するように、webhook または Slack 通知を設定します。単一の Automation アクション(webhook または Slack 通知)を複数の Automation で使用できます。これらのアクションは、Team Settings で定義されます。
  3. Project または Registry で、Automation を作成します。
    1. 監視する event (新しい Artifacts バージョンが追加されたときなど)を定義します。
    2. イベントが発生したときに実行するアクション(Slack チャンネルへの投稿または webhook の実行)を定義します。Webhook の場合は、アクセストークンに使用する secret、および必要に応じてペイロードとともに送信する secret を指定します。

次のステップ

1 - Create an automation

This feature requires a Pro or Enterprise plan.

このページでは、W&B のオートメーションの作成と管理の概要について説明します。詳細な手順については、Slack オートメーションの作成またはWebhook オートメーションの作成を参照してください。

要件

  • Team admin は、チームの Projects のオートメーション、および Webhook、シークレット、Slack 接続などのオートメーションのコンポーネントを作成および管理できます。Team settingsを参照してください。
  • Registry automation を作成するには、Registry へのアクセス権が必要です。Registry アクセスの設定を参照してください。
  • Slack オートメーションを作成するには、選択した Slack インスタンスと channel に投稿する権限が必要です。

オートメーションの作成

Project または Registry の [Automations] タブからオートメーションを作成します。大まかに言って、オートメーションを作成するには、次の手順に従います。

  1. 必要に応じて、アクセス・トークン、パスワード、SSH キーなど、オートメーションに必要な機密文字列ごとにW&B シークレットを作成します。シークレットは [Team Settings] で定義します。シークレットは、Webhook オートメーションで最も一般的に使用されます。
  2. W&B が Slack に投稿したり、代わりに Webhook を実行したりできるように、Webhook または Slack 通知を設定して W&B を承認します。1 つのオートメーションアクション(Webhook または Slack 通知)を複数のオートメーションで使用できます。これらのアクションは [Team Settings] で定義します。
  3. Project または Registry で、監視するイベントと実行するアクション(Slack への投稿や Webhook の実行など)を指定するオートメーションを作成します。Webhook オートメーションを作成する場合は、送信するペイロードを設定します。

詳細については、以下を参照してください。

オートメーションの表示と管理

Project または Registry の [Automations] タブからオートメーションを表示および管理します。

  • オートメーションの詳細を表示するには、その名前をクリックします。
  • オートメーションを編集するには、そのアクション ... メニューをクリックし、[Edit automation] をクリックします。
  • オートメーションを削除するには、そのアクション ... メニューをクリックし、[Delete automation] をクリックします。

次のステップ

1.1 - Create a Slack automation

This feature requires a Pro or Enterprise plan.

このページでは、Slack オートメーション の作成方法について説明します。Webhook オートメーションを作成するには、代わりに Webhook オートメーションの作成 を参照してください。

大まかに言うと、Slack オートメーションを作成するには、次の手順を実行します。

  1. Slack インテグレーションの追加 。これにより、Weights & Biases が Slack インスタンスと channel に投稿することを承認します。
  2. Slack オートメーションの作成 。これにより、監視する event と投稿先の channel が定義されます。

Slack に接続する

Team の管理者は、Team に Slack の送信先を追加できます。

  1. Weights & Biases にログインして、Team Settings ページに移動します。

  2. [Slack channel integrations] セクションで、[Connect Slack] をクリックして新しい Slack インスタンスを追加します。既存の Slack インスタンスに channel を追加するには、[New integration] をクリックします。

    必要に応じて、ブラウザで Slack にサインインします。プロンプトが表示されたら、選択した Slack channel に投稿する権限を Weights & Biases に付与します。ページを読んでから、[Search for a channel] をクリックして、channel 名を入力します。リストから channel を選択し、[Allow] をクリックします。

  3. Slack で、選択した channel に移動します。[Your Slack handle] added an integration to this channel: Weights & Biases のような投稿が表示された場合、インテグレーションは正しく構成されています。

これで、構成した Slack channel に通知する オートメーションの作成 ができます。

Slack 接続の表示と管理

Team の管理者は、Team の Slack インスタンスと channel を表示および管理できます。

  1. Weights & Biases にログインして、[Team Settings] に移動します。
  2. [Slack channel integrations] セクションで、各 Slack の送信先を表示します。
  3. 送信先を削除するには、ゴミ箱アイコンをクリックします。

オートメーションの作成

Weights & Biases Team を Slack に接続 したら、[Registry] または [Project] を選択し、次の手順に従って Slack channel に通知するオートメーションを作成します。

Registry の管理者は、その Registry でオートメーションを作成できます。

  1. Weights & Biases にログインします。

  2. Registry の名前をクリックして、詳細を表示します。

  3. Registry を対象範囲とするオートメーションを作成するには、[Automations] タブをクリックし、[Create automation] をクリックします。Registry を対象範囲とするオートメーションは、そのすべてのコレクション (将来作成されるコレクションを含む) に自動的に適用されます。

    Registry 内の特定のコレクションのみを対象範囲とするオートメーションを作成するには、コレクションのアクション ... メニューをクリックし、[Create automation] をクリックします。または、コレクションを表示しているときに、コレクションの詳細ページの [Automations] セクションにある [Create automation] ボタンを使用して、コレクションのオートメーションを作成します。

  4. 監視する Event を選択します。

    表示される追加フィールドに入力します。これは、イベントによって異なります。たとえば、[An artifact alias is added] を選択した場合は、[Alias regex] を指定する必要があります。

    [Next step] をクリックします。

  5. Slack インテグレーション を所有する Team を選択します。

  6. [Action type] を [Slack notification] に設定します。Slack channel を選択し、[Next step] をクリックします。

  7. オートメーションの名前を入力します。必要に応じて、説明を入力します。

  8. [Create automation] をクリックします。

Weights & Biases の管理者は、Project でオートメーションを作成できます。

  1. Weights & Biases にログインします。

  2. Project ページに移動し、[Automations] タブをクリックします。

  3. [Create automation] をクリックします。

  4. 監視する Event を選択します。

    表示される追加フィールドに入力します。これは、イベントによって異なります。たとえば、[An artifact alias is added] を選択した場合は、[Alias regex] を指定する必要があります。

    [Next step] をクリックします。

  5. Slack インテグレーション を所有する Team を選択します。

  6. [Action type] を [Slack notification] に設定します。Slack channel を選択し、[Next step] をクリックします。

  7. オートメーションの名前を入力します。必要に応じて、説明を入力します。

  8. [Create automation] をクリックします。

オートメーションの表示と管理

  • Registry のオートメーションは、Registry の [Automations] タブから管理します。
  • コレクションのオートメーションは、コレクションの詳細ページの [Automations] セクションから管理します。

これらのページのいずれかから、Registry の管理者は既存のオートメーションを管理できます。

  • オートメーションの詳細を表示するには、その名前をクリックします。
  • オートメーションを編集するには、アクション ... メニューをクリックし、[Edit automation] をクリックします。
  • オートメーションを削除するには、アクション ... メニューをクリックし、[Delete automation] をクリックします。確認が必要です。

Weights & Biases の管理者は、Project の [Automations] タブから Project のオートメーションを表示および管理できます。

  • オートメーションの詳細を表示するには、その名前をクリックします。
  • オートメーションを編集するには、アクション ... メニューをクリックし、[Edit automation] をクリックします。
  • オートメーションを削除するには、アクション ... メニューをクリックし、[Delete automation] をクリックします。確認が必要です。

1.2 - Create a webhook automation

This feature requires a Pro or Enterprise plan.

このページでは、webhook オートメーション の作成方法について説明します。Slack オートメーションを作成するには、代わりに Slack オートメーションの作成 を参照してください。

大まかに言うと、webhook オートメーションを作成するには、次の手順を実行します。

  1. 必要に応じて、アクセストークン、パスワード、SSH キーなど、オートメーションに必要な機密文字列ごとに W&B シークレットを作成 します。シークレットは、 Team の設定で定義されます。
  2. webhook を作成 して、エンドポイントと認証の詳細を定義し、インテグレーションに必要なシークレットへのアクセスを許可します。
  3. オートメーションを作成 して、監視する イベント と、Weights & Biases が送信するペイロードを定義します。ペイロードに必要なシークレットへのオートメーションアクセスを許可します。

webhook を作成する

Team の管理者は、 Team に webhook を追加できます。

  1. Weights & Biases にログインし、Team の Settings ページに移動します。

  2. Webhooks セクションで、New webhook をクリックします。

  3. webhook の名前を入力します。

  4. webhook のエンドポイント URL を入力します。

  5. webhook に Bearer トークンが必要な場合は、Access token をそれを含む シークレット に設定します。webhook オートメーションを使用すると、Weights & Biases は Authorization: Bearer HTTP ヘッダーをアクセストークンに設定し、${ACCESS_TOKEN} ペイロード変数 でトークンにアクセスできます。

  6. webhook のペイロードにパスワードまたはその他の機密文字列が必要な場合は、Secret をそれを含むシークレットに設定します。webhook を使用するオートメーションを設定すると、名前の先頭に $ を付けることで、ペイロード変数 としてシークレットにアクセスできます。

    webhook のアクセストークンがシークレットに保存されている場合は、次の手順も完了して、シークレットをアクセストークンとして指定する 必要 があります。

  7. Weights & Biases がエンドポイントに接続して認証できることを確認するには:

    1. 必要に応じて、テストするペイロードを指定します。ペイロードで webhook がアクセスできるシークレットを参照するには、名前の先頭に $ を付けます。このペイロードはテスト専用であり、保存されません。オートメーションのペイロードは、オートメーションを作成 するときに設定します。シークレットとアクセストークンが POST リクエストのどこに指定されているかを確認するには、webhook のトラブルシューティング を参照してください。
    2. Test をクリックします。Weights & Biases は、設定した資格情報を使用して webhook のエンドポイントへの接続を試みます。ペイロードを指定した場合は、Weights & Biases がそれを送信します。

    テストが成功しない場合は、webhook の設定を確認して、もう一度お試しください。必要に応じて、webhook のトラブルシューティング を参照してください。

これで、webhook を使用する オートメーションを作成 できます。

オートメーションを作成する

webhook を設定 したら、Registry または Project を選択し、次の手順に従って webhook をトリガーするオートメーションを作成します。

Registry 管理者は、その Registry でオートメーションを作成できます。Registry オートメーションは、今後追加されるものを含め、Registry 内のすべてのコレクションに適用されます。

  1. Weights & Biases にログインします。

  2. Registry の名前をクリックして詳細を表示します。

  3. Registry の範囲に設定されたオートメーションを作成するには、Automations タブをクリックし、Create automation をクリックします。Registry の範囲に設定されたオートメーションは、そのすべてのコレクション(今後作成されるものを含む)に自動的に適用されます。

    Registry 内の特定のコレクションのみを範囲とするオートメーションを作成するには、コレクションのアクション ... メニューをクリックし、Create automation をクリックします。または、コレクションを表示しながら、コレクションの詳細ページの Automations セクションにある Create automation ボタンを使用して、コレクションのオートメーションを作成します。

  4. 監視する Event を選択します。イベントに応じて表示される追加フィールドに入力します。たとえば、An artifact alias is added を選択した場合は、Alias regex を指定する必要があります。Next step をクリックします。

  5. webhook を所有する Team を選択します。

  6. Action typeWebhooks に設定し、使用する webhook を選択します。

  7. webhook のアクセストークンを設定した場合は、${ACCESS_TOKEN} ペイロード変数 でトークンにアクセスできます。webhook のシークレットを設定した場合は、名前の先頭に $ を付けることで、ペイロードでアクセスできます。webhook の要件は、webhook のサービスによって決まります。

  8. Next step をクリックします。

  9. オートメーションの名前を入力します。必要に応じて、説明を入力します。Create automation をクリックします。

Weights & Biases 管理者は、Project でオートメーションを作成できます。

  1. Weights & Biases にログインし、Project ページに移動します。

  2. サイドバーで、Automations をクリックします。

  3. Create automation をクリックします。

  4. 監視する Event を選択します。

    1. イベントに応じて表示される追加フィールドに入力します。たとえば、An artifact alias is added を選択した場合は、Alias regex を指定する必要があります。

    2. 必要に応じて、コレクションフィルターを指定します。それ以外の場合、オートメーションは、今後追加されるものを含め、Project 内のすべてのコレクションに適用されます。

    Next step をクリックします。

  5. webhook を所有する Team を選択します。

  6. Action typeWebhooks に設定し、使用する webhook を選択します。

  7. webhook にペイロードが必要な場合は、ペイロードを作成して Payload フィールドに貼り付けます。webhook のアクセストークンを設定した場合は、${ACCESS_TOKEN} ペイロード変数 でトークンにアクセスできます。webhook のシークレットを設定した場合は、名前の先頭に $ を付けることで、ペイロードでアクセスできます。webhook の要件は、webhook のサービスによって決まります。

  8. Next step をクリックします。

  9. オートメーションの名前を入力します。必要に応じて、説明を入力します。Create automation をクリックします。

オートメーションの表示と管理

  • Registry のオートメーションは、Registry の Automations タブから管理します。
  • コレクションのオートメーションは、コレクションの詳細ページの Automations セクションから管理します。

これらのページのいずれかから、Registry 管理者は既存のオートメーションを管理できます。

  • オートメーションの詳細を表示するには、その名前をクリックします。
  • オートメーションを編集するには、アクション ... メニューをクリックし、Edit automation をクリックします。
  • オートメーションを削除するには、アクション ... メニューをクリックし、Delete automation をクリックします。確認が必要です。

Weights & Biases 管理者は、Project の Automations タブから Project のオートメーションを表示および管理できます。

  • オートメーションの詳細を表示するには、その名前をクリックします。
  • オートメーションを編集するには、アクション ... メニューをクリックし、Edit automation をクリックします。
  • オートメーションを削除するには、アクション ... メニューをクリックし、Delete automation をクリックします。確認が必要です。

ペイロードリファレンス

これらのセクションを使用して、webhook のペイロードを作成します。webhook とそのペイロードのテストの詳細については、webhook のトラブルシューティング を参照してください。

ペイロード変数

このセクションでは、webhook のペイロードの作成に使用できる変数について説明します。

変数 詳細
${project_name} アクションをトリガーした変更を所有する Project の名前。
${entity_name} アクションをトリガーした変更を所有する Entity または Team の名前。
${event_type} アクションをトリガーしたイベントのタイプ。
${event_author} アクションをトリガーしたユーザー。
${artifact_collection_name} Artifact バージョンがリンクされている Artifact コレクションの名前。
${artifact_metadata.<KEY>} アクションをトリガーした Artifact バージョンからの任意のトップレベル メタデータ キーの値。<KEY> をトップレベル メタデータ キーの名前に置き換えます。トップレベル メタデータ キーのみが、webhook のペイロードで使用できます。
${artifact_version} アクションをトリガーした Artifact バージョンの Wandb.Artifact 表現。
${artifact_version_string} アクションをトリガーした Artifact バージョンの string 表現。
${ACCESS_TOKEN} アクセストークンが設定されている場合は、webhook で設定されたアクセストークンの値。アクセストークンは、Authorization: Bearer HTTP ヘッダーで自動的に渡されます。
${SECRET_NAME} 設定されている場合は、webhook で設定されたシークレットの値。SECRET_NAME をシークレットの名前に置き換えます。

ペイロードの例

このセクションには、一般的なユースケースの webhook ペイロードの例が含まれています。この例では、ペイロード変数 の使用方法を示します。

Weights & Biases からリポジトリディスパッチを送信して、GitHub アクションをトリガーします。たとえば、on キーのトリガーとしてリポジトリディスパッチを受け入れる GitHub ワークフローファイルがあるとします。

on:
repository_dispatch:
  types: BUILD_AND_DEPLOY

リポジトリのペイロードは、次のようになります。

{
  "event_type": "BUILD_AND_DEPLOY",
  "client_payload": 
  {
    "event_author": "${event_author}",
    "artifact_version": "${artifact_version}",
    "artifact_version_string": "${artifact_version_string}",
    "artifact_collection_name": "${artifact_collection_name}",
    "project_name": "${project_name}",
    "entity_name": "${entity_name}"
    }
}

レンダリングされたテンプレート文字列の内容と配置は、オートメーションが設定されているイベントまたはモデルバージョンによって異なります。${event_type} は、LINK_ARTIFACT または ADD_ARTIFACT_ALIAS のいずれかとしてレンダリングされます。以下に、マッピングの例を示します。

${event_type} --> "LINK_ARTIFACT" or "ADD_ARTIFACT_ALIAS"
${event_author} --> "<wandb-user>"
${artifact_version} --> "wandb-artifact://_id/QXJ0aWZhY3Q6NTE3ODg5ODg3""
${artifact_version_string} --> "<entity>/model-registry/<registered_model_name>:<alias>"
${artifact_collection_name} --> "<registered_model_name>"
${project_name} --> "model-registry"
${entity_name} --> "<entity>"

テンプレート文字列を使用して、Weights & Biases から GitHub Actions およびその他のツールにコンテキストを動的に渡します。これらのツールが Python スクリプトを呼び出すことができる場合は、Weights & Biases API を使用して、登録されたモデル Artifacts を利用できます。

このペイロードの例は、webhook を使用して Teams チャンネルに通知する方法を示しています。

{
"@type": "MessageCard",
"@context": "http://schema.org/extensions",
"summary": "New Notification",
"sections": [
  {
    "activityTitle": "Notification from WANDB",
    "text": "This is an example message sent via Teams webhook.",
    "facts": [
      {
        "name": "Author",
        "value": "${event_author}"
      },
      {
        "name": "Event Type",
        "value": "${event_type}"
      }
    ],
    "markdown": true
  }
]
}

テンプレート文字列を使用して、実行時に Weights & Biases データをペイロードに挿入できます(上記の Teams の例に示すように)。

Slack API ドキュメント で強調表示されている手順に従って、Slack アプリを設定し、受信 webhook インテグレーションを追加します。Bot User OAuth Token で指定されたシークレットが、Weights & Biases webhook のアクセストークンであることを確認してください。

以下は、ペイロードの例です。

{
    "text": "New alert from WANDB!",
"blocks": [
    {
            "type": "section",
        "text": {
            "type": "mrkdwn",
            "text": "Registry event: ${event_type}"
        }
    },
        {
            "type":"section",
            "text": {
            "type": "mrkdwn",
            "text": "New version: ${artifact_version_string}"
        }
        },
        {
        "type": "divider"
    },
        {
            "type": "section",
        "text": {
            "type": "mrkdwn",
            "text": "Author: ${event_author}"
        }
        }
    ]
}

webhook のトラブルシューティング

Weights & Biases App UI を使用してインタラクティブに、または Bash スクリプトを使用してプログラムで webhook のトラブルシューティングを行います。新しい webhook を作成するとき、または既存の webhook を編集するときに、webhook のトラブルシューティングを行うことができます。

Team 管理者は、Weights & Biases App UI を使用して webhook をインタラクティブにテストできます。

  1. Weights & Biases Team の Settings ページに移動します。
  2. Webhooks セクションまでスクロールします。
  3. webhook の名前の横にある水平方向の 3 つのドキュメント(ミートボールアイコン)をクリックします。
  4. Test を選択します。
  5. 表示される UI パネルから、表示されるフィールドに POST リクエストを貼り付けます。 Webhook ペイロードのテストのデモ
  6. Test webhook をクリックします。Weights & Biases App UI 内で、Weights & Biases はエンドポイントからの応答を投稿します。 Webhook のテストのデモ

デモンストレーションについては、ビデオ Weights & Biases での Webhook のテスト をご覧ください。

このシェルスクリプトは、トリガーされたときに Weights & Biases が webhook オートメーションに送信するリクエストと同様の POST リクエストを生成する 1 つの方法を示しています。

以下のコードをコピーしてシェルスクリプトに貼り付け、webhook のトラブルシューティングを行います。次の独自の値(バリュー)を指定します。

  • ACCESS_TOKEN
  • SECRET
  • PAYLOAD
  • API_ENDPOINT
webhook_test.sh

2 - Automation events and scopes

This feature requires a Pro or Enterprise plan.

オートメーション は、特定のイベントが project または registry のスコープ内で発生したときに開始できます。 project の スコープ は、[スコープの技術的な定義を挿入] を指します。このページでは、各スコープ内で オートメーション をトリガーできるイベントについて説明します。

オートメーション の詳細については、オートメーション の概要 または オートメーション の作成 を参照してください。

Registry

このセクションでは、Registry 内の オートメーション のスコープとイベントについて説明します。

  1. https://wandb.ai/registry/Registry App に移動します。
  2. registry の名前をクリックし、Automations タブで オートメーション を表示および作成します。

オートメーション の作成 の詳細について説明します。

スコープ

次のスコープで Registry オートメーション を作成できます。

  • Registry レベル: オートメーション は、特定の registry 内のコレクション (今後追加されるコレクションを含む) で発生するイベントを監視します。
  • コレクション レベル: 特定の registry 内の単一のコレクション。

イベント

Registry オートメーション は、次のイベントを監視できます。

  • 新しい Artifact をコレクションにリンクする: registry に追加された新しい Models または Datasets をテストおよび検証します。
  • 新しい エイリアス を Artifact の バージョン に追加する: 新しい Artifact バージョン に特定の エイリアス が適用されたときに、 ワークフロー の特定のステップをトリガーします。たとえば、production エイリアス が適用されたときに model をデプロイします。

Project

このセクションでは、project 内の オートメーション のスコープとイベントについて説明します。

  1. W&B App ( https://wandb.ai/<team>/<project-name> ) で W&B project に移動します。
  2. Automations タブで オートメーション を表示および作成します。

オートメーション の作成 の詳細について説明します。

スコープ

次のスコープで project オートメーション を作成できます。

  • Project レベル: オートメーション は、 project 内のコレクションで発生するイベントを監視します。
  • コレクション レベル: 指定したフィルターに一致する project 内のすべてのコレクション。

イベント

project オートメーション は、次のイベントを監視できます。

  • Artifact の新しい バージョン がコレクションに作成される: Artifact の各 バージョン に定期的なアクションを適用します。コレクション の指定はオプションです。たとえば、新しい dataset Artifact バージョン が作成されたときに training ジョブを開始します。
  • Artifact エイリアス が追加される: project またはコレクション内の新しい Artifact バージョン に特定の エイリアス が適用されたときに、 ワークフロー の特定のステップをトリガーします。たとえば、Artifact に test-set-quality-check エイリアス が適用されたときに、一連のダウンストリーム プロセッシング ステップを実行します。

次のステップ