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.