View a markdown version of this page

教學課程 - Amazon SageMaker HyperPod 無檢查點預先訓練或微調自訂模型 - Amazon SageMaker AI

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

教學課程 - Amazon SageMaker HyperPod 無檢查點預先訓練或微調自訂模型

在 HyperPod 上使用自訂模型執行無檢查點訓練時,需要下列步驟序列。

先決條件

開始設定環境之前,請確定您具有下列先決條件:

Kubernetes 環境設定

若要設定 Kubernetes 環境,請執行下列動作:

  1. 設定虛擬環境。請確定您使用的 Python 大於或等於 3.10 且低於 3.14。

    python3 -m venv ${PWD}/venv source venv/bin/activate
  2. 設定 kubectl 和 eksctl

  3. 連線至您的 Kubernetes 叢集

    aws eks update-kubeconfig --region "${CLUSTER_REGION}" --name "${CLUSTER_NAME}"
  4. 安裝相依項目

    # install SageMaker HyperPod checkpointless training. git clone git@github.com:aws/sagemaker-hyperpod-checkpointless-training.git cd sagemaker-hyperpod-checkpointless-training

無檢查點訓練修改指示

若要逐步採用自訂模型的無檢查點訓練,請遵循整合指南 (此處我們使用 Llama 3 70b 預先訓練作為範例),其中包含:

  • 快速建立通訊器

  • 記憶體映射資料載入器 (MMAP)

  • 進行中和無檢查點復原

元件 1:快速建立通訊器

這是為了最佳化在工作者之間建立連線的時間。不需要變更程式碼,而且只需要設定 env 變數

# Enable Rootless features export HPCT_USE_ROOTLESS=1 && \ sysctl -w net.ipv4.ip_local_port_range="20000 65535" && \ hyperpodrun --nproc_per_node=8 \ ... --inprocess-restart \ ...

您可以在 llama3 70 預先訓練啟動任務組態中找到完整的變更。

元件 2:記憶體映射資料載入器 (MMAP)

MMAP 快取可存放預先擷取的資料範例,並啟用立即訓練開始,而無需等待資料預先處理。它需要最小的程式碼變更,才能透過包裝現有的資料載入器來採用。

data_module = MMAPDataModule( data_module=base_data_module, mmap_config=CacheResumeMMAPConfig(cache_dir=…) )

元件 3 和 4:進行中和無檢查點復原

這可在不重新啟動訓練程序或從檢查點載入的情況下進行故障復原。所需的其他程式碼變更 (策略和訓練組態更新、包裝現有的主要)

@HPWrapper( health_check=CudaHealthCheck(), hp_api_factory=HPAgentK8sAPIFactory(), abort_timeout=60.0, ...) def run_main( cfg, caller: Optional[HPCallWrapper] = None): ... CheckpointlessMegatronStrategy( **self.cfg.strategy, ddp=self.ddp, )

您可以在 llama3 70 預先訓練項目指令碼中找到完整的變更,並在 llama3 70b 訓練組態中找到對應的訓練組態變更。

啟動訓練

您現在可以使用 kubectl 啟動無檢查點訓練。

kubectl apply -f your_job_config.yaml