View a markdown version of this page

Richtlinien - 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.

Richtlinien

Amazon SageMaker HyperPod Task Governance vereinfacht die Zuweisung Ihrer Amazon EKS-Cluster-Ressourcen und die Priorisierung von Aufgaben. Im Folgenden finden Sie Informationen zu HyperPod EKS-Cluster-Richtlinien. Weitere Informationen dazu, wie Sie Aufgaben-Governance einrichten, finden Sie unter Einrichtung der Aufgaben-Governance.

Die Richtlinien sind in Rechenpriorisierung und Rechenzuweisung unterteilt. Die folgenden Richtlinienkonzepte werden im Kontext dieser Richtlinien strukturiert.

Die Rechenpriorisierung oder Clusterrichtlinie bestimmt, wie ungenutzte Rechenleistung ausgeliehen wird und wie Aufgaben von Teams priorisiert werden.

  • Die Zuweisung inaktiver Rechenleistung definiert, wie ungenutzte Rechenleistung den Teams zugewiesen wird. Das heißt, wie ungenutzte Rechenleistung von Teams ausgeliehen werden kann. Bei der Auswahl einer Zuweisung inaktiver Rechenleistung können Sie zwischen folgenden Optionen wählen:

    • First-come First-Serve: Bei der Anwendung werden die Teams nicht gegeneinander priorisiert, und für jede eingehende Aufgabe besteht die gleiche Wahrscheinlichkeit, dass Ressourcen zu hoch sind. Aufgaben werden in der Reihenfolge ihrer Einreichung priorisiert. Das bedeutet, dass ein Benutzer möglicherweise 100 % der inaktiven Rechenleistung nutzen kann, wenn er dies zuerst anfordert.

    • Fair-share: Wenn die Aufgabe gestellt wird, leihen sich die Teams ungenutzte Rechenleistung auf der Grundlage ihres zugewiesenen Gewichts aus. Fair-share Diese Gewichtungen sind unter Rechenzuweisung definiert. Weitere Informationen zur Verwendung finden Sie unter Beispiele für die gemeinsame Nutzung inaktiver Rechenressourcen.

  • Aufgabenpriorisierung definiert, wie Aufgaben in die Warteschlange gestellt werden, sobald Rechenleistung verfügbar ist. Bei der Auswahl einer Aufgabenpriorisierung können Sie zwischen folgenden Optionen wählen:

    • First-come First-Serve: Wenn Aufgaben zugewiesen werden, werden sie in der Reihenfolge, in der sie angefordert werden, in die Warteschlange gestellt.

    • Rangfolge der Aufgaben: Wenn diese Option angewendet wird, werden sie in der Reihenfolge, die durch ihre Priorisierung definiert ist, in die Warteschlange gestellt. Wenn diese Option ausgewählt ist, müssen Sie Prioritätsklassen zusammen mit den Gewichtungen hinzufügen, nach denen sie priorisiert werden sollen. Aufgaben derselben Prioritätsklasse werden nach dem Prinzip „first-come first-serve“ ausgeführt. Wenn diese Option in der Rechenzuweisung aktiviert ist, werden Aufgaben mit niedrigerer Priorität durch Aufgaben mit höherer Priorität innerhalb des Teams vorgezogen.

      Wenn Datenwissenschaftler Aufträge an den Cluster senden, verwenden sie den Namen der Prioritätsklasse in der YAML-Datei. Die Prioritätsklasse hat das Format priority-class-name-priority. Ein Beispiel finden Sie unter Senden Sie einen Job an die SageMaker AI-managed Warteschlange und den Namespace.

    • Prioritätsklassen: Diese Klassen legen eine relative Priorität für Aufgaben beim Ausleihen von Kapazitäten fest. Wenn eine Aufgabe mit geliehenem Kontingent ausgeführt wird, kann sie von einer anderen Aufgabe mit höherer Priorität verdrängt werden, wenn für die eingehende Aufgabe keine Kapazität mehr verfügbar ist. Wenn Preemption in der Rechenzuweisung aktiviert ist, kann eine Aufgabe mit höherer Priorität auch Aufgaben innerhalb ihres eigenen Teams vorrangig behandeln.

  • Die gemeinsame Nutzung nicht zugewiesener Ressourcen ermöglicht es Teams, Rechenressourcen auszuleihen, die keinem Team im Rahmen des Rechenkontingents zugewiesen sind. Wenn diese Option aktiviert ist, steht den Teams nicht zugewiesene Clusterkapazität zur Verfügung, die sie sich automatisch ausleihen können. Weitere Informationen finden Sie unter So funktioniert die gemeinsame Nutzung nicht zugewiesener Ressourcen.

