Data Science Workshop (DSW) では、データセットまたはObject Storage Service (OSS) パスをマウントできます。 これにより、クラウド内のデータにアクセスして処理することができます。 これにより、複数のユーザー間のデータ共有とコラボレーションが容易になり、データの管理とメンテナンスが簡単になり、データの一貫性と適時性が保証されます。 このトピックでは、DSWでデータセットまたはOSSパスをマウントする方法について説明します。
背景情報
Platform for AI (PAI) は、パブリックリソースグループを使用して作成されたDSWインスタンスに特定のクォータを持つクラウドディスクを提供します。 ディスクを使用して、データを永続的に保存できます。 DSWインスタンスを停止し、15日以内に再起動しない場合、ディスクはクリアされます。 専用リソースグループを使用して作成されたDSWインスタンスは、非永続的なローカルストレージを提供します。 DSWデータを永続化する場合は、Apsara File Storage NAS (NAS) 、OSS、またはCloud Parallel File Storage (CPFS) データセットを作成し、そのデータセットをDSWの指定されたパスにマウントします。 これにより、DSWのデータセットからデータを読み書きできます。
マウントモード
DSWを使用すると、さまざまなマウントモードでデータセットまたはOSSパスをマウントできます。 次の表に詳細を示します。
マウントアイテム | サポートされているマウントモード | |
非OSSデータセット | なし。 | |
OSSデータセット | デフォルトおよびカスタム設定がサポートされています。
| |
このトピックでは、特定のシナリオでJindoFuseを設定する方法について提案しますが、すべてのシナリオで最適な設定を提供するわけではありません。 詳細については、「JindoFuseのユーザーガイド」をご参照ください。
クイック読み取り /書き込み: クイック読み取りと書き込みを保証します。 ただし、同時読み取りまたは書き込み中にデータの不整合が発生する可能性があります。 トレーニングデータとモデルをこのモードのマウントパスにマウントできます。 このモードのマウントパスを作業ディレクトリとして使用しないことを推奨します。
{ "fs.oss.download.thread.concurrency": "Twice the number of CPU cores", "fs.oss.upload.thread.concurrency": "Twice the number of CPU cores", "fs.jindo.args": "-oattr_timeout=3 -oentry_timeout=0 -onegative_timeout=0 -oauto_cache -ono_symlink" }
増分読み取り /書き込み: 増分書き込み中のデータの一貫性を保証します。 元のデータを上書きすると、データの不整合が発生する可能性があります。 読み取り速度はやや遅いです。 このモードを使用して、モデル重みファイルをトレーニングデータ用に保存できます。
{ "fs.oss.upload.thread.concurrency": "Twice the number of CPU cores", "fs.jindo.args": "-oattr_timeout=3 -oentry_timeout=0 -onegative_timeout=0 -oauto_cache -ono_symlink" }
一貫性のある読み取り /書き込み: 同時読み取りまたは同時書き込み中のデータの一貫性を確保し、高いデータの一貫性が必要で、迅速な読み取りを必要としないシナリオに適しています。 このモードを使用して、プロジェクトのコードを保存できます。
{ "fs.jindo.args": "-oattr_timeout=0 -oentry_timeout=0 -onegative_timeout=0 -oauto_cache -ono_symlink" }
読み取り専用: 読み取りのみを許可します。 このモードを使用して、パブリックデータセットをマウントできます。
{ "fs.oss.download.thread.concurrency": "Twice the number of CPU cores", "fs.jindo.args": "-oro -oattr_timeout=7200 -oentry_timeout=7200 -onegative_timeout=7200 -okernel_cache -ono_symlink" }
制限事項
複数のデータセットを同じパスにマウントすることはできません。
OSSパスがマウントされているパスに対して、書き込み操作を頻繁に実行しないことを推奨します。
カスタムデータセットのマウント
手順1: データセットの作成
PAIコンソールで、AIアセット管理 > データセットを選択します。 [データセット] ページの [カスタムデータセット] タブで、[データセットの作成] をクリックします。 DSWを使用すると、ファイルではなくパスのみをマウントできます。 そのため、[データセットの作成] パネルで [プロパティ] パラメーターを [フォルダー] に設定する必要があります。
詳細については、「データセットの作成と管理」をご参照ください。
手順2: データセットのマウント
モデルトレーニング > データサイエンスワークショップ (DSW) を選択します。 Data Science Workshop (DSW) ページで、[インスタンスの作成] をクリックしてインスタンスを作成するか、既存のインスタンスの設定を変更します。 [インスタンスの作成] ページで、[データセット] を作成したカスタムデータセットに設定し、ビジネス要件に基づいて [マウントパス] と [マウントモード] を設定します。
その他のパラメーターについては、「DSWインスタンスの作成」をご参照ください。
CPFSデータセットを使用する場合は、インスタンスに仮想プライベートクラウド (VPC) を設定する必要があります。 選択するVPCは、CPFSデータセットが存在するVPCと同じである必要があります。 そうしないと、DSWインスタンスの作成に失敗する可能性があります。
NASデータセットを使用する場合は、ネットワーク設定を設定し、インスタンスのセキュリティグループを選択する必要があります。
専用リソースグループを選択した場合、NASはOSSよりもFilesystem in Userspace (FUSE) インターフェイスのサポートが優れています。 したがって、最初に追加するデータセットはNASタイプで、指定されたパスとデフォルトのDSW作業ディレクトリ /home/admin/workspaceにマウントする必要があります。
パブリックデータセットのマウント
手順1: データセットの作成
[AIアセット管理] > [データセット] を選択し、[パブリックデータセット] タブをクリックします。 詳細については、「データセットの作成と管理」トピックの「パブリックデータセットを登録してデータセットを作成する」をご参照ください。
ステップ2: データセットのマウント
モデルトレーニング > データサイエンスワークショップ (DSW) を選択します。 Data Science Workshop (DSW) ページで、[インスタンスの作成] をクリックしてインスタンスを作成するか、既存のインスタンスの設定を変更します。 [インスタンスの作成] ページで、[データセット] を既存のパブリックデータセットに設定し、ビジネス要件に基づいてマウントパスとマウントモードを設定します。
その他のパラメーターについては、「DSWインスタンスの作成」をご参照ください。
OSSパスのマウント
手順1: OSSバケットの作成
バケットが存在するリージョンは、PAIが存在するリージョンと同じでなければなりません。 バケットの作成後にバケットのリージョンを変更することはできません。
手順2: OSSパスのマウント
モデルトレーニング > データサイエンスワークショップ (DSW) を選択します。 Data Science Workshop (DSW) ページで、[インスタンスの作成] をクリックしてインスタンスを作成するか、既存のインスタンスの設定を変更します。 [マウント設定] セクションで、OSSパラメーターとして作成したOSSバケットのパスを選択し、ビジネス要件に基づいてマウントパスとマウントモードを設定します。
その他のパラメーターについては、「DSWインスタンスの作成」をご参照ください。
動的マウント
[モデルトレーニング] > [データサイエンスワークショップ (DSW)] を選択してインスタンスを作成し、インスタンスを開き、インスタンスにデータセットをマウントするためのコードを記述します。
ステップ1: 準備
左側のナビゲーションウィンドウで、[モデルトレーニング] > [データサイエンスワークショップ (DSW)] を選択します。 Data Science Workshop (DSW) ページで、[インスタンスの作成] をクリックしてDSWインスタンスを作成し、インスタンスの [操作] 列で [開く] をクリックします。 表示されるページで、次のコマンドを実行してPython用PAI SDKをインストールします。
python -m pip install pai>=0.4.11
次のいずれかの方法を使用して、PAI SDK for PythonのAccessKeyペアを設定し、PAIにアクセスします。
方法1: DSWインスタンスのデフォルトロールまたはカスタムRAMロールを設定します。 インスタンスにAccessKeyペアが含まれています。 詳細については、「DSWインスタンスのRAMロールの設定」をご参照ください。
方法2: Python用PAI SDKが提供するCLIを使用して、AccessKeyペアを手動で設定します。
手順2: データセットのマウント
動的マウント機能を使用すると、DSWインスタンスを再起動することなく、特定のOSSバケットディレクトリをDSWインスタンスにマウントできます。 これにより、ローカルファイルからデータを読み取り、またはローカルファイルにデータを書き込むことで、インスタンス内のOSSデータにアクセスできます。 次のサンプルコードに例を示します。
OSSバケットをマウントします。
データは、インスタンスのデフォルトのマウントパスにマウントされます。
from pai.dsw import mount mount_point = mount("oss://<YourBucketName>/Path/Data/Directory/")
構成を特定のパスにマウントします。
動的マウント機能では、コンテナ内の特定のパスまたはサブパスにデータをマウントする必要があります。 Python用PAI SDKが提供するAPIを使用して、動的マウントパスを取得できます。
from pai.dsw import mount, default_dynamic_mount_point # Obtain the default mount path of the instance. default_path = default_dynamic_mount_path() mount_point = mount("oss://<YourBucketName>/Path/Data/Directory", mount_point=default_path + "tmp/output/model")
マウントされたデータのマウント解除
from pai.dsw import unmount mount_point = mount("oss://<YourBucketName>/Path/Data/Directory/") unmount(mount_point)
インスタンス内のすべてのマウントされたデータ設定を表示します。
from pai.dsw import list_dataset_configs print(list_dataset_configs())
マウントオプションを設定します。
DSWでは、データ設定はJindoFuseに基づいてマウントされます。 さまざまな読み取りまたは書き込みシナリオのビジネス要件に基づいて、マウントパラメーターを設定できます。
from pai.dsw import mount, OptionType # Use the default mount configuration template. mount("oss://<YourBucket>/path/to/data/", option_type=OptionType.FastReadWrite) # Use the mount configuration parameters of JindoFuse. mount("oss://<YourBucket>/path/to/data/", options={ "fs.oss.download.thread.concurrency": "8", "fs.oss.upload.thread.concurrency": "8", "fs.jindo.args": "-oattr_timeout=3 -oentry_timeout=0 -onegative_timeout=0 -oauto_cache -ono_symlink" }))
マウント設定の表示
Data Science Workshop (DSW) ページのインスタンスリストで、管理するDSWインスタンスの [操作] 列で [開く] をクリックします。
Data Science Workshopページの上部ナビゲーションバーで、[ターミナル] タブをクリックします。 指示に従ってターミナルを開きます。
[ターミナル] ページで、次のコマンドを実行して、NASデータセットとOSSデータセットがマウントされているかどうかを確認します。
# Query the mount path of a NAS dataset. mount | grep nas # Query the mount path of an OSS dataset. mount | grep oss
次の出力が返されると、データセットがマウントされます。
NASデータセットは、/mnt/data_nas、/mnt/workspace、および /home/admin/workspaceパスにマウントされます。 /mnt/data_nasは、DSWインスタンスの作成時に指定したマウントパスを示します。 他の2つのパスは、最初のNASデータセットに提供されるDSWのデフォルトの作業ディレクトリです。 NASリソースとサーバーが期待どおりに機能する限り、データとコードは保持されます。
OSSデータセットは /mnt/data_ossパスにマウントされます。