
Zerowe uczenie maszynowe (zkML) to połączenie magicznych technik kryptograficznych z sztuczną inteligencją. Wyobraź sobie możliwość udowodnienia, że model uczenia maszynowego wygenerował konkretne wyniki, bez ujawniania danych wejściowych, wewnętrznego działania lub wyników - to wizja zkML. Obecnie wiele nowoczesnych metod rywalizuje o przekształcenie tej wizji w rzeczywistość.
W tym artykule zagłębimy się w trzy wiodące paradygmaty zkML - JOLT (dostosowane do operacji uczenia maszynowego i z funkcjonalnością wstępnej kompilacji: JOLTx), EZKL (oparte na Halo2) i DeepProve (oparte na GKR), porównując ich działanie i wydajność oraz wyjaśniając, dlaczego podejście JOLT oparte na wyszukiwaniu może wstrząsnąć całym przemysłem jak śnieżna kula w taksówce.
Czym jest zkML?
Zerowe uczenie maszynowe (zkML) to nowa dziedzina, która łączy zerowe dowody (ZKP) z uczeniem maszynowym (ML), aby osiągnąć weryfikowalne i prywatne obliczenia ML. zkML pozwala dowódcy udowodnić, że model ML został poprawnie wykonany, bez ujawniania wrażliwych danych wejściowych lub żądania od weryfikatora ponownego uruchamiania obliczeń. Można go także używać do ukrywania wag modeli i modeli.
To kluczowe dla zastosowań w finansach zdecentralizowanych, AI chroniącym prywatność i bezpiecznych obliczeniach poza łańcuchem. Dzięki zapewnieniu prywatności i dezintegracji wnioskowania ML, zkML toruje drogę dla przejrzystych i skalowalnych aplikacji AI w blockchainie, Web3 i innych obszarach.
Techniczne podstawy zkML
Zerowe dowody oparte na JOLT (JOLTx) - JOLT to zkVM, rodzaj zerowej wiedzy maszyny wirtualnej, która może udowodnić wykonanie dowolnego programu (praca JOLT, blog JOLT).
JOLT celuje w zestaw instrukcji RISC-V, co oznacza, że możesz skompilować dowolny program (napisany w językach wysokiego poziomu, takich jak Rust czy C++) do asemblera RISC-V, a następnie wygenerować dowód, że ten kod asemblerowy działa poprawnie.
JOLT wprowadza nowy front oparty na koncepcji 'punktów wyszukiwania': nie nakłada już ciężkich ograniczeń algebraicznych na każdą operację, lecz przekształca instrukcje CPU w wyszukiwanie w ogromnej, wcześniej zdefiniowanej tabeli wyników, każda operacja obliczeniowa (np. dodawanie, mnożenie, a nawet operacje bitowe) będzie porównywana z tą tabelą za pomocą szybkich parametrów wyszukiwania zwanych Lasso lub najnowszym Shout, aby przeprowadzić weryfikację.
Obwody JOLT muszą jedynie przeprowadzać operacje wyszukiwania w tych tabelach, co znacznie upraszcza proces generowania dowodów. Na przykład, operacje 'lub' i 'i' o 64 bitach (które są kosztowne w tradycyjnych ograniczeniach arytmetycznych) w JOLT wymagają jedynie jednego wyszukiwania w tabeli.
Ten projekt zapewnia, że dowódca w każdej instrukcji CPU wykonuje głównie przesyłanie niewielkiej ilości elementów pól (około 6 256-bitowych liczb na krok) i dowodzi poprawności tych wyszukiwań, co sprawia, że JOLT jest uniwersalnym i skalowalnym podejściem: każdy model uczenia maszynowego można uznać za program i udowodnić przy minimalnym projektowaniu dostosowanych obwodów.
Planujemy wnieść wkład w stos JOLT, oferując pewne dedykowane funkcje wstępnej kompilacji dla operacji uczenia maszynowego. Nieliniowości mogą być efektywnie obsługiwane przez wyszukiwanie, podczas gdy inne wspólne właściwości mogą być obsługiwane przez sumowanie i weryfikację oraz niektóre techniki unikalne dla JOLT zkVM.
Rozszerzamy to jako JoltX, ale w rzeczywistości dodaje to kilka narzędzi i dedykowanych funkcji wstępnej kompilacji na podstawie JOLT. Oczekujemy, że wkrótce to ogłosimy, bądźcie czujni!
Jakie inne znakomite projekty zkML istnieją?
EZKL (oparte na Halo2) - EZKL wykorzystuje bardziej tradycyjną metodę obwodów SNARK zbudowaną na podstawie Halo2.
EZKL nie symuluje CPU, lecz działa na poziomie grafu obliczeniowego modeli uczenia maszynowego. Deweloperzy eksportują sieci neuronowe (lub jakiekolwiek grafy obliczeniowe) do plików ONNX, a pakiet narzędzi EZKL kompiluje je w zestaw dostosowanych do tego modelu wielomianowych ograniczeń (obwodów arytmetycznych).
Każda warstwa sieci neuronowej - na przykład konwolucja, mnożenie macierzy, funkcje aktywacji - jest przekształcana w ograniczenia, które można rozwiązać przez dowódcę Halo2. Aby obsłużyć obliczenia nienaturalnych wielomianów (np. aktywację ReLU lub obliczenia dużych liczb całkowitych), Halo2 również używa parametrów wyszukiwania, jednak w bardziej ograniczonym zakresie.
Na przykład, duże tabele (np. wszystkie $2^{64}$ możliwości operacji 64-bitowych) muszą być podzielone lub 'podzielone' na mniejsze tabele (np. 16-bitowe bloki), co wymaga wielokrotnych wyszukiwań oraz dodatkowych ograniczeń, aby zasymulować pierwotne obliczenia. Ten podział zwiększa koszty i złożoność obwodu.
Dlatego generowanie dowodów w EZKL polega na stworzeniu wielu takich ograniczeń i użyciu algorytmu dowodowego Halo2 (zwykle KZG lub zobowiązań opartych na Halo), aby wygenerować dowód. Zaleta metody EZKL polega na tym, że ma zdolność rozpoznawania modeli - może być specjalnie optymalizowana pod kątem warstw sieci neuronowej, a nawet może przycinać lub kwantyzować wagi w celu zwiększenia wydajności.
Jednak każdy nowy model lub typ warstwy może wymagać pisania dostosowanych ograniczeń lub przynajmniej ponownego generowania obwodu, a dowódca musi obsługiwać duże systemy ograniczeń, co może być wolne dla dużych modeli.
DeepProve (oparte na GKR) - DeepProve zaproponowane przez Lagrange'a przyjęło inną ścieżkę, stosując interaktywny protokół dowodowy zwany GKR (Goldwasser–Kalai–Rotblum).
W istocie, GKR traktuje cały proces obliczeniowy (podobnie jak w forward pass sieci neuronowej) jako hierarchiczny obwód arytmetyczny i dowodzi jego poprawności za pomocą protokołu sumowania i weryfikacji, a nie złożonych obliczeń wielomianowych. Przepływ pracy DeepProve to wydobycie modelu (również przez ONNX), a następnie automatyczne generowanie sekwencji obliczeniowych odpowiadających każdemu poziomowi sieci neuronowej.
Nie przekształca go bezpośrednio w statyczne obwody SNARK, lecz używa GKR do sprawdzania wyjścia każdej warstwy w stosunku do jej wejścia z minimalnymi kosztami związanymi z kryptograficznymi haszami/zaangażowaniem. Dowódca w schemacie GKR wykonuje rzeczywiste obliczenia modelu, a następnie przeprowadza interaktywny dowód (używając algorytmu Fiat-Shamir, aby uczynić go nieinteraktywnym), aby upewnić się, że każda warstwa została poprawnie obliczona.
Zaletą GKR jest to, że jego złożoność dowodzenia jest liniowo skorelowana z rozmiarem obwodu (O(n)), z niewielkim stałym czynnikiem zwalniającym w porównaniu do normalnego wykonania. W rzeczywistości dla niektórych zadań (takich jak duże mnożenie macierzy), nowoczesne systemy oparte na GKR mogą być wolniejsze od zwykłego wykonania o mniej niż 10 razy. DeepProve łączy to z nowoczesną technologią zobowiązań wielomianowych, skutkując zwięzłym dowodem po etapie weryfikacji, co skutecznie stworzyło zkSNARK dla wnioskowania w sieciach neuronowych.
Jedną z wad GKR jest to, że najlepiej nadaje się do strukturalnych obliczeń (np. statyczne warstwy sieci neuronowej) i wymaga bardziej złożonej logiki protokołów kryptograficznych, ale jego przewagą jest pierwotna prędkość przy dowodzeniu obliczeń głębokich.
Zalety i wady
Każda metoda ma swoje unikalne zalety i potencjalne wady.
JOLTx (wstępnie skompilowane zkVM oparte na wyszukiwaniu)
Zaleta: niezwykle elastyczne (może udowodnić dowolny kod, a nie tylko sieci neuronowe) i korzysta z optymalizacji 'punktów wyszukiwania' JOLT, co czyni nawet operacje na poziomie bitów tanimi.
Nie wymaga dostosowanych obwodów dla każdego modelu - wystarczy skompilować i uruchomić - co znacznie poprawia doświadczenie dewelopera i zmniejsza ryzyko błędów.
Użycie Lasso w poszukiwaniu oznacza udowodnienie, że ograniczenia są w głównej mierze rozszerzane na podstawie liczby wykonanych operacji, a nie ich złożoności, co sprawia, że JOLT ma spójny model kosztów.
Wady: jako uniwersalna maszyna wirtualna może wprowadzać pewne koszty dla każdej instrukcji; dla bardzo dużych modeli z milionami prostych operacji, dedykowane metody, takie jak GKR, mogą osiągnąć niższy absolutny czas dowodzenia przez obliczenia strumieniowe.
Ponadto JOLT jest stosunkowo nowy - opiera się na nowatorskich parametrach wyszukiwania i złożonych tabelach na poziomie ISA, które są technologią na czołowej linii, potrzebującą czasu na dojrzenie. Ale biorąc pod uwagę projekt, nawet obecny prototyp JOLT wykazuje lepszą wydajność niż wcześniejsze zkVM.
EZKL (Halo2 / PLONK)
Zaleta: opiera się na szeroko stosowanej strukturze SNARK, co oznacza, że może korzystać z dostępnych narzędzi, audytów i wsparcia weryfikatorów na łańcuchu (dowody Halo2 mogą być weryfikowane przy użyciu kryptograficznych technik przyjaznych dla Ethereum).
EZKL jest stosunkowo łatwy do użycia dla naukowców zajmujących się danymi: można używać modeli PyTorch lub TensorFlow, eksportować do ONNX i uzyskać dowód, że wnioskowanie modelu zostało poprawnie zakończone.
Zrealizowano już praktyczną integrację (od modeli ryzyka DeFi po sztuczną inteligencję w grach, o czym omówimy poniżej), co pokazuje, że potrafi udowodnić prawdziwe zadania związane z uczeniem maszynowym.
Wady: w miarę wzrostu modelu wydajność może stać się wąskim gardłem, a tradycyjne obwody SNARK często wiążą się z ogromnymi kosztami - historycznie, nakład pracy dowódcy był milion razy większy niż po prostu uruchomienie modelu.
Metoda Halo2 stara się optymalizować, ale operacje takie jak duże mnożenie macierzy czy nieliniowe aktywacje nadal przekształcają się w wiele ograniczeń. Potrzeba podziału dużych wyszukiwań (np. 32-bitowej arytmetyki lub funkcji nieliniowych) zwiększa dodatkowe ograniczenia i czas dowodzenia.
W istocie, EZKL może mieć trudności z obsługą bardzo dużych sieci (zarówno pod względem czasu dowodzenia, jak i pamięci), czasami wymagając podziału obwodu lub użycia specjalnych technik, aby dostosować się do ograniczeń praktycznych. To bardzo dobra ogólna metoda SNARK, ale nie jest najszybsza w przypadku skalowania.
DeepProve (GKR)
Zaleta: zapewnia bardzo szybki czas generowania dowodów dla głębokich modeli, unikając kosztów związanych z kodowaniem każdego mnożenia jako wielomianowego zobowiązania. GKR sprawia, że dowódca musi przeprowadzać prawie wyłącznie standardowe obliczenia numeryczne, a następnie dodać cienką warstwę kryptograficznej weryfikacji. Zespół DeepProve raportuje, że na równoważnych sieciach neuronowych, prędkość dowodu GKR jest od 54 do 158 razy szybsza niż w EZKL.
W rzeczywistości, im większy model, tym większa przewaga GKR: w miarę wzrostu złożoności modelu, przewaga DeepProve również rośnie, ponieważ jego liniowa ekspansja pozostaje kontrolowana, podczas gdy koszty metod opartych na obwodach wciąż rosną.
Wady: Metoda ta jest w pewnym sensie ograniczona do obliczeń podobnych do obwodów (na szczęście tego typu obliczenia obejmują większość uczenia maszynowego z przejrzystym przekazem), jeśli Twój ładunek roboczy zawiera dużą ilość logiki warunkowej lub nieregularnych obliczeń, jej elastyczność maleje - te operacje są łatwiejsze do obsługi w maszynach wirtualnych, takich jak JOLT.
Ponadto ustawienie dowodów GKR jako dowodów zerowej wiedzy i zwięzłych prowadzi do tego, że rozmiar dowodu jest większy niż w klasycznych dowodach SNARK oraz w programach weryfikacyjnych, chociaż te ostatnie są znacznie szybsze niż ponowne uruchamianie całego modelu, ale nie są realizowane natychmiast.
Czas weryfikacji dowodów DeepProve dla CNN wynosi około 0,5 sekundy, co jest doskonałe dla dużych modeli, ale tradycyjne weryfikatory SNARK mogą to zrobić w milisekundach.
Dlatego DeepProve koncentruje się na wydajności, co może odbywać się kosztem złożoności protokołu dowodowego i nieco cięższych zadań weryfikacyjnych, takich jak dowody Halo2. Jest to potężna metoda do skalowania zkML, zwłaszcza w środowisku serwerowym lub chmurowym, chociaż przed dalszymi optymalizacjami może być mniej odpowiednia dla lekkich klientów lub weryfikacji na łańcuchu.
Porównanie wydajności i efektywności
Pod względem pierwotnej wydajności, każda metoda zkML ma różne priorytety, czas generowania dowodu jest zazwyczaj kluczowym wskaźnikiem. Dowódca DeepProve oparty na GKR obecnie zajmuje pierwsze miejsce pod względem prędkości - testy porównawcze pokazują, że przy tym samym modelu generowanie dowodu jest od 50 do 150 razy szybsze niż w EZKL.
Ten skok wynika z bliskolinearnego algorytmu GKR, który unika ciężkich wielomianowych obliczeń algebraicznych obwodów SNARK. W rzeczywistości, wnioskowanie w sieci neuronowej, które mogłoby zająć godziny, aby udowodnić w EZKL, można zrealizować w ciągu kilku minut za pomocą DeepProve, a w miarę jak rozmiar modelu rośnie (więcej warstw, więcej parametrów), ta różnica będzie się powiększać, ponieważ koszty jednorazowych operacji GKR pozostają niskie, podczas gdy koszty Halo2 rosną.
Cele wydajnościowe JOLT są równie ambitne - jego celem jest być szybszym o rząd wielkości niż istniejące struktury SNARK. Zespół a16z już zaprezentował Lasso (silnik wyszukiwania w JOLT), który działa 10 razy szybciej niż mechanizm wyszukiwania Halo2 i planuje zwiększyć prędkość do 40 razy.
Oznacza to, że operacje, które kiedyś były wąskim gardłem (na przykład te uciążliwe operacje bitowe lub obliczenia na dużych polach) stały się znacznie tańsze. JOLT zasadniczo wymienia obliczenia na wyszukiwania w tabelach, a dzięki Lasso koszt wyszukiwania wartości w ogromnej wirtualnej tabeli jest niski. Koszt nie wzrasta wraz ze wzrostem rozmiaru tabeli (nie, nie przechowują one w pamięci 2^{128}$ wierszy danych!) - rośnie głównie wraz z liczbą wykonanych wyszukiwań.
Dlatego, jeśli Twój model uczenia maszynowego wykonał milion ReLU, koszt dowodzenia wzrasta wraz z tym milionem operacji, ale każda operacja to tylko szybkie sprawdzenie w tabeli. Wstępne wyniki wskazują, że dowódca JOLT przetwarza tylko małą ilość pól elementów zobowiązań na krok instrukcji, co jest bardzo niskim kosztem. Krótko mówiąc, JOLT maksymalizuje obliczenia dla każdej operacji, pomijając złożone dynamiczne obliczenia matematyczne dzięki użyciu wstępnie obliczonej wiedzy (tabeli przeszukiwań), co znacznie obniża tradycyjne koszty SNARK.
EZKL, w połączeniu z Halo2, choć wolniejszy, również nie stoi w miejscu. Korzysta z optymalizacji Halo2, takich jak dostosowane bramy i częściowe wyszukiwanie. Dla modeli średniej wielkości EZKL jest całkowicie użyteczny i udowodniono, że przewyższa niektóre wcześniejsze alternatywy. Na Cairo jest około 3 razy szybszy niż metody oparte na STARK, a w jednym teście porównawczym w 2024 roku był 66 razy szybszy niż RISC-V STARK.
To pokazuje, że starannie zoptymalizowane obwody SNARK mogą przegonić prostsze metody realizacji wirtualnych maszyn, z tą wadą, że aby osiągnąć tę prędkość, EZKL i Halo2 muszą starannie dopasować wszystko, a także wciąż dziedziczą podstawowe koszty związane z zobowiązaniami wielomianowymi, FFT i algorytmami dowodowymi.
W porównaniu, nowe podejścia JOLT i DeepProve unikają większości kosztów związanych z FFT lub wysokiego rzędu wielomianów - JOLT ogranicza się do operacji wyszukiwania (dodając nowy parametr do efektywnego przetwarzania operacji wyszukiwania), podczas gdy DeepProve korzysta z sumowania i weryfikacji (co jest odpowiednie dla wielomianów wieloliniowych i wymaga tylko lekkich haseł).
W klasycznym SNARKu wiele czasu spędza się na obliczaniu dużych FFT lub operacji wielo-skalarnych. GKR unika FFT, operując na boolowskich hiperkostkach i rozszerzeniach wieloliniowych, w dużej mierze unikając FFT. JOLT unika dużych FFT wymaganych podczas wyszukiwania, ponieważ nie implementuje gigantycznych tabel od samego początku.
Pod względem wielkości dowodów i weryfikacji istnieje kompromis. JOLT i EZKL (Halo2) ostatecznie generują standardowe dowody SNARK (zwykle kilka KB), które można szybko zweryfikować (trochę parowania lub pewnych wartości wielomianowych).
Metoda DeepProve jest podobna do STARK, może generować większe dowody (od dziesiątek KB do setek KB, w zależności od modelu), a weryfikacja, choć znacznie szybsza niż ponowne uruchamianie modelu, może wymagać więcej kroków niż weryfikacja zwięzłych dowodów KZG.
Zespół DeepProve podkreśla, że ich prędkość weryfikacji jest 671 razy szybsza niż ponowne obliczanie MLP za pomocą GPU, co pozwala na skrócenie czasu weryfikacji do około 0,5 sekundy dla dość złożonych modeli.
To mocny rezultat, który pokazuje, że nawet przy większej wielkości dowodów weryfikacja jest znacznie łatwiejsza niż przeprowadzanie pierwotnych obliczeń sztucznej inteligencji (co jest szczególnie ważne, jeśli weryfikator jest kontraktem inteligentnym lub lekkim klientem o ograniczonej mocy obliczeniowej). Dowody Halo2 są mniejsze, a prędkość weryfikacji jest szybsza, ale jeśli na początku dowodzenie ich prędkości jest zbyt wolne dla twojej aplikacji, to ta różnica staje się nieistotna.
Jednym z ważnych aspektów wydajności jest to, jak te frameworki obsługują specjalne operacje, na przykład w wnioskowaniu uczenia maszynowego często napotykamy na nieliniowe kroki (np. ArgMax, ReLU, Sigmoid). EZKL może obsługiwać ReLU, wymuszając ograniczenia za pomocą selektorów boolowskich (co można również zrealizować przez wyszukiwanie lub inne ograniczenia).
W porównaniu, JOLT może realizować ReLU w programie (jako kilka instrukcji CPU opartych na symbolicznych bitach) i udowodnić te rozgałęzienia po niskim koszcie - zasadniczo wykorzystując zdolności porównawcze CPU.
DeepProve może dostosować się do funkcji kawałkowych, integrując je w arytmetycznym obwodzie, który GKR ma weryfikować, ale wysoko nieliniowe funkcje (np. Sigmoid) mogą wymagać wielomianowych lub przybliżeń wyszukiwania. Ogólnie rzecz biorąc, idea JOLT polega na tym, aby sprawić, że wszystkie dziwne rzeczy będą wyglądać normalnie, wykonując rzeczywisty kod (w tym instrukcje warunkowe, pętle itp.) i wykorzystując parametry wyszukiwania do pokrycia logiki każdej operacji.
Idea Halo2 polega na ograniczeniu wszystkiego do wielomianowych równań (co czasami może być uciążliwe dla złożonych operacji), podczas gdy idea GKR polega na rozkładaniu obliczeń na sumy i iloczyny, które mogą być rekurencyjnie weryfikowane. Efektywność każdej z tych metod w radzeniu sobie z tymi problemami będzie odzwierciedlona w czasie dowodzenia: JOLT może być dobry w kontrolowaniu logiki, GKR jest dobry w dużych obliczeniach algebry liniowej, a Halo2 znajduje się gdzieś pomiędzy, łącząc oba, ale z wyższymi kosztami.
Aby zweryfikować dowody Kinic, używamy blockchaina Internet Computer, ponieważ szybciej przetwarza większe dowody weryfikacyjne niż inne blockchainy L1, a także nie jesteśmy ograniczeni przez wstępną kompilację, ponieważ wymaga ona pewnych skomplikowanych działań, aby umieścić JOLTx na łańcuchu.