Die Rechenzuweisung oder das Rechenkontingent definiert die Rechenzuweisung eines Teams und legt fest, welche Gewichtung (oder Prioritätsstufe) ein Team erhält, wenn es ungenutzte Rechenleistung fair verteilt.

  • Teamname: Der Teamname. Es wird ein entsprechender Namespace des Typs hyperpod-ns-team-name erstellt.

  • Mitglieder: Mitglieder des Team-Namespace. Sie müssen eine rollenbasierte Kubernetes-Zugriffskontrolle (RBAC) für Datenwissenschaftler einrichten, die Teil dieses Teams sein sollen, um Aufgaben auf Clustern ausführen zu können, die mit Amazon EKS orchestriert wurden. HyperPod Um einen Kubernetes-RBAC einzurichten, folgen Sie den Anweisungen unter Teamrolle erstellen.

  • Fair-share Gewichtung: Dies ist die Priorisierungsstufe, die dem Team bei der Zuweisung von Rechenleistung im Leerlauf zugewiesen wird. Fair-share Die höchste Priorität hat eine Gewichtung von 100 und die niedrigste Priorität hat eine Gewichtung von 0. Eine höhere Gewichtung ermöglicht es einem Team, früher auf ungenutzte Ressourcen innerhalb gemeinsam genutzter Kapazitäten zuzugreifen. Eine Gewichtung von Null bedeutet die niedrigste Priorität, was bedeutet, dass dieses Team im Vergleich zu anderen Teams immer im Nachteil sein wird.

    Die Fair-Share-Gewichtung verschafft diesem Team einen Wettbewerbsvorteil, wenn es um verfügbare Ressourcen gegen andere wetteifert. Die Zulassung priorisiert die Planung von Aufgaben von Teams mit den höchsten Gewichtungen und den geringsten Ausleihen. Wenn beispielsweise Team A ein Gewicht von 10 und Team B ein Gewicht von 5 hat, hätte Team A Vorrang beim Zugriff auf ungenutzte Ressourcen, da es Aufgaben hätte, die früher als Team B geplant sind.

  • Aufgaben-Preemption: Die Berechnung wird basierend auf der Priorität von einer Aufgabe übernommen. Standardmäßig hat das Team, das inaktive Rechenleistung ausleiht, Vorrang vor Aufgaben anderer Teams.

  • Verleihen und Ausleihen: Wie inaktive Rechenleistung vom Team verliehen wird und ob das Team Rechenleistung von anderen Teams ausleihen kann.

    • Percentage-based Ausleihlimit: Das Limit an ungenutzter Rechenleistung, die ein Team ausleihen darf, ausgedrückt als Prozentsatz seiner garantierten Quote. Ein Team kann sich bis zu 10.000% der zugewiesenen Rechenleistung leihen. Der Wert, den Sie hier angeben, wird als Prozentsatz interpretiert. Ein Wert von 500 wird beispielsweise als 500 % interpretiert. Dieser Prozentsatz gilt einheitlich für alle Ressourcentypen (CPU, GPU, Speicher) und Instanztypen im Kontingent des Teams.

    • Absolutes Ausleihlimit: Das Limit der ungenutzten Rechenleistung, die ein Team ausleihen darf, definiert als absolute Ressourcenwerte pro Instanztyp. Dies ermöglicht eine detaillierte Steuerung des Ausleihverhaltens für bestimmte Instance-Typen. Sie müssen absolute Grenzwerte angeben, indem Sie dasselbe Schema wie Compute Quota verwenden, einschließlich der Anzahl der Instanzen, der Beschleuniger, der vCPU, des Speichers oder der Beschleunigerpartitionen. Sie können im Kontingent Ihres Teams absolute Grenzwerte für einen oder mehrere Instanztypen angeben.

Informationen zur Verwendung dieser Konzepte, wie Prioritätsklassen und Namensräume, finden Sie unter Beispiel für die Verwaltung von HyperPod Aufgaben AWS CLI commands.

Beispiele für die gemeinsame Nutzung inaktiver Rechenressourcen

Das reservierte Gesamtkontingent sollte die verfügbare Kapazität des Clusters für diese Ressource nicht überschreiten, um eine ordnungsgemäße Kontingentverwaltung zu gewährleisten. Wenn ein Cluster beispielsweise 20 ml.c5.2xlarge-Instances umfasst, sollte das den Teams zugewiesene Gesamtkontingent unter 20 bleiben.

Wenn die Richtlinien Rechenzuweisung für Teams Verleihen und Ausleihen oder Verleihen zulassen, wird die freie Kapazität zwischen diesen Teams geteilt. Beispielsweise haben Team A und Team B die Option Ausleihen und Verleihen aktiviert. Team A hat ein Kontingent von 6, nutzt aber nur 2 für seine Aufgaben, und Team B hat ein Kontingent von 5 und nutzt 4 für seine Aufgaben. Ein Job, der bei Team B eingereicht wird und 4 Ressourcen benötigt. 3 werden von Team A ausgeliehen.

Wenn die Compute-Zuweisungsrichtlinie eines Teams auf „Nicht leihen“ gesetzt ist, kann sich das Team keine zusätzliche Kapazität leihen, die über die eigenen Zuweisungen hinausgeht.

So funktioniert die gemeinsame Nutzung nicht zugewiesener Ressourcen

Durch die gemeinsame Nutzung nicht zugewiesener Ressourcen wird automatisch der Ressourcenpool verwaltet, der keinem Rechenkontingent in Ihrem Cluster zugewiesen ist. Das bedeutet, dass Ihr Cluster-Status HyperPod kontinuierlich überwacht und im Laufe der Zeit automatisch auf die richtige Konfiguration aktualisiert wird.

Erste Einrichtung

  • Wenn Sie Enabled in Ihrem IdleResourceSharing die Option auf setzen ClusterSchedulerConfig (standardmäßig ist dies der FallDisabled), beginnt HyperPod Task Governance mit der Überwachung Ihres Clusters und berechnet die verfügbaren ungenutzten Ressourcen, indem Teamquoten von der Gesamtknotenkapazität abgezogen werden.

  • Die gemeinsame Nutzung nicht zugewiesener Ressourcen wird so erstellt, dass ClusterQueues sie den ausleihbaren Ressourcenpool darstellt.

  • Wenn Sie die gemeinsame Nutzung nicht zugewiesener Ressourcen zum ersten Mal aktivieren, dauert die Einrichtung der Infrastruktur mehrere Minuten. Sie können den Fortschritt mithilfe der Richtlinien Status und DetailedStatus in ClusterSchedulerConfig überwachen.

Fortlaufende Versöhnung

  • HyperPod Die Aufgabenverwaltung überwacht kontinuierlich, ob Änderungen vorgenommen werden, z. B. ob Knoten hinzugefügt oder entfernt werden, und ob die Quoten für Cluster-Warteschlangen aktualisiert werden.

  • Wenn Änderungen auftreten, berechnet die gemeinsame Nutzung nicht zugewiesener Ressourcen das Kontingent und die Aktualisierungen neu. ClusterQueues Der Abgleich ist in der Regel innerhalb von Sekunden abgeschlossen.

Überwachung

Sie können überprüfen, ob die gemeinsame Nutzung nicht zugewiesener Ressourcen vollständig konfiguriert ist, indem Sie auf die gemeinsame Nutzung nicht zugewiesener Ressourcen achten: ClusterQueues

kubectl get clusterqueue | grep hyperpod-ns-idle-resource-sharing

Wenn du das ClusterQueues mit Namen wie siehsthyperpod-ns-idle-resource-sharing-cq-1, ist die gemeinsame Nutzung nicht zugewiesener Ressourcen aktiv. Beachten Sie, dass je nach Anzahl der Ressourcenvarianten in Ihrem Cluster mehrere nicht zugewiesene Ressourcen gemeinsam genutzt werden ClusterQueues können.

Eignung des Knotens für die gemeinsame Nutzung nicht zugewiesener Ressourcen

Die gemeinsame Nutzung nicht zugewiesener Ressourcen umfasst nur Knoten, die die folgenden Anforderungen erfüllen:

  1. Status „Knoten bereit“

    • Knoten müssen im Ready Status sein, um zum nicht zugewiesenen Ressourcenpool beitragen zu können.

    • Knoten im Status NotReady oder in einem anderen Zustand, der nicht bereit ist, sind von den Kapazitätsberechnungen ausgeschlossen.

    • Wenn ein Knoten zu einem Knoten wirdReady, wird er automatisch in den nächsten Abstimmungszyklus aufgenommen.

  2. Knoten: Planbar — Status

    • Knoten mit spec.unschedulable: true sind von der gemeinsamen Nutzung nicht zugewiesener Ressourcen ausgeschlossen.

    • Wenn ein Knoten wieder planbar wird, wird er automatisch in den nächsten Abstimmungszyklus aufgenommen.

  3. MIG-Konfiguration (nur GPU-Knoten)

    • Bei GPU-Knoten mit MIG (Multi-Instance GPU) -Partitionierung muss das nvidia.com/mig.config.state Label success für den Knoten sichtbar sein, um MIG-Profile zur gemeinsamen Nutzung nicht zugewiesener Ressourcen beizutragen.

    • Diese Knoten werden automatisch erneut versucht, sobald die MIG-Konfiguration erfolgreich abgeschlossen wurde.

  4. Unterstützte Instanztypen

    • Die Instanz muss ein unterstützter SageMaker HyperPod Instanztyp sein.

    • Sehen Sie sich die Liste der unterstützten Instanztypen im SageMaker HyperPod Cluster an.