Modele z biblioteki Transformers mogą działać na układach Trainium firmy AWS dzięki TorchNeuron, natywnemu backendowi dla PyTorch, otwartoźródłowej biblioteki uczenia maszynowego. Pozostaje pytanie, które z nich faktycznie działają. Space torch-neuronx model support, opublikowany przez Hugging Face, odpowiada na to pytanie dla najpopularniejszych modeli z Hub.
- Modele Transformers mogą działać na Trainium dzięki backendowi TorchNeuron.
- Space Hugging Face sprawdza, które modele z Hub są kompatybilne.
- Test generuje 32 tokeny i weryfikuje wynik, ale nie gwarantuje wydajności.
- Wyniki są dostępne w publicznym zbiorze danych, który można analizować w pandas.
Wyszukaj model
Space otwiera się na widoku Selected, będącym wyborem modeli spośród najczęściej pobieranych i najmodniejszych z Hub. Każdy wiersz wskazuje wynik testu, liczbę rdzeni Trainium, na których model jest rozłożony, całkowity czas wykonania, łącznie z kompilacją, oraz maksymalną pamięć używaną na urządzeniu.
Aby wyszukać konkretny model, wystarczy przejść do widoków Trending lub Downloads i wpisać część jego nazwy. Te widoki śledzą ranking Hub, zadanie po zadaniu, niezależnie od tego, czy model był testowany. Gdy model został odrzucony, Space podaje powód: najczęściej nie był priorytetowy, czasem jest faktycznie niekompatybilny. Użytkownik może także wybrać wersje kompilatora Neuron (neuronx-cc) i Transformers do sprawdzenia.
Na razie testowane są tylko modele Transformers, a wybór ogranicza się do zadań generowania tekstu oraz tekst-obraz na tekst. Zespół planuje rozszerzyć system na diffusers, sentence transformers i inne zadania Transformers.
Uruchom model samodzielnie
Po wybraniu modelu widzimy stos oprogramowania Neuron, na którym był testowany, pakiety do zainstalowania oraz skrypt run.py użyty podczas testu. Skrypt ładuje model za pomocą from_pretrained, rozkłada go na kilka rdzeni, jeśli to konieczne, a następnie generuje tekst z użyciem statycznego cache i torch.compile(backend=„neuron »).
Na instancji trn2 wyposażonej w ten sam stos, na przykład w AWS Neuron Deep Learning Container, wystarczy zainstalować pakiety i uruchomić python3 run.py. Nie jest potrzebny torchrun, skrypt sam uruchamia procesy rozproszenia, gdy model jest rozłożony. Pierwsze wykonanie zaczyna się od kompilacji grafów modelu. Aby tego uniknąć, można skopiować grafy wygenerowane podczas testu z publicznego bucketu NEFF cache, używając polecenia podanego przez Space, które uwzględnia wersję kompilatora.
Co oznacza „działa »
Każdy test ładuje model na instancję trn2, rozłożony na najmniejszą liczbę rdzeni Trainium zdolną pomieścić jego wagi. Większość modeli używa paralelizmu tensorowego, który dzieli obliczenia między kilka rdzeni. Modele z mieszanymi ekspertami, bez planu paralelizmu tensorowego, używają tylko paralelizmu ekspertów. Test generuje następnie 32 tokeny, czyli jednostki tekstu, i je weryfikuje. Na jednym rdzeniu tokeny porównuje się z tymi z wykonania na procesorze z tego samego punktu kontrolnego. Gdy model jest rozłożony, mały model oceniający sprawdza, czy tekst jest płynną angielszczyzną.
Testowane są tylko modele mieszczące się na czterech urządzeniach Trainium2, czyli maksymalnie szesnaście rdzeni. Wynik PASS nic nie mówi o przepustowości ani o dłuższych generacjach.
Wszystkie wyniki pochodzą z publicznego zestawu danych aws-neuron/torch-neuronx-model-support, który zawiera plik Parquet dla każdej pary wersji neuronx-cc i biblioteki. Każdy wiersz podaje wynik modelu, ewentualny błąd, wersje stosu i uruchomiony run.py. Można go bezpośrednio zapytać za pomocą pandas, na przykład dla modelu Qwen/Qwen3-0.6B. Karta zestawu danych precyzuje dokładne znaczenie każdego wyniku.
