← Wszystkie poradniki Pod maską

Dlaczego detektor uruchamia się w Twojej przeglądarce

Model o wielkości 40 MB, WebAssembly i brak punktu końcowego do przesyłania. Co ta architektura daje, ile kosztuje i dlaczego warto się na ten kompromis zdecydować.

· 8 min czytania · Best AI Image Detector

Dzięki temu Twoje zdjęcia nigdy nie opuszczają Twojego urządzenia. Model pobiera się raz i działa na Twoim sprzęcie, co eliminuje przesyłanie, koszty serwera oraz relację związaną z przetwarzaniem danych w tym samym momencie.

Czym właściwie jest ta architektura

Vision transformer przekonwertowany do formatu ONNX i skompresowany do około 40 MB, podzielony na dwie części, aby każda mieściła się w limicie rozmiaru pliku platformy hostingowej. Jest składany z powrotem w przeglądarce, a jego suma kontrolna jest weryfikowana przed uruchomieniem czegokolwiek.

Wnioskowanie odbywa się za pośrednictwem WebAssembly, co pozwala skompilowanemu środowisku wykonawczemu działać z prędkością zbliżoną do natywnej wewnątrz karty przeglądarki. Sama środowisko wykonawcze to skompresowany plik binarny WASM ładowany wraz z wagami.

Nic w tym nie jest już niezwykłe. To, co w 2021 roku było demonstracją badawczą, jest dziś normalnym sposobem dostarczania modelu, a przeglądarki wykonały większość pracy.

Co to daje

Nieruchomość W przeglądarce Na serwerze
Zdjęcie opuszcza Twoje urządzenie No niemożliwe Yes wymagane
Koszt sprawdzenia Yes zero No realna moc obliczeniowa
Wymagana umowa powierzenia przetwarzania danych No Yes
Działa bez sieci po załadowaniu Yes No
Model może być utrzymywany jako prywatny No jest pobierany Yes
Pierwsze sprawdzenie jest natychmiastowe No model pobiera się raz Yes
Ten sam produkt zbudowany na dwa sposoby. Różnice mają charakter architektoniczny, a nie wynikają z polityki.

Pierwszy wiersz to powód, dla którego reszta istnieje. Ponieważ nie ma punktu końcowego przesyłania, nie ma zbioru cudzych zdjęć, polityki retencji do napisania, naruszenia do zgłoszenia ani niczego do przekazania na żądanie.

Drugi wiersz wyjaśnia, dlaczego usługa może być darmowa bez licznika użycia. Sprawdzenie nic nie kosztuje po stronie serwera, więc nie ma kosztu przypadającego na obraz do odzyskania, co zmienia to, jak musi wyglądać cennik.

Ile to kosztuje

Trzy realne kompromisy przedstawione wprost, ponieważ strona wymieniająca wyłącznie zalety to reklama.

  1. Pierwsze sprawdzenie jest wolne. Czterdzieści megabajtów musi dotrzeć, zanim cokolwiek się stanie. Przy szybkim połączeniu to kilka sekund, przy słabym dłużej. Kolejne sprawdzenia używają ponownie modelu z pamięci podręcznej i uruchamiają się natychmiast.
  2. Starsze urządzenia sobie nie radzą. Wnioskowanie wymaga pamięci i mocy obliczeniowej, których pięcioletni telefon może nie mieć w wystarczającym stopniu. Serwer nie interesuje się tym, jakie urządzenie trzymasz w ręku.
  3. Model jest publiczny. Wszystko pobrane do przeglądarki można zachować. Model po stronie serwera może być własnościowy; ten taki być nie może, a wagi są i tak otwartym punktem kontrolnym badań.

O trzecim punkcie warto powiedzieć wprost. Dostarczenie modelu klientowi oznacza oddanie go. Jest to tutaj akceptowalny kompromis, ponieważ wagi zostały już opublikowane, a praca czyniąca narzędzie użytecznym to kalibracja, dzielenie na kafelki i interpretacja zbudowana wokół nich.

Problemy inżynieryjne, o których warto wiedzieć

Podział dużego pliku

Statyczne platformy hostingowe nakładają limity na rozmiar pojedynczych plików. Model o wadze 40 MB przekraczał ten limit, dlatego jest dostarczany jako dwie deterministyczne części, które są składane w przeglądarce i weryfikowane z sumą kontrolną manifestu przed użyciem. Uszkodzona lub podmieniona część kończy się wyraźnym błędem zamiast cichego generowania błędnych wyników.

Nieładowanie niczego, dopóki nie jest potrzebne

Model, środowisko wykonawcze i czytnik danych uwierzytelniających nie są pobierane podczas ładowania strony. Docierają przy pierwszej interakcji, więc osoba czytająca artykuł nie pobiera niczego z tego. To sprawia, że strony działają szybko dla zdecydowanej większości odwiedzających, którzy nigdy nie uruchamiają sprawdzenia.

Dekodowanie niewygodnych formatów

Formaty HEIC z iPhone'ów, AVIF, TIFF i JPEG XL wymagają dekodowania przed oceną. Przeglądarki radzą sobie obecnie z większością z nich natywnie, co eliminuje to, co kiedyś było największą częścią pracy po stronie klienta w tego typu narzędziu.

Kiedy ta architektura jest złym wyborem

Nie jest uniwersalnie lepsza. Serwer ma większy sens, gdy model jest własnościowy i wart ochrony, gdy jest zbyt duży do przesłania, gdy potrzebujesz wyników w potoku backendowym zamiast przed użytkownikiem lub gdy potrzebujesz gwarantowanego czasu odpowiedzi niezależnie od urządzenia.

W przypadku narzędzia, które ktoś otwiera, aby sprawdzić jedno podejrzane zdjęcie, żadne z tych ograniczeń nie ma zastosowania, a cecha prywatności jest wart więcej niż wszystko, co dodałby serwer.

Czego to uniemożliwia

Wybór klienta niesie za sobą konsekwencje wykraczające poza prywatność, a niektóre z nich to ograniczenia, które warto nazwać po imieniu, zamiast nazywać je funkcjami.

Nie ma historii. Wynik istnieje tylko na karcie, która go wygenerowała, więc niczego nie można później odszukać, chyba że zostało wyeksportowane. To bezpośredni koszt braku konta i zarazem najczęściej zgłaszana rzecz, którą ta architektura czyni kłopotliwą.

Nie ma współdzielonego stanu. Dwie osoby nie mogą widzieć tej samej kolejki, a zespół nie może wzajemnie przeglądać swoich sprawdzeń. Współdzielony link niesie ze sobą pojedynczy wynik, który obejmuje rozmowę, a nie przepływ pracy.

Nie ma API. Cokolwiek działa w karcie przeglądarki, nie może być wywołane z poziomu potoku backendowego, co całkowicie wyklucza zastosowania o najwyższej skali. To realne luki, a uczciwe stanowisko jest takie, że stanowią one cenę za właściwość, która ma większe znaczenie.

Często zadawane pytania

Czy moje zdjęcie naprawdę nie jest przesyłane?
Tak, i nie musisz wierzyć w to na słowo. Otwórz kartę sieciową w narzędziach dla deweloperów i uruchom sprawdzenie. Zobaczysz pobieranie modelu i środowiska wykonawczego oraz brak żądania przesyłającego Twój plik. To jedno z niewielu roszczeń dotyczących prywatności, które użytkownik może zweryfikować bezpośrednio w około trzydzieści sekund.
Dlaczego model jest taki duży?
To vision transformer z milionami parametrów, skompresowany tak dalece, jak to możliwe bez utraty dokładności. Istnieją mniejsze modele i radzą sobie zauważalnie gorzej, zwłaszcza na skompresowanych, przyciętych zdjęciach, które ludzie faktycznie sprawdzają. Czterdzieści megabajtów to cena dokładności.
Czy to działa w trybie offline?
Po pierwszym załadowaniu w dużej mierze tak. Gdy model zostanie zapisany w pamięci podręcznej, ocena przebiega całkowicie bez użycia sieci. Jedynym elementem wymagającym połączenia jest pobieranie zdjęcia z wklejonego adresu URL, natomiast sprawdzenie pliku lokalnego działa bez niego.
Czy to rozładuje baterię mojego telefonu?
Pojedyncze sprawdzenie to kilka sekund przetwarzania, co można porównać do załadowania ciężkiej strony internetowej. Uruchomienie zestawu dwudziestu pięciu jest bardziej zauważalne. To nie jest coś, co zostawiałbyś uruchomione, i nie stanowi to znaczącego kosztu przy sporadycznym użyciu.
Czy nie można użyć WebGPU, aby przyspieszyć działanie?
W przypadku urządzeń, które je obsługują, tak, lecz obsługa jest wciąż na tyle nierówna, że ścieżka WASM i tak musi istnieć. Dodanie drugiej ścieżki wykonania podwaja obszar, w którym wyniki mogłyby się rozjeżdżać między użytkownikami, co stanowi realny koszt w zamian za wzrost prędkości, którego większość osób by nie zauważyła.
Czy przeglądarka wysyła cokolwiek na temat mojego zdjęcia?
Nie. Nie ma telemetrii dotyczącej nazw plików, wymiarów ani wyników, ponieważ wynik nie istnieje nigdzie poza Twoją kartą. To konsekwencja architektury, a nie ustawienia, i tę część warto zrozumieć.