Доведення моделювання машинного навчання (ML) за допомогою zkSNARKs обіцяє стати одним із найважливіших досягнень смарт-контрактів цього десятиліття. Ця розробка відкриває захоплююче великий простір для проектування, дозволяючи додаткам та інфраструктурі розвиватися в більш складні та інтелектуальні системи.
Додавши можливості ML, смарт-контракти можуть стати більш автономними та динамічними, дозволяючи їм приймати рішення на основі даних у ланцюжку в реальному часі, а не на статичних правилах. Розумні контракти будуть гнучкими та можуть включати різноманітні сценарії, у тому числі ті, які, можливо, не передбачалися під час початкового створення контракту. Коротше кажучи, можливості машинного навчання підвищать автоматизацію, точність, ефективність і гнучкість будь-якого смарт-контракту, який ми використовуємо в ланцюжку.
ML широко використовується в більшості додатків за межами web3, і його застосування в смарт-контрактах майже нульове. Головним чином це пов’язано з високою обчислювальною вартістю запуску цих моделей у мережі. Наприклад, FastBERT — це обчислювально оптимізована мовна модель, яка використовує близько 1800 MFLOPS (мільйонів операцій з плаваючою комою), які неможливо запустити безпосередньо на EVM.
Застосування моделі ML в ланцюжку в основному зосереджено на етапі міркування: застосуванні моделі для прогнозування даних реального світу. Щоб мати смарт-контракти в масштабі ML, контракти повинні мати можливість приймати такі прогнози, але, як ми вже згадували раніше, запуск моделей безпосередньо на EVM неможливий. zkSNARKs надають нам рішення: будь-хто може запустити модель поза ланцюгом і створити стислий доказ того, що очікувана модель справді дала конкретний результат, який можна перевірити. Це підтвердження може бути опубліковано в ланцюжку та використано смарт-контрактами для покращення їхнього інтелекту.
У цій статті ми:
Ознайомтеся з потенційними додатками та варіантами використання онлайнового машинного навчання
Досліджуйте нові проекти та інфраструктуру в основі zkML
Обговоріть деякі проблеми існуючих реалізацій і те, як може виглядати майбутнє zkML
Вступ до машинного навчання (ML)
Машинне навчання (ML) — це підгалузь штучного інтелекту (ШІ), яка зосереджена на розробці алгоритмів і статистичних моделей, які дозволяють комп’ютерам навчатися на основі даних і робити прогнози чи приймати рішення. Моделі ML зазвичай мають три основні компоненти:
Навчальні дані: набір вхідних даних, які використовуються для навчання алгоритму машинного навчання для прогнозування або класифікації нових даних. Навчальні дані можуть приймати різні форми, наприклад зображення, текст, аудіо, числові дані або їх комбінації.
Архітектура моделі: загальна структура або дизайн моделі машинного навчання. Він визначає ієрархію, функції активації, а також тип і кількість зв’язків між вузлами або нейронами. Вибір архітектури залежить від конкретної проблеми та використовуваних даних.
Параметри моделі: значення або ваги, які модель вивчає під час навчання, щоб робити прогнози. Ці значення ітеративно коригуються алгоритмом оптимізації, щоб мінімізувати похибку між прогнозованими та фактичними результатами.
Створення та розгортання моделі розділено на два етапи:
Етап навчання: під час етапу навчання модель відкривається для позначеного набору даних і коригує свої параметри, щоб мінімізувати похибку між прогнозованими та фактичними результатами. Процес навчання зазвичай включає кілька ітерацій або циклів, і точність моделі оцінюється на окремому наборі перевірки.
Фаза висновку: фаза висновку – це фаза, на якій навчена модель машинного навчання використовується для прогнозування нових невидимих даних. Модель бере вхідні дані та застосовує вивчені параметри для створення результату, наприклад класифікації або регресійного прогнозу.
Наразі zkML зосереджується на фазі висновку моделей машинного навчання, а не на фазі навчання, в основному через обчислювальну складність навчання в схемах перевірки. Однак зосередженість zkML на висновках не є обмеженням: ми очікуємо кілька дуже цікавих випадків використання та застосувань.
Перевірені сценарії висновків
Існує чотири можливі сценарії перевірки аргументації:
Приватний вхід, публічна модель. Споживачі моделей (MC) можуть побажати зберегти конфіденційність своїх даних від постачальників моделей (MP). Наприклад, MC може забажати підтвердити позикодавцям результати моделі оцінки кредитоспроможності, не розкриваючи їх особисту фінансову інформацію. Це можна зробити за допомогою схеми попереднього зобов’язання та запуску моделі локально.
Загальнодоступний вхід, приватна модель. Поширеною проблемою з ML-as-a-Service є те, що MP може захотіти приховати свої параметри або ваги, щоб захистити свою IP-адресу, тоді як MC хоче перевірити, чи згенеровані висновки справді належать до вказаної моделі в умовах змагання. це так: надаючи висновок для MC When , MP має стимул запустити легшу модель, щоб заощадити гроші. Використовуючи обіцянки вагових коефіцієнтів моделей у мережі, MC можуть перевіряти приватні моделі в будь-який час.
Приватний вхід, приватна модель. Це відбувається, коли дані, які використовуються для висновку, є дуже чутливими або конфіденційними, а сама модель прихована для захисту IP. Прикладом цього може бути аудит моделей охорони здоров’я з використанням приватної інформації про пацієнтів. Для обслуговування цього сценарію можна використовувати методи композиції в zk або варіанти з використанням багатосторонніх обчислень (MPC) або FHE.
Громадський внесок, публічна модель. Хоча всі аспекти моделі можна оприлюднити, zkML розглядає інший варіант використання: стиснення та перевірку обчислень поза ланцюгом у середовищах ланцюга. Для більших моделей рентабельніше перевірити стислий zk висновку, ніж повторно запустити модель самостійно.
Перевірена аргументація ML відкриває нові простори для розробки смарт-контрактів. Деякі криптографічні програми включають:
1、DeFi
Оракули ML, які можна перевірити поза ланцюгом. Подальше впровадження генеративного штучного інтелекту може підштовхнути галузь до впровадження схем підпису для свого вмісту (наприклад, публікації новин підписують статті чи зображення). Підписані дані готові для доказів з нульовим знанням, що робить дані складними та надійними. Моделі ML можуть обробляти ці підписані дані поза ланцюгом, щоб робити прогнози та класифікувати (наприклад, класифікувати результати виборів або погодні явища). Ці позамережні оракули машинного навчання можуть без довіри вирішувати реальні ринки прогнозів, договори страхових протоколів тощо, перевіряючи міркування та публікуючи докази в мережі.
Додатки DeFi на основі параметрів ML. Багато аспектів DeFi можна автоматизувати. Наприклад, протоколи кредитування можуть використовувати моделі ML для оновлення параметрів у режимі реального часу. Наразі протоколи кредитування в основному покладаються на позамережні моделі, якими керують організації, щоб визначити фактори застави, співвідношення позики та вартості, пороги ліквідації тощо, але кращим варіантом може бути навчена спільнотою модель з відкритим вихідним кодом, яку може використовувати кожен і перевірити.
Автоматичні торгові стратегії. Поширений спосіб продемонструвати характеристики прибутковості стратегії фінансової моделі полягає в тому, щоб члени парламенту надали інвесторам різні дані про минулі перевірки. Однак немає способу перевірити, чи стратег дотримується моделі під час здійснення угоди - інвестор має вірити, що стратег дійсно дотримується моделі. zkML надає рішення, за допомогою якого MP може надати докази обґрунтування фінансової моделі, коли його розгортають на певних посадах. Це може бути особливо корисним для сховищ, якими керує DeFi.
2. Безпека
Моніторинг шахрайства для смарт-контрактів. Замість того, щоб дозволяти повільному керуванню персоналом або централізованим особам контролювати можливість призупинення контрактів, моделі ML можна використовувати для виявлення можливої зловмисної поведінки та призупинення контрактів.
3. Традиційний ML
Децентралізована, надійна реалізація Kaggle. Може бути створений протокол або ринок, який дозволить MC або іншим зацікавленим сторонам перевіряти точність моделей, не вимагаючи від MP розкривати ваги моделі. Це корисно для продажу моделей, проведення змагань щодо точності моделей тощо.
Децентралізований оперативний ринок для генеративного ШІ. Створення підказок для генеративного штучного інтелекту перетворилося на складне ремесло, і підказки для створення оптимальних результатів часто мають кілька модифікаторів. Зовнішні сторони можуть бути готові придбати ці складні підказки у творців. zkML тут можна використовувати двома способами: 1) для перевірки результату підказки, щоб переконати потенційних покупців, що підказка справді створює бажане зображення;
Дозвольте власнику чайової зберегти право власності на чайову після покупки, залишаючись невідомим для покупця, але все одно створюючи для нього перевірені зображення.
4. Ідентичність
Замініть закриті ключі біометричною автентифікацією, що зберігає конфіденційність. Керування закритими ключами залишається однією з найбільших перешкод у взаємодії з користувачем web3. Абстрагування закритих ключів за допомогою розпізнавання обличчя або інших унікальних факторів є одним із можливих рішень для zkML.
Чесні роздачі та винагороди співавторів. Моделі ML можна використовувати для створення детальних ікон користувачів, щоб визначити розподіл розподілу або винагороди за внески на основі багатьох факторів. Це може бути особливо корисним у поєднанні з рішеннями ідентифікації. У цьому випадку одна з можливостей полягає в тому, щоб користувачі запустили модель із відкритим вихідним кодом, яка оцінює їхню взаємодію з програмою, а також взаємодію вищого рівня, як-от публікації на форумі з управління, для обговорення своїх завдань. Це підтвердження потім надається до контракту для відповідного розподілу маркерів.
5. Web3 Social
Фільтрування для соціальних мереж web3. Децентралізований характер соціальних програм web3 призведе до збільшення спаму та шкідливого вмісту. В ідеалі платформа соціальних медіа могла б використовувати консенсусну модель спільного навчання з відкритим вихідним кодом і публікувати докази аргументації моделі, коли вона вирішує фільтрувати публікації. Приклад: аналіз zkML за алгоритмом Twitter.
Реклама/Рекомендація. Як користувач соціальних мереж, я, можливо, бажаю бачити персоналізовану рекламу, але хочу не розголошувати свої вподобання та інтереси рекламодавцям. Я можу запустити локальну модель про мої інтереси, передати її в медіапрограму, щоб надати мені вміст. У цьому випадку рекламодавці можуть бути готові платити кінцевим користувачам, щоб це сталося, однак ці моделі можуть бути набагато менш складними, ніж моделі цільової реклами, які зараз розробляються.
6. Creator Economy/Games
Перебалансування внутрішньої економіки. Випуск токенів, постачання, спалювання, пороги голосування тощо можна динамічно регулювати за допомогою моделей ML. Однією з можливих моделей є заохочувальний контракт, який відновлює рівновагу внутрішньоігрової економіки, якщо досягнуто певного порогу відновлення балансу та перевірено доказ міркування.
Нові типи мережевих ігор. Можна створювати кооперативні ігри «Люди проти штучного інтелекту» та інші інноваційні мережеві ігри, у яких ненадійна модель ШІ діє як неігровий персонаж. Кожна дія, виконана NPC, публікується в ланцюжку разом із доказом, який кожен може перевірити, що запущена правильна модель. У Modulus Labs Leela vs. the World верифікатор хоче переконатися, що заявлений 1900 ELO AI обирає хід, а не Магнус Карлсон. Іншим прикладом є AI Arena, файтинг зі штучним інтелектом, схожий на Super Smash Brothers. У конкурентному середовищі з високими ставками гравці хочуть переконатися, що моделі, яких вони тренують, не заважають і не обманюють.
Нові проекти та інфраструктура
Екосистему zkML можна умовно розділити на чотири основні категорії:
Компілятор Model-to-Proof: інфраструктура для компіляції моделей у існуючих форматах (наприклад, Pytorch, ONNX тощо) у верифіковані обчислювальні схеми.
Узагальнена система доказів: побудуйте систему доказів для перевірки довільних обчислювальних траєкторій.
Спеціальна система перевірки zkML: система перевірки, спеціально створена для перевірки обчислювальної траєкторії моделей ML.
Програми: проекти, що працюють над унікальними варіантами використання zkML.
01 Компілятори Model-to-Proof
В екосистемі zkML більша увага приділяється створенню компіляторів від моделі до перевірки. Як правило, ці компілятори перетворюють просунуті моделі ML у схеми zk за допомогою Pytorch, Tensorflow тощо.
EZKL — це бібліотека та інструмент командного рядка для визначення моделей глибокого навчання в zk-SNARK. Використовуючи EZKL, ви можете визначити обчислювальний графік у Pytorch або TensorFlow, експортувати його як файл ONNX із прикладами вхідних даних у файли JSON, а потім націлити EZKL на ці файли для генерації схем zkSNARK. Завдяки останньому циклу покращень продуктивності EZKL тепер може довести модель розміру MNIST за ~6 секунд і 1,1 ГБ оперативної пам’яті. На сьогоднішній день EZKL отримав помітне раннє впровадження, використовується як інфраструктура для різних проектів хакатону.
Бібліотека Cathie So circomlib-ml містить різні шаблони схем ML для Circom. Circuits містить деякі з найпоширеніших функцій ML. Keras 2c ircom, розроблений Кеті, є інструментом Python, який перетворює моделі Keras на схеми Circom за допомогою базової бібліотеки circomlib-ml.
LinearA розробила два фреймворки для zkML: Tachikoma та Uchikoma. Tachikoma використовується для перетворення нейронної мережі в цілочисельну форму та створення обчислювальних траєкторій. Uchikoma - це інструмент, який перетворює проміжне представлення TVM на мови програмування, які не підтримують операції з плаваючою комою. LinearA планує підтримувати Circom з доменною арифметикою та Solidity зі знаковою та беззнаковою цілочисельною арифметикою.
Zkml Деніела Канга — це основа для доказів виконання моделей машинного навчання, створена на основі його роботи в статті «Збільшення ненадійного висновку DNN із доказами нульового знання». На момент написання статті він зміг перевірити схему MNIST у приблизно 5 ГБ пам’яті та приблизно за 16 секунд роботи.
З точки зору більш узагальнених компіляторів model-to-proof, є Nil Foundation і Risc Zero. ZkLLVM від Nil Foundation — це компілятор схем на основі LLVM, здатний перевіряти обчислювальні моделі, написані популярними мовами програмування, такими як C++, Rust і Java/Type. Порівняно з іншими згаданими тут компіляторами моделі до перевірки, це інфраструктура загального призначення, але все ще підходить для складних обчислень, таких як zkML. Це може бути особливо потужним у поєднанні з їхнім доказовим ринком.
Risc Zero створює zkVM загального призначення, націлену на набір інструкцій RISC-V з відкритим кодом, таким чином підтримуючи існуючі зрілі мови, такі як C++ і Rust, а також ланцюжок інструментів LLVM. Це забезпечує безперебійну інтеграцію між хост-кодом і гостьовим кодом zkVM, подібно до ланцюжка інструментів Nvidia CUDA C++, але з використанням механізму ZKP замість GPU. Подібно до Nil, використовуйте Risc Zero для перевірки обчислювальної траєкторії моделі ML.
02 Узагальнена система доказів
Удосконалення системи перевірки були головною рушійною силою реалізації zkML, зокрема введення користувацьких воріт і таблиць пошуку. Це головним чином пов’язано з опорою ML на нелінійність. Коротше кажучи, нелінійність вводиться через функції активації (такі як ReLU, sigmoid і tanh), які застосовуються до виходу лінійного перетворення в нейронній мережі. Ці нелінійності складно реалізувати в схемах zk через обмеження вентилів математичних операцій. Порозрядна факторизація та таблиці пошуку можуть допомогти в цьому шляхом попереднього обчислення нелінійних можливих результатів у таблиці пошуку, яка, що цікаво, більш ефективна з точки зору обчислень у zk.
З цієї причини система перевірки Plonkish, як правило, є найпопулярнішим сервером для zkML. Halo 2 і Plonky 2 і їхні табличні арифметичні схеми добре справляються з нелінійністю нейронної мережі за допомогою параметрів пошуку. Крім того, перший має динамічну екосистему інструментів розробника та гнучкість, що робить його де-факто бекендом для багатьох проектів, включаючи EZKL.
Інші системи доказів також мають свої переваги. Системи перевірки на основі R 1 CS включають Groth 16, відомий своїм малим розміром перевірки, і Gemini, відомий своєю обробкою надзвичайно великих схем і верифікаторів лінійного часу. Системи на основі STARK, такі як бібліотека перевірки/верифікації Winterfell, особливо корисні, коли в якості вхідних даних беруться сліди програм Cairo через інструменти Giza та використовують Winterfell для створення доказів STARK для перевірки правильності результату.
03 Спеціальна система перевірки zkML
Було досягнуто певного прогресу в розробці ефективних систем перевірки, які можуть обробляти складні, недружні до схеми операції передових моделей машинного навчання. Такі системи, як zkCNN на основі системи перевірки GKR і Zator на основі комбінаторних методів, як правило, перевершують універсальні системи перевірки, як це відображено в порівняльних звітах Modulus Labs.
zkCNN — це метод підтвердження коректності згорткових нейронних мереж за допомогою доказів з нульовим знанням. Він використовує протокол sumcheck для підтвердження швидких перетворень Фур’є та згорток із лінійним часом перевірки, швидшим, ніж результати асимптотичних обчислень. Було введено кілька інтерактивних доказів покращення та узагальнення, включаючи згорткові рівні перевірки, функції активації ReLU та максимальне об’єднання. Відповідно до звіту про порівняльний аналіз Modulus Labs, zkCNN особливо цікавий тим, що він перевершує інші системи перевірки загального призначення з точки зору швидкості генерації перевірки та споживання оперативної пам’яті.
Zator — це проект, метою якого є вивчення використання рекурсивних SNARK для перевірки глибоких нейронних мереж. Поточним обмеженням у перевірці глибших моделей є розміщення всієї обчислювальної траєкторії в одній схемі. Затор запропонував використовувати рекурсивний SNARK для верифікації шар за шаром, який може поступово перевіряти N-крокові повторювані обчислення. Вони використовували Nova, щоб скоротити N екземплярів обчислення до одного екземпляра, який можна перевірити за один крок. Використовуючи цей підхід, Zator зміг створити мережу SNARK із 512 шарами, яка така ж глибока, як і більшість поточних моделей штучного інтелекту. Час створення доказів і верифікації Zator все ще надто довгий для стандартних випадків використання, але їхні комбіновані методи все ще дуже цікаві.
Програми
Враховуючи перші дні zkML, він зосереджувався на вищезгаданій інфраструктурі. Однак наразі існує кілька проектів, присвячених розробці додатків.
Modulus Labs — це один із найрізноманітніших проектів у просторі zkML, який працює як над прикладами програм, так і з пов’язаними дослідженнями. З прикладної сторони Modulus Labs продемонструвала випадки використання zkML із RockyBot, мережевим торговим ботом, і Leela vs. the World, настільною грою, у якій люди грають проти перевіреного мережевого шахового механізму Leela. Команда також провела дослідження та написала The Cost of Intelligence, яка порівнює швидкість і ефективність різних систем перевірки на різних розмірах моделей.
Worldcoin намагається застосувати zkML для створення протоколу підтвердження особи людини, який зберігає конфіденційність. Worldcoin обробляє сканування райдужної оболонки високої роздільної здатності за допомогою спеціального обладнання та підключає його до реалізації Semaphore. Потім цю систему можна використовувати для виконання таких корисних операцій, як підтвердження членства та голосування. Наразі вони використовують надійне середовище виконання та захищений анклав для перевірки сканування райдужної оболонки, підписаної камерою, але їхня кінцева мета — використовувати докази з нульовим знанням для перевірки правильності міркувань нейронних мереж, щоб забезпечити гарантію безпеки на криптографічному рівні.
Giza — це протокол, який використовує абсолютно ненадійний підхід до розгортання моделей ШІ в мережі. Він використовує формат ONNX для представлення моделей машинного навчання, Giza Transpiler для перетворення цих моделей у формат програми Cairo, ONNX Cairo Runtime для виконання моделей верифікованим і детермінованим способом, а також смарт-контракт моделі Giza для розгортання в мережі та технологічний стек для виконання моделі. Хоча Giza також можна класифікувати як компілятор від моделі до перевірки, її позиціонування як ринку для моделей ML є одним із найцікавіших застосувань на даний момент.
Gensyn — це розподілена мережа провайдерів обладнання для навчання моделей ML. Зокрема, вони розробляють систему імовірнісного аудиту на основі градієнтного спуску та використання контрольних точок моделі, щоб уможливити розподілені мережі GPU для навчання повномасштабних моделей. Хоча їхнє застосування zkML тут є дуже специфічним для їхнього випадку використання — вони хочуть переконатися, що коли вузол завантажує та навчає частину моделі, вони чесні щодо оновлень моделі — це демонструє потужність поєднання потужності zk і ML.
ZKaptcha зосереджується на проблемі ботів у web3 і надає послуги коду перевірки для смарт-контрактів. Їх поточна реалізація дозволяє кінцевим користувачам генерувати докази роботи людини, заповнюючи капчі, які перевіряються їх валідаторами в ланцюжку та доступні за допомогою смарт-контрактів із кількома рядками коду. Сьогодні вони в основному покладаються лише на zk, але в майбутньому вони мають намір реалізувати zkML, подібно до існуючих служб web2 captcha, аналізуючи поведінку, наприклад рухи миші, щоб визначити, чи є користувач людиною.
Враховуючи перші дні ринку zkML, багато програм уже експериментували на рівні хакатону. Проекти включають AI Coliseum, мережевий конкурс штучного інтелекту з використанням ZK-доказів для перевірки результатів машинного навчання, Hunter z Hunter, полювання за фотографіями з використанням бібліотеки EZKL для перевірки результатів моделі класифікації зображень із схемами halo 2, і zk Section 9 , Він перетворює моделі генерації зображень штучного інтелекту в схеми для кастингу та перевірки мистецтва штучного інтелекту.
виклики zkML
Незважаючи на швидкий прогрес у вдосконаленні та оптимізації, сфера zkML все ще стикається з деякими основними проблемами. Ці проблеми включають технічні та практичні аспекти, зокрема:
Квантування з мінімальною втратою точності
Розмір ланцюга, особливо коли мережа складається з кількох рівнів
Ефективний доказ множення матриць
Проти нападу
Квантування – це процес представлення чисел з плаваючою комою як чисел з фіксованою комою. Більшість моделей машинного навчання використовують числа з плаваючою комою для представлення параметрів моделі та функцій активації. Коли йдеться про арифметику домену для схем zk, потрібні числа з фіксованою комою. Вплив квантування на точність моделі машинного навчання залежить від рівня точності, який використовується. Загалом використання нижчої точності (тобто меншої кількості бітів) може призвести до меншої точності, оскільки це може призвести до помилок округлення та наближення. Однак існує кілька методів, які можна використовувати для мінімізації впливу квантування на точність, наприклад, точне налаштування моделі після квантування та використання таких методів, як навчання з урахуванням квантування. Крім того, Zero Gravity, проект хакатону на zkSummit 9, показав, що альтернативні архітектури нейронних мереж, розроблені для периферійних пристроїв, такі як невагомі нейронні мережі, можна використовувати для уникнення проблем квантування в схемах.
Окрім квантування, ще одним ключовим викликом є апаратне забезпечення. Коли модель машинного навчання правильно представлена схемою, докази для перевірки її міркувань стають дешевими та швидкими завдяки простоті zk. Проблема тут полягає не в верифікаторі, а в прувері, оскільки споживання оперативної пам’яті та час генерації доказів швидко зростають зі збільшенням розміру моделі. Певні системи перевірки (такі як системи на основі GKR, що використовують протокол sumcheck та ієрархічні арифметичні схеми) або комбіновані методи (такі як поєднання Plonky 2 із Groth 16, Plonky 2 є ефективним з точки зору часу перевірки, але ефективним для великих моделей Poor і Groth 16 не призводить до збільшення розміру доказів у складності складних моделей) краще підходить для вирішення цих проблем, але управління компромісами є основною проблемою в проектах zkML.
У плані боротьби з нападами ще є над чим працювати. По-перше, якщо ненадійний протокол або DAO вирішує реалізувати модель, все ще існує ризик агресивних атак під час фази навчання (наприклад, навчання моделі демонструвати певну поведінку, коли вона бачить певні вхідні дані, які можуть бути використані для маніпулювання наступними міркування) . Методи федеративного навчання та zkML на етапі навчання можуть бути способом мінімізації цієї поверхні атаки.
Іншою основною проблемою є ризик атак крадіжки моделі, коли модель зберігає конфіденційність. Хоча можливо обфускати ваги моделі, враховуючи достатню кількість пар входів і виходів, все ще теоретично можливо вивести ваги в зворотному напрямку. Це здебільшого ризик для дрібномасштабних моделей, але ризики все ще є.
Можливість розширення смарт-контрактів
Хоча є певні проблеми з оптимізацією цих моделей для роботи в межах обмежень zk, удосконалення вносяться експоненціально, і деякі очікують, що завдяки подальшому апаратному прискоренню ми незабаром зможемо працювати з ширшим полем машинного навчання, охоплюючи той же рівень. Щоб підкреслити швидкість цих удосконалень, zkML перейшов від демонстрації 0x PARC того, як виконати дрібномасштабну модель класифікації зображень MNIST у верифікованій схемі в 2021 році, до Деніела Канга, який зробив те саме для моделі в масштабі ImageNet менше ніж через рік. документи. У квітні 2022 року точність цієї моделі в масштабі ImageNet підвищилася з 79% до 92%, і очікується, що великі моделі, такі як GPT-2, стануть можливими в найближчому майбутньому, хоча поточний час перевірки довший.
Ми розглядаємо zkML як багату та зростаючу екосистему, розроблену для розширення можливостей блокчейнів і смарт-контрактів, роблячи їх більш гнучкими, адаптованими та інтелектуальними.
Хоча zkML все ще знаходиться на ранніх стадіях розробки, він уже почав показувати обнадійливі результати. У міру розвитку та зрілості технології ми можемо очікувати появи більш інноваційних випадків використання zkML у мережі.
Переглянути оригінал
Контент має виключно довідковий характер і не є запрошенням до участі або пропозицією. Інвестиційні, податкові чи юридичні консультації не надаються. Перегляньте Відмову від відповідальності , щоб дізнатися більше про ризики.
Поглиблений аналіз треку ZKML: наступний крок у розумних контрактах
Доведення моделювання машинного навчання (ML) за допомогою zkSNARKs обіцяє стати одним із найважливіших досягнень смарт-контрактів цього десятиліття. Ця розробка відкриває захоплююче великий простір для проектування, дозволяючи додаткам та інфраструктурі розвиватися в більш складні та інтелектуальні системи.
Додавши можливості ML, смарт-контракти можуть стати більш автономними та динамічними, дозволяючи їм приймати рішення на основі даних у ланцюжку в реальному часі, а не на статичних правилах. Розумні контракти будуть гнучкими та можуть включати різноманітні сценарії, у тому числі ті, які, можливо, не передбачалися під час початкового створення контракту. Коротше кажучи, можливості машинного навчання підвищать автоматизацію, точність, ефективність і гнучкість будь-якого смарт-контракту, який ми використовуємо в ланцюжку.
ML широко використовується в більшості додатків за межами web3, і його застосування в смарт-контрактах майже нульове. Головним чином це пов’язано з високою обчислювальною вартістю запуску цих моделей у мережі. Наприклад, FastBERT — це обчислювально оптимізована мовна модель, яка використовує близько 1800 MFLOPS (мільйонів операцій з плаваючою комою), які неможливо запустити безпосередньо на EVM.
Застосування моделі ML в ланцюжку в основному зосереджено на етапі міркування: застосуванні моделі для прогнозування даних реального світу. Щоб мати смарт-контракти в масштабі ML, контракти повинні мати можливість приймати такі прогнози, але, як ми вже згадували раніше, запуск моделей безпосередньо на EVM неможливий. zkSNARKs надають нам рішення: будь-хто може запустити модель поза ланцюгом і створити стислий доказ того, що очікувана модель справді дала конкретний результат, який можна перевірити. Це підтвердження може бути опубліковано в ланцюжку та використано смарт-контрактами для покращення їхнього інтелекту.
У цій статті ми:
Вступ до машинного навчання (ML)
Машинне навчання (ML) — це підгалузь штучного інтелекту (ШІ), яка зосереджена на розробці алгоритмів і статистичних моделей, які дозволяють комп’ютерам навчатися на основі даних і робити прогнози чи приймати рішення. Моделі ML зазвичай мають три основні компоненти:
Створення та розгортання моделі розділено на два етапи:
Наразі zkML зосереджується на фазі висновку моделей машинного навчання, а не на фазі навчання, в основному через обчислювальну складність навчання в схемах перевірки. Однак зосередженість zkML на висновках не є обмеженням: ми очікуємо кілька дуже цікавих випадків використання та застосувань.
Перевірені сценарії висновків
Існує чотири можливі сценарії перевірки аргументації:
Перевірена аргументація ML відкриває нові простори для розробки смарт-контрактів. Деякі криптографічні програми включають:
1、DeFi
Оракули ML, які можна перевірити поза ланцюгом. Подальше впровадження генеративного штучного інтелекту може підштовхнути галузь до впровадження схем підпису для свого вмісту (наприклад, публікації новин підписують статті чи зображення). Підписані дані готові для доказів з нульовим знанням, що робить дані складними та надійними. Моделі ML можуть обробляти ці підписані дані поза ланцюгом, щоб робити прогнози та класифікувати (наприклад, класифікувати результати виборів або погодні явища). Ці позамережні оракули машинного навчання можуть без довіри вирішувати реальні ринки прогнозів, договори страхових протоколів тощо, перевіряючи міркування та публікуючи докази в мережі.
Додатки DeFi на основі параметрів ML. Багато аспектів DeFi можна автоматизувати. Наприклад, протоколи кредитування можуть використовувати моделі ML для оновлення параметрів у режимі реального часу. Наразі протоколи кредитування в основному покладаються на позамережні моделі, якими керують організації, щоб визначити фактори застави, співвідношення позики та вартості, пороги ліквідації тощо, але кращим варіантом може бути навчена спільнотою модель з відкритим вихідним кодом, яку може використовувати кожен і перевірити.
Автоматичні торгові стратегії. Поширений спосіб продемонструвати характеристики прибутковості стратегії фінансової моделі полягає в тому, щоб члени парламенту надали інвесторам різні дані про минулі перевірки. Однак немає способу перевірити, чи стратег дотримується моделі під час здійснення угоди - інвестор має вірити, що стратег дійсно дотримується моделі. zkML надає рішення, за допомогою якого MP може надати докази обґрунтування фінансової моделі, коли його розгортають на певних посадах. Це може бути особливо корисним для сховищ, якими керує DeFi.
2. Безпека
Моніторинг шахрайства для смарт-контрактів. Замість того, щоб дозволяти повільному керуванню персоналом або централізованим особам контролювати можливість призупинення контрактів, моделі ML можна використовувати для виявлення можливої зловмисної поведінки та призупинення контрактів.
3. Традиційний ML
Децентралізована, надійна реалізація Kaggle. Може бути створений протокол або ринок, який дозволить MC або іншим зацікавленим сторонам перевіряти точність моделей, не вимагаючи від MP розкривати ваги моделі. Це корисно для продажу моделей, проведення змагань щодо точності моделей тощо.
Децентралізований оперативний ринок для генеративного ШІ. Створення підказок для генеративного штучного інтелекту перетворилося на складне ремесло, і підказки для створення оптимальних результатів часто мають кілька модифікаторів. Зовнішні сторони можуть бути готові придбати ці складні підказки у творців. zkML тут можна використовувати двома способами: 1) для перевірки результату підказки, щоб переконати потенційних покупців, що підказка справді створює бажане зображення;
4. Ідентичність
Замініть закриті ключі біометричною автентифікацією, що зберігає конфіденційність. Керування закритими ключами залишається однією з найбільших перешкод у взаємодії з користувачем web3. Абстрагування закритих ключів за допомогою розпізнавання обличчя або інших унікальних факторів є одним із можливих рішень для zkML.
Чесні роздачі та винагороди співавторів. Моделі ML можна використовувати для створення детальних ікон користувачів, щоб визначити розподіл розподілу або винагороди за внески на основі багатьох факторів. Це може бути особливо корисним у поєднанні з рішеннями ідентифікації. У цьому випадку одна з можливостей полягає в тому, щоб користувачі запустили модель із відкритим вихідним кодом, яка оцінює їхню взаємодію з програмою, а також взаємодію вищого рівня, як-от публікації на форумі з управління, для обговорення своїх завдань. Це підтвердження потім надається до контракту для відповідного розподілу маркерів.
5. Web3 Social
Фільтрування для соціальних мереж web3. Децентралізований характер соціальних програм web3 призведе до збільшення спаму та шкідливого вмісту. В ідеалі платформа соціальних медіа могла б використовувати консенсусну модель спільного навчання з відкритим вихідним кодом і публікувати докази аргументації моделі, коли вона вирішує фільтрувати публікації. Приклад: аналіз zkML за алгоритмом Twitter.
Реклама/Рекомендація. Як користувач соціальних мереж, я, можливо, бажаю бачити персоналізовану рекламу, але хочу не розголошувати свої вподобання та інтереси рекламодавцям. Я можу запустити локальну модель про мої інтереси, передати її в медіапрограму, щоб надати мені вміст. У цьому випадку рекламодавці можуть бути готові платити кінцевим користувачам, щоб це сталося, однак ці моделі можуть бути набагато менш складними, ніж моделі цільової реклами, які зараз розробляються.
6. Creator Economy/Games
Перебалансування внутрішньої економіки. Випуск токенів, постачання, спалювання, пороги голосування тощо можна динамічно регулювати за допомогою моделей ML. Однією з можливих моделей є заохочувальний контракт, який відновлює рівновагу внутрішньоігрової економіки, якщо досягнуто певного порогу відновлення балансу та перевірено доказ міркування.
Нові типи мережевих ігор. Можна створювати кооперативні ігри «Люди проти штучного інтелекту» та інші інноваційні мережеві ігри, у яких ненадійна модель ШІ діє як неігровий персонаж. Кожна дія, виконана NPC, публікується в ланцюжку разом із доказом, який кожен може перевірити, що запущена правильна модель. У Modulus Labs Leela vs. the World верифікатор хоче переконатися, що заявлений 1900 ELO AI обирає хід, а не Магнус Карлсон. Іншим прикладом є AI Arena, файтинг зі штучним інтелектом, схожий на Super Smash Brothers. У конкурентному середовищі з високими ставками гравці хочуть переконатися, що моделі, яких вони тренують, не заважають і не обманюють.
Нові проекти та інфраструктура
Екосистему zkML можна умовно розділити на чотири основні категорії:
01 Компілятори Model-to-Proof
В екосистемі zkML більша увага приділяється створенню компіляторів від моделі до перевірки. Як правило, ці компілятори перетворюють просунуті моделі ML у схеми zk за допомогою Pytorch, Tensorflow тощо.
EZKL — це бібліотека та інструмент командного рядка для визначення моделей глибокого навчання в zk-SNARK. Використовуючи EZKL, ви можете визначити обчислювальний графік у Pytorch або TensorFlow, експортувати його як файл ONNX із прикладами вхідних даних у файли JSON, а потім націлити EZKL на ці файли для генерації схем zkSNARK. Завдяки останньому циклу покращень продуктивності EZKL тепер може довести модель розміру MNIST за ~6 секунд і 1,1 ГБ оперативної пам’яті. На сьогоднішній день EZKL отримав помітне раннє впровадження, використовується як інфраструктура для різних проектів хакатону.
Бібліотека Cathie So circomlib-ml містить різні шаблони схем ML для Circom. Circuits містить деякі з найпоширеніших функцій ML. Keras 2c ircom, розроблений Кеті, є інструментом Python, який перетворює моделі Keras на схеми Circom за допомогою базової бібліотеки circomlib-ml.
LinearA розробила два фреймворки для zkML: Tachikoma та Uchikoma. Tachikoma використовується для перетворення нейронної мережі в цілочисельну форму та створення обчислювальних траєкторій. Uchikoma - це інструмент, який перетворює проміжне представлення TVM на мови програмування, які не підтримують операції з плаваючою комою. LinearA планує підтримувати Circom з доменною арифметикою та Solidity зі знаковою та беззнаковою цілочисельною арифметикою.
Zkml Деніела Канга — це основа для доказів виконання моделей машинного навчання, створена на основі його роботи в статті «Збільшення ненадійного висновку DNN із доказами нульового знання». На момент написання статті він зміг перевірити схему MNIST у приблизно 5 ГБ пам’яті та приблизно за 16 секунд роботи.
З точки зору більш узагальнених компіляторів model-to-proof, є Nil Foundation і Risc Zero. ZkLLVM від Nil Foundation — це компілятор схем на основі LLVM, здатний перевіряти обчислювальні моделі, написані популярними мовами програмування, такими як C++, Rust і Java/Type. Порівняно з іншими згаданими тут компіляторами моделі до перевірки, це інфраструктура загального призначення, але все ще підходить для складних обчислень, таких як zkML. Це може бути особливо потужним у поєднанні з їхнім доказовим ринком.
Risc Zero створює zkVM загального призначення, націлену на набір інструкцій RISC-V з відкритим кодом, таким чином підтримуючи існуючі зрілі мови, такі як C++ і Rust, а також ланцюжок інструментів LLVM. Це забезпечує безперебійну інтеграцію між хост-кодом і гостьовим кодом zkVM, подібно до ланцюжка інструментів Nvidia CUDA C++, але з використанням механізму ZKP замість GPU. Подібно до Nil, використовуйте Risc Zero для перевірки обчислювальної траєкторії моделі ML.
02 Узагальнена система доказів
Удосконалення системи перевірки були головною рушійною силою реалізації zkML, зокрема введення користувацьких воріт і таблиць пошуку. Це головним чином пов’язано з опорою ML на нелінійність. Коротше кажучи, нелінійність вводиться через функції активації (такі як ReLU, sigmoid і tanh), які застосовуються до виходу лінійного перетворення в нейронній мережі. Ці нелінійності складно реалізувати в схемах zk через обмеження вентилів математичних операцій. Порозрядна факторизація та таблиці пошуку можуть допомогти в цьому шляхом попереднього обчислення нелінійних можливих результатів у таблиці пошуку, яка, що цікаво, більш ефективна з точки зору обчислень у zk.
З цієї причини система перевірки Plonkish, як правило, є найпопулярнішим сервером для zkML. Halo 2 і Plonky 2 і їхні табличні арифметичні схеми добре справляються з нелінійністю нейронної мережі за допомогою параметрів пошуку. Крім того, перший має динамічну екосистему інструментів розробника та гнучкість, що робить його де-факто бекендом для багатьох проектів, включаючи EZKL.
Інші системи доказів також мають свої переваги. Системи перевірки на основі R 1 CS включають Groth 16, відомий своїм малим розміром перевірки, і Gemini, відомий своєю обробкою надзвичайно великих схем і верифікаторів лінійного часу. Системи на основі STARK, такі як бібліотека перевірки/верифікації Winterfell, особливо корисні, коли в якості вхідних даних беруться сліди програм Cairo через інструменти Giza та використовують Winterfell для створення доказів STARK для перевірки правильності результату.
03 Спеціальна система перевірки zkML
Було досягнуто певного прогресу в розробці ефективних систем перевірки, які можуть обробляти складні, недружні до схеми операції передових моделей машинного навчання. Такі системи, як zkCNN на основі системи перевірки GKR і Zator на основі комбінаторних методів, як правило, перевершують універсальні системи перевірки, як це відображено в порівняльних звітах Modulus Labs.
zkCNN — це метод підтвердження коректності згорткових нейронних мереж за допомогою доказів з нульовим знанням. Він використовує протокол sumcheck для підтвердження швидких перетворень Фур’є та згорток із лінійним часом перевірки, швидшим, ніж результати асимптотичних обчислень. Було введено кілька інтерактивних доказів покращення та узагальнення, включаючи згорткові рівні перевірки, функції активації ReLU та максимальне об’єднання. Відповідно до звіту про порівняльний аналіз Modulus Labs, zkCNN особливо цікавий тим, що він перевершує інші системи перевірки загального призначення з точки зору швидкості генерації перевірки та споживання оперативної пам’яті.
Zator — це проект, метою якого є вивчення використання рекурсивних SNARK для перевірки глибоких нейронних мереж. Поточним обмеженням у перевірці глибших моделей є розміщення всієї обчислювальної траєкторії в одній схемі. Затор запропонував використовувати рекурсивний SNARK для верифікації шар за шаром, який може поступово перевіряти N-крокові повторювані обчислення. Вони використовували Nova, щоб скоротити N екземплярів обчислення до одного екземпляра, який можна перевірити за один крок. Використовуючи цей підхід, Zator зміг створити мережу SNARK із 512 шарами, яка така ж глибока, як і більшість поточних моделей штучного інтелекту. Час створення доказів і верифікації Zator все ще надто довгий для стандартних випадків використання, але їхні комбіновані методи все ще дуже цікаві.
Програми
Враховуючи перші дні zkML, він зосереджувався на вищезгаданій інфраструктурі. Однак наразі існує кілька проектів, присвячених розробці додатків.
Modulus Labs — це один із найрізноманітніших проектів у просторі zkML, який працює як над прикладами програм, так і з пов’язаними дослідженнями. З прикладної сторони Modulus Labs продемонструвала випадки використання zkML із RockyBot, мережевим торговим ботом, і Leela vs. the World, настільною грою, у якій люди грають проти перевіреного мережевого шахового механізму Leela. Команда також провела дослідження та написала The Cost of Intelligence, яка порівнює швидкість і ефективність різних систем перевірки на різних розмірах моделей.
Worldcoin намагається застосувати zkML для створення протоколу підтвердження особи людини, який зберігає конфіденційність. Worldcoin обробляє сканування райдужної оболонки високої роздільної здатності за допомогою спеціального обладнання та підключає його до реалізації Semaphore. Потім цю систему можна використовувати для виконання таких корисних операцій, як підтвердження членства та голосування. Наразі вони використовують надійне середовище виконання та захищений анклав для перевірки сканування райдужної оболонки, підписаної камерою, але їхня кінцева мета — використовувати докази з нульовим знанням для перевірки правильності міркувань нейронних мереж, щоб забезпечити гарантію безпеки на криптографічному рівні.
Giza — це протокол, який використовує абсолютно ненадійний підхід до розгортання моделей ШІ в мережі. Він використовує формат ONNX для представлення моделей машинного навчання, Giza Transpiler для перетворення цих моделей у формат програми Cairo, ONNX Cairo Runtime для виконання моделей верифікованим і детермінованим способом, а також смарт-контракт моделі Giza для розгортання в мережі та технологічний стек для виконання моделі. Хоча Giza також можна класифікувати як компілятор від моделі до перевірки, її позиціонування як ринку для моделей ML є одним із найцікавіших застосувань на даний момент.
Gensyn — це розподілена мережа провайдерів обладнання для навчання моделей ML. Зокрема, вони розробляють систему імовірнісного аудиту на основі градієнтного спуску та використання контрольних точок моделі, щоб уможливити розподілені мережі GPU для навчання повномасштабних моделей. Хоча їхнє застосування zkML тут є дуже специфічним для їхнього випадку використання — вони хочуть переконатися, що коли вузол завантажує та навчає частину моделі, вони чесні щодо оновлень моделі — це демонструє потужність поєднання потужності zk і ML.
ZKaptcha зосереджується на проблемі ботів у web3 і надає послуги коду перевірки для смарт-контрактів. Їх поточна реалізація дозволяє кінцевим користувачам генерувати докази роботи людини, заповнюючи капчі, які перевіряються їх валідаторами в ланцюжку та доступні за допомогою смарт-контрактів із кількома рядками коду. Сьогодні вони в основному покладаються лише на zk, але в майбутньому вони мають намір реалізувати zkML, подібно до існуючих служб web2 captcha, аналізуючи поведінку, наприклад рухи миші, щоб визначити, чи є користувач людиною.
Враховуючи перші дні ринку zkML, багато програм уже експериментували на рівні хакатону. Проекти включають AI Coliseum, мережевий конкурс штучного інтелекту з використанням ZK-доказів для перевірки результатів машинного навчання, Hunter z Hunter, полювання за фотографіями з використанням бібліотеки EZKL для перевірки результатів моделі класифікації зображень із схемами halo 2, і zk Section 9 , Він перетворює моделі генерації зображень штучного інтелекту в схеми для кастингу та перевірки мистецтва штучного інтелекту.
виклики zkML
Незважаючи на швидкий прогрес у вдосконаленні та оптимізації, сфера zkML все ще стикається з деякими основними проблемами. Ці проблеми включають технічні та практичні аспекти, зокрема:
Квантування – це процес представлення чисел з плаваючою комою як чисел з фіксованою комою. Більшість моделей машинного навчання використовують числа з плаваючою комою для представлення параметрів моделі та функцій активації. Коли йдеться про арифметику домену для схем zk, потрібні числа з фіксованою комою. Вплив квантування на точність моделі машинного навчання залежить від рівня точності, який використовується. Загалом використання нижчої точності (тобто меншої кількості бітів) може призвести до меншої точності, оскільки це може призвести до помилок округлення та наближення. Однак існує кілька методів, які можна використовувати для мінімізації впливу квантування на точність, наприклад, точне налаштування моделі після квантування та використання таких методів, як навчання з урахуванням квантування. Крім того, Zero Gravity, проект хакатону на zkSummit 9, показав, що альтернативні архітектури нейронних мереж, розроблені для периферійних пристроїв, такі як невагомі нейронні мережі, можна використовувати для уникнення проблем квантування в схемах.
Окрім квантування, ще одним ключовим викликом є апаратне забезпечення. Коли модель машинного навчання правильно представлена схемою, докази для перевірки її міркувань стають дешевими та швидкими завдяки простоті zk. Проблема тут полягає не в верифікаторі, а в прувері, оскільки споживання оперативної пам’яті та час генерації доказів швидко зростають зі збільшенням розміру моделі. Певні системи перевірки (такі як системи на основі GKR, що використовують протокол sumcheck та ієрархічні арифметичні схеми) або комбіновані методи (такі як поєднання Plonky 2 із Groth 16, Plonky 2 є ефективним з точки зору часу перевірки, але ефективним для великих моделей Poor і Groth 16 не призводить до збільшення розміру доказів у складності складних моделей) краще підходить для вирішення цих проблем, але управління компромісами є основною проблемою в проектах zkML.
У плані боротьби з нападами ще є над чим працювати. По-перше, якщо ненадійний протокол або DAO вирішує реалізувати модель, все ще існує ризик агресивних атак під час фази навчання (наприклад, навчання моделі демонструвати певну поведінку, коли вона бачить певні вхідні дані, які можуть бути використані для маніпулювання наступними міркування) . Методи федеративного навчання та zkML на етапі навчання можуть бути способом мінімізації цієї поверхні атаки.
Іншою основною проблемою є ризик атак крадіжки моделі, коли модель зберігає конфіденційність. Хоча можливо обфускати ваги моделі, враховуючи достатню кількість пар входів і виходів, все ще теоретично можливо вивести ваги в зворотному напрямку. Це здебільшого ризик для дрібномасштабних моделей, але ризики все ще є.
Можливість розширення смарт-контрактів
Хоча є певні проблеми з оптимізацією цих моделей для роботи в межах обмежень zk, удосконалення вносяться експоненціально, і деякі очікують, що завдяки подальшому апаратному прискоренню ми незабаром зможемо працювати з ширшим полем машинного навчання, охоплюючи той же рівень. Щоб підкреслити швидкість цих удосконалень, zkML перейшов від демонстрації 0x PARC того, як виконати дрібномасштабну модель класифікації зображень MNIST у верифікованій схемі в 2021 році, до Деніела Канга, який зробив те саме для моделі в масштабі ImageNet менше ніж через рік. документи. У квітні 2022 року точність цієї моделі в масштабі ImageNet підвищилася з 79% до 92%, і очікується, що великі моделі, такі як GPT-2, стануть можливими в найближчому майбутньому, хоча поточний час перевірки довший.
Ми розглядаємо zkML як багату та зростаючу екосистему, розроблену для розширення можливостей блокчейнів і смарт-контрактів, роблячи їх більш гнучкими, адаптованими та інтелектуальними.
Хоча zkML все ще знаходиться на ранніх стадіях розробки, він уже почав показувати обнадійливі результати. У міру розвитку та зрілості технології ми можемо очікувати появи більш інноваційних випадків використання zkML у мережі.