リファレンス アーキテクチャー

W&B リファレンス アーキテクチャー

このページでは、Weights & Biasesデプロイメントのためのリファレンスアーキテクチャについて説明し、プラットフォームのプロダクションデプロイメントをサポートするための推奨インフラストラクチャとリソースを示します。

Weights & Biases(W&B)のデプロイメント環境に応じて、デプロイメントのレジリエンスを高めるためのさまざまなサービスが利用できます。

たとえば、主要なクラウドプロバイダは、データベースの設定、保守、高可用性、レジリエンスの複雑さを軽減する堅牢な管理データベースサービスを提供しています。

このリファレンスアーキテクチャは、一般的なデプロイメントシナリオに対応し、クラウドベンダーのサービスとW&Bデプロイメントを統合する方法を示します。

始める前に

プロダクション環境でアプリケーションを実行するには、それぞれの課題が伴い、W&Bも例外ではありません。プロセスを簡素化しようとしていますが、個別のアーキテクチャや設計の決定に応じて、ある程度の複雑さが発生する場合があります。通常、プロダクションデプロイメントの管理には、ハードウェア、オペレーティングシステム、ネットワーキング、ストレージ、セキュリティ、W&Bプラットフォーム自体、およびその他の依存関係を含むさまざまなコンポーネントの監督が含まれます。この責任は、環境の初期セットアップとその継続的な保守の両方に及びます。

W&Bを自社で管理するアプローチが、あなたのチームが抱える特定の要件に適しているかどうかを慎重に検討してください。

プロダクションレベルのアプリケーションを実行および維持する方法についての強力な理解は、自己管理型のW&Bをデプロイする前の重要な前提条件です。あなたのチームが支援を必要とする場合、弊社のプロフェッショナルサービスチームとパートナーが、実装と最適化のサポートを提供します。

自分で管理する代わりに、W&Bの管理されたソリューションについて詳しく知るには、W&BマルチテナントクラウドおよびW&B専用クラウドを参照してください。

インフラストラクチャ

W&B infrastructure diagram

アプリケーション層

アプリケーション層は、ノード障害に対するレジリエンスを備えたマルチノードKubernetesクラスターで構成されます。Kubernetesクラスターは、W&Bのポッドを実行および管理します。

ストレージ層

ストレージ層は、MySQLデータベースとオブジェクトストレージで構成されます。MySQLデータベースはメタデータを保存し、オブジェクトストレージはモデルやデータセットなどのアーティファクトを保存します。

インフラストラクチャの要件

Kubernetes

W&Bサーバーアプリケーションは、複数のポッドをデプロイするKubernetesオペレーターとしてデプロイされます。このため、W&Bには以下の要件を備えたKubernetesクラスターが必要です:

  • 完全に設定され機能するインフラストラクチャコントローラ。
  • 永続ボリュームをプロビジョニングする能力。

MySQL

W&BはメタデータをMySQLデータベースに保存します。データベースのパフォーマンスとストレージの要件は、モデルパラメータの形状と関連するメタデータに依存します。たとえば、トレーニングランをより多くトラッキングするにつれてデータベースはサイズが成長し、ランテーブル、ユーザーワークスペース、およびレポートにおけるクエリに基づいてデータベースの負荷は増加します。

自己管理型のMySQLデータベースをデプロイするときは、以下の点を考慮してください:

  • バックアップ. データベースを別の施設に周期的にバックアップするべきです。W&Bは、少なくとも1週間の保持で、毎日のバックアップを推奨します。
  • パフォーマンス. サーバーが稼働しているディスクは高速であるべきです。W&Bは、データベースをSSDまたは加速されたNASで実行することを推奨しています。
  • モニタリング. データベースは負荷に対して監視されるべきです。システムのCPU使用率が5分以上持続的に40%を超える場合、サーバーがリソース不足であることを示している可能性があります。
  • 可用性. 可用性と耐久性の要件によって、プライマリサーバーからリアルタイムですべての更新をストリーミングし、プライマリサーバーがクラッシュするか破損するイベントに備えてフェイルオーバーできるホットスタンバイを別のマシンで設定することを検討するかもしれません。

オブジェクトストレージ

W&Bは、Pre-signed URLとCORSサポートのあるオブジェクトストレージを必要とし、次のいずれかにデプロイします:

  • Amazon S3
  • Azure Cloud Storage
  • Google Cloud Storage
  • Amazon S3互換のストレージサービス

バージョン

ソフトウェア 最小バージョン
Kubernetes v1.29
MySQL v8.0.0, “一般可用性"リリースのみ

ネットワーク

ネットワークデプロイメントの際、インストール中およびランタイム中にこれらのエンドポイントへのエージェントのアクセスが必要です:

エアギャップデプロイメントについて知るには、エアギャップインスタンス用Kubernetesオペレーターを参照してください。 トレーニングインフラストラクチャと実験のニーズを追跡する各システムにおいて、W&Bおよびオブジェクトストレージへのアクセスが必要です。

DNS

W&Bデプロイメントの完全修飾ドメイン名(FQDN)は、Aレコードを使用してインフラストラクチャのIPアドレスに解決する必要があります。

SSL/TLS

W&Bは、クライアントとサーバー間の安全な通信のために、有効な署名されたSSL/TLS証明書を必要とします。SSL/TLSの終端は、インフラストラクチャで行われる必要があります。W&Bサーバーアプリケーションは、SSLまたはTLS接続を終了しません。

ご注意: W&Bは自己署名証明書およびカスタムCAの使用を推奨していません。

対応するCPUアーキテクチャ

W&BはIntel(x86)CPUアーキテクチャ上で実行されます。ARMはサポートされていません。

インフラストラクチャのプロビジョニング

Terraformはプロダクション用にW&Bをデプロイするために推奨される方法です。Terraformを使用すると、必要なリソース、それらの他のリソースへの参照、および依存関係を定義できます。W&Bは主要なクラウドプロバイダ向けにTerraformモジュールを提供しています。詳細については、自己管理型クラウドアカウントでW&Bサーバーをデプロイする方法を参照してください。

サイズ調整

デプロイメントを計画する際の出発点として、以下の一般的なガイドラインを使用してください。W&Bは、新しいデプロイメントのすべてのコンポーネントを厳密に監視し、観察された使用パターンに基づいて調整を行うことを推奨します。時間をかけてプロダクションデプロイメントを監視し、最適なパフォーマンスを維持するために必要に応じて調整を行い続けてください。

Modelsのみ

Kubernetes

環境 CPU メモリ ディスク
テスト・開発 2 cores 16 GB 100 GB
プロダクション 8 cores 64 GB 100 GB

数字はKubernetesワーカーノードごとです。

MySQL

環境 CPU メモリ ディスク
テスト・開発 2 cores 16 GB 100 GB
プロダクション 8 cores 64 GB 500 GB

数字はMySQLノードごとです。

Weaveのみ

Kubernetes

環境 CPU メモリ ディスク
テスト・開発 4 cores 32 GB 100 GB
プロダクション 12 cores 96 GB 100 GB

数字はKubernetesワーカーノードごとです。

MySQL

環境 CPU メモリ ディスク
テスト・開発 2 cores 16 GB 100 GB
プロダクション 8 cores 64 GB 500 GB

数字はMySQLノードごとです。

ModelsとWeave

Kubernetes

環境 CPU メモリ ディスク
テスト・開発 4 cores 32 GB 100 GB
プロダクション 16 cores 128 GB 100 GB

数字はKubernetesワーカーノードごとです。

MySQL

環境 CPU メモリ ディスク
テスト・開発 2 cores 16 GB 100 GB
プロダクション 8 cores 64 GB 500 GB

数字はMySQLノードごとです。

クラウドプロバイダーインスタンスの推奨

サービス

クラウド Kubernetes MySQL オブジェクトストレージ
AWS EKS RDS Aurora S3
GCP GKE Google Cloud SQL - Mysql Google Cloud Storage (GCS)
Azure AKS Azure Database for Mysql Azure Blob Storage

マシンタイプ

これらの推奨事項は、クラウドインフラストラクチャ内でのW&Bの自己管理型デプロイメントの各ノードに適用されます。

AWS

環境 K8s (Modelsのみ) K8s (Weaveのみ) K8s (Models&Weave) MySQL
テスト・開発 r6i.large r6i.xlarge r6i.xlarge db.r6g.large
プロダクション r6i.2xlarge r6i.4xlarge r6i.4xlarge db.r6g.2xlarge

GCP

環境 K8s (Modelsのみ) K8s (Weaveのみ) K8s (Models&Weave) MySQL
テスト・開発 n2-highmem-2 n2-highmem-4 n2-highmem-4 db-n1-highmem-2
プロダクション n2-highmem-8 n2-highmem-16 n2-highmem-16 db-n1-highmem-8

Azure

環境 K8s (Modelsのみ) K8s (Weaveのみ) K8s (Models&Weave) MySQL
テスト・開発 Standard_E2_v5 Standard_E4_v5 Standard_E4_v5 MO_Standard_E2ds_v4
プロダクション Standard_E8_v5 Standard_E16_v5 Standard_E16_v5 MO_Standard_E8ds_v4