Powrót do strony głównej

Kwantyzacja Gemma 4 31B pod 57GB Kaggle

Artykuł opisuje metodę ładowania i kwantyzacji modelu 62GB Gemma 4 31B na Kaggle z limitem 57GB. Używa się bitsandbytes z NF4, usuwanie cache i strumieniowe wgrywanie. Rezultat — model 18GB do lokalnego użytku.

62GB Gemma w 15GB VRAM: MLOps na T4
Advertisement 728x90

Optymalizacja Gemma 4 31B pod kątem limitów Kaggle: kwantyzacja i zarządzanie pamięcią

Model Gemma 4 31B w formacie float16 zajmuje 62 GB, co przekracza limit dysku Kaggle wynoszący 57,6 GB. Zadanie wymaga załadowania pełnej objętości, skwantyzowania do 4-bitowej reprezentacji (18 GB) i zapisania wyniku bez przekroczenia dostępnej przestrzeni. Rozwiązanie zrealizowano poprzez sekwencyjne umieszczenie w pamięci VRAM dwóch GPU T4 po 15 GB każda, wykorzystując device_map="auto" z biblioteki bitsandbytes z typem NF4.

Kwantyzacja uruchamiana jest równolegle z ładowaniem: wagi są kompresowane natychmiast po trafieniu do pamięci wideo, minimalizując szczytowe zużycie dysku.

Technika zwalniania przestrzeni: usuwanie pamięci podręcznej podczas pracy

Po pełnym załadowaniu modelu do pamięci VRAM stosuje się shutil.rmtree() do usunięcia folderu pamięci podręcznej Hugging Face. W systemie Linux jest to możliwe dla otwartych plików — przestrzeń staje się dostępna dla nowych operacji, chociaż du wskaże ją jako zajętą.

Google AdInline article slot

Proces:

  • Model jest ładowany i kwantowany w pamięci.
  • Oryginalne 62 GB są usuwane.
  • Zwolnione miejsce jest wykorzystywane do wyprowadzenia 18 GB skwantowanych wag.
# Przykład strumieniowego wyprowadzania
model.push_to_hub("repo_id", safe_serialization=True)

To podejście pozwala obejść matematyczną barierę 62 + 18 = 80 GB.

Szczegóły implementacji na GPU T4

Biblioteka bitsandbytes rozdziela warstwy modelu między dwie karty T4. Kwantyzacja NF4 zmniejsza rozmiar 4-krotnie bez znaczącej utraty jakości dla zadań rozumienia kodu i generacji. Pełna sekwencja:

Google AdInline article slot
  • Inicjalizacja z device_map="auto".
  • Równoległa kwantyzacja fragmentów.
  • Usunięcie pamięci podręcznej po przeniesieniu do VRAM.
  • Bezpośrednia publikacja w repozytorium przez push_to_hub.

Rezultat — model o objętości 18,3 GB, kompatybilny z konsumenckimi GPU.

Zalety metody dla MLOps

Technika ma zastosowanie do dużych modeli w ograniczonych środowiskach:

  • Minimalne wymagania: Wystarczy darmowe Kaggle lub odpowiednik.
  • Automatyzacja: Skrypt wykonuje się bez ręcznej interwencji.
  • Zachowanie jakości: NF4 utrzymuje wydajność na poziomie float16 dla inferencji.
  • Skalowalność: Łatwo dostosować do innych limitów (np. Colab).

Metoda nie wymaga klastrów A100 i działa na standardowym sprzęcie.

Google AdInline article slot

Co jest ważne

  • Kwantyzacja NF4 przez bitsandbytes pozwala skompresować 62 GB do 18 GB w locie.
  • Usunięcie pamięci podręcznej Hugging Face z otwartymi plikami zwalnia dysk podczas pracy.
  • device_map="auto" rozkłada obciążenie na kilka GPU T4.
  • Bezpośrednie wyprowadzenie push_to_hub eliminuje pośrednie zapisywanie.
  • Podejście nadaje się dla Gemma 4 31B i podobnych modeli powyżej 30B parametrów.

— Editorial Team

Advertisement 728x90

Czytaj dalej