Kategoria: Lokalne AI
„Dlaczego model zapomniał, co mu kazałem cztery wiadomości wcześniej?” To pytanie prawie nigdy nie dotyczy jakości modelu. Dotyczy pamięci, której mu nie dałeś.
Wszystkie liczby poniżej pochodzą z jednej maszyny: AMD Ryzen AI 9 HX 470, 24 rdzenie, zintegrowana grafika Radeon 890M, dysk NVMe 1 TB. Prędkości generowania to seria pomiarów z września 2026. Obserwacje po rozbudowie pamięci pochodzą z października 2026, kiedy te same 32 GB zamieniłem na dwa moduły SODIMM po 32 GB, czyli 64 GB. Ten sam system, te same modele, to samo oprogramowanie, a zmieniła się jedna rzecz.
Notatnik, który rośnie z każdą wiadomością
Model nie pamięta rozmowy w żadnym trwałym sensie. Przy każdej turze dostaje całą dotychczasową wymianę i trzyma w pamięci jej przeliczoną postać, żeby nie liczyć tego samego od początku. Ten notatnik leży w pamięci obok wag modelu i rośnie z każdym tokenem.
Pamięć rozmowy w jednym zdaniu
Okno kontekstu to po prostu maksymalny rozmiar tego notatnika: tyle tokenów prompt i odpowiedź mogą zająć razem. Kiedy limit jest ciasny, pierwsze tury wypadają, i wygląda to dokładnie tak, jakby model zignorował instrukcję.
Ile pamięci kosztuje kontekst
To jest koszt, którego nie widać przy pobieraniu modelu, bo nie ma go w rozmiarze pliku.
Cztery gigabajty na sam notatnik
Przy modelu średniej wielkości okno 128 tys. tokenów zajmuje u mnie około 4 GB ponad wagę modelu (pomiar, październik 2026). W przybliżeniu wychodzi 1 GB na każde 32 tys. tokenów i tym szacunkiem posługuję się przy dobieraniu pamięci. Model ważący 21 GB z oknem 64 tys. tokenów potrzebuje więc około 23 GB, zanim doliczysz system.
Co się dzieje, gdy notatnik jest przycięty
Przy 32 GB w maszynie trzymałem na dużych modelach limit 16 tys. tokenów, żeby system nie zaczął zapisywać na dysk wymiany. Notatnik jest pierwszą rzeczą, którą się po cichu obcina, kiedy pamięci brakuje: model dalej się uruchamia, odpowiada i nie zgłasza błędu.
To nie halucynacja, to limit
Objawy są charakterystyczne: instrukcja z początku rozmowy przestaje obowiązywać, model myli ustalenia, a przy dłuższym dokumencie odpowiada o jego pierwszej stronie. Po rozbudowie do 64 GB te same modele pracują u mnie na 64-128 tys. tokenów i objaw zniknął, przy niezmienionej prędkości generowania. Co dokładnie zmieniła ta rozbudowa, rozpisałem w tekście o tym, co daje przejście z 32 na 64 GB.
Trzy sposoby na dłuższy kontekst bez nowej pamięci
Zanim dołożysz kość, warto sprawdzić, czy notatnika nie da się po prostu spakować.
Najpierw ustawienia silnika
- Kwantyzacja notatnika. Zapis na 8 lub 4 bitach zmniejsza jego zajętość nawet o połowę, czyli pozwala zmieścić dwa razy dłuższą rozmowę w tej samej pamięci. Ta sama arytmetyka obowiązuje przy wagach modelu, co rozpisałem w tekście o tym, ile bitów przypada na wagę modelu.
- Cache prefiksu. Jeśli każda tura zaczyna się od tego samego długiego promptu systemowego, nie ma powodu liczyć go od nowa. W moim teście z promptu liczącego 45 066 tokenów ponad 45 tys. zostało odczytane z cache (pomiar, październik 2026).
- Krótsza historia. Streszczanie starszych tur zamiast przesyłania ich w całości działa nawet wtedy, gdy pamięci jest dużo, bo skraca też czas czytania promptu.
Ukryty koszt długiego kontekstu
Długie okno nie jest darmowe także po stronie czasu, i to jest część, którą łatwo pominąć patrząc tylko na tokeny na sekundę.
Generowanie to połowa czekania
Zanim model napisze pierwszy token, musi przeczytać cały prompt. W rozmowach powyżej 50 tys. tokenów to czytanie zaczyna dominować, a w pętlach z narzędziami odpowiada u mnie za większość czasu oczekiwania (obserwacja z pracy, nie benchmark). Dlatego dłuższy kontekst nie zawsze jest lepszym kontekstem: 128 tys. tokenów historii trzeba przeczytać przy każdej turze.
Jeden model, jeden pomiar
Około 4 GB na 128 tys. tokenów to pomiar dla jednego modelu średniej wielkości. Zużycie notatnika zależy od architektury, ponieważ model z inną organizacją warstw uwagi może potrzebować wielokrotnie mniej albo więcej, więc tego szacunku nie da się przenieść na dowolny model bez sprawdzenia.
Nie mam też zmierzonego czasu czytania promptu w żadnym benchmarku; wszystkie prędkości, które podaję, to generowanie. Udział czytania w czasie oczekiwania opisuję z obserwacji własnej pracy i tak należy go czytać. Pamięć nie zmienia też tego, czego model po prostu nie potrafi. O tym, czego lokalne AI nie zrobi, napisałem osobno.