Określ rezultat, który uzasadnia Twój wynajem
W przypadku przetwarzania plików określ wolumen do przejścia, format wyjściowy i regułę wznowienia. Zakończony plik musi być rozpoznawalny bez ponownego czytania całego przebiegu. W przypadku usługi interaktywnej określ maksymalny rozmiar zapytań, akceptowalny czas i zachowanie po osiągnięciu pełnej przepustowości. Ten sam model może wymagać dwóch bardzo różnych organizacji w zależności od tych ograniczeń.
Zachowaj reprezentatywną próbkę z krótkimi, typowymi przypadkami i takimi blisko Twoich granic. W potoku embeddingów przypisz każdy wektor do identyfikatora i wersji swojego wejścia. W generowaniu tekstu zapisuj parametry generowania użyte do oceny. Musisz umieć wyjaśnić różnicę w wyniku, nie przypisując jej od razu GPU.
Wybierz pamięć dla całego obciążenia inferencji
Rozmiar plików modelu nie opisuje całej pamięci używanej podczas wnioskowania. Należy uwzględnić także tensory tymczasowe, wejścia, zachowane wyjścia, a w przypadku odpowiednich modeli pamięć podręczną kluczy i wartości uwagi. Ta pamięć podręczna może stać się znacząca, gdy sekwencje się wydłużają lub gdy kilka zapytań jest przetwarzanych razem.
Zacznij od karty, której pamięć pozwala przeprowadzić reprezentatywną próbę ze zmierzonym zapasem. Modele o pamięci 24, 32, 48, 80 GB i większej odpowiadają różnym potrzebom; żadna pojemność nie gwarantuje, że dany model przejdzie ze wszystkimi swoimi ustawieniami. Zmniejszenie precyzji lub kwantyzacja może zmienić zapotrzebowanie, ale wymaga sprawdzenia wsparcia oprogramowania i jakości wyników na własnych danych wejściowych.
Wybierz GPU zgodny z Twoim łańcuchem oprogramowania
Wypisz silnik wnioskowania, jego szczególne operatory i rozszerzenia, od których zależą, zanim wybierzesz sprzęt. Aplikacja PyTorch może oferować kilka ścieżek wykonania, a wyspecjalizowane rozszerzenie obsługuje tylko jedną. Sprawdź cały łańcuch na CUDA dla NVIDIA lub na ROCm dla AMD, w tym ładowanie modelu i jego wstępne przetwarzanie.
Zachowaj minimalne polecenie, które przechodzi przez potok aż do zapisania wyniku. Dopiero potem włączaj swoje optymalizacje jedna po drugiej. Każda zmiana precyzji, kompilacji lub silnika musi zachować porównywalną kontrolę jakości. Udane załadowanie dowodzi, że wagi są czytelne; nie dowodzi, że wszystkie niezbędne ścieżki obliczeń działają.
Dostosuj batch do celu przetwarzania
Przykładowa metoda: utwórz trzy grupy tekstów według długości, a następnie przetwórz każdą z batchem 1, 2 i 4 wejść. Te rozmiary służą jako punkty próbne, nie jako uniwersalne zalecenie. Dla każdej kombinacji zanotuj ukończone wejścia, całkowity czas, zaobserwowaną maksymalną pamięć i błędy. Zatrzymaj postęp, gdy pojawi się granica, zamiast ukrywać niepowodzenia w średniej.
W przypadku usługi interaktywnej dodaj czas spędzony w kolejce. Większy batch może zmienić przepustowość i opóźnienie odczuwane przez zapytanie; sama średnia nie wystarczy do wyboru. W przypadku przetwarzania offline upewnij się, że grupowanie nie miesza kolejności wyników. Ostatecznie wybierz konfigurację, która spełnia Twoje kryterium jakości i ograniczenie czasowe.
Przejdź na wiele GPU, jeśli Twoja aplikacja potrafi rozdzielić pracę
Jeśli każda kopia modelu mieści się na jednej karcie, możesz zorganizować kilku pracowników przetwarzających odrębne partie wejść. Trzeba wtedy koordynować identyfikatory, wznowienia i zbieranie wyników. Jeśli model musi być rozłożony między karty, użyj strategii równoległości obsługiwanej przez Twój silnik i sprawdź jej wymagania dotyczące komunikacji.
Zamówione partie opisują ilość sprzętu, a nie batch aplikacyjny ani połączoną przestrzeń pamięci. W przypadku B200 jedna partia obejmuje dwie karty; w przypadku pozostałych ofert jedna partia obejmuje jedną kartę. W swojej dokumentacji wskaż planowaną liczbę workerów, przydział danych wejściowych dla każdego z nich oraz sposób stwierdzenia, że praca została faktycznie ukończona.
Wybierz okres obejmujący kontrole i eksport
Przy pierwszym wynajmie na 3 dni wyznacz ograniczony cel: instalacja, walidacja pipeline'u i uzyskanie pierwszego użytecznego wyniku. Okres 7 dni może posłużyć do przetestowania większej liczby wariantów; 30 dni do powtarzania przetwarzania i ugruntowania jego eksploatacji. To sposoby organizacji pracy, a nie obietnice czasu wykonania.
Na wyjściu zachowaj wagi lub ich wersję, konfigurację, kontrole jakości, faktycznie uzyskane pomiary oraz wyeksportowane wyniki. Oprogramowanie i przetwarzanie wybierasz samodzielnie; Kernodeck nie przeprowadza inspekcji ich zawartości. Samodzielnie przygotuj swoje dostępy, kopie zapasowe i niezbędne uprawnienia do korzystania z modeli i danych.