Jak utrzymywać lokalnego Qwena: osiem realnych awarii
Limit odpowiedzi, zły klucz, fałszywa pętla, przepełniony kontekst i zmodyfikowany serwer. Zamieniamy każdą awarię w test oraz procedurę.
Syntalith
Utrzymanie lokalnego modelu obejmuje znacznie więcej niż polecenie startowe. Trzeba znać właściwy profil, sprawdzać klucze i limit kontekstu, odróżniać awarię serwera od słabej odpowiedzi, testować aktualizacje i umieć wrócić do poprzedniej wersji. Najbardziej wartościowym wynikiem eksperymentu jest więc lista usterek zamienionych w stałe kontrole.
Poniższy rejestr pochodzi z eksperymentu na domowym PC z RTX 3090. Nie jest historią usługi produkcyjnej ani incydentów klienta.
Rejestr awarii
| # | Objaw | Przyczyna | Skutek | Stała kontrola |
|---|---|---|---|---|
| 1 | zapis narzędzia urywał się około 8k | stałe max_tokens: 8192 wyłączało adaptacyjne ponowienie Qwen Code | powtarzane, niepełne edycje | brak stałego limitu w zachowanym profilu + test długiego zapisu |
| 2 | klient dostał 401 | użyto klucza starego llama.cpp dla adresu API vLLM | żądanie nie dotarło do modelu | osobne nazwy sekretów + test właściwego adresu API |
| 3 | interfejs przerwał przed sprawdzeniem | heurystyczny action_stagnation uznał różne udane edycje za pętlę | kod wyjścia 1 mimo postępu | wyłączona heurystyka + zewnętrzny warunek prawdziwej pętli |
| 4 | Claude Code zakończył się HTTP 400 | wysłał 131 265 tokenów do profilu 131 072 | 121,64 min bez ukończenia | test skracania i przepełnienia dla każdego klienta |
| 5 | test Pythona dodał niechciane zmiany | uruchomienie zmieniło śledzone __pycache__ | mylący zakres zmian | pamięć podręczna poza repozytorium + kontrola git status |
| 6 | diagnostyka trafiła do złego silnika | harness nie obsługiwał pola env, więc uruchomił stary przełącznik | wynik nie nadawał się do porównania | jawne zmienne środowiskowe w harnessie + weryfikacja modelu/kontekstu |
| 7 | druga tura odrzuciła edycję przed odczytem | wznowiona tura resetowała stan odczytu narzędzia | dodatkowy odczyt i koszt | test wznowienia + ponowny odczyt przed edycją |
| 8 | aktualizacja nie była prostym pip install | najlepszy profil używał zewnętrznie zmodyfikowanego vLLM | ryzyko zgodności i łańcucha dostaw | zamrożony obraz, skrót pliku, źródło poprawki, test i powrót do poprzedniej wersji |
Każda pozycja ma inne miejsce naprawy. Błąd 1 należał do konfiguracji klienta. Błędy 2, 3 i 6 do klienta oraz skryptów uruchamiających. Błąd 4 do zarządzania kontekstem. Błąd 5 do repozytorium testowego. Błąd 8 do całego procesu aktualizacji. Stwierdzenie „model był słaby” nie diagnozuje żadnego z nich.
Jak awaria staje się testem
Dobry wpis w rejestrze ma sześć pól:
id: QWEN-OPS-004
objaw: zapytanie przekracza kontekst serwera i zwraca HTTP 400
odtworzenie: wznów długą sesję aż do progu kontroli wstępnej
oczekiwany_wynik: klient skraca historię lub odmawia wysłania zbyt dużego zapytania
artefakty: zapis zdarzeń, długość zapytania, błąd serwera, wersja profilu
właściciel: platforma-agenta
powrót: zmień klienta lub profil; nie powiększaj kontekstu automatycznie
Regresję uruchamiamy na tej warstwie, która naprawdę zawiodła. Dla złego klucza nie potrzeba pełnego zadania kodowego. Test odpytuje /health, /v1/models, sprawdza 401 dla niepoprawnego sekretu i poprawny model dla właściwego. Dla limitu 8k potrzebny jest długi zapis pliku przez narzędzie, ponieważ krótki test podstawowy zawsze przejdzie.
Kontrola przed aktualizacją
Przed zmianą wersji wag, obrazu vLLM, Qwen Code lub sterownika uruchamiamy trzy poziomy:
Pięć minut na start i protokół
- usługa zaczyna odpowiadać;
- raportuje właściwy model i kontekst;
- błędny sekret jest odrzucany;
- odpowiedź strumieniowa kończy się poprawnie;
- mały JSON i wywołanie narzędzia mają prawidłowy format.
Trzydzieści minut na regresje programu sterującego
- zapis dłuższy niż 8k nie ucina pliku;
- wznowiona sesja potrafi ponownie czytać i edytować;
- klient nie wysyła żądania większego niż serwer;
- wykrycie pętli wymaga rzeczywistego braku postępu;
- po teście
git statusnie zawiera pamięci podręcznej ani obcych plików.
Zadanie procesu sprawdzające jakość i koszt
To samo naturalne polecenie, świeża kopia repozytorium, ukryte testy, przegląd zmian, czas wykonania i szczyt VRAM. Dla zachowanego profilu użyliśmy zadania błędów json.Marshal. Wybrany Qwen Code ukończył je w 8:22 i został przyjęty. Codex na tym samym modelu dodał niedeterministyczne zachowanie awaryjne, więc nie przeszedł mimo zakończenia.
Nowa wersja nie wygrywa numerem wydania. Musi przejść wszystkie krytyczne bramki oraz nie pogorszyć zaakceptowanego wyniku ponad uzgodniony próg.
Jak powinno wyglądać repozytorium przekazania
wdrozenie/
profile/
codzienny.yaml
zapasowy.yaml
wykazy/
model.json
obraz-serwera.json
licencje.md
instrukcje/
uruchom-zatrzymaj-status.md
przekroczenie-kontekstu.md
brak-pamieci-gpu.md
rotacja-klucza.md
powrot-do-poprzedniej-wersji.md
testy/
podstawowe/
regresje-programu/
przypadki-procesu/
awarie/
QWEN-OPS-001.md
...
szkolenie/
cwiczenie-operatora.md
kryteria-recenzenta.md
Wykaz zapisuje dokładną wersję modelu, format, skrót pliku, obraz, commit poprawki, sterownik, analizator narzędzi, ustawienia losowania, kontekst i klienta. latest nie jest wersją odtwarzalną.
Instrukcja operacyjna podaje komendę, wynik oczekiwany i pierwszy punkt diagnostyki. Procedura „zapytaj osobę, która to stawiała” nie przechodzi odbioru.
Monitoring, który rozróżnia awarię od słabej odpowiedzi
Warstwa operacyjna mierzy:
- dostępność API i kolejkę;
- czas do pierwszego tokena oraz całość;
- długość wejścia, wyjścia i liczbę kompresji;
- błędy dostawcy, narzędzi i odczytywania odpowiedzi;
- VRAM, wykorzystanie GPU i zakończenia procesu;
- model, obraz serwera, harness i wersję konfiguracji.
Warstwa jakości mierzy:
- wynik ukrytych kontroli;
- akceptację bez poprawki;
- typ poprawki człowieka;
- naruszenie uprawnień lub cytatu;
- zakres zmian;
- odsetek odmów zasadnych i błędnych.
Sam panel GPU nie zauważy pustego imienia w imporcie. Sama opinia „dobra odpowiedź” nie zauważy, że klient za chwilę przepełni kontekst.
Ćwiczenie powrotu do poprzedniej wersji
Powrót do poprzedniej wersji na serwerze z jednym GPU powinien być prosty i powtarzalny:
- zatrzymaj przyjmowanie zadań;
- zakończ lub przerwij kolejkę zgodnie z polityką;
- przełącz wykaz wersji na poprzedni obraz i profil;
- sprawdź model ID, kontekst i sekret;
- uruchom krótki test startowy oraz jeden krytyczny przypadek testowy;
- przywróć ruch i zachowaj artefakty awarii.
W domowej instrukcji profil zapasowy przełączał vLLM na llama.cpp 120k. W firmie potrzebny jest dodatkowo docelowy czas odtworzenia, test uprawnień i informacja dla użytkowników. Rozwiązanie zapasowe może być wolniejsze, ale musi być znane i bezpieczne.
Czego uczy się zespół
Operator powinien umieć uruchomić profil, rozpoznać zły adres API, odczytać pomiary, zmienić sekret i wrócić do poprzedniej wersji. Recenzent potrzebuje kryteriów oceny, ukrytych przypadków i umiejętności odróżnienia płynnej narracji od zaakceptowanego wyniku. Właściciel procesu decyduje, który błąd jest krytyczny. Osoba odpowiedzialna za bezpieczeństwo sprawdza dane, sieć, narzędzia i retencję.
Warsztat na prawdziwym środowisku jest bardziej wartościowy niż slajdy o pisaniu poleceń. Jedna osoba celowo wprowadza błąd z rejestru, druga diagnozuje go z dzienników i instrukcji operacyjnej.
Co przekazuje Syntalith
Przy wdrożeniu oddajemy uzgodnione profile, wykazy i licencje, kod integracji, testy jakości, panel stanu, alerty, przetestowany powrót do poprzedniej wersji, rejestr znanych awarii oraz materiały szkoleniowe. Zespół wykonuje start, test i powrót do poprzedniej wersji przed odbiorem.
Aplikacje AI zaczynają się od 25 000 zł netto. Kursy AI-Native oraz utrzymanie wyceniamy po rozmowie o repozytorium, krytyczności, integracjach i czasie reakcji. Bezpłatny skan procesu pozwala ustalić, czy potrzebny jest najpierw pilot, audyt, szkolenie czy uporządkowanie istniejącego wdrożenia.
Bezpłatny skan procesów
Zacznij od bezpłatnego skanu procesów.
- 30 minut z inżynierem, który może prowadzić Twoje wdrożenie.
- Przegląd procesów, które kosztują Cię najwięcej czasu i pieniędzy.
- Pisemne podsumowanie: co zautomatyzować, w jakiej kolejności, z widełkami kosztów.
W 30 minut wybieramy proces do oceny, a w ciągu 2 dni roboczych dostajesz rekomendację, także gdy lepsza będzie prostsza droga.
0 zł
30 minut · pisemne podsumowanie w 2 dni robocze
Terminy zobaczysz w swojej strefie czasowej.
Wolisz napisać? Opisz proces