Microsoft Azure での参照アーティファクトの操作
効率的な機械学習実験のためのアーティファクト参照の徹底解説
本記事は翻訳版です。誤訳の可能性があればコメント欄でお知らせください。
Created on August 26|Last edited on August 26
Comment
はじめに
機械学習のプロジェクトでは、関わるデータセット、モデル、その他のファイルを追跡・整理する必要がよくあります。とくに大容量ファイルを扱う場合や複数メンバーで作業する場合には、管理がすぐに煩雑になりがちです。
幸いにも、 wandb ライブラリは、これらのファイルを追跡・管理するための簡便な方法を提供します。 参照アーティファクトこのブログ記事では、... をどのように活用するかを解説します。 wandb 追跡するために 参照アーティファクトAzure に保存された
前提条件
Weights & Biases の Python ライブラリを使ってこのチュートリアルを始める前に、いくつか準備が必要です。 wandb、Azure エコシステム内で。もし Azure エコシステムの利用を始めたばかりで、まだ Azure ストレージ上のデータを使ってモデルを学習していない場合は、
- 正しい権限を設定する: ローカル環境(リモート VM、Jupyter Notebook など)からリモートストレージに接続できるように構成してください。使用する特定の Azure Blob Storage コンテナーに対して、必要な読み取り/書き込み権限を付与しておきましょう。
- 適切なライブラリをインストールする(例:) azure-storage-blob)をインストールし、スクリプトやローカル環境が読み取り/書き込みコマンドを実行できるよう、適切なアクセスキーを設定してください。
- 適切な情報やラベルを該当するファイルに対応づけられるよう、Blob 内のメタデータとディレクトリ構造を整理してください。たとえば、CSV ファイルを用いる方法があります。train.csv)を用意し、データセット内のすべてのファイル名を、IDや関連メタデータ(画像の寸法、動物のクラスなど)と並記して一覧化します。
- Blob のバージョン管理を有効化(任意)ファイルを変更または削除した後でも内容を復元できるようにしたい場合は、リモートの Blob にファイルをアップロードする前に、Blob のバージョン管理を有効化することを検討してください。Azure では、Blob のバージョン管理を Azure CLI、Azure PowerShell、または Azure SDK for Python、.NET、Java、JavaScript を通じて制御できます。
W&B による外部ファイル追跡の理解
機械学習や深層学習においてはデータが要であり、その管理は効果的なワークフローに不可欠な要素です。データは多様な場所に保管されており、しばしば Azure Blob Storage のようなクラウドストレージのバケット、NFS 共有、HTTP ファイルサーバーといった外部の場所に置かれます。Weights & Biases の強力な機能の一つに wandb このような外部ファイルを追跡できる点であり、これは「参照アーティファクト」と呼ばれます 参照アーティファクト(これらの内容については、この後のセクションで詳しく説明します) 次のセクション)
これらの参照アーティファクトを使うと、W&B の外部に保存されているファイルのメタデータを記録できます。これにより、データを移動・複製することなく、URL、ファイルサイズ、チェックサムといった情報を追跡できます。その結果、既存のデータ保管戦略を妨げることなく、堅牢なトラッキング基盤を得られます。
実際にはどのように動作するのでしょうか。ランの外でアーティファクトを記録すると、W&B は毎回新しいランを作成します。すべてのアーティファクトはあるランに属し、そのランはプロジェクトに属します。任意で、アーティファクトはコレクションに属させたり、特定のタイプを持たせたりできます。
ランの外でアーティファクトを記録する作業は、W&B の CLI を使えば簡単に行えます。 wandb アーティファクト put コマンドは、アーティファクトを W&B サーバーにアップロードするために使用します。プロジェクト名、アーティファクト名、必要に応じてタイプを指定するだけです。構文は次のとおりです。 put 通常の(参照ではない)アーティファクト用のコマンドは次のとおりです。
$ wandb artifact put --name project/artifact_name --type TYPE PATH
参照アーティファクトとは何か
参照アーティファクトアーティファクトの一種であり、次のようなファイルを追跡するための手段として機能します。未 に直接保存された wandb。ファイル全体をアップロードする代わりに、 wandb サーバーに保存する代わりに、Reference Artifact はファイルの場所などのメタデータと関連情報だけを保持します。これは、大容量ファイルを扱う場合や、複数のチームメンバーが同じファイルへアクセスする必要がある場合に特に有用です。
〜と考えることができます参照アーティファクトどこか別の場所(たとえば Azure Blob Storage)に保存されている実データへのポインタのようなものです。参照アーティファクト自体のデータは含まず、代わりに場所(URL)、サイズ、チェックサムなどのメタデータを保持します。したがって、参照を解決(またはダウンロード)するときは、参照アーティファクト保存先から実データを取得します。
これにより、クラウドストレージ上にある大規模なデータセットやモデルを、Weights & Biases に移動・複製することなく管理し、バージョン管理できます。結果として、作業は効率的かつスムーズになります。
Azure 参照アーティファクトの作成と追跡 wandb
W&B で外部ファイルを追跡する基本を理解したところで、ここからは Azure Blob Storage と組み合わせた場合の具体的な動作について詳しく見ていきましょう。
Azure Blob Storage は、性能と柔軟性に優れ、ML エンジニアに支持されるスケーラブルでセキュアなデータストレージです。W&B を使えば、Azure Blob Storage に保存されたデータやモデルへの参照を追跡できます。Artifact の参照は、実質的に基盤となるクラウドストレージベンダーを抽象化し、既存のデータアーキテクチャにシームレスに統合できるようにします。
たとえば、次のような Blob Storage の構造で作業している場合は、 my-bucket/classic_data データセット用の my-bucket/models/cnn/ モデル用のリソースについても、W&B を使えば簡単に追跡できます。
次は、Azure Blob Storage に保存されたデータセットを参照するアーティファクトを作成する例です。
import wandbartifact = wandb.Artifact('mnist:latest', type='dataset') # dataset, model, etc.artifact.add_reference('https://foo.blob.core.windows.net/my-bucket/classic_data')
これにより、いくつかの出力が表示されます。
[ArtifactManifestEntry(path='mnist/train.csv', digest=0x8DB3A2AB1A1245',ref='https://foo.blob.core.windows.net/my-bucket', birth_artifact_id=None, size=3,extra={'etag':'0x8DB3A2AB1A1245', versionID: '2023-05-23T05:12:1123146Z'},local_path=None)]
そして、アーティファクトを保存します。
artifact.save()

Azure のアーティファクトへの参照を追加した際の、Jupyter Notebook の出力を示すスクリーンショット
手書きの例(上のスクリーンショットではなく)では、新しい参照アーティファクトが mnist:latest 通常のアーティファクトと同様に動作します。ただし、Azure Blob Storage のオブジェクトについてのメタデータ(ETag、サイズ、バージョン ID〔Blob でオブジェクトのバージョニングが有効な場合〕など)だけで構成されています。
言い換えると、W&B を使えば、既存のワークフローにほとんど手を加えずに、Azure Blob Storage 上の ML プロジェクトに堅牢で効率的なデータおよびモデルの追跡を導入できます。次のセクションでは、これらの参照アーティファクトとのやり取り方法と、ML プロジェクトでの効果的な活用方法を解説します。
参照アーティファクトの操作
作成が完了したら参照アーティファクトどのように操作するのか、どのように振る舞うのか、そしてワークフローにどう統合するのか疑問に思われるかもしれません。ご安心ください。このセクションで順に解説します。
A参照アーティファクト多くの点で通常のアーティファクトと同様に振る舞います。Weights & Biases のユーザーインターフェースから、表示・内容の確認・依存関係の調査・バージョン履歴の確認が可能です。ただし、重要な相違点は、参照アーティファクトは参照アーティファクト自体のデータは保存せず、代わりに Azure Blob Storage に保存されたファイルのメタデータを保持します。
Reference Artifact の操作
参照アーティファクトが指し示すデータを取得したい場合は、そのアーティファクトをダウンロードできます。W&B は、アーティファクト作成時に記録されたメタデータを用いて、Azure Blob Storage からファイルを取得します。参照アーティファクトをダウンロードする方法は次のとおりです。
import wandbrun = wandb.init(project="mnist-azure", job_type="sample-data")artifact = run.use_artifact('mnist:latest')artifact_dir = artifact.download()# all files available locally in the mnist directory
上記のコードは Azure Blob Storage からデータを取得し、アーティファクトが記録された当時のデータの状態をそのままローカルで利用できるようにします。特に、Blob のバージョニングを有効にしている場合に強力で、時間の経過とともに Blob の内容が変化しても、特定のモデルが学習に用いたデータのバージョンを常に遡って取得できます。
ワークフローへの参照アーティファクトの統合
これらの参照アーティファクトを、一般的な機械学習ワークフローにどのように統合するかを見ていきましょう。Azure Blob Storage に保存されたデータセットが学習ジョブに入力される状況を想定します。W&B を使ってそのデータセットを追跡する方法は次のとおりです。ダウンロード済みアーティファクトの扱い方を復習したい場合は、こちらをご覧ください。 このページ。
import wandbrun = wandb.init()artifact = wandb.Artifact('mnist', type='dataset')artifact.add_reference('https://foo.blob.core.windows.net/my-bucket/classic_data')run.use_artifact(artifact)artifact_dir = artifact.download()# Perform training here...
このコードでは run.use_artifact(artifact) この操作により、アーティファクトを追跡すると同時に、そのランの入力としてマークします。Blob 内のファイルが変更されている場合は、新しいアーティファクトのバージョンが記録されます。
ここまでで、W&B を使用しました参照アーティファクト入力データセットと出力モデルの両方を、どちらも Azure Blob Storage に外部保存されたまま追跡できます。これにより、データやモデルの管理には Azure Blob Storage の柔軟性を保ちつつ、機械学習実験を堅牢にトラッキングできます。
この戦略を採用することで、データ・モデル・学習ラン間の系譜が明確になり、機械学習プロジェクトにおける再現性と共同作業に不可欠な基盤を築けます。
まとめ
このブログ記事では、どのように活用するかを紹介しました wandb 追跡するために 参照アーティファクトAzure に保存されているデータを、…を用いて参照アーティファクト、大容量ファイルを直接アップロードせずに簡単に追跡・管理できます wandb特に大規模なデータセットを扱う場合や、複数のメンバーが同じファイルにアクセスする必要がある場合に有用です。機械学習パイプラインを俯瞰できるこの統合ビューにより、ML 実験の記録を明確・監査可能・再現可能な形で保持できます。実験の各段階で、データセットとモデルのバージョン管理されたスナップショットが提供されます。これはトラブルシューティングや性能向上に役立つだけでなく、チーム内外のコラボレーションやコミュニケーションの促進にも寄与します。
GCP または AWS を利用していますか?
Weights & Biases は、Azure 上での ML・DL・AI ワークフローを高速化するだけではありません。Google Cloud Platform や Amazon Web Services を利用している場合も、同様にサポートしています。これらのクラウド環境で外部ファイルを追跡する方法をご確認ください。 こちら。
Tracking Artifacts by Reference
How to version and visualize cloud data for machine learning
Organize Your Machine Learning Pipelines With Artifacts in Weights & Biases
In this article, we'll look at how to use W&B Artifacts to store and keep track of datasets, models, and evaluation results across machine learning pipelines.
Add a comment