Wydanie systemu AI to kod, prompt, model i indeks naraz

Zapytajcie zespół, jak wycofałby wczorajsze wydanie, a zwykle usłyszycie o ponownym wdrożeniu poprzedniego builda. W klasycznym oprogramowaniu to cała odpowiedź.

W systemie AI obejmuje ona jedną z kilku rzeczy, które decydują o zachowaniu — i często nie tę, która się zmieniła. Odpowiedzi pogorszyły się we wtorek, kodu nikt nie dotykał od zeszłego tygodnia, a historia buildów nie ma na ten temat nic do powiedzenia.

Co naprawdę zmienia zachowanie

Kod. Budowany, testowany i wdrażany przez potok. Tę część praktyka wydań obsługuje już dobrze.

Prompty i instrukcje. Często trzymane w magazynie konfiguracji, w bazie albo w panelu administracyjnym, co znaczy, że zmieniają się poza potokiem i poza historią wersji.

Wersja modelu. Przypięta przez Was albo wycofana przez dostawcę według jego harmonogramu. Alias, który zawsze wskazuje bieżącą wersję, to wydanie, którego nikt nie zaplanował.

Indeks wyszukiwania. Zbudowany z Waszych dokumentów przy określonym podziale na fragmenty, modelu osadzeń i zestawie filtrów. Przebudowany w miejscu, nie ma poprzedniej wersji, do której można wrócić.

Konfiguracja. Progi, reguły kierowania ruchu między modelami, definicje narzędzi. Małe wartości o dużych skutkach, zmieniane zwykle przez tego, kto akurat ma dostęp.

Każdy z tych elementów może zmienić się niezależnie, według własnego harmonogramu i ręką innej osoby. Praktyka wydań, która wersjonuje tylko pierwszy z nich, wersjonuje to, co najłatwiej zobaczyć, a niekoniecznie to, co się zmieniło.

Infografika

Z czego składa się wydanie systemu AI

  1. 01KodBudowany i wdrażany przez potok, tak jak zawsze.
  2. 02Prompty i instrukcjeWersjonowane w repozytorium, nigdy edytowane wyłącznie w panelu administracyjnym.
  3. 03Wersja modeluPrzypięta jawnie; ruchomy alias to niezaplanowane wydanie.
  4. 04Indeks wyszukiwaniaBudowany obok poprzedniego, nigdy przebudowywany w miejscu.
  5. 05KonfiguracjaProgi, kierowanie ruchu i definicje narzędzi, wersjonowane razem z resztą.
Wycofanie to powrót wszystkich pięciu elementów do stanu, który oceniono razem.

Jeden manifest, oceniany w całości

Rozwiązanie jest mało efektowne. Jeden manifest wydania wskazuje wersję każdego z tych pięciu elementów, a na produkcję trafiają tylko manifesty ocenione razem. Wynik z zestawu ewaluacyjnego jest przypięty do manifestu, więc wydanie to nie tylko zestaw wersji, ale zestaw wersji o znanej jakości.

Wycofanie oznacza wtedy powrót do poprzedniego manifestu, ze wszystkimi pięcioma częściami naraz, do stanu, który zmierzono, zamiast zgadywania, który element się ruszył.

Manifest odpowiada też na pierwsze pytanie każdego przeglądu po incydencie: co dokładnie wtedy działało? Z manifestem to jedno sprawdzenie. Bez niego to popołudnie odtwarzania stanu z logów, historii panelu administracyjnego i listy zmian publikowanej przez dostawcę.

Prompty należą do repozytorium z tego samego powodu co kod. Jeśli prompt da się zmienić w panelu administracyjnym bez przejścia przez ewaluację, proces wydań obejmuje mniej, niż zespołowi się wydaje.

Wdrażanie zmiany, która nie rzuca wyjątków

Klasyczne wdrożenie obserwuje błędy. Zmiana w systemie AI rzadko jakiekolwiek produkuje, więc wdrożenie musi obserwować coś innego.

Najpierw tryb cienia, gdzie się da. Nowy manifest działa na prawdziwym ruchu obok starego; jego odpowiedzi są oceniane, ale nie trafiają do użytkowników. Szukacie różnic, a nie awarii.

Wdrożenie kanarkowe na jakości, nie tylko na błędach. Część użytkowników dostaje nowy manifest, a poszerzenie zależy od wyniku ewaluacji i od sygnałów behawioralnych, takich jak odmowy, poprawki i porzucone odpowiedzi, a nie tylko od błędów i opóźnień.

Poprzedni indeks zostaje przy życiu. Nowy indeks budujecie obok starego, przełączacie ruch i trzymacie stary, dopóki nowy manifest się nie sprawdzi. Przebudowa indeksu w trakcie incydentu to najwolniejsze wycofanie, jakie istnieje.

Terminy dostawców to daty wydań. Ogłoszenie wycofania modelu to wydanie, którego nie planowaliście. Wpiszcie je do planu w dniu ogłoszenia i puśćcie tą samą ścieżką co każdą inną zmianę.

Wycofanie powinno być nudne

Typową pierwszą reakcją na incydent jakościowy jest powrót do poprzedniego promptu albo poprzedniej wersji modelu. Ta rada zakłada, że poprzedni stan istnieje, jest zapisany i został oceniony. To praktyka wydań sprawia, że to założenie jest prawdziwe.

Przećwiczcie to raz, w spokojnym tygodniu. Ścieżka wycofania, której nikt nigdy nie przeszedł, jest hipotezą, a incydent to zły moment na jej sprawdzanie. Ustalcie też z góry, kto może uruchomić wycofanie i na jaki sygnał. Wycofanie, które przed uruchomieniem wymaga spotkania, nastąpi za późno.

To wdrożeniowa strona inżynierii aplikacji AI-native: CI, środowiska i runbooki na Waszej infrastrukturze, udokumentowane na tyle dobrze, żeby Wasz zespół prowadził wydania — i wycofania — bez nas.