Tutorial zur Vorbereitung des Trainium Slurm-Clusters - Amazon SageMaker KI

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Tutorial zur Vorbereitung des Trainium Slurm-Clusters

Das folgende Tutorial richtet eine Trainium-Umgebung auf einem Slurm-Cluster ein und startet einen Trainingsjob auf einem Lama-Modell mit 8 Milliarden Parametern.

Voraussetzungen

Bevor Sie mit der Einrichtung Ihrer Umgebung beginnen, stellen Sie sicher, dass Sie über Folgendes verfügen:

  • Richten Sie einen SageMaker HyperPod Trainium Slurm-Cluster ein.

  • Ein gemeinsam genutzter Speicherort. Es kann ein FSx Amazon-Dateisystem oder NFS ein System sein, auf das von den Clusterknoten aus zugegriffen werden kann.

  • Daten in einem der folgenden Formate:

    • JSON

    • JSONGZ(KomprimiertJSON)

    • ARROW

  • (Optional) Sie benötigen ein HuggingFace Token, wenn Sie die Modellgewichte von vor dem Training oder HuggingFace zur Feinabstimmung verwenden. Weitere Informationen zum Abrufen des Tokens finden Sie unter Benutzerzugriffstoken.

Richten Sie die Trainium-Umgebung auf dem Slurm-Cluster ein

Gehen Sie wie folgt vor, um einen Trainingsjob auf einem Slurm-Cluster zu initiieren:

  • SSHin den Hauptknoten Ihres Slurm-Clusters.

  • Nachdem Sie sich angemeldet haben, richten Sie die Neuron-Umgebung ein. Informationen zur Einrichtung von Neuron finden Sie unter Neuron-Setup-Schritte. Wir empfehlen, sich auf die AMI Deep-Learning-Programme zu verlassen, die in den Treibern von Neuron vorinstalliert sind, z. B. auf Ubuntu 20 mit Pytorch. DLAMI

  • Klonen Sie das SageMaker HyperPod Rezept-Repository auf einen gemeinsam genutzten Speicherort im Cluster. Der gemeinsam genutzte Speicherort kann ein FSx Amazon-Dateisystem oder ein System sein, auf NFS das von den Clusterknoten aus zugegriffen werden kann.

    git clone --recursive https://github.com/aws/sagemaker-hyperpod-recipes.git cd sagemaker-hyperpod-recipes pip3 install -r requirements.txt
  • Gehen Sie das folgende Tutorial durch: HuggingFace Llama3-8B Pretraining

  • Bereiten Sie eine Modellkonfiguration vor. Die im Neuron-Repo verfügbaren Modellkonfigurationen. Die in diesem Tutorial verwendete Modellkonfiguration finden Sie unter llama3 8b model config

Starten Sie den Trainingsjob in Trainium

Um einen Trainingsjob in Trainium zu starten, geben Sie eine Cluster-Konfiguration und ein Neuron-Rezept an. Um beispielsweise in Trainium einen Job mit dem Namen llama3 8b vor dem Training zu starten, stellen Sie das Startskript, wie folgt ein: launcher_scripts/llama/run_hf_llama3_8b_seq8k_trn1x4_pretrain.sh

  • MODEL_CONFIG: Die Modellkonfiguration aus dem Bereich Umgebungs-Setup

  • (Optional) Sie können das HuggingFace Token bereitstellen, wenn Sie vorab trainierte Gewichtungen von benötigen, HuggingFace indem Sie das folgende Schlüssel-Wert-Paar festlegen:

    recipes.model.hf_access_token=<your_hf_token>
#!/bin/bash #Users should set up their cluster type in /recipes_collection/config.yaml SAGEMAKER_TRAINING_LAUNCHER_DIR=${SAGEMAKER_TRAINING_LAUNCHER_DIR:-"$(pwd)"} COMPILE=0 TRAIN_DIR="${TRAIN_DIR}" # Location of training dataset MODEL_CONFIG="${MODEL_CONFIG}" # Location of config.json for the model HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \ base_results_dir="${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results" \ instance_type="trn1.32xlarge" \ recipes.run.compile="$COMPILE" \ recipes.run.name="hf-llama3-8b" \ recipes.trainer.num_nodes=4 \ recipes=training/llama/hf_llama3_8b_seq8k_trn1x4_pretrain \ recipes.data.train_dir="$TRAIN_DIR" \ recipes.model.model_config="$MODEL_CONFIG"

Führen Sie den folgenden Befehl aus, um den Trainingsjob zu starten:

bash launcher_scripts/llama/run_hf_llama3_8b_seq8k_trn1x4_pretrain.sh

Weitere Informationen zur Slurm-Cluster-Konfiguration finden Sie unterFühren Sie einen Trainingsjob auf HyperPod Slurm aus.