Доказательство вывода модели машинного обучения (ML) с помощью zkSNARKs обещает стать одним из самых важных достижений в области смарт-контрактов в этом десятилетии. Эта разработка открывает невероятно большое пространство для проектирования, позволяя приложениям и инфраструктуре развиваться в более сложные и интеллектуальные системы.
Добавляя возможности машинного обучения, смарт-контракты могут стать более автономными и динамичными, что позволит им принимать решения на основе данных в сети в реальном времени, а не статических правил. Смарт-контракты будут гибкими и могут учитывать различные сценарии, в том числе те, которые, возможно, не предполагались при первоначальном создании контракта. Короче говоря, возможности машинного обучения повысят автоматизацию, точность, эффективность и гибкость любого смарт-контракта, который мы размещаем в сети.
Машинное обучение широко используется в большинстве приложений за пределами web3, а его применение в смарт-контрактах почти нулевое. В основном это связано с высокими вычислительными затратами на запуск этих моделей в сети. Например, FastBERT — оптимизированная для вычислений языковая модель, использующая около 1800 MFLOPS (миллионов операций с плавающей запятой), которую нельзя запустить непосредственно на EVM.
Применение модели ML в цепочке в основном сосредоточено на этапе рассуждений: применение модели для прогнозирования реальных данных. Чтобы иметь смарт-контракты в масштабе ML, контракты должны иметь возможность принимать такие прогнозы, но, как мы упоминали ранее, запуск моделей непосредственно на EVM невозможен. zkSNARK предоставляет нам решение: любой может запустить модель вне сети и создать краткое и проверяемое доказательство того, что ожидаемая модель действительно дала определенный результат. Это доказательство может быть опубликовано в сети и использовано смарт-контрактами для повышения их интеллекта.
В этой статье мы:
Ознакомьтесь с потенциальными приложениями и вариантами использования ончейн-машинного обучения.
Исследуйте новые проекты и инфраструктуру в основе zkML
Обсудите некоторые проблемы существующих реализаций и то, как может выглядеть будущее zkML.
Введение в машинное обучение (ML)
Машинное обучение (МО) — это область искусственного интеллекта (ИИ), которая фокусируется на разработке алгоритмов и статистических моделей, которые позволяют компьютерам учиться на данных и делать прогнозы или принимать решения. Модели машинного обучения обычно состоят из трех основных компонентов:
Данные для обучения: набор входных данных, используемых для обучения алгоритма машинного обучения делать прогнозы или классифицировать новые данные. Данные обучения могут принимать различные формы, такие как изображения, текст, аудио, числовые данные или их комбинации.
Архитектура модели: общая структура или дизайн модели машинного обучения. Он определяет иерархию, функции активации, а также тип и количество соединений между узлами или нейронами. Выбор архитектуры зависит от конкретной задачи и используемых данных.
Параметры модели: значения или веса, которые модель изучает во время обучения, чтобы делать прогнозы. Эти значения итеративно корректируются алгоритмом оптимизации, чтобы минимизировать ошибку между прогнозируемыми и фактическими результатами.
Генерация и развертывание модели разделены на два этапа:
Этап обучения: на этапе обучения модель подвергается воздействию помеченного набора данных и корректирует свои параметры, чтобы свести к минимуму ошибку между прогнозируемыми результатами и фактическими результатами. Процесс обучения обычно включает несколько итераций или циклов, а точность модели оценивается на отдельном проверочном наборе.
Фаза вывода: фаза вывода — это фаза, на которой обученная модель машинного обучения используется для прогнозирования новых невидимых данных. Модель берет входные данные и применяет изученные параметры для создания выходных данных, таких как классификация или прогноз регрессии.
В настоящее время zkML в основном фокусируется на этапе вывода моделей машинного обучения, а не на этапе обучения, в основном из-за вычислительной сложности обучения в схемах проверки. Однако акцент zkML на логических выводах не является ограничением: мы ожидаем очень интересных вариантов использования и приложений.
Проверенные сценарии вывода
Существует четыре возможных сценария проверки рассуждений:
Частный ввод, общедоступная модель. Потребители моделей (MC) могут пожелать сохранить конфиденциальность своего вклада от поставщиков моделей (MP). Например, MC может пожелать подтвердить кредиторам результаты модели кредитного скоринга, не раскрывая свою личную финансовую информацию. Это можно сделать с помощью схемы предварительной фиксации и локального запуска модели.
Публичный вклад, частная модель. Общая проблема с ML-as-a-Service заключается в том, что MP может захотеть скрыть свои параметры или веса, чтобы защитить свою IP, в то время как MC хочет убедиться, что сгенерированные выводы действительно основаны на указанной модели в состязательной обстановке. об этом так: предоставляя вывод MC, у MP есть стимул использовать более легкую модель, чтобы сэкономить деньги. Используя обязательство весов моделей в цепочке, MC может проверять частные модели в любое время.
Частный вход, частная модель. Это происходит, когда данные, используемые для логического вывода, являются высокочувствительными или конфиденциальными, а сама модель скрыта для защиты интеллектуальной собственности. Примером этого может быть аудит моделей здравоохранения с использованием частной информации о пациенте. Методы композиции в zk или варианты с использованием многосторонних вычислений (MPC) или FHE могут использоваться для обслуживания этого сценария.
Общественный вклад, общественная модель. Хотя все аспекты модели могут быть обнародованы, zkML предназначен для другого варианта использования: сжатия и проверки вычислений вне цепочки в средах в сети. Для более крупных моделей более рентабельно проверить краткий вывод zk, чем повторно запускать модель самостоятельно.
Проверенные рассуждения ML открывают новые возможности для разработки смарт-контрактов. Некоторые криптографические приложения включают в себя:
1、DeFi
Поддающиеся проверке оракулы машинного обучения вне сети. Дальнейшее внедрение генеративного ИИ может подтолкнуть отрасль к внедрению схем подписи для своего контента (например, новостные публикации, подписывающие статьи или изображения). Подписанные данные готовы к проверке с нулевым разглашением, что делает данные составными и заслуживающими доверия. Модели машинного обучения могут обрабатывать эти подписанные данные вне сети, чтобы делать прогнозы и классификации (например, классифицировать результаты выборов или погодные явления). Эти автономные оракулы машинного обучения могут безнадежно решать реальные рынки прогнозов, контракты по страховым протоколам и т. д., проверяя обоснованность и публикуя доказательства в сети.
Приложения DeFi на основе параметров машинного обучения. Многие аспекты DeFi могут быть более автоматизированы. Например, протоколы кредитования могут использовать модели машинного обучения для обновления параметров в режиме реального времени. В настоящее время протоколы кредитования в основном полагаются на модели вне сети, используемые организациями для определения залоговых факторов, отношения кредита к стоимости, пороговых значений ликвидации и т. д., но лучшим вариантом может быть модель с открытым исходным кодом, обученная сообществом, которую может запустить любой. и проверить.
Стратегии автоматической торговли. Обычный способ продемонстрировать характеристики доходности стратегии финансовой модели состоит в том, чтобы парламентарии предоставили инвесторам различные данные бэктестинга. Однако нет никакого способа проверить, что стратег следует модели при совершении сделки - инвестор должен верить, что стратег действительно следует модели. zkML предоставляет решение, в котором MP может предоставить доказательства обоснованности финансовой модели при развертывании на определенных должностях. Это может быть особенно полезно для хранилищ, управляемых DeFi.
2. Безопасность
Мониторинг мошенничества со смарт-контрактами. Вместо того, чтобы позволять медленному человеческому управлению или централизованным субъектам контролировать возможность приостановки контрактов, модели машинного обучения можно использовать для обнаружения возможного злонамеренного поведения и приостановки контрактов.
3. Традиционное машинное обучение
Децентрализованная, ненадежная реализация Kaggle. Можно создать протокол или рынок, который позволит MC или другим заинтересованным сторонам проверять точность моделей, не требуя от ПУ раскрытия весов моделей. Это полезно для продажи моделей, проведения соревнований по точности моделей и т. д.
Децентрализованная торговая площадка для генеративного ИИ. Создание подсказок для генеративного ИИ превратилось в сложное ремесло, и подсказки для создания оптимальных выходных данных часто имеют несколько модификаторов. Внешние стороны могут захотеть приобрести эти сложные подсказки у создателей. Здесь zkML можно использовать двумя способами: 1) для проверки вывода подсказки, чтобы убедить потенциальных покупателей в том, что подсказка действительно создает желаемое изображение;
Разрешить владельцу наконечника сохранять право собственности на наконечник после покупки, оставаясь при этом неизвестным покупателю, но по-прежнему создавая для него проверенные изображения.
4. Идентичность
Замените закрытые ключи биометрической аутентификацией с сохранением конфиденциальности. Управление закрытыми ключами остается одним из самых больших препятствий в пользовательском опыте web3. Абстрагирование закрытых ключей с помощью распознавания лиц или других уникальных факторов — одно из возможных решений для zkML.
Справедливые аирдропы и вознаграждения участников. Модели машинного обучения можно использовать для создания подробных портретов пользователей, чтобы определять распределение аирдропа или вознаграждение за вклад на основе множества факторов. Это может быть особенно полезно в сочетании с решениями для идентификации. В этом случае одна из возможностей состоит в том, чтобы пользователи запускали модель с открытым исходным кодом, которая оценивает их участие в приложении, а также взаимодействие более высокого уровня, например, сообщения на форуме управления, чтобы рассуждать о своих назначениях. Это доказательство затем предоставляется в контракте для соответствующего распределения токенов.
5. Социальные сети Web3
Фильтрация для социальных сетей web3. Децентрализованный характер социальных приложений web3 приведет к увеличению спама и вредоносного контента. В идеале платформа социальных сетей могла бы использовать модель машинного обучения с открытым исходным кодом, согласованную с сообществом, и публиковать доказательства обоснованности модели, когда она выбирает фильтрацию сообщений. Показательный пример: анализ zkML на алгоритме Twitter.
Реклама/Рекомендация. Как пользователь социальных сетей, я, возможно, захочу видеть персонализированную рекламу, но хочу, чтобы мои предпочтения и интересы оставались в тайне от рекламодателей. Я могу запустить модель локально о моих интересах, передать ее в мультимедийное приложение, чтобы предоставить мне контент. В этом случае рекламодатели могут быть готовы платить конечным пользователям за то, чтобы это произошло, однако эти модели могут быть гораздо менее сложными, чем используемые в настоящее время модели целевой рекламы.
6. Экономика авторов/игры
Ребаланс внутриигровой экономики. Выпуск токенов, предложение, сжигание, пороги голосования и т. д. можно динамически регулировать с помощью моделей машинного обучения. Одной из возможных моделей является поощрительный контракт, который перебалансирует внутриигровую экономику, если достигнут определенный порог перебалансировки и подтверждено доказательство обоснованности.
Новые типы сетевых игр. Могут быть созданы совместные игры «люди против ИИ» и другие инновационные онлайн-игры, в которых ненадежная модель ИИ действует как неигровой персонаж. Каждое действие, предпринятое NPC, публикуется в сети вместе с доказательством того, что любой может проверить, что запущена правильная модель. В « Лиле против мира» Modulus Labs проверяющий хочет убедиться, что заявленный 1900 ELO AI выбирает ход, а не Магнус Карлсон. Другой пример — AI Arena, файтинг с искусственным интеллектом, похожий на Super Smash Brothers. В конкурентной среде с высокими ставками игроки хотят убедиться, что модели, которых они обучают, не вмешиваются и не обманывают.
Новые проекты и инфраструктура
Экосистему zkML можно условно разделить на четыре основные категории:
Компилятор Model-to-Proof: инфраструктура для компиляции моделей в существующих форматах (например, Pytorch, ONNX и т. д.) в поддающиеся проверке вычислительные схемы.
Обобщенная система доказательств: Постройте систему доказательств для проверки произвольных вычислительных траекторий.
Система доказательств, специфичная для zkML: система доказательств, специально созданная для проверки вычислительной траектории моделей ML.
Приложения: проекты, работающие над уникальными вариантами использования zkML.
01 Компиляторы для проверки модели
В экосистеме zkML основное внимание уделялось созданию компиляторов для проверки модели. Как правило, эти компиляторы преобразуют расширенные модели ML в схемы zk с использованием Pytorch, Tensorflow и т. д.
EZKL — это библиотека и инструмент командной строки для вывода моделей глубокого обучения в zk-SNARK. Используя EZKL, вы можете определить вычислительный граф в Pytorch или TensorFlow, экспортировать его в файл ONNX с некоторыми примерами входных данных в файлы JSON, а затем указать EZKL на эти файлы для создания цепей zkSNARK. Благодаря последним улучшениям производительности EZKL теперь может проверить модель размера MNIST примерно за 6 секунд и 1,1 ГБ ОЗУ. На сегодняшний день EZKL пережил заметное раннее внедрение, используя его в качестве инфраструктуры для различных проектов хакатонов.
Библиотека circomlib-ml Кэти Со содержит различные шаблоны схем машинного обучения для Circom. Схемы включают в себя некоторые из наиболее распространенных функций машинного обучения. Keras 2c ircom, разработанный Кэти, представляет собой инструмент Python, который преобразует модели Keras в схемы Circom с использованием базовой библиотеки circomlib-ml.
LinearA разработала два фреймворка для zkML: Tachikoma и Uchikoma. Tachikoma используется для преобразования нейронной сети в целочисленную форму и генерации вычислительных траекторий. Uchikoma — это инструмент, преобразующий промежуточное представление TVM в языки программирования, не поддерживающие операции с плавающей запятой. LinearA планирует поддерживать Circom с арифметикой домена и Solidity с арифметикой целых чисел со знаком и без знака.
Zkml Даниэля Канга — это фреймворк для доказательств выполнения моделей машинного обучения, основанный на его работе в статье «Расширение вывода доверенных DNN с помощью доказательств с нулевым разглашением». На момент написания статьи удалось проверить схему MNIST примерно на 5 ГБ памяти и примерно за 16 секунд выполнения.
С точки зрения более обобщенных компиляторов модели для доказательства есть 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 вместо графического процессора. Подобно Nil, используйте Risc Zero для проверки вычислительной траектории модели ML.
02 Обобщенная система доказательств
Улучшения в системе доказательств были основной движущей силой реализации zkML, в частности введение настраиваемых шлюзов и таблиц поиска. Это в основном связано с зависимостью ML от нелинейности. Короче говоря, нелинейность вводится через функции активации (такие как ReLU, сигмоид и тангенс), которые применяются к выходу линейного преобразования в нейронной сети. Эти нелинейности сложно реализовать в схемах 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 — это метод доказательства правильности сверточных нейронных сетей с использованием доказательств с нулевым разглашением. Он использует протокол проверки суммы для доказательства быстрых преобразований Фурье и сверток с линейным временем доказательства, быстрее, чем асимптотическое вычисление результатов. Было представлено несколько интерактивных доказательств улучшения и обобщения, включая сверточные слои проверки, функции активации ReLU и максимальное объединение. Согласно отчету о сравнительном тестировании Modulus Labs, zkCNN особенно интересен тем, что превосходит другие системы проверки общего назначения с точки зрения скорости генерации доказательств и потребления оперативной памяти.
Zator — это проект, целью которого является изучение использования рекурсивных SNARK для проверки глубоких нейронных сетей. Текущее ограничение проверки более глубоких моделей заключается в том, что все вычислительные траектории помещаются в одну схему. Затор предложил использовать рекурсивный SNARK для послойной проверки, который может постепенно проверять повторяющиеся вычисления за N шагов. Они использовали Nova, чтобы сократить N вычислительных экземпляров до одного экземпляра, который можно было проверить за один шаг. Используя этот подход, Затор смог SNARK сети с 512 слоями, что является таким же глубоким, как и большинство текущих моделей искусственного интеллекта. Время генерации и проверки доказательств Zator все еще слишком велико для обычных случаев использования, но их комбинированные методы по-прежнему очень интересны.
Приложения
Учитывая первые дни существования zkML, его основное внимание уделялось вышеупомянутой инфраструктуре. Однако в настоящее время существует несколько проектов, посвященных разработке приложений.
Modulus Labs — один из самых разнообразных проектов в области zkML, работающий как над примерами приложений, так и над соответствующими исследованиями. Что касается прикладной стороны, Modulus Labs продемонстрировала варианты использования zkML с RockyBot, торговым ботом в сети, и Leela vs. the World, настольной игрой, в которой люди играют против проверенного сетевого шахматного движка Leela. Команда также провела исследование и написала «Стоимость интеллекта», в котором оценивается скорость и эффективность различных систем доказательства при разных размерах моделей.
Worldcoin пытается применить zkML для создания протокола подтверждения личности, сохраняющего конфиденциальность. Worldcoin обрабатывает сканирование радужной оболочки глаза с высоким разрешением с помощью специального оборудования и подключает его к реализации Semaphore. Затем эту систему можно использовать для выполнения полезных операций, таких как подтверждение членства и голосование. В настоящее время они используют доверенную среду выполнения и безопасный анклав для проверки сканов радужной оболочки глаза, подписанных камерой, но их конечная цель — использовать доказательства с нулевым разглашением для проверки правильности рассуждений нейронных сетей для обеспечения безопасности на криптографическом уровне.
Giza — это протокол, который использует абсолютно ненадежный подход к развертыванию моделей ИИ в сети. Он использует формат ONNX для представления моделей машинного обучения, Giza Transpiler для преобразования этих моделей в формат программы Cairo, среду выполнения ONNX Cairo для выполнения моделей проверяемым и детерминированным образом, а также смарт-контракт модели Giza для развертывания в сети и технологический стек для выполнения модели. Хотя Giza также можно классифицировать как компилятор модели для доказательства, их позиционирование как рынок моделей машинного обучения является одним из самых интересных приложений на данный момент.
Gensyn — это распределенная сеть поставщиков оборудования для обучения моделей машинного обучения. В частности, они разрабатывают вероятностную систему аудита, основанную на градиентном спуске и использующую контрольные точки модели, чтобы позволить распределенным сетям GPU обслуживать обучение для полномасштабных моделей. Хотя их применение zkML здесь очень специфично для их варианта использования — они хотят гарантировать, что, когда узел загружает и обучает часть модели, они честны в отношении обновлений модели — это демонстрирует силу объединения zk и силы ML.
ZKaptcha фокусируется на проблеме ботов в web3 и предоставляет услуги кода проверки для смарт-контрактов. В их текущей реализации конечные пользователи генерируют доказательства человеческой работы, заполняя капчи, которые проверяются их валидаторами в сети и доступны смарт-контрактам с помощью нескольких строк кода. Сегодня они в основном полагаются только на zk, но в будущем намерены внедрить zkML, аналогично существующим службам проверки подлинности web2, анализируя поведение, такое как движение мыши, чтобы определить, является ли пользователь человеком или нет.
Учитывая ранние дни рынка zkML, многие приложения уже были опробованы на уровне хакатона. Проекты включают AI Coliseum, соревнование по ИИ в сети с использованием доказательств ZK для проверки результатов машинного обучения, Hunter z Hunter, поиск мусора с использованием библиотеки EZKL для проверки результатов модели классификации изображений с цепями halo 2 и zk Section 9. , Он преобразует модели генерации изображений ИИ в схемы для кастинга и проверки искусства ИИ.
задачи zkML
Несмотря на быстрый прогресс в улучшении и оптимизации, область zkML по-прежнему сталкивается с некоторыми основными проблемами. Эти проблемы связаны с техническими и практическими аспектами, в том числе:
Квантование с минимальной потерей точности
Размер цепи, особенно когда сеть состоит из нескольких слоев
Эффективное доказательство умножения матриц
Против нападения
Квантование — это процесс представления чисел с плавающей запятой в виде чисел с фиксированной запятой.Большинство моделей машинного обучения используют числа с плавающей запятой для представления параметров модели и функций активации.При работе с арифметикой предметной области для цепей zk требуются числа с фиксированной запятой. Влияние квантования на точность модели машинного обучения зависит от используемого уровня точности. Как правило, использование более низкой точности (т. е. меньшего количества битов) может привести к меньшей точности, поскольку это может привести к ошибкам округления и аппроксимации. Однако существует несколько методов, которые можно использовать для сведения к минимуму влияния квантования на точность, например, точная настройка модели после квантования и использование таких методов, как обучение с учетом квантования. Кроме того, Zero Gravity, проект хакатона на zkSummit 9, показал, что альтернативные архитектуры нейронных сетей, разработанные для периферийных устройств, такие как невесомые нейронные сети, могут использоваться для устранения проблем с квантованием в схемах.
Помимо квантования, еще одной ключевой проблемой является аппаратное обеспечение. Как только модель машинного обучения правильно представлена схемой, доказательства для проверки ее рассуждений становятся дешевыми и быстрыми благодаря простоте zk. Проблема здесь заключается не в верификаторе, а в доказывающем, поскольку потребление оперативной памяти и время генерации доказательства быстро увеличиваются по мере увеличения размера модели. Определенные системы проверки (например, системы на основе GKR, использующие протокол суммирования и иерархические арифметические схемы) или комбинированные методы (например, объединение Plonky 2 с Groth 16, Plonky 2 эффективен с точки зрения времени проверки, но эффективен для больших моделей. Плохо и Грот 16 не приводит к увеличению сложности сложных моделей) лучше подходит для решения этих проблем, но управление компромиссами является основной проблемой в проектах zkML.
Что касается борьбы с нападениями, то здесь еще многое предстоит сделать. Во-первых, если ненадежный протокол или DAO решит реализовать модель, все еще существует риск со стороны злоумышленников на этапе обучения (например, обучение модели демонстрировать определенное поведение при получении определенных входных данных, которые можно использовать для манипулирования последующими данными). рассуждения). Методы федеративного обучения и zkML на этапе обучения могут помочь свести к минимуму эту поверхность атаки.
Еще одна основная проблема — это риск кражи модели, когда модель сохраняет конфиденциальность. Хотя можно запутать веса модели при наличии достаточного количества пар вход-выход, теоретически возможно вывести веса в обратном порядке. В основном это риск для мелкомасштабных моделей, но риски все же есть.
Расширяемость смарт-контрактов
Хотя существуют некоторые проблемы с оптимизацией этих моделей для работы в рамках ограничений zk, улучшения вносятся с экспоненциальной скоростью, и некоторые ожидают, что с дальнейшим аппаратным ускорением мы скоро сможем работать с более широкой областью машинного обучения, тот же уровень. Чтобы подчеркнуть скорость этих улучшений, zkML перешел от демонстрации 0x PARC того, как выполнить мелкомасштабную модель классификации изображений MNIST в проверяемой схеме в 2021 году, к Дэниелу Кангу, который сделал то же самое для модели масштаба ImageNet менее чем через год. документы. В апреле 2022 года точность этой модели в масштабе ImageNet повысилась с 79% до 92%, и ожидается, что в ближайшем будущем станут возможными большие модели, такие как GPT-2, хотя текущее время проверки больше.
Мы рассматриваем zkML как богатую и растущую экосистему, предназначенную для расширения возможностей блокчейнов и смарт-контрактов, делая их более гибкими, адаптируемыми и интеллектуальными.
Хотя zkML все еще находится на ранних стадиях разработки, он уже начал показывать многообещающие результаты. По мере развития и совершенствования технологии мы можем ожидать появления более инновационных вариантов использования zkML в сети.
Посмотреть Оригинал
Содержание носит исключительно справочный характер и не является предложением или офертой. Консультации по инвестициям, налогообложению или юридическим вопросам не предоставляются. Более подробную информацию о рисках см. в разделе «Дисклеймер».
Углубленный анализ трека ZKML: следующий шаг в интеллектуальном развитии смарт-контрактов
Доказательство вывода модели машинного обучения (ML) с помощью zkSNARKs обещает стать одним из самых важных достижений в области смарт-контрактов в этом десятилетии. Эта разработка открывает невероятно большое пространство для проектирования, позволяя приложениям и инфраструктуре развиваться в более сложные и интеллектуальные системы.
Добавляя возможности машинного обучения, смарт-контракты могут стать более автономными и динамичными, что позволит им принимать решения на основе данных в сети в реальном времени, а не статических правил. Смарт-контракты будут гибкими и могут учитывать различные сценарии, в том числе те, которые, возможно, не предполагались при первоначальном создании контракта. Короче говоря, возможности машинного обучения повысят автоматизацию, точность, эффективность и гибкость любого смарт-контракта, который мы размещаем в сети.
Машинное обучение широко используется в большинстве приложений за пределами web3, а его применение в смарт-контрактах почти нулевое. В основном это связано с высокими вычислительными затратами на запуск этих моделей в сети. Например, FastBERT — оптимизированная для вычислений языковая модель, использующая около 1800 MFLOPS (миллионов операций с плавающей запятой), которую нельзя запустить непосредственно на EVM.
Применение модели ML в цепочке в основном сосредоточено на этапе рассуждений: применение модели для прогнозирования реальных данных. Чтобы иметь смарт-контракты в масштабе ML, контракты должны иметь возможность принимать такие прогнозы, но, как мы упоминали ранее, запуск моделей непосредственно на EVM невозможен. zkSNARK предоставляет нам решение: любой может запустить модель вне сети и создать краткое и проверяемое доказательство того, что ожидаемая модель действительно дала определенный результат. Это доказательство может быть опубликовано в сети и использовано смарт-контрактами для повышения их интеллекта.
В этой статье мы:
Введение в машинное обучение (ML)
Машинное обучение (МО) — это область искусственного интеллекта (ИИ), которая фокусируется на разработке алгоритмов и статистических моделей, которые позволяют компьютерам учиться на данных и делать прогнозы или принимать решения. Модели машинного обучения обычно состоят из трех основных компонентов:
Генерация и развертывание модели разделены на два этапа:
В настоящее время zkML в основном фокусируется на этапе вывода моделей машинного обучения, а не на этапе обучения, в основном из-за вычислительной сложности обучения в схемах проверки. Однако акцент zkML на логических выводах не является ограничением: мы ожидаем очень интересных вариантов использования и приложений.
Проверенные сценарии вывода
Существует четыре возможных сценария проверки рассуждений:
Проверенные рассуждения ML открывают новые возможности для разработки смарт-контрактов. Некоторые криптографические приложения включают в себя:
1、DeFi
Поддающиеся проверке оракулы машинного обучения вне сети. Дальнейшее внедрение генеративного ИИ может подтолкнуть отрасль к внедрению схем подписи для своего контента (например, новостные публикации, подписывающие статьи или изображения). Подписанные данные готовы к проверке с нулевым разглашением, что делает данные составными и заслуживающими доверия. Модели машинного обучения могут обрабатывать эти подписанные данные вне сети, чтобы делать прогнозы и классификации (например, классифицировать результаты выборов или погодные явления). Эти автономные оракулы машинного обучения могут безнадежно решать реальные рынки прогнозов, контракты по страховым протоколам и т. д., проверяя обоснованность и публикуя доказательства в сети.
Приложения DeFi на основе параметров машинного обучения. Многие аспекты DeFi могут быть более автоматизированы. Например, протоколы кредитования могут использовать модели машинного обучения для обновления параметров в режиме реального времени. В настоящее время протоколы кредитования в основном полагаются на модели вне сети, используемые организациями для определения залоговых факторов, отношения кредита к стоимости, пороговых значений ликвидации и т. д., но лучшим вариантом может быть модель с открытым исходным кодом, обученная сообществом, которую может запустить любой. и проверить.
Стратегии автоматической торговли. Обычный способ продемонстрировать характеристики доходности стратегии финансовой модели состоит в том, чтобы парламентарии предоставили инвесторам различные данные бэктестинга. Однако нет никакого способа проверить, что стратег следует модели при совершении сделки - инвестор должен верить, что стратег действительно следует модели. zkML предоставляет решение, в котором MP может предоставить доказательства обоснованности финансовой модели при развертывании на определенных должностях. Это может быть особенно полезно для хранилищ, управляемых DeFi.
2. Безопасность
Мониторинг мошенничества со смарт-контрактами. Вместо того, чтобы позволять медленному человеческому управлению или централизованным субъектам контролировать возможность приостановки контрактов, модели машинного обучения можно использовать для обнаружения возможного злонамеренного поведения и приостановки контрактов.
3. Традиционное машинное обучение
Децентрализованная, ненадежная реализация Kaggle. Можно создать протокол или рынок, который позволит MC или другим заинтересованным сторонам проверять точность моделей, не требуя от ПУ раскрытия весов моделей. Это полезно для продажи моделей, проведения соревнований по точности моделей и т. д.
Децентрализованная торговая площадка для генеративного ИИ. Создание подсказок для генеративного ИИ превратилось в сложное ремесло, и подсказки для создания оптимальных выходных данных часто имеют несколько модификаторов. Внешние стороны могут захотеть приобрести эти сложные подсказки у создателей. Здесь zkML можно использовать двумя способами: 1) для проверки вывода подсказки, чтобы убедить потенциальных покупателей в том, что подсказка действительно создает желаемое изображение;
4. Идентичность
Замените закрытые ключи биометрической аутентификацией с сохранением конфиденциальности. Управление закрытыми ключами остается одним из самых больших препятствий в пользовательском опыте web3. Абстрагирование закрытых ключей с помощью распознавания лиц или других уникальных факторов — одно из возможных решений для zkML.
Справедливые аирдропы и вознаграждения участников. Модели машинного обучения можно использовать для создания подробных портретов пользователей, чтобы определять распределение аирдропа или вознаграждение за вклад на основе множества факторов. Это может быть особенно полезно в сочетании с решениями для идентификации. В этом случае одна из возможностей состоит в том, чтобы пользователи запускали модель с открытым исходным кодом, которая оценивает их участие в приложении, а также взаимодействие более высокого уровня, например, сообщения на форуме управления, чтобы рассуждать о своих назначениях. Это доказательство затем предоставляется в контракте для соответствующего распределения токенов.
5. Социальные сети Web3
Фильтрация для социальных сетей web3. Децентрализованный характер социальных приложений web3 приведет к увеличению спама и вредоносного контента. В идеале платформа социальных сетей могла бы использовать модель машинного обучения с открытым исходным кодом, согласованную с сообществом, и публиковать доказательства обоснованности модели, когда она выбирает фильтрацию сообщений. Показательный пример: анализ zkML на алгоритме Twitter.
Реклама/Рекомендация. Как пользователь социальных сетей, я, возможно, захочу видеть персонализированную рекламу, но хочу, чтобы мои предпочтения и интересы оставались в тайне от рекламодателей. Я могу запустить модель локально о моих интересах, передать ее в мультимедийное приложение, чтобы предоставить мне контент. В этом случае рекламодатели могут быть готовы платить конечным пользователям за то, чтобы это произошло, однако эти модели могут быть гораздо менее сложными, чем используемые в настоящее время модели целевой рекламы.
6. Экономика авторов/игры
Ребаланс внутриигровой экономики. Выпуск токенов, предложение, сжигание, пороги голосования и т. д. можно динамически регулировать с помощью моделей машинного обучения. Одной из возможных моделей является поощрительный контракт, который перебалансирует внутриигровую экономику, если достигнут определенный порог перебалансировки и подтверждено доказательство обоснованности.
Новые типы сетевых игр. Могут быть созданы совместные игры «люди против ИИ» и другие инновационные онлайн-игры, в которых ненадежная модель ИИ действует как неигровой персонаж. Каждое действие, предпринятое NPC, публикуется в сети вместе с доказательством того, что любой может проверить, что запущена правильная модель. В « Лиле против мира» Modulus Labs проверяющий хочет убедиться, что заявленный 1900 ELO AI выбирает ход, а не Магнус Карлсон. Другой пример — AI Arena, файтинг с искусственным интеллектом, похожий на Super Smash Brothers. В конкурентной среде с высокими ставками игроки хотят убедиться, что модели, которых они обучают, не вмешиваются и не обманывают.
Новые проекты и инфраструктура
Экосистему zkML можно условно разделить на четыре основные категории:
01 Компиляторы для проверки модели
В экосистеме zkML основное внимание уделялось созданию компиляторов для проверки модели. Как правило, эти компиляторы преобразуют расширенные модели ML в схемы zk с использованием Pytorch, Tensorflow и т. д.
EZKL — это библиотека и инструмент командной строки для вывода моделей глубокого обучения в zk-SNARK. Используя EZKL, вы можете определить вычислительный граф в Pytorch или TensorFlow, экспортировать его в файл ONNX с некоторыми примерами входных данных в файлы JSON, а затем указать EZKL на эти файлы для создания цепей zkSNARK. Благодаря последним улучшениям производительности EZKL теперь может проверить модель размера MNIST примерно за 6 секунд и 1,1 ГБ ОЗУ. На сегодняшний день EZKL пережил заметное раннее внедрение, используя его в качестве инфраструктуры для различных проектов хакатонов.
Библиотека circomlib-ml Кэти Со содержит различные шаблоны схем машинного обучения для Circom. Схемы включают в себя некоторые из наиболее распространенных функций машинного обучения. Keras 2c ircom, разработанный Кэти, представляет собой инструмент Python, который преобразует модели Keras в схемы Circom с использованием базовой библиотеки circomlib-ml.
LinearA разработала два фреймворка для zkML: Tachikoma и Uchikoma. Tachikoma используется для преобразования нейронной сети в целочисленную форму и генерации вычислительных траекторий. Uchikoma — это инструмент, преобразующий промежуточное представление TVM в языки программирования, не поддерживающие операции с плавающей запятой. LinearA планирует поддерживать Circom с арифметикой домена и Solidity с арифметикой целых чисел со знаком и без знака.
Zkml Даниэля Канга — это фреймворк для доказательств выполнения моделей машинного обучения, основанный на его работе в статье «Расширение вывода доверенных DNN с помощью доказательств с нулевым разглашением». На момент написания статьи удалось проверить схему MNIST примерно на 5 ГБ памяти и примерно за 16 секунд выполнения.
С точки зрения более обобщенных компиляторов модели для доказательства есть 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 вместо графического процессора. Подобно Nil, используйте Risc Zero для проверки вычислительной траектории модели ML.
02 Обобщенная система доказательств
Улучшения в системе доказательств были основной движущей силой реализации zkML, в частности введение настраиваемых шлюзов и таблиц поиска. Это в основном связано с зависимостью ML от нелинейности. Короче говоря, нелинейность вводится через функции активации (такие как ReLU, сигмоид и тангенс), которые применяются к выходу линейного преобразования в нейронной сети. Эти нелинейности сложно реализовать в схемах 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 — это метод доказательства правильности сверточных нейронных сетей с использованием доказательств с нулевым разглашением. Он использует протокол проверки суммы для доказательства быстрых преобразований Фурье и сверток с линейным временем доказательства, быстрее, чем асимптотическое вычисление результатов. Было представлено несколько интерактивных доказательств улучшения и обобщения, включая сверточные слои проверки, функции активации ReLU и максимальное объединение. Согласно отчету о сравнительном тестировании Modulus Labs, zkCNN особенно интересен тем, что превосходит другие системы проверки общего назначения с точки зрения скорости генерации доказательств и потребления оперативной памяти.
Zator — это проект, целью которого является изучение использования рекурсивных SNARK для проверки глубоких нейронных сетей. Текущее ограничение проверки более глубоких моделей заключается в том, что все вычислительные траектории помещаются в одну схему. Затор предложил использовать рекурсивный SNARK для послойной проверки, который может постепенно проверять повторяющиеся вычисления за N шагов. Они использовали Nova, чтобы сократить N вычислительных экземпляров до одного экземпляра, который можно было проверить за один шаг. Используя этот подход, Затор смог SNARK сети с 512 слоями, что является таким же глубоким, как и большинство текущих моделей искусственного интеллекта. Время генерации и проверки доказательств Zator все еще слишком велико для обычных случаев использования, но их комбинированные методы по-прежнему очень интересны.
Приложения
Учитывая первые дни существования zkML, его основное внимание уделялось вышеупомянутой инфраструктуре. Однако в настоящее время существует несколько проектов, посвященных разработке приложений.
Modulus Labs — один из самых разнообразных проектов в области zkML, работающий как над примерами приложений, так и над соответствующими исследованиями. Что касается прикладной стороны, Modulus Labs продемонстрировала варианты использования zkML с RockyBot, торговым ботом в сети, и Leela vs. the World, настольной игрой, в которой люди играют против проверенного сетевого шахматного движка Leela. Команда также провела исследование и написала «Стоимость интеллекта», в котором оценивается скорость и эффективность различных систем доказательства при разных размерах моделей.
Worldcoin пытается применить zkML для создания протокола подтверждения личности, сохраняющего конфиденциальность. Worldcoin обрабатывает сканирование радужной оболочки глаза с высоким разрешением с помощью специального оборудования и подключает его к реализации Semaphore. Затем эту систему можно использовать для выполнения полезных операций, таких как подтверждение членства и голосование. В настоящее время они используют доверенную среду выполнения и безопасный анклав для проверки сканов радужной оболочки глаза, подписанных камерой, но их конечная цель — использовать доказательства с нулевым разглашением для проверки правильности рассуждений нейронных сетей для обеспечения безопасности на криптографическом уровне.
Giza — это протокол, который использует абсолютно ненадежный подход к развертыванию моделей ИИ в сети. Он использует формат ONNX для представления моделей машинного обучения, Giza Transpiler для преобразования этих моделей в формат программы Cairo, среду выполнения ONNX Cairo для выполнения моделей проверяемым и детерминированным образом, а также смарт-контракт модели Giza для развертывания в сети и технологический стек для выполнения модели. Хотя Giza также можно классифицировать как компилятор модели для доказательства, их позиционирование как рынок моделей машинного обучения является одним из самых интересных приложений на данный момент.
Gensyn — это распределенная сеть поставщиков оборудования для обучения моделей машинного обучения. В частности, они разрабатывают вероятностную систему аудита, основанную на градиентном спуске и использующую контрольные точки модели, чтобы позволить распределенным сетям GPU обслуживать обучение для полномасштабных моделей. Хотя их применение zkML здесь очень специфично для их варианта использования — они хотят гарантировать, что, когда узел загружает и обучает часть модели, они честны в отношении обновлений модели — это демонстрирует силу объединения zk и силы ML.
ZKaptcha фокусируется на проблеме ботов в web3 и предоставляет услуги кода проверки для смарт-контрактов. В их текущей реализации конечные пользователи генерируют доказательства человеческой работы, заполняя капчи, которые проверяются их валидаторами в сети и доступны смарт-контрактам с помощью нескольких строк кода. Сегодня они в основном полагаются только на zk, но в будущем намерены внедрить zkML, аналогично существующим службам проверки подлинности web2, анализируя поведение, такое как движение мыши, чтобы определить, является ли пользователь человеком или нет.
Учитывая ранние дни рынка zkML, многие приложения уже были опробованы на уровне хакатона. Проекты включают AI Coliseum, соревнование по ИИ в сети с использованием доказательств ZK для проверки результатов машинного обучения, Hunter z Hunter, поиск мусора с использованием библиотеки EZKL для проверки результатов модели классификации изображений с цепями halo 2 и zk Section 9. , Он преобразует модели генерации изображений ИИ в схемы для кастинга и проверки искусства ИИ.
задачи zkML
Несмотря на быстрый прогресс в улучшении и оптимизации, область zkML по-прежнему сталкивается с некоторыми основными проблемами. Эти проблемы связаны с техническими и практическими аспектами, в том числе:
Квантование — это процесс представления чисел с плавающей запятой в виде чисел с фиксированной запятой.Большинство моделей машинного обучения используют числа с плавающей запятой для представления параметров модели и функций активации.При работе с арифметикой предметной области для цепей zk требуются числа с фиксированной запятой. Влияние квантования на точность модели машинного обучения зависит от используемого уровня точности. Как правило, использование более низкой точности (т. е. меньшего количества битов) может привести к меньшей точности, поскольку это может привести к ошибкам округления и аппроксимации. Однако существует несколько методов, которые можно использовать для сведения к минимуму влияния квантования на точность, например, точная настройка модели после квантования и использование таких методов, как обучение с учетом квантования. Кроме того, Zero Gravity, проект хакатона на zkSummit 9, показал, что альтернативные архитектуры нейронных сетей, разработанные для периферийных устройств, такие как невесомые нейронные сети, могут использоваться для устранения проблем с квантованием в схемах.
Помимо квантования, еще одной ключевой проблемой является аппаратное обеспечение. Как только модель машинного обучения правильно представлена схемой, доказательства для проверки ее рассуждений становятся дешевыми и быстрыми благодаря простоте zk. Проблема здесь заключается не в верификаторе, а в доказывающем, поскольку потребление оперативной памяти и время генерации доказательства быстро увеличиваются по мере увеличения размера модели. Определенные системы проверки (например, системы на основе GKR, использующие протокол суммирования и иерархические арифметические схемы) или комбинированные методы (например, объединение Plonky 2 с Groth 16, Plonky 2 эффективен с точки зрения времени проверки, но эффективен для больших моделей. Плохо и Грот 16 не приводит к увеличению сложности сложных моделей) лучше подходит для решения этих проблем, но управление компромиссами является основной проблемой в проектах zkML.
Что касается борьбы с нападениями, то здесь еще многое предстоит сделать. Во-первых, если ненадежный протокол или DAO решит реализовать модель, все еще существует риск со стороны злоумышленников на этапе обучения (например, обучение модели демонстрировать определенное поведение при получении определенных входных данных, которые можно использовать для манипулирования последующими данными). рассуждения). Методы федеративного обучения и zkML на этапе обучения могут помочь свести к минимуму эту поверхность атаки.
Еще одна основная проблема — это риск кражи модели, когда модель сохраняет конфиденциальность. Хотя можно запутать веса модели при наличии достаточного количества пар вход-выход, теоретически возможно вывести веса в обратном порядке. В основном это риск для мелкомасштабных моделей, но риски все же есть.
Расширяемость смарт-контрактов
Хотя существуют некоторые проблемы с оптимизацией этих моделей для работы в рамках ограничений zk, улучшения вносятся с экспоненциальной скоростью, и некоторые ожидают, что с дальнейшим аппаратным ускорением мы скоро сможем работать с более широкой областью машинного обучения, тот же уровень. Чтобы подчеркнуть скорость этих улучшений, zkML перешел от демонстрации 0x PARC того, как выполнить мелкомасштабную модель классификации изображений MNIST в проверяемой схеме в 2021 году, к Дэниелу Кангу, который сделал то же самое для модели масштаба ImageNet менее чем через год. документы. В апреле 2022 года точность этой модели в масштабе ImageNet повысилась с 79% до 92%, и ожидается, что в ближайшем будущем станут возможными большие модели, такие как GPT-2, хотя текущее время проверки больше.
Мы рассматриваем zkML как богатую и растущую экосистему, предназначенную для расширения возможностей блокчейнов и смарт-контрактов, делая их более гибкими, адаптируемыми и интеллектуальными.
Хотя zkML все еще находится на ранних стадиях разработки, он уже начал показывать многообещающие результаты. По мере развития и совершенствования технологии мы можем ожидать появления более инновационных вариантов использования zkML в сети.