model-pruning
Zmniejsz rozmiar modeli LLM i przyspeszy wnioskowanie technikami pruning bez retrainingu
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Umożliwia kompresję dużych modeli językowych o 40–60% przy minimalnej stracie dokładności. Wykorzystaj techniki Wanda i SparseGPT do osiągnięcia sparsity na poziomie 50% i przyspieszenia inferecji 2–4×. Idealne do wdrażania na urządzeniach z ograniczoną mocą obliczeniową, takich jak urządzenia mobilne czy edge'owe. Obsługuje pruning bez retrainingu, strukturalny i niestrukturalny, oraz N:M sparsity.
Jak używać
Zainstaluj wymagane zależności: sklonuj repozytorium Wanda (https://github.com/locuslab/wanda), przejdź do katalogu i uruchom pip install -r requirements.txt. Opcjonalnie zainstaluj SparseGPT dla metod drugiego rzędu. Zainstaluj torch, transformers i accelerate poleceniem pip install torch transformers accelerate.
Załaduj model do kompresji, na przykład Llama-2-7b, używając AutoModelForCausalLM.from_pretrained() z torch_dtype=torch.float16 i device_map="cuda" dla GPU. Załaduj odpowiadający tokenizer AutoTokenizer.from_pretrained().
Przygotuj dane kalibracyjne — małą próbkę tekstu reprezentatywną dla Twojego przypadku użycia. Dane te będą użyte do obliczenia wag i aktywacji bez pełnego retrainingu modelu.
Zastosuj pruning Wanda, która jest metodą one-shot nie wymagającą retrainingu. Wanda oblicza iloczyn wag i aktywacji, aby zidentyfikować mniej ważne neurony do usunięcia, osiągając docelowy poziom sparsity (np. 50%).
Zweryfikuj dokładność skompresowanego modelu na zbiorze testowym. Metoda Wanda gwarantuje stratę dokładności poniżej 1% przy redukcji rozmiaru o 40–60%.
Wdróż skompresowany model na docelowym sprzęcie — urządzeniach mobilnych, edge'owych lub serwerach z ograniczoną pamięcią. Sparsity umożliwia przyspieszenie inferecji dzięki wsparciu akceleratorów sprzętowych.