VRAM
Pamięć karty graficznej - to ona decyduje, jak duży model uruchomisz lokalnie.
VRAM to pamięć używana przez procesor graficzny do przechowywania danych potrzebnych podczas obliczeń, na przykład modelu AI, przetwarzanego obrazu i wyników pośrednich.
Wyobraź sobie grafika z Poznania, który przygotowuje ilustrację do plakatu na własnym komputerze. Ma 32 GB pamięci RAM i kartę z 8 GB VRAM. Program generujący obraz zgłasza „out of memory”, choć pamięci systemowej nadal jest dużo. Te dwie liczby nie oznaczają jednej wspólnej puli w typowym komputerze z osobną kartą graficzną. Dokupienie RAM nie zwiększy fizycznej pamięci tej karty.
Jak sprawdzić, ile masz VRAM
W Windows otwórz Menedżer zadań, zakładkę Wydajność i wybierz używany GPU. Przy osobnej karcie interesuje Cię przede wszystkim dedykowana pamięć GPU, nie suma pamięci dedykowanej i współdzielonej. Jeżeli masz dwie karty, sprawdź, na której uruchamia się program. Nazwa GPU i pojemność pamięci powinny odpowiadać jego specyfikacji.
Przy karcie NVIDIA można też użyć polecenia nvidia-smi, jeśli jest dostępne w zainstalowanym środowisku. Pokazuje użycie pamięci i procesy, lecz nie przewiduje dokładnie zapotrzebowania każdego przyszłego zadania. Na komputerach z pamięcią zunifikowaną, na przykład części Maców, podział wygląda inaczej: aplikacje, system i GPU korzystają ze wspólnej puli. Nie porównuj jej pojemności bezpośrednio z samym VRAM oddzielnej karty.
Od czego zależy pamięć potrzebna do AI
Znaczenie mają wielkość modelu, sposób zapisu jego wag, rozdzielczość obrazu i liczba wyników liczonych jednocześnie. Dla modelu językowego dochodzą długość kontekstu i pamięć potrzebna do obsługi kolejnych tokenów. Trening zazwyczaj potrzebuje więcej pamięci niż samo używanie gotowego modelu, ponieważ przechowuje dodatkowe dane do aktualizowania parametrów.
Uproszczony rachunek: same wagi modelu z miliardem parametrów zapisanych po dwa bajty zajmują około 2 GB w zapisie dziesiętnym. To nie jest wymaganie sprzętowe całego programu. Trzeba doliczyć dane robocze, narzut środowiska i zapas. Kwantyzacja może ograniczyć miejsce zajmowane przez wagi, ale nie usuwa wszystkich pozostałych składników.
Nie istnieje jedna odpowiedź „tyle GB wystarczy do AI”. Ten sam komputer może obsłużyć mały model tekstowy, a nie pomieścić dużego zadania wideo. Wymagania sprawdzaj dla konkretnego modelu, jego wersji, ustawień i programu, nie dla samego hasła „Stable Diffusion” lub „lokalny chatbot”.
Co zrobić po błędzie out of memory
Zapisz pracę i zamknij inne programy używające GPU. Sprawdź, czy w tle nie został drugi proces generowania. Samo zamknięcie jego okna nie zawsze oznacza koniec procesu.
Uruchom jedną generację zamiast kilku równocześnie. Obniż rozdzielczość testowego obrazu lub, w modelu tekstowym, długość kontekstu. Zmieniaj jedno ustawienie naraz, żeby wiedzieć, co pomogło.
Jeżeli program to obsługuje, sprawdź kwantyzację, dzielenie obrazu na kafelki albo przeniesienie części obliczeń do RAM i CPU. Te rozwiązania mają własne ograniczenia i mogą znacznie spowolnić pracę. Nie każdy model wspiera każdą metodę.
Powtórz to samo zadanie i zapisz szczytowe zużycie oraz czas. Dopiero wtedy oceniaj potrzebę zmiany sprzętu. Dokumentacja optymalizacji pamięci Diffusers opisuje kompromisy między pamięcią a szybkością.
Najczęstszy błąd: więcej VRAM oznacza zawsze szybciej
Większa pamięć pomaga przede wszystkim pomieścić zadanie. Nie mówi sama w sobie, jak szybko karta je wykona. Liczą się też układ obliczeniowy, przepustowość, obsługa danego modelu i oprogramowanie. Jeśli korzystasz z generatora uruchomionego w chmurze, obliczenia mogą w ogóle nie odbywać się na Twojej karcie - wtedy zakup większego GPU nie przyspieszy kolejki usługodawcy.