

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 設定資料輸入通道以使用 Amazon FSx for Lustre
<a name="model-access-training-data-fsx"></a>

了解如何使用 Amazon FSx for Lustre 做為您的資料來源，藉由縮短資料載入的時間，提高輸送量並加快訓練。

**注意**  
當您使用已啟用 EFA 的執行個體 (例如 P4d 和 P3dn) 時，請務必在安全群組中設定適當的輸入和輸出規則。特別是，若要在訓練任務中存取 Amazon FSx 檔案系統，SageMaker AI 必須開啟這些連接埠。如需進一步了解，請參閱 [Amazon VPC 的檔案系統存取控制](https://docs.aws.amazon.com/fsx/latest/LustreGuide/limit-access-security-groups.html)。

## 同步 Amazon S3 和 Amazon FSx for Lustre
<a name="model-access-training-data-fsx-sync-s3"></a>

若要將您的 Amazon S3 連結至 Amazon FSx for Lustre 並上傳您的訓練資料集，請執行下列動作。

1. 準備資料集並上傳至 Amazon S3 儲存貯體。例如，假設訓練資料集和測試資料集的 Amazon S3 路徑格式如下。

   ```
   s3://amzn-s3-demo-bucket/data/train
   s3://amzn-s3-demo-bucket/data/test
   ```

1. 若要建立一個與訓練資料使用的 Amazon S3 儲存貯體連結的 FSx for Lustre 檔案系統，請按照* Amazon FSx for Lustre 使用者指南*內的[連結您的檔案系統至 Amazon S3 儲存貯體](https://docs.aws.amazon.com/fsx/latest/LustreGuide/create-dra-linked-data-repo.html)的步驟。請務必新增端點至您的 VPC，以允許 Amazon S3 存取。如需詳細資訊，請參閱[建立 Amazon S3 VPC 端點](train-vpc.md#train-vpc-s3)。指定**資料儲存庫路徑**時，請提供包含您的資料集資料夾的 Amazon S3 儲存貯體 URI。例如，根據步驟 1 中的 S3 路徑範例，資料儲存庫路徑應如下所示。

   ```
   s3://amzn-s3-demo-bucket/data
   ```

1. 建立 FSx for Lustre 檔案系統之後，請執行下列命令來檢查組態資訊。

   ```
   aws fsx describe-file-systems && \
   aws fsx describe-data-repository-association
   ```

   這些命令會傳回 `FileSystemId`、`MountName`、`FileSystemPath` 和`DataRepositoryPath`。輸出結果應如下列範例所示。

   ```
   # Output of aws fsx describe-file-systems
   "FileSystemId": "fs-0123456789abcdef0"
   "MountName": "1234abcd"
   
   # Output of aws fsx describe-data-repository-association
   "FileSystemPath": "/ns1",
   "DataRepositoryPath": "s3://amzn-s3-demo-bucket/data/"
   ```

   完成 Amazon S3 和 Amazon FSx 之間的同步作業後，您的資料集會儲存在 Amazon FSx 中的下列目錄內。

   ```
   /ns1/train  # synced with s3://amzn-s3-demo-bucket/data/train
   /ns1/test   # synced with s3://amzn-s3-demo-bucket/data/test
   ```

## 將 Amazon FSx 檔案系統路徑設定為 SageMaker 訓練的資料輸入通道
<a name="model-access-training-data-fsx-set-as-input-channel"></a>

以下程序會逐步引導您，將 Amazon FSx 檔案系統設定為 SageMaker 訓練任務資料來源的程序。

------
#### [ Using the SageMaker Python SDK ]

若要將 Amazon FSx 檔案系統正確設定為資料來源，請使用下列指示設定 SageMaker AI 估算器類別及 `FileSystemInput`。

1. 設定檔案系統輸入類別物件。

   ```
   from sagemaker.inputs import FileSystemInput
   
   train_fs = FileSystemInput(
       file_system_id="fs-0123456789abcdef0",
       file_system_type="FSxLustre",
       directory_path="/1234abcd/ns1/",
       file_system_access_mode="ro",
   )
   ```
**提示**  
當您指定 `directory_path` 時，請務必提供 Amazon FSx 檔案系統路徑，開頭為 `MountName`。

1. 以用於 Amazon FSx 檔案系統的 VPC 組態設定 SageMaker AI 估算器。

   ```
   from sagemaker.estimator import Estimator
   
   estimator = Estimator(
       ...
       role="your-iam-role-with-access-to-your-fsx",
       subnets=["subnet-id"],  # Should be the same as the subnet used for Amazon FSx
       security_group_ids="security-group-id"
   )
   ```

   確定 SageMaker 訓練任務的 IAM 角色具有存取和讀取 Amazon FSx 的許可。

1. 透過使用 Amazon FSx 檔案系統執行 estimator.fit 方法，啟動訓練任務。

   ```
   estimator.fit(train_fs)
   ```

若要尋找更多程式碼範例，請參閱 *SageMaker Python SDK 文件*內的[使用檔案系統做為訓練輸入](https://sagemaker.readthedocs.io/en/stable/overview.html#use-file-systems-as-training-inputs)一文。

------
#### [ Using the SageMaker AI CreateTrainingJob API ]

做為 [CreateTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html) 請求 JSON 的一部分，設定 `InputDataConfig` 如下。

```
"InputDataConfig": [ 
    { 
        "ChannelName": "string",
        "DataSource": { 
            "FileSystemDataSource": { 
                "DirectoryPath": "/1234abcd/ns1/",
                "FileSystemAccessMode": "ro",
                "FileSystemId": "fs-0123456789abcdef0",
                "FileSystemType": "FSxLustre"
            }
        }
    }
],
```

**提示**  
當您指定 `DirectoryPath` 時，請務必提供 Amazon FSx 檔案系統路徑，開頭為 `MountName`。

------