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

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

オートメーション

This feature requires a Pro or Enterprise plan.

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

例えば、新しいバージョンが作成されたときに Slack のチャンネルに投稿したり、アーティファクトに production エイリアスが追加されたときに自動テストをトリガーするためにウェブフックを実行することができます。

概要

オートメーションは、レジストリやプロジェクトで特定のイベントが発生したときに実行できます。

レジストリ内のアーティファクトの場合、オートメーションを設定して次の場合に実行することができます:

  • 新しいアーティファクトバージョンがコレクションにリンクされたとき。例えば、新しい候補モデルに対するテストおよび検証ワークフローをトリガーします。
  • アーティファクトバージョンにエイリアスが追加されたとき。例えば、モデルバージョンにエイリアスが追加されたときにデプロイメントワークフローをトリガーします。

プロジェクト内のアーティファクトの場合、オートメーションを設定して次の場合に実行することができます:

  • 新しいバージョンがアーティファクトに追加されたとき。例えば、指定されたコレクションにデータセットアーティファクトの新しいバージョンが追加されたときにトレーニングジョブを開始します。
  • アーティファクトバージョンにエイリアスが追加されたとき。例えば、データセットアーティファクトにエイリアス「redaction」が追加されたときに PII 編集ワークフローをトリガーします。

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

オートメーションを作成するには、以下を行います:

  1. 必要に応じて、自動化に必要なアクセス トークン、パスワード、またはセンシティブな設定の詳細などの機密文字列のために、シークレットを設定します。シークレットは Team Settings で定義されます。シークレットは、資格情報やトークンをプレーン テキストで公開することなく、Webhook のペイロードにハードコードすることなく、安全に外部サービスに渡すために Webhook オートメーションで最も一般的に使用されます。
  2. Webhook または Slack 通知を設定して、Slack に投稿したり、ユーザーに代わって Webhook を実行するように W&B を承認します。単一のオートメーションアクション(Webhookまたは Slack 通知)は、複数のオートメーションで使用できます。これらのアクションは、Team Settings で定義されます。
  3. プロジェクトまたはレジストリでオートメーションを作成します:
    1. 新しいアーティファクトバージョンが追加されたときなど、監視するイベントを定義します。
    2. イベントが発生したときに取るアクション(Slack チャンネルへの投稿またはウェブフックの実行)を定義します。ウェブフックの場合、必要に応じてペイロードと共に送信するアクセス トークンやシークレットを使用するためのシークレットを指定します。

次のステップ

1 - 自動化の作成

This feature requires a Pro or Enterprise plan.

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

要件

  • チーム管理者は、チームの Projects やオートメーションのコンポーネント(Webhook、秘密情報、Slack 接続など)のオートメーションを作成および管理できます。チーム設定を参照してください。
  • レジストリオートメーションを作成するには、レジストリへのアクセスが必要です。レジストリアクセスの設定を参照してください。
  • Slack オートメーションを作成するには、選択した Slack インスタンスとチャンネルに投稿する権限が必要です。

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

プロジェクトまたはレジストリの Automations タブからオートメーションを作成します。オートメーションを作成するには、以下のステップに従います:

  1. 必要に応じて、オートメーションに必要な各機密文字列(アクセストークン、パスワード、SSH キーなど)のために W&B の秘密情報を作成する。秘密情報は Team Settings で定義されます。秘密情報は主に Webhook オートメーションで使用されます。
  2. Webhook または Slack 通知を設定して、W&B が Slack に投稿するか、代わりに Webhook を実行できるようにします。単一のオートメーションアクション(Webhook または Slack 通知)は、複数のオートメーションによって使用できます。これらのアクションは Team Settings で定義されます。
  3. プロジェクトまたはレジストリで、監視するイベントと実行するアクション(Slack への投稿や Webhook の実行など)を指定するオートメーションを作成します。Webhook オートメーションを作成するときは、送信するペイロードを設定します。

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

オートメーションを表示および管理する

プロジェクトまたはレジストリの Automations タブからオートメーションを表示および管理します。

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

次のステップ

1.1 - Slack 自動化の作成

This feature requires a Pro or Enterprise plan.

このページでは、Slack オートメーションを作成する方法を示します。ウェブフックオートメーションを作成するには、ウェブフックオートメーションの作成を参照してください。

高レベルでは、Slackオートメーションを作成するには、以下の手順を行います:

  1. Slackインテグレーションを追加し、W&BがSlackインスタンスとチャンネルに投稿できるように認証します。
  2. Slackオートメーションを作成し、監視するイベントと投稿するチャンネルを定義します。

Slackに接続

