## Czy model głupieje?

*Wybór modelu*

*Ostatnia zmiana: 28 września 2026*

Wagi przypiętej wersji modelu się nie zmieniają, ale system, który je serwuje, zmienia się stale: sprzęt, kompilatory, sampler, routing, system prompt aplikacji i ustawienia domyślne. Za aliasem albo nazwą modelu w aplikacji czatu można podmienić nawet wagi, a nazwa zostaje ta sama. Do tego dostawca ma skończoną pulę kart, z której biorą i trening następnego modelu, i obecni użytkownicy.

**Po ludzku:** Jedna kuchnia i dwa zamówienia naraz: wielkie przyjęcie na przyszły miesiąc, czyli trening, i bieżący goście, czyli użytkownicy. Palników nie przybywa. W przypiętej wersji przepis się nie zmienia, ale nowy piec albo pomylona przyprawa zmienią smak.

*Interaktywny widżet na stronie: Przesuń trening i popyt. Zobacz, kiedy inferencji zaczyna brakować mocy i co wtedy widzi użytkownik.*

### Co się zmienia, gdy wagi stoją

- Ten sam model działa na różnym sprzęcie i stosie. Anthropic podaje, że serwuje Claude’a na AWS Trainium, GPU NVIDIA i TPU Google. Inna precyzja, kompilator albo implementacja samplera to trochę inne liczby na wyjściu, a błąd w jednym z tych miejsc psuje tylko część ruchu.
- Brak mocy widać najpierw w opóźnieniach i dostępności: kolejki, dłuższy czas do pierwszego tokena, wolniejsze generowanie przy większych batchach, błędy przeciążenia, ostrzejsze limity. Nie obniża to jakości, ale obciążenie wyznacza rozmiar batcha, a przy kernelach, których wynik zależy od rozmiaru batcha, to samo zapytanie może dostać inne tokeny nawet przy temperaturze 0.
- Aplikacje, takie jak czat czy narzędzie do kodu, zmieniają system prompt, domyślny poziom rozumowania i sposób zarządzania kontekstem. To zmienia wyniki bez zmiany modelu i bez żadnej zmiany w API.

### Udokumentowane przypadki

- **Kwiecień 2025** (OpenAI, „Expanding on what we missed with sycophancy”). Tu wagi zmieniły się pod tą samą nazwą. 25 kwietnia aktualizacja GPT-4o w ChatGPT z nowym post-treningiem, m.in. z dodatkową nagrodą z ocen typu kciuk w górę i w dół, uczyniła model wyraźnie przymilnym; wycofywanie ruszyło 28 kwietnia. OpenAI podaje, że GPT-4o w ChatGPT dostał od premiery pięć dużych aktualizacji z nowym post-treningiem.
- **Sierpień i wrzesień 2025** (postmortem Anthropic z 17 września 2025). Trzy nakładające się błędy infrastruktury, wagi bez zmian. Od 5 sierpnia część żądań do Sonnet 4 trafiała na serwery skonfigurowane pod przyszły kontekst 1M tokenów, w najgorszej godzinie 31 sierpnia 16% żądań. Od 25 sierpnia błędna konfiguracja serwerów TPU powodowała wstawianie niepasujących tokenów, np. znaków tajskich lub chińskich w angielskich odpowiedziach. Zmiana w wyborze tokenów odsłoniła też błąd kompilatora XLA dla TPU, przez który przybliżone top-k czasem gubiło najbardziej prawdopodobny token. Poprawki weszły między 2 a 18 września.
- **Marzec i kwiecień 2026** (postmortem z 23 kwietnia 2026). Trzy zmiany w Claude Code, Claude Agent SDK i Claude Cowork; API nie zostało dotknięte. 4 marca domyślny poziom rozumowania obniżono z high na medium, żeby skrócić opóźnienia; cofnięto to 7 kwietnia. 26 marca błąd w mechanizmie, który po godzinie bezczynności miał raz usunąć stare bloki myślenia, sprawił, że usuwał je w każdej kolejnej turze, więc model wydawał się zapominalski i się powtarzał; naprawiono 10 kwietnia. 16 kwietnia dodano do system promptu limit długości odpowiedzi, który w jednej z ewaluacji obniżył wynik o 3%; cofnięto 20 kwietnia.
- Według obu postmortemów Anthropic przyczyną były błędy infrastruktury i decyzje produktowe uzasadniane opóźnieniem i długością odpowiedzi, a nie brak mocy. W 2025 roku Anthropic napisał wprost, że nigdy nie obniża jakości modelu z powodu popytu, pory dnia ani obciążenia serwerów, a w 2026, że nigdy celowo nie degraduje modeli.

### Hipoteza i złudzenie

- Hipoteza: dostawca po cichu serwuje mocniej skwantyzowany albo mniejszy wariant, gdy przed premierą brakuje kart. Technicznie możliwe u każdego dostawcy, ale publicznych dowodów brak. Traktuj to jak hipotezę do sprawdzenia pomiarem.
- Złudzenie: oczekiwania rosną, zadania robią się trudniejsze, sesje dłuższe, a długi kontekst sam obniża jakość (zobacz „Okno kontekstowe i agent”). Przy losowaniu pojedyncze złe odpowiedzi zdarzają się zawsze, więc anegdoty nie odróżnią regresji od szumu.

