AWS Trainium : Ist Ihr Modell kompatibel ? Ein Tool ermöglicht die Überprüfung

AWS Trainium : Ist Ihr Modell kompatibel ? Ein Tool ermöglicht die Überprüfung
3 Minuten Lesezeit

Modelle aus der Transformers-Bibliothek können auf AWS Trainium-Chips mit TorchNeuron laufen, einem nativen Backend für PyTorch, die Open-Source-Bibliothek für maschinelles Lernen. Es bleibt die Frage, welche tatsächlich funktionieren. Der Space torch-neuronx model support, veröffentlicht von Hugging Face, beantwortet diese Frage für die beliebtesten Modelle des Hubs.

  • Der Space torch-neuronx model support zeigt, welche beliebten Transformers-Modelle auf AWS Trainium laufen.
  • Er zeigt Testergebnisse, Kernanzahl, Laufzeit und Speicherverbrauch, und Modelle lassen sich suchen.
  • Getestet werden nur Modelle mit maximal sechzehn Kernen, ein PASS sagt nichts über den Durchsatz aus.
  • Der öffentliche Datensatz kann direkt mit pandas abgefragt werden.

Ein Modell suchen

Der Space öffnet mit der Ansicht Selected, einer Auswahl von Modellen, die unter den am häufigsten heruntergeladenen und trendigsten des Hubs ausgewählt wurden. Jede Zeile zeigt das Testergebnis, die Anzahl der Trainium-Kerne, auf die das Modell verteilt ist, die Gesamtdauer der Ausführung einschließlich Kompilierung und den maximalen Speicherverbrauch auf dem Gerät.

Um ein bestimmtes Modell zu suchen, wechseln Sie einfach zu den Ansichten Trending oder Downloads und geben einen Teil seines Namens ein. Diese Ansichten folgen der Hub-Rangliste, aufgabenweise, unabhängig davon, ob das Modell getestet wurde oder nicht. Wenn ein Modell ausgeschlossen wurde, gibt der Space den Grund an: Meistens hatte es keine Priorität, manchmal ist es wirklich inkompatibel. Der Benutzer kann auch die Versionen des Neuron-Compilers (neuronx-cc) und von Transformers auswählen, die geprüft werden sollen.

Derzeit werden nur Transformers-Modelle getestet, und die Auswahl beschränkt sich auf Aufgaben der Textgenerierung und Text-zu-Bild-zu-Text. Das Team plant, das Angebot auf diffusers, sentence transformers und andere Transformers-Aufgaben auszuweiten.

Ein Modell selbst ausführen

Durch Auswahl eines Modells sieht man den Neuron-Software-Stack, auf dem es getestet wurde, die zu installierenden Pakete und das beim Test verwendete Skript run.py. Dieses Skript lädt das Modell mit from_pretrained, verteilt es bei Bedarf auf mehrere Kerne und generiert dann Text mit einem statischen Cache und torch.compile(backend= »neuron »).

Auf einer trn2-Instanz mit demselben Stack, zum Beispiel im AWS Neuron Deep Learning Container, müssen nur die Pakete installiert und dann python3 run.py ausgeführt werden. Kein torchrun ist nötig, das Skript startet die Verteilungsprozesse selbst, wenn das Modell verteilt ist. Der erste Lauf beginnt mit der Kompilierung der Modellgraphen. Um dies zu umgehen, können die beim Test erzeugten Graphen aus dem öffentlichen NEFF-Cache-Bucket mit dem vom Space bereitgestellten Befehl kopiert werden, der die Compiler-Version berücksichtigt.

Was « funktioniert » bedeutet

Jeder Test lädt das Modell auf eine trn2-Instanz, verteilt auf die kleinste Anzahl von Trainium-Kernen, die seine Gewichte aufnehmen kann. Die meisten Modelle nutzen Tensor-Parallelismus, der die Berechnungen auf mehrere Kerne aufteilt. Modelle mit gemischten Experten (Mixture of Experts), ohne Tensor-Parallelismus-Plan, nutzen nur Experten-Parallelismus. Der Test generiert dann 32 Tokens, also Texteinheiten, und überprüft sie. Auf einem einzelnen Kern werden diese Tokens mit denen einer CPU-Ausführung desselben Checkpoints verglichen. Wenn das Modell verteilt ist, prüft ein kleines Judge-Modell, ob der Text fließendes Englisch ist.

Nur Modelle, die auf vier Trainium2-Geräten passen, also maximal sechzehn Kerne, werden getestet. Ein PASS-Ergebnis sagt nichts über den Durchsatz oder längere Generierungen aus.

Alle Ergebnisse stammen aus dem öffentlichen Datensatz aws-neuron/torch-neuronx-model-support, der eine Parquet-Datei pro Paar aus neuronx-cc- und Bibliotheksversionen enthält. Jede Zeile gibt das Ergebnis eines Modells, gegebenenfalls den Fehler, die Stack-Versionen und das ausgeführte run.py an. Er kann direkt mit pandas abgefragt werden, zum Beispiel für das Modell Qwen/Qwen3-0.6B. Die Datensatzbeschreibung erläutert die genaue Bedeutung jedes Ergebnisses.

S’abonner
Notification pour
guest

0 Commentaires
Le plus ancien
Le plus récent Le plus populaire
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x