チーム管理者は、チームにSlack宛先を追加できます。

  1. W&Bにログインし、チーム設定ページに移動します。

  2. Slackチャンネルインテグレーションセクションで、Slackを接続をクリックして新しいSlackインスタンスを追加します。既存のSlackインスタンスにチャンネルを追加するには、新しいインテグレーションをクリックします。

    必要に応じて、ブラウザでSlackにサインインします。プロンプトが表示されたら、選択したSlackチャンネルにW&Bからの投稿を許可してください。ページを読み、チャンネルを検索をクリックしてチャンネル名を入力し始めます。リストからチャンネルを選択し、許可をクリックします。

  3. Slackで、選択したチャンネルに移動します。[あなたのSlackハンドル]がこのチャンネルにインテグレーションを追加しました: Weights & Biasesという投稿が表示されれば、インテグレーションが正しく設定されています。

これで、設定したSlackチャンネルに通知するオートメーションを作成できます。

Slack接続の表示と管理

チーム管理者は、チームのSlackインスタンスとチャンネルを表示および管理できます。

  1. W&Bにログインし、チーム設定に移動します。
  2. Slackチャンネルインテグレーションセクションで各Slack宛先を表示します。
  3. 宛先を削除するには、そのゴミ箱アイコンをクリックします。

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

W&BチームをSlackに接続した後RegistryまたはProjectを選択し、Slackチャンネルに通知するオートメーションを作成する手順に従います。

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

  1. W&Bにログインします。

  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インテグレーションを所有するチームを選択します。

  6. Action typeSlack notificationに設定します。Slackチャンネルを選択し、Next stepをクリックします。

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

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

W&B管理者は、プロジェクト内でオートメーションを作成できます。

  1. W&Bにログインします。

  2. プロジェクトページに移動し、Automationsタブをクリックします。

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

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

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

    Next stepをクリックします。

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

  6. Action typeSlack notificationに設定します。Slackチャンネルを選択し、Next stepをクリックします。

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

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

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

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

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

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

W&B管理者は、プロジェクトのAutomationsタブからプロジェクトのオートメーションを表示および管理できます。

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

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

This feature requires a Pro or Enterprise plan.

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

webhook オートメーションを作成するための大まかな手順は以下の通りです。

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

webhook の作成

チーム管理者は、チームに webhook を追加できます。

  1. W&B にログインし、チーム設定ページに移動します。

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

  3. webhook に名前を提供します。

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

  5. webhook が Bearer トークンを必要とする場合、Access token をそれを含む secretに設定します。webhook オートメーションを使用する際、W&B は Authorization: Bearer HTTP ヘッダーをアクストークンに設定し、${ACCESS_TOKEN} payload variable でトークンにアクセスできます。

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

    webhook のアクセストークンがシークレットに保存されている場合は、アクセストークンとしてシークレットを指定するために次のステップを 必ず 完了してください。

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

    1. オプションで、テスト用のペイロードを提供します。ペイロード内で webhook がアクセス可能なシークレットを参照するには、その名前に $ を付けます。このペイロードはテスト用であり保存されません。オートメーションのペイロードは create the automation で設定します。シークレットとアクセストークンが POST リクエストで指定されている場所を表示するには、Troubleshoot your webhook を参照してください。
    2. Test をクリックします。W&B は、設定された認証情報を使用して webhook のエンドポイントに接続しようとします。ペイロードを提供した場合は、W&B がそれを送信します。

    テストが成功しない場合は、webhook の設定を確認して再試行してください。必要に応じて、Troubleshoot your webhook を参照してください。

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

オートメーションの作成

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

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

  1. W&B にログインします。

  2. 詳細を確認するためにレジストリの名前をクリックします。

  3. レジストリにスコープされているオートメーションを作成するには、Automations タブをクリックし、Create automation をクリックします。レジストリにスコープされているオートメーションは、そのすべてのコレクション(将来作成されるものを含む)に自動的に適用されます。

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

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

  5. webhookを所有するチームを選択します。

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

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

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

  9. オートメーションに名前を付けます。オプションで説明を入力します。Create automation をクリックします。

W&B 管理者はプロジェクト内でオートメーションを作成できます。

  1. W&B にログインし、プロジェクトページに移動します。

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

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

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

    1. 表示される、追加フィールドを入力します。例えば、An artifact alias is added を選択した場合、Alias regex を指定する必要があります。

    2. オプションでコレクションフィルタを指定します。それ以外の場合、オートメーションはプロジェクト内のすべてのコレクションに適用され、将来追加されるものも含まれます。

    Next step をクリックします。

  5. webhookを所有するチームを選択します。

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

  7. webhook がペイロードを必要とする場合、それを構築し、Payload フィールドに貼り付けます。webhook にアクセストークンを設定している場合、${ACCESS_TOKEN} payload variable でトークンにアクセスできます。webhook にシークレットを設定している場合、シークレットの名前に $ を付けてペイロード内でアクセスできます。webhook の要件は webhook のサービスによって決まります。

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

  9. オートメーションに名前を付けます。オプションで説明を入力します。Create automation をクリックします。

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

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

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

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

W&B 管理者はプロジェクトの Automations タブからプロジェクトのオートメーションを表示および管理できます。

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

ペイロードのリファレンス

以下のセクションを使用して、webhook のペイロードを構築します。webhook とそのペイロードのテストについての詳細は、Troubleshoot your webhook を参照してください。

ペイロード変数

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

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

ペイロードの例

このセクションでは、一般的なユースケースのための webhook ペイロードの例を示します。例は payload variables をどのように使用するかを示します。

W&B からリポジトリディスパッチを送信して 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" または "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>"

テンプレート文字列を使用して W&B から GitHub Actions や他のツールにコンテキストを動的に渡します。これらのツールが Python スクリプトを呼び出すことができる場合、それらは W&B APIを通じて登録されたモデルアーティファクトを使用することができます。

この例のペイロードは、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
  }
]
}

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

Slack アプリをセットアップし、Slack API ドキュメントで強調されている指示に従って、着信 webhook インテグレーションを追加します。Bot User OAuth Token の下で指定されているシークレットが W&B 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 のトラブルシューティング

W&B アプリ UI または Bash スクリプトを使用して、インタラクティブに webhook のトラブルシューティングを行います。新しい webhook を作成する際や既存の webhook を編集する際に webhook をトラブルシューティングできます。

チーム管理者は W&B アプリ UI を使用して webhook をインタラクティブにテストできます。

  1. W&B チーム設定ページに移動します。
  2. Webhooks セクションまでスクロールします。
  3. webhook の名前の横にある三点リーダー(ミートボールアイコン)をクリックします。
  4. Test を選択します。
  5. 現れた UI パネルから、表示されるフィールドに POST リクエストを貼り付けます。 webhook ペイロードのテストデモ
  6. Test webhook をクリックします。W&B アプリ UI 内で、W&B はエンドポイントからの応答を投稿します。 webhook のテストデモ

Testing Webhooks in Weights & Biases のビデオを見て、デモをご覧ください。

このシェルスクリプトは、W&B が webhook オートメーションに送信する POST リクエストを生成する1つの方法を示しています。

以下のコードをシェルスクリプトにコピーし、webhook のトラブルシューティングを行います。以下の値を指定してください。

  • ACCESS_TOKEN
  • SECRET
  • PAYLOAD
  • API_ENDPOINT
webhook_test.sh

2 - 自動化イベントと範囲

This feature requires a Pro or Enterprise plan.

あるオートメーションは、プロジェクトやレジストリのスコープ内で特定のイベントが発生したときに開始されます。プロジェクトのスコープは[スコープの技術的定義を挿入]を参照してください。このページでは、それぞれのスコープ内でオートメーションをトリガーするイベントについて説明します。

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

レジストリ

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

  1. レジストリアプリをhttps://wandb.ai/registry/で開きます。
  2. レジストリの名前をクリックし、オートメーションタブでオートメーションを表示および作成します。

オートメーションの作成の詳細をご覧ください。

スコープ

レジストリにおけるオートメーションは、これらのスコープで作成できます:

  • レジストリ レベル:オートメーションは、特定のレジストリ内のすべてのコレクション(将来追加されるコレクションを含む)で発生するイベントを監視します。
  • コレクションレベル:特定のレジストリ内の単一のコレクション。

イベント

レジストリオートメーションは、これらのイベントを監視できます:

  • 新しいアーティファクトをコレクションにリンク: 新しいモデルやデータセットがレジストリに追加されたときにテストと検証。
  • アーティファクトのバージョンに新しいエイリアスを追加: 新しいアーティファクトバージョンに特定のエイリアスが適用されたときに、ワークフローの特定のステップをトリガーします。たとえば、productionエイリアスが適用されたときにモデルをデプロイする。

プロジェクト

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

  1. W&Bアプリの https://wandb.ai/<team>/<project-name> にあるW&Bプロジェクトに移動します。
  2. オートメーションタブでオートメーションを表示および作成します。

オートメーションの作成の詳細をご覧ください。

スコープ

プロジェクト内でオートメーションを作成できるスコープ:

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

イベント

プロジェクト内でオートメーションは、これらのイベントを監視できます:

  • コレクションでアーティファクトの新しいバージョンが作成される: アーティファクトの各バージョンに繰り返しの処理を適用します。コレクションの指定はオプションです。たとえば、新しいデータセットアーティファクトバージョンが作成されたときにトレーニングジョブを開始します。
  • アーティファクトエイリアスが追加される: プロジェクトやコレクション内の新しいアーティファクトバージョンに特定のエイリアスが適用されたときに、ワークフローの特定のステップをトリガーします。例えば、アーティファクトに test-set-quality-check エイリアスが適用されたときに一連の後処理ステップを実行します。

次のステップ