GitHub Repositorien - 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.

GitHub Repositorien

Um einen Trainingsjob zu starten, verwenden Sie Dateien aus zwei verschiedenen GitHub Repositorys:

Diese Repositorien enthalten wichtige Komponenten für die Initiierung, Verwaltung und Anpassung von LLM-Schulungsprozessen (Large Language Model). Sie verwenden die Skripts aus den Repositorys, um die Trainingsjobs für Sie einzurichten und auszuführen. LLMs

HyperPod Rezept-Repository

Verwenden Sie das SageMaker HyperPod Rezept-Repository, um ein Rezept abzurufen.

  1. main.py: Diese Datei dient als primärer Einstiegspunkt für die Einleitung des Prozesses, bei dem ein Schulungsjob entweder einem Cluster oder einem SageMaker Schulungsjob zugewiesen wird.

  2. launcher_scripts: Dieses Verzeichnis enthält eine Sammlung häufig verwendeter Skripte, die den Trainingsprozess für verschiedene Large Language Models (LLMs) erleichtern sollen.

  3. recipes_collection: Dieser Ordner enthält eine Zusammenstellung von vordefinierten LLM-Rezepten, die von den Entwicklern bereitgestellt wurden. Benutzer können diese Rezepte in Verbindung mit ihren benutzerdefinierten Daten nutzen, um LLM-Modelle zu trainieren, die auf ihre spezifischen Anforderungen zugeschnitten sind.

Sie verwenden die SageMaker HyperPod Rezepte, um Schulungs- oder Feinabstimmungsaufgaben zu starten. Unabhängig davon, welchen Cluster Sie verwenden, ist das Verfahren zum Einreichen des Jobs derselbe. Sie können beispielsweise dasselbe Skript verwenden, um einen Job an einen Slurm- oder Kubernetes-Cluster zu senden. Der Launcher sendet einen Trainingsjob auf der Grundlage von drei Konfigurationsdateien aus:

  1. Allgemeine Konfiguration (config.yaml): Beinhaltet allgemeine Einstellungen wie die Standardparameter oder Umgebungsvariablen, die im Trainingsjob verwendet werden.

  2. Cluster-Konfiguration (Cluster): Nur für Trainingsaufgaben, bei denen Cluster verwendet werden. Wenn Sie einen Trainingsjob an einen Kubernetes-Cluster senden, müssen Sie möglicherweise Informationen wie Volumen, Bezeichnung oder Neustartrichtlinie angeben. Für Slurm-Cluster müssen Sie möglicherweise den Slurm-Jobnamen angeben. Alle Parameter beziehen sich auf den spezifischen Cluster, den Sie verwenden.

  3. Rezept (Rezepte): Rezepte enthalten die Einstellungen für Ihren Trainingsjob, z. B. die Modelltypen, den Grad der Aufteilung oder die Datensatzpfade. Sie können beispielsweise Llama als Ihr Trainingsmodell angeben und es mithilfe von Modell- oder Datenparallelitätstechniken wie Fully Sharded Distributed Parallel (FSDP) auf acht Computern trainieren. Sie können auch verschiedene Checkpoint-Frequenzen oder Pfade für Ihren Trainingsjob angeben.

Nachdem Sie ein Rezept angegeben haben, führen Sie das Launcher-Skript aus, um einen end-to-end Trainingsjob auf einem Cluster auf der Grundlage der Konfigurationen über den main.py Einstiegspunkt anzugeben. Für jedes Rezept, das Sie verwenden, gibt es zugehörige Shell-Skripts im Ordner launch_scripts. Diese Beispiele führen Sie durch das Einreichen und Initiieren von Schulungsaufträgen. Die folgende Abbildung zeigt, wie ein SageMaker HyperPod Recipe Launcher einen Trainingsjob auf der Grundlage des Vorstehenden an einen Cluster weiterleitet. Derzeit basiert der SageMaker HyperPod Recipe Launcher auf dem Nvidia NeMo Framework Launcher. Weitere Informationen finden Sie im NeMo Launcher-Handbuch.

Diagramm, das den Arbeitsablauf des HyperPod Recipe Launchers veranschaulicht. Auf der linken Seite, in einem gestrichelten Feld, befinden sich drei Dateisymbole mit den Bezeichnungen „Recipe“, „config.yaml“ und „slurm.yaml oder k8s.yaml oder sm_job.yaml (Cluster-Konfiguration)“. Ein Pfeil zeigt von diesem Feld auf ein zentrales Feld mit der Bezeichnung „Recipe Launcher“. HyperPod Von diesem zentralen Feld aus zeigt ein weiterer Pfeil nach rechts auf „Training Job“, wobei "main.py" über dem Pfeil steht.

HyperPod Rezeptadapter-Repository

Der SageMaker HyperPod Trainingsadapter ist ein Trainingsframework. Sie können ihn verwenden, um den gesamten Lebenszyklus Ihrer Trainingsjobs zu verwalten. Verwenden Sie den Adapter, um das Vortraining oder die Feinabstimmung Ihrer Modelle auf mehrere Maschinen zu verteilen. Der Adapter verwendet verschiedene Parallelitätstechniken, um das Training zu verteilen. Er kümmert sich auch um die Implementierung und Verwaltung der Speicherung der Checkpoints. Weitere Details finden Sie unter Erweiterte Einstellungen.

Verwenden Sie das SageMaker HyperPod Rezeptadapter-Repository, um den Rezeptadapter zu verwenden.

  1. src: Dieses Verzeichnis enthält die Implementierung von LLM-Schulungen (Large-Scale-Language Model), die verschiedene Funktionen wie Modellparallelität, Mixed-Precision-Training und Checkpointing-Management umfassen.

  2. examples: Dieser Ordner enthält eine Sammlung von Beispielen, die zeigen, wie ein Einstiegspunkt für das Training eines LLM-Modells eingerichtet werden kann, und dient Benutzern als praktischer Leitfaden.