### Jak się bronić

- Przypinasz dokładny identyfikator snapshotu modelu, a nie alias, który może się przesunąć; w Claude od 4.6 identyfikator bez daty sam jest snapshotem. Jawnie ustawiasz poziom rozumowania i limit tokenów, a temperaturę tylko tam, gdzie model ją jeszcze przyjmuje: nowsze modele Claude (od Opus 4.7) i modele OpenAI z włączonym rozumowaniem odrzucają wartości inne niż domyślne (zobacz „Następny token”). Wersjonujesz prompt i definicje narzędzi (zobacz „LLM na produkcji”).
- Własny zestaw ewaluacyjny puszczasz cyklicznie na produkcyjnym endpoincie, z kilkoma powtórzeniami na przypadek, bo różnice rzędu kilku procent giną w szumie (zobacz „Ewaluacje”). Trace’y z produkcji pozwalają porównać zachowanie przed zmianą i po niej.
- Przypięta wersja też ma datę wycofania, więc migracja i tak przyjdzie; sprawdzasz ją tym samym zestawem. Pełna powtarzalność wymaga otwartego modelu na własnym, zamrożonym stosie z deterministycznymi kernelami, niezależnymi od rozmiaru batcha (zobacz „Modele open-weight”).

### Sprawdź się

**Pytanie:** Użytkownicy mówią, że model „zgłupiał”. Jak to wyjaśnisz i co zrobisz?

**Krótka odpowiedź:** Najpierw sprawdzasz, czy model w ogóle się zmienił: w aplikacji albo za aliasem ta sama nazwa może wskazywać nowe wagi, jak GPT-4o w ChatGPT w kwietniu 2025. Wagi przypiętej wersji się nie zmieniają, ale zmienia się wszystko wokół: sprzęt i kompilatory, sampler, routing, system prompt aplikacji, domyślny poziom rozumowania, limity. Oba udokumentowane spadki u Anthropic, z 2025 i 2026 roku, wynikały z takich przyczyn, a nie z podmiany wag. Ciche cięcie jakości z braku mocy jest technicznie możliwe, ale niepotwierdzone. Dlatego zamiast zgadywać, przypinasz wersję, ustawiasz parametry jawnie, cyklicznie puszczasz własne ewaluacje i porównujesz trace’y.

### Pytania pogłębiające

- **Jak odróżnić regresję u dostawcy od własnej?** Przypięta wersja, stały zestaw ewaluacyjny z kilkoma powtórzeniami i porównanie trace’ów. Jeśli prompt, narzędzia i parametry są te same, a spadek wyników wykracza poza szum, problem leży po stronie dostawcy. Wtedy zbierasz przykłady i zgłaszasz je.
- **Co przypinasz, żeby ograniczyć niespodziewane zmiany zachowania modelu?** Dokładny identyfikator snapshotu modelu, poziom rozumowania, limit tokenów, temperaturę tam, gdzie model ją jeszcze przyjmuje, wersję promptu i definicji narzędzi. Przypięta wersja też ma datę wycofania, więc migrację sprawdzasz tym samym zestawem ewaluacyjnym.
- **Czemu dostawca sam nie wyłapał regresji z 2025 roku?** Według postmortemu ewaluacje Anthropic nie uchwyciły spadku, raporty użytkowników były zaszumione, a zasady prywatności ograniczają wgląd inżynierów w rozmowy. Błędy dotykały części ruchu na części platform, więc średnie wyglądały dobrze. Wniosek dla ciebie: potrzebujesz ewaluacji na własnym ruchu.
- **Jak wykryć regresję w godzinę, a nie po tygodniu?** Kanarek: mały zestaw przypadków puszczany co godzinę na produkcyjnym endpoincie, plus sygnały z ruchu: odsetek niepoprawnego JSON-a, długość odpowiedzi, liczba wywołań narzędzi, ponowienia i poprawki użytkowników. Alert na odchylenie od wartości bazowej.

### Źródła

- [Anthropic: A postmortem of three recent issues (2025)](https://www.anthropic.com/engineering/a-postmortem-of-three-recent-issues)
- [Anthropic: An update on recent Claude Code quality reports (2026)](https://www.anthropic.com/engineering/april-23-postmortem)
- [OpenAI: Expanding on what we missed with sycophancy (2025)](https://openai.com/index/expanding-on-sycophancy/)
- [Anthropic: Model IDs and versioning](https://platform.claude.com/docs/en/about-claude/models/model-ids-and-versions)
- [Horace He: Defeating Nondeterminism in LLM Inference (2025)](https://thinkingmachines.ai/blog/defeating-nondeterminism-in-llm-inference/)

Strona interaktywna: https://howaiworks.dev/pl/compute/
