Przepaść między symulacją a halą

Mała jeżdżąca baza robota, jedno koło na gładkiej płytce, drugie na porysowanej macie z przewodem w poprzek

Roboty nie psują się na przypadkach, które przetestowałeś. Psują się na palecie owiniętej przez innego dostawcę, na klatce zostawionej w alejce, o której mapa mówi, że jest pusta, na podłodze jeszcze mokrej po sprzątaniu i na tym, że o 03:00 światło pada z innej strony. Nic z tego nie jest awarią modelowania. To zwyczajna przepaść między światem, który wyspecyfikowałeś, a światem, który nie wie, że został wyspecyfikowany.

Dlaczego ta przepaść jest strukturalna

Symulator zawiera to, co jego autor pomyślał, żeby w nim umieścić. To nie zarzut, tylko definicja. Każda symulacja jest modelem, każdy model jest uproszczeniem, a uproszczenia wybiera się, zanim wiadomo, które okażą się ważne.

Efektem jest przewidywalna asymetria. Wyniki w symulacji poprawiają się gładko wraz z treningiem. Wyniki na hali poprawiają się skokami, a każdy skok odpowiada temu, że ktoś odkrył kategorię rzeczy, której symulator nigdy nie zawierał.

Tej przepaści nie zasypiesz lepszym symulatorem, choć lepszy symulator pomaga. Zasypujesz ją, projektując pod przypadek, w którym świat jest poza modelem — a to zupełnie inny problem inżynierski.

Cztery rzeczy, które naprawdę zawodzą

Dryf percepcji. Oświetlenie, kurz, skropliny, nowy wzór etykiety, odblaskowa folia. Detektor był świetny w czerwcu i jest subtelnie gorszy w listopadzie, a nic tej zmiany nie ogłosiło.

Mapa jest twierdzeniem. Układy się zmieniają. Paleta zaparkowana w korytarzu na dwie godziny nie pojawia się w planie zakładu, a pewność maszyny co do własnej lokalizacji jest często najwyższa tuż przed tym, jak okaże się błędna.

Ludzie nie zachowują się jak przeszkody. Człowiek podejdzie do robota, żeby zobaczyć, co robi. Omijanie nastrojone na rzeczy, które stoją w miejscu, produkuje pewne siebie zachowanie wobec rzeczy, które nie stoją.

Długi ogon składa się ze zwykłych przedmiotów. Nie z przykładów adwersaryjnych. Miotła. Upuszczona rękawica. Dwie palety ustawione tak, jak nikt palet nie ustawia.

Projektowanie pod to, że świat jest inny

Użyteczna zmiana polega na przestaniu traktować nieoczekiwane stany jak błędy do wyeliminowania i zaczęciu traktować je jak kategorię, którą system musi obsługiwać domyślnie.

Wynikają z tego trzy nawyki.

Pewność musi być sygnałem pierwszej kategorii. Nie deklarowane prawdopodobieństwo modelu, źle skalibrowane dokładnie tam, gdzie go potrzebujesz, tylko bieżące porównanie tego, czego maszyna się spodziewała, z tym, co zobaczyła. Spadająca zgodność powinna automatycznie zawężać obwiednię, zanim cokolwiek w cokolwiek uderzy.

Niepewność rozstrzyga się w stronę zatrzymania. W oprogramowaniu wieloznaczność rozstrzyga się zwykle w stronę „spróbuj czegoś”. Gdy w grę wchodzi masa, bezpieczne domyślne jest odwrotne: zwolnij, zatrzymaj się, zapytaj. Robot, który się zatrzymuje, jest utrapieniem operacyjnym. Robot, który zgaduje, jest raportem powypadkowym.

Obwiednia niesie to, czego model nie uniesie. Maszyna strukturalnie niezdolna do przekroczenia limitu siły nie musiała przewidzieć konkretnego przedmiotu, w który się opiera. Dlatego uprząż znaczy więcej niż kolejne dziesięć punktów w benchmarku: zamienia otwarty problem percepcyjny w ograniczony problem fizyczny.

Pułapka czwartego miesiąca

Najdroższa wersja tej przepaści to nie pierwszy dzień. To czwarty miesiąc.

Robot działa, zespół przestaje patrzeć, a otoczenie zmienia się dalej: nowe produkty, nowe opakowania, przeorganizowana alejka, inny harmonogram sprzątania. Nikt nie myśli o żadnej z tych rzeczy jak o zmianie w robocie, więc nic nie jest ponownie walidowane. Skuteczność degraduje się po cichu, aż coś zrobi z tego hałas.

Przeciwdziałanie jest nieefektowne. Loguj to, co maszyna postrzega, decyduje i czego odmawia. Śledź odmowy w czasie — rosnący wskaźnik odmów w jednej strefie to najwcześniejszy sygnał, że świat się przesunął. Odtwarzaj zarejestrowane zmiany wobec obwiedni po każdej jej modyfikacji. I traktuj zmianę opakowania jak zmianę w systemie, bo nią jest.

Pod co budujemy

Gdy KyberBot prowadzi robota, zakłada, że symulator się mylił. Uprząż ogranicza to, czego maszyna może spróbować, niezależnie od tego, w co wierzy planer, homeostat ściąga autonomię, gdy zgodność ze światem spada, a ślad audytowy istnieje po to, żeby czwarty miesiąc dało się zdiagnozować, a nie owiać tajemnicą. Ten sam asystent, który Cię zna, w robocie jest tym, który nie zgaduje.

Nic z tego nie czyni robota mądrzejszym. Czyni awarie małymi — a na hali, po której chodzą ludzie, to jedyna właściwość, która naprawdę się liczy.