Skalowalność modeli dużej skali
Kiedy mówimy o skalowalności w zkML, możemy mieć na myśli dwie rzeczy: obsługę dużych modeli (wielowarstwowych, z wieloma parametrami) oraz obsługę zróżnicowanych modeli (różne architektury, a nawet modele dynamiczne). Najpierw rozważamy masowe wdrożenie - załóżmy, że chcesz przeprowadzić weryfikację wnioskowania na dużym CNN lub Transformerze z milionami parametrów.
DeepProve jest zaprojektowane do tej sceny, a jego wydajność wzrasta w miarę zwiększania się rozmiaru modelu. Na przykład, jeśli mały model (tak jak mikro MLP) jest udowadniany za pomocą DeepProve 50 razy szybciej niż w EZKL, to większy model może być szybszy o ponad 100 razy.
Zespół wskazuje, że w miarę rozszerzania się na modele z milionami parametrów, prędkość DeepProve będzie szybsza niż inne rozwiązania. Planują zwiększyć tę prędkość dzięki technikom równoległego i rozproszonego dowodzenia. GKR jest łatwy do równoległowania, ponieważ wiele obliczeń podrzędnych (na przykład wszystkie neurony w danej warstwie) można zweryfikować w partiach.
Ponadto GKR nie wymaga ogromnego, jednego, scalonego 'klucza dowodowego', który rósłby wraz z rozmiarem obwodu - jest w stanie działać w czasie rzeczywistym, co oznacza niższe zużycie pamięci. To daje nadzieję, że DeepProve w przyszłości będzie można wykorzystać do weryfikacji dużych sieci neuronowych w skali chmurowej, a nawet na łańcuchu.
EZKL (Halo2) może obsługiwać dość duże sieci, ale ma też ograniczenia. Budowanie pojedynczego olbrzymiego obwodu dla dużych modeli może wymagać ogromnej ilości pamięci i czasu (w niektórych przypadkach wymaga to dziesiątek GB pamięci RAM i godzin czasu obliczeniowego). Zespół EZKL ciągle szuka sposobów na poprawę, takich jak podział obwodów i agregacja (najpierw udowadniają różne części modelu, a potem łączą dowody) oraz strategie kwantyzacji, aby zmniejszyć złożoność arytmetyczną.
Niemniej jednak, ogólne algorytmy SNARK, takie jak Halo2, bez specjalnych optymalizacji napotkają wyzwania po przekroczeniu pewnej skali. Mogą być najlepiej dopasowane do modeli średnich i małych lub do sytuacji offline, gdy dowody nie są często generowane (lub gdy dostępny jest potężny sprzęt).
Zaletą jest to, że po wygenerowaniu dowodu, nawet dla dużych modeli, jego weryfikacja jest łatwa - co jest bardzo przydatne w scenariuszach łańcuchowych, ponieważ inteligentne kontrakty mogą weryfikować dowody modeli zawierających 100 milionów parametrów, co jest absolutnie niemożliwe do ponownego obliczenia na łańcuchu.
JOLT znajduje się w interesującej pozycji pod względem skalowalności. Z jednej strony jest to metoda oparta na SNARK, więc jej nakład pracy musi również mieć w przybliżeniu liniowy związek z liczbą wykonanych operacji (tak jak Halo2 i GKR).
Z drugiej strony, ze względu na zastosowanie technologii opartej na wyszukiwaniu, stała kosztowa dla każdej operacji JOLT jest bardzo niska. Jeśli rozważamy 'masowe wdrożenie', na przykład uruchomienie modelu zawierającego 10 milionów operacji, JOLT musi wykonać te 10 milionów wyszukiwań i odpowiednich zobowiązań, co jest obciążające, ale zasadniczo nie cięższe niż GKR, a nawet prosty obwód - to nadal jest liniowe.
Pytanie brzmi: jak dobrze JOLT może zoptymalizować i współbieżnie to robić? Ponieważ JOLT traktuje każdą instrukcję jako krok, jeśli system dowodowy wspiera podział śledzenia, może osiągnąć równoległość dowodzenia poprzez równoległe wykonywanie wielu instrukcji (podobnie jak wiele rdzeni CPU).
Bieżące badania pokazują, że koncentrują się głównie na wydajności jednego rdzenia (koszt na krok wynosi około 6 elementów pól), ale ponieważ ta metoda to maszyna wirtualna, można sobie wyobrazić, że w przyszłości różne części śledzenia programu będą rozdzielane między dowódców (to tylko spekulacje, ale biorąc pod uwagę, że parametry wyszukiwania mogą być łączone, to nie jest niemożliwe).
Nawet bez wymyślnych rozkładów, JOLT może korzystać z istniejących technik wielomianowych zobowiązań - na przykład wspierających uniwersalne ustawienia dla obwodów dowolnego rozmiaru, więc nie trzeba dostarczać nowych zaufanych ustawień dla większych modeli.
JOLT radzi sobie znakomicie w obsłudze różnych architektur ML: niezależnie od tego, czy Twój model to CNN, RNN z cyklami, czy złożony model hybrydowy, JOLT może go udowodnić, o ile można go uruchomić na CPU. To sprawia, że jest to wysoce skalowalne w sensie deweloperskim - nie trzeba projektować metody dowodzenia od nowa dla każdego nowego typu modelu.
DeepProve i inne metody oparte na GKR obecnie dostosowują się do typowych głębokich sieci neuronowych (warstwy operacji macierzy i funkcji elementarnych). Doskonale skalują się wraz z głębokością i szerokością sieci, ale jeśli nałożysz na nie bardzo nieregularne obciążenia robocze (np. dynamiczne decyzje o pomijaniu warstw lub modele z pętlami zależnymi od danych), ten framework może wymagać dostosowania lub może stracić część wydajności.
Jednak większość dużych modeli uczenia maszynowego (wizualnych, przetwarzania języka naturalnego itd.) ma regularną strukturę, więc to nie jest problem.
Można zapytać: która metoda najlepiej nadaje się do użytku w czasie rzeczywistym lub na urządzeniach, a nie na skali chmurowej? Czas rzeczywisty oznacza, że nawet dla mniejszych modeli pragniemy, aby opóźnienie dowodzenia było bardzo niskie.
Metoda JOLT to SNARK, która może pozwolić na udowodnienie mniejszych modeli w ciągu kilku sekund lub krócej na przyzwoitym urządzeniu, zwłaszcza w miarę jak technologia staje się bardziej dojrzała. EZKL na mobilnym CPU może być wolniejszy (dowody Halo2 nie są jeszcze w pełni dostosowane do urządzeń mobilnych, mimo że niektórzy starają się je przyspieszyć).
DeepProve może skutecznie wykorzystać GPU - jeśli na urządzeniu znajduje się GPU, może naprawdę bardzo szybko udowodnić mały model (GKR lubi sprzęt równoległy), ale DeepProve na CPU może nie być tak zoptymalizowane dla scenariuszy w czasie rzeczywistym jak JOLT.
Zatem skalowalność nie polega tylko na obsłudze większych modeli - chodzi również o efektywne obsługiwanie odpowiednich rozmiarów w odpowiednim środowisku. Celem JOLT jest stać się uniwersalnym graczem w różnych środowiskach, co w dłuższym okresie czyni go silnym kandydatem na wdrożenia w chmurze i na obrzeżach.
JOLTx: redefinicja funkcji zkML poprzez weryfikację i wyszukiwanie.
Skoro jest tak wiele innowacji, dlaczego nadal podkreślamy, że zkML oparte na JOLT jest najlepszym wyborem na przyszłość? Odpowiedź leży w jego uniwersalności, wydajności i praktycznych zastosowaniach - ta kombinacja jest trudna do przeskoczenia.
Po pierwsze, JOLT wprowadza nowy paradygmat budowania SNARK, przestając wbudowywać zaawansowane programy pojedynczo w obwody, a zamiast tego realizując wizję projektowania obwodów, które wykonują tylko operacje wyszukiwania, co oznacza, że złożoność jest obsługiwana w fazie wstępnego obliczania (definiując te ogromne tabele instrukcji), a w fazie online jest bardzo prosta: wystarczy udowodnić, że wykonałeś prawidłowe wyszukiwanie.
To jak przekształcenie każdej złożonej operacji w obwodzie w krok 'O(1)', co znacznie zmniejsza koszty, które dowódca wykonuje w SNARK przy tradycyjnych, bardzo złożonych zadaniach (np. operacje bitowe, dowolna logika rozgałęziająca).
Dla modeli uczenia maszynowego zazwyczaj łączą one algebrę liniową (co SNARK może obsługiwać) oraz nieliniowe decyzje lub przekształcenia danych (z którymi SNARK radzi sobie gorzej). JOLT oferuje zrównoważone rozwiązanie - algebra liniowa nadal musi być realizowana krok po kroku, ale każda operacja arytmetyczna jest prosta. Jakiekolwiek nieliniowe decyzje (np. 'jeśli neuron > 0, to...') są również proste, ponieważ VM może po prostu rozgałęziać, a dowód poprawnego rozgałęzienia to tylko sprawdzenie w tabeli.
Po drugie, JOLT jest szybki i nadal zwiększa swoją prędkość. Badania wskazują, że w porównaniu do głównych narzędzi SNARK, jego prędkość dowódcy może natychmiast wzrosnąć o ponad 10 razy, a sugerowane optymalizacje mogą doprowadzić do 40 razy.
Ona także dziedziczy wiele wczesnych ulepszeń SNARK: wykorzystuje nowoczesne schematy zobowiązań wielomianowych i może korzystać z istniejących bibliotek kryptograficznych, jej rdzeniowy dowód Lasso skupia się na wydajności i już wykazuje lepsze wyniki niż starsze dowody na wyszukiwanie (które były wąskim gardłem systemów takich jak Halo2).
Dla uczenia maszynowego w czasie rzeczywistym lub lokalnie, oznacza to, że pomysł generowania dowodów na smartfonach czy laptopach nagle przestaje być szalony - jeśli proces wnioskowania w Twoim modelu zwykle zajmuje 100 milisekund, to JOLT może to udowodnić w ciągu zaledwie kilku sekund - to jest wielka sprawa!
W porównaniu, dowody w starych metodach mogą zająć kilka minut lub godzin, co czyni je niemożliwymi do realizacji poza serwerownią, a zwiększenie wydajności JOLT przybliża zkML do obszaru interaktywnego użycia.
Na przykład wyobraźmy sobie rozszerzenie przeglądarki, które używa JOLT do rzeczywistego dowodzenia: 'Uruchomiłem wizualny model na obrazku, który właśnie przesłałeś, i nie zawiera on żadnych treści NSFW', a następnie pozwala na publikację tego obrazu.
Lub komputer pokładowy samochodu udowadnia serwerowi ubezpieczeniowemu, że rzeczywiście używał zweryfikowanego modelu jazdy podczas autonomicznej jazdy. Te scenariusze wymagają szybkiego obrotu, a prędkość JOLT sprawia, że jest to możliwe.
Innym ważnym czynnikiem jest doświadczenie dewelopera i użytkownika. JOLT pozwala deweloperom korzystać z języków i modeli, które znają (przez kompilację do RISC-V i nadchodzącą konwersję ONNX). Nie musisz rozumieć złożoności obwodów SNARK, aby z niego korzystać.
To kluczowe dla dziedziny uczenia maszynowego: większość inżynierów uczenia maszynowego nie jest ekspertami w dziedzinie kryptografii i nie powinna nimi być. Dzięki JOLT mogą pisać lub kompilować istniejący kod i uzyskiwać dowody, a ten sposób jest podobny do wczesnych GPU - na początku tylko eksperci w grafice pisali kod GPU, ale ostatecznie ogólne ramy pozwoliły każdemu programiście korzystać z akceleracji GPU.
W tym sensie JOLT jest jak 'GPU dla dowodów zerowej wiedzy': specjalny silnik, do którego dostęp można uzyskać za pomocą standardowego łańcucha narzędzi, co znacznie obniża próg przyjęcia. Jest bardzo prawdopodobne, że zobaczymy, jak niektóre biblioteki pakują typowe zadania związane z uczeniem maszynowym (np. wnioskowanie modelu, dowody dokładności modelu itp.) w JOLT, aby inne mogły być gotowe do użycia.
Audytowalność JOLT to kolejna subtelna zmiana, ponieważ w zasadzie dowodzi ona wykonania standardowej ISA, co czyni ją łatwiejszą do wywnioskowania i audytowania niż obwody dostosowane, można polegać na dobrze zdefiniowanej specyfikacji RISC-V i poprawności tabeli przeszukiwań, nie musząc weryfikować tysięcy ręcznie napisanych ograniczeń, co oznacza, że dowody na kluczowe modele uczenia maszynowego mają wyższą wiarygodność.
Na przykład, jeśli jakiś model jest używany w sądzie lub w decyzjach medycznych, posiadanie jasnej ścieżki ('ten program został poprawnie wykonany') jest bardziej uspokajające niż 'ten dostosowany obwód, rozumiany tylko przez nielicznych ekspertów, został spełniony', a w razie potrzeby audytorzy mogą nawet krok po kroku prześledzić ścieżkę wykonania maszyny wirtualnej, co nie jest możliwe w dowodach obwodów scalonych.
Zerowe dowody na podstawie JOLT (zkML) doskonale łączą teoretyczną elegancję z praktycznymi realizacjami - zarówno przełomy wydajności potrzebne do skalowalności, jak i elastyczność niezbędna do szerokiego zastosowania, przekształca zerowe dowody w przyjazne dla deweloperów, szybkie narzędzia.
Podczas gdy metody oparte na Halo2 i GKR już otworzyły drogę, pokazując ich możliwości (i będą nadal stosowane z ich specyficznymi zaletami), JOLT ma nadzieję zjednoczyć i podnieść dziedzinę zkML, co jest jak skok od ręcznego asemblera do programowania wyższego poziomu - gdy tylko pojawi się uniwersalne i efektywne rozwiązanie, może umożliwić całemu ekosystemowi flourishing.
Dla każdego, kto chce wdrożyć w praktyce weryfikowalne uczenie maszynowe, JOLT oferuje jasną i niezwykle atrakcyjną drogę naprzód: szybkie dowody, odpowiednie dla każdego modelu, wszędzie i zawsze, przyszłość zkML należy również do starannie zaprojektowanych zkVM i ich kodu wstępnie kompilowanego!

Interesujące treści IC, które Cię interesują
Postęp technologiczny | Informacje o projekcie | Globalne wydarzenia

Zapisz się na kanał IC w Binance.
Bądź na bieżąco z najnowszymi informacjami.
