precyzja mieszana

Zapisanie różnych części modelu z różną precyzją: większość wag nisko, warstwy wrażliwe i wartości odstające wysoko. Stąd oznaczenia wariantów typu q4f16 — większość w czterech bitach, część w szesnastu.

W Polsce nazywane też:

precyzja mieszanamieszana precyzjawarstwy chronionezapis mieszany

Naturalne pytanie po zapoznaniu się z kwantyzacją brzmi: skoro cztery bity działają, dlaczego nie zastosować ich do całego modelu? Odpowiedź jest taka, że nie wszystkie części modelu znoszą zaokrąglanie równie dobrze.

Czym jest precyzja mieszana

Precyzja mieszana to zapisanie różnych fragmentów modelu z różną liczbą bitów: większość wag w niskiej precyzji, a warstwy wrażliwe oraz wartości odstające w wyższej. Stąd biorą się oznaczenia wariantów w rodzaju q4f16 — większość wag w czterech bitach, wybrana część w szesnastu.

Co zwykle zostaje chronione

Tablica embeddingów, bo błąd w niej propaguje się przez cały model od pierwszego kroku.

Warstwa wyjściowa, bo to ona zamienia reprezentację na rozkład prawdopodobieństwa nad słownikiem i drobne przesunięcia zmieniają wybór tokenu.

Wybrane fragmenty mechanizmu uwagi, w szczególności te, w których gromadzą się wartości odstające.

Pojedyncze wagi o skrajnej amplitudzie, wyłączane z kwantyzacji wraz z zapisem ich pozycji.

Dlaczego to się opłaca

Chronione fragmenty stanowią zwykle ułamek procenta parametrów, więc narzut na rozmiar pliku jest znikomy. Zysk w dokładności jest natomiast nieproporcjonalnie duży, bo dotyczy dokładnie tych miejsc, w których strata najbardziej boli.

Precyzja mieszana w treningu

Warto odróżnić to pojęcie od precyzji mieszanej stosowanej podczas treningu, gdzie obliczenia wykonuje się w niższej precyzji, a akumulację gradientów w wyższej. Mechanizm jest pokrewny, cel zupełnie inny: tam chodzi o szybkość i pamięć w trakcie uczenia, tu o zachowanie jakości po zakończeniu treningu.

kalibracja kwantyzacjiPrzepuszczenie przez model reprezentatywnej próbki tekstu przed kwantyzacją, żeby sprawdzić, które wagi faktycznie pracują i które warstwy są wrażliwe. Odróżnia kwantyzację ślepą od świadomej — i sprawia, że dobór danych kalibracyjnych wpływa na jakość modelu w konkretnym języku.kwantyzacja grupowaSposób kwantyzacji, w którym wagi dzieli się na małe grupy sąsiadujących liczb i każda dostaje własny współczynnik skalujący. Różnica między kwantyzacją, która działa, a taką, która zamienia model w generator bełkotu — kosztem kilku dodatkowych bajtów na grupę.wartości odstającePojedyncze wagi lub aktywacje wielokrotnie większe od sąsiadów, występujące konsekwentnie w tych samych miejscach niezależnie od architektury. Nie są błędem treningu — model sam je wyhodował i ich potrzebuje. Przy kwantyzacji rozciągają skalę grupy i psują dokładność pozostałych wag.kwantyzacjaZapisanie wag modelu z mniejszą precyzją liczbową, co zmniejsza zużycie pamięci i przyspiesza obliczenia kosztem dokładności. Umożliwia uruchamianie dużych modeli lokalnie. To nie to samo co destylacja — kwantyzacja zmienia zapis tych samych wag, destylacja tworzy nowy, mniejszy model.Lokalny model językowyModel językowy uruchamiany lokalnie — bez zewnętrznego API — zapewniający prywatność danych, działanie offline i przewidywalne koszty. Llama, Mistral, Phi jako popularne modele. Ollama jako de facto standard dla developerów.