a16z: Как проверить алгоритмы машинного обучения на блокчейне с помощью доказательства с нулевым знанием?
Исходный заголовок: Система сдержек и противовесов: Машинное обучение и доказательства с нулевым знанием
Исходный автор: Елена Бургер, a16z
Составлено: DeFi之道
В последние несколько лет доказательства с нулевым знанием на блокчейне в основном использовались для двух ключевых целей: (1) для масштабирования вычислительно ограниченных сетей путем обработки транзакций вне сети и проверки результатов в основной сети; (2) для защиты конфиденциальности пользователей путем реализации скрытых транзакций, которые могут быть просмотрены только теми, кто имеет ключ для расшифровки. В контексте блокчейна эти характеристики явно желательны: децентрализованные сети (такие как Ethereum) не могут увеличить пропускную способность или размер блока без непосильных требований к вычислительным мощностям, пропускной способности и задержкам валидаторов (поэтому требуется эффективная свертка), все транзакции видны любому (поэтому требуются решения для конфиденциальности на блокчейне).
Но доказательства с нулевым знанием также полезны для третьего типа функций: эффективной проверки того, что любой тип вычислений (а не только вычисления, инстанцируемые вне сети в EVM) был выполнен правильно. Это также имеет большое значение для областей за пределами блокчейна.
Теперь достижения в системах, которые лаконично проверяют вычислительные возможности с помощью доказательств с нулевым знанием, позволяют пользователям требовать такой же степени доверия и проверяемости от каждого цифрового продукта, как это гарантируется блокчейном, особенно от моделей машинного обучения. Высокий спрос на вычисления в блокчейне стимулировал исследования в области доказательств с нулевым знанием, создав современные системы доказательств с меньшими требованиями к памяти и более быстрым временем доказательства и проверки, что теперь позволяет проверять некоторые небольшие алгоритмы машинного обучения на блокчейне.
На данный момент мы все, вероятно, уже испытали потенциал взаимодействия с очень мощным продуктом машинного обучения. Несколько дней назад я использовал GPT-4, чтобы помочь мне создать ИИ, который может постоянно побеждать меня в шахматах. Это ощущение как поэтическое отражение всех достижений машинного обучения за последние несколько десятилетий: разработчики IBM потратили двенадцать лет на создание Deep Blue, модели, работающей на 32-узловом компьютере IBM RS/6000 SP, которая могла оценивать почти 200 миллионов шахматных ходов в секунду и в 1997 году победила чемпиона мира по шахматам Гарри Каспарова. В сравнении, я потратил несколько часов — с минимальным кодированием с моей стороны — чтобы создать программу, которая может меня победить.
Конечно, я сомневаюсь, что созданный мной ИИ сможет победить Гарри Каспарова в шахматах, но это не суть. Суть в том, что любой, кто играет с GPT-4, может иметь аналогичный опыт получения суперспособностей: вам нужно приложить очень небольшие усилия, чтобы создать что-то, что близко или превосходит ваши собственные способности. Мы все исследователи IBM; мы все Гарри Каспаровы.
Очевидно, это вызывает волнение и некоторый страх. Для любого, кто работает в криптовалютной индустрии, естественной реакцией (после удивления тем, что может сделать машинное обучение) является рассмотрение потенциальных путей централизации и того, как децентрализовать эти пути, создавая сеть, которую люди могут прозрачно аудировать и владеть. Современные модели создаются путем поглощения огромного количества общедоступного текста и данных, но в настоящее время лишь немногие контролируют и владеют этими моделями. Более конкретно, вопрос не в том, "имеет ли искусственный интеллект огромную ценность", а в том, "как мы можем построить эти системы так, чтобы любой, кто взаимодействует с ними, мог получить экономическую выгоду и, если они этого хотят, гарантировать, что их данные используются с уважением к правам на конфиденциальность".
Недавно кто-то призвал приостановить или замедлить развитие крупных проектов искусственного интеллекта, таких как Chat-GPT. Остановка прогресса может не быть решением: лучшим подходом будет продвижение открытых моделей и использование доказательств с нулевым знанием для защиты их, когда поставщики моделей хотят сохранить конфиденциальность своих весов или данных, при этом эти доказательства находятся на блокчейне и могут быть полностью проверены. В настоящее время второй случай использования частных весов моделей и данных еще не может быть реализован на блокчейне, но достижения в системах доказательств с нулевым знанием сделают это возможным в будущем.
Проверяемое и обладаемое машинное обучение
Шахматный ИИ, который я построил с помощью Chat-GPT, на данный момент кажется относительно безобидным: он выдает относительно последовательную программу, не используя данные, нарушающие ценные права интеллектуальной собственности или конфиденциальность. Но что, если мы хотим убедиться, что модель, работающая за API, действительно является той моделью, которая была запущена? Или, если я хочу ввести проверенные данные в модель на блокчейне и убедиться, что данные действительно поступают от законной стороны? Что, если я хочу убедиться, что "человек", который отправляет данные, на самом деле является человеком, а не роботом, пытающимся инициировать византийскую атаку на мою сеть? Доказательства с нулевым знанием и их способность лаконично представлять и проверять произвольные программы являются одним из решений.
Следует отметить, что в настоящее время основное применение доказательств с нулевым знанием в контексте машинного обучения на блокчейне заключается в проверке правильности вычислений. Другими словами, в контексте машинного обучения доказательства с нулевым знанием и более конкретные SNARK (лаконичные неинтерактивные доказательства знания) наиболее полезны благодаря своей лаконичности. Это связано с тем, что доказательства с нулевым знанием защищают доказателя (и обрабатываемые им данные) от вторжения наблюдателей. Технологии, повышающие конфиденциальность, такие как полностью гомоморфное шифрование (FHE), функциональное шифрование или доверенные вычислительные среды (TEE), более подходят для выполнения вычислений на частных входных данных недоверенными доказателями (более глубокое изучение этих технологий выходит за рамки данной статьи).
Давайте сделаем шаг назад и на высоком уровне рассмотрим типы приложений машинного обучения, которые можно представить с помощью нулевых знаний (для более глубокого понимания нулевых знаний, пожалуйста, ознакомьтесь с нашей статьей о алгоритмах и аппаратном обеспечении доказательств с нулевым знанием, посмотрите исследование Джастина Талера о производительности SNARK или ознакомьтесь с нашим учебником по нулевым знаниям). Доказательства с нулевым знанием обычно представляют программы в виде арифметических схем: с помощью этих схем доказатель генерирует доказательства из общих и частных входных данных, а проверяющий с помощью математических вычислений убеждается, что вывод этого утверждения правильный — не получая никакой информации о частных входных данных.
Мы все еще находимся на очень ранней стадии использования доказательств с нулевым знанием для проверки вычислений, но улучшения алгоритмов расширяют диапазон возможного. Вот пять способов применения доказательств с нулевым знанием в машинном обучении.
1. Подлинность модели: Вы хотите убедиться, что модель машинного обучения, которую утверждает, что запустил какой-то субъект, действительно была запущена. Например, в случае, если модель находится за API, субъект, предоставляющий конкретную модель, может иметь несколько версий, например, более дешевую, но менее точную версию, и более дорогую, но более производительную версию. Без доказательства вы не сможете знать, предоставил ли вам поставщик более дешевую модель, когда вы фактически заплатили за более дорогую версию (например, если поставщик хочет сэкономить на серверных расходах и увеличить свою прибыль).
Для этого вам нужно предоставить отдельные доказательства для каждого экземпляра модели. Один из практических подходов — это функциональная схема обязательств, предложенная Дэном Бонехом, Уилсоном Нгуеном и Алексом Оздемиром, которая является основанной на SNARK схеме обязательств с нулевым знанием, позволяющей владельцу модели обязаться к модели, в которую пользователи могут вводить свои данные и получать проверку уже запущенной модели обязательств. Некоторые приложения на основе Risc Zero (универсальной виртуальной машины на основе STARK) также реализовали это. Другие исследования, проведенные Даниэлем Каном, Татсунори Хасимото, Ионом Стойкой и Ий Суном, показывают, что можно проверить действительные выводы на наборе данных ImageNet с точностью 92% (что сопоставимо с наилучшей производительностью модели ImageNet с не нулевым знанием).
Но просто получить доказательство того, что отправленная модель была запущена, может быть недостаточно. Модель может не точно представлять данную программу, поэтому вы захотите, чтобы третья сторона проверила отправленную модель. Функциональные обязательства позволяют доказателю доказать, что он использовал обязательную модель, но не могут гарантировать никакой информации о самой обязательной модели. Если мы сможем заставить доказательства с нулевым знанием работать достаточно хорошо в обучении (см. пример №4 ниже), мы также можем начать получать эти гарантии в будущем.
2. Целостность модели: Вы хотите убедиться, что один и тот же алгоритм машинного обучения работает одинаково на данных разных пользователей. Это очень полезно в областях, где вы не хотите применять произвольные предвзятости, таких как решения по кредитным рейтингам и заявки на кредиты. Вы также можете использовать функциональные обязательства для достижения этой цели. Для этого вам нужно обязаться к модели и ее параметрам и позволить людям отправлять данные. Вывод будет проверять, была ли модель запущена с обязательными параметрами для данных каждого пользователя. Либо можно публично раскрыть модель и ее параметры и позволить пользователям самим доказать, что они применили соответствующую модель и параметры к своим (сертифицированным) данным. Это может быть особенно полезно в медицинской области, поскольку законы требуют, чтобы определенная информация о пациентах оставалась конфиденциальной. В будущем это может реализовать медицинскую диагностическую систему, которая может учиться и улучшаться на полностью конфиденциальных данных пользователей в реальном времени.
3. Аутентификация: Вы хотите интегрировать аутентификацию от внешних проверенных сторон (например, любой цифровой платформы или аппаратного устройства, которое может генерировать цифровые подписи) в модели, работающие на блокчейне, или в любые другие типы смарт-контрактов. Для этого вы будете использовать доказательства с нулевым знанием для проверки подписей и использовать доказательство в качестве входных данных для программы. Анна Роуз и Тарун Читра недавно провели выпуск подкаста о нулевых знаниях, в котором гостями были Даниэль Кан и Ий Сун, которые обсудили последние достижения в этой области.
В частности, Даниэль и Ий недавно опубликовали исследование, в котором рассматривается, как проверить, были ли изображения, снятые камерами с сертифицированными датчиками, подвергнуты таким преобразованиям, как обрезка, изменение масштаба или ограниченное покрытие, что полезно, когда вы хотите доказать, что изображение не было подвергнуто глубокому подделке, но действительно было подвергнуто какому-то законному редактированию. Дэн Бонех и Триша Датта также проводили аналогичные исследования, используя доказательства с нулевым знанием для проверки источника изображений.
Но более широко, любая информация, прошедшая цифровую аутентификацию, является кандидатом на такую форму проверки: Джейсон Мортон разрабатывает библиотеку EZKL (в следующем разделе будет больше информации), он называет этот подход "наделением блокчейна зрением". Любая подписанная конечная точка (например, служба SXG от Cloudflare, третьи стороны нотариусы) будет генерировать проверяемые цифровые подписи, что может быть очень полезно для доказательства источника и подлинности от доверенной стороны.
4. Распределенное вывод или обучение: Вы хотите выполнять машинное обучение в распределенном режиме и позволить людям отправлять данные в общую модель. Для этого вы можете развернуть существующую модель на блокчейне или спроектировать совершенно новую сеть и использовать доказательства с нулевым знанием для сжатия модели. Библиотека EZKL Джейсона Мортона создает метод для захвата файлов ONNX и JSON и преобразования их в схемы ZK-SNARK. Недавняя демонстрация на ETH Denver показала, что эта технология может быть использована для создания цепочного охотничьего клада на основе распознавания изображений, где создатели игр могут загружать фотографии, генерировать доказательства изображений, а игроки могут загружать изображения; проверяющие проверяют, достаточно ли совпадают загруженные пользователями изображения с доказательствами, созданными создателями. EZKL теперь может проверять модели с до 100 миллионов параметров, что означает, что она может использоваться для проверки моделей размера ImageNet на блокчейне (у этих моделей 60 миллионов параметров).
Другие команды, такие как Modulus Labs, проводят бенчмаркинг различных систем доказательств для цепочного вывода. Бенчмаркинг Modulus охватывает до 18 миллионов параметров. В области обучения Gensyn строит распределенную вычислительную систему, в которой пользователи могут вводить общие данные и обучать модели через сеть распределенных узлов, одновременно проверяя правильность обучения.
5. Доказательство личности: Вы хотите проверить, что кто-то является уникальной личностью, не нарушая его конфиденциальности. Для этого вы создадите метод проверки, например, биометрическое сканирование или способ шифрования отправки удостоверения личности. Затем вы будете использовать доказательства с нулевым знанием, чтобы проверить, прошел ли кто-то проверку, не раскрывая никакой информации о его идентичности, независимо от того, является ли эта идентичность полностью распознаваемой или псевдонимом, таким как открытый ключ.
Worldcoin реализует это через свой протокол доказательства личности, который обеспечивает защиту от атак, генерируя уникальный радужный код для пользователей. Ключевым моментом является то, что закрытый ключ, созданный для WorldID (а также другие закрытые ключи для зашифрованных кошельков пользователей Worldcoin), полностью отделен от радужного кода, который локально генерируется сканером глаз проекта. Это разделение полностью отделяет биометрические идентификаторы от любой формы пользовательского ключа, которая может быть приписана конкретному человеку. Worldcoin также позволяет приложениям встраивать SDK, позволяя пользователям входить в систему с помощью WorldID и используя доказательства с нулевым знанием для защиты конфиденциальности, позволяя приложениям проверять, имеет ли человек WorldID, но не позволяя отслеживать отдельных пользователей (для получения дополнительных деталей смотрите этот блог).
Этот пример использует защитные характеристики доказательств с нулевым знанием для противодействия более слабому и злонамеренному искусственному интеллекту, поэтому он значительно отличается от других примеров выше (например, доказательства того, что вы являетесь реальным человеком, а не роботом, не раскрывая никакой информации о себе).
Архитектура модели и вызовы
Прорывы в реализации систем доказательств SNARK (лаконичные неинтерактивные доказательства знания) стали ключевым двигателем для переноса многих моделей машинного обучения на блокчейн. Некоторые команды создают настраиваемые схемы в существующих архитектурах (включая Plonk, Plonky2, Air и др.). В области настраиваемых схем Halo 2 стал широко используемым бэкендом в работах Даниэля Кана и проекте EZKL Джейсона Мортона. Время доказательства Halo 2 приближенно линейно, размер доказательства обычно составляет всего несколько килобайт, а время проверки остается постоянным. Возможно, более важно, что Halo 2 имеет мощные инструменты для разработчиков, что делает его предпочтительным бэкендом SNARK для разработчиков. Другие команды, такие как Risc Zero, стремятся к универсальным стратегиям виртуальных машин. Некоторые команды создают настраиваемые фреймворки, используя суперэффективные системы доказательств Джастина Талера на основе протоколов проверки суммы.
Время генерации доказательства и время проверяющего абсолютно зависят от аппаратного обеспечения, используемого для генерации и проверки доказательства, а также от размера схемы, генерирующей доказательство. Но ключевой момент, который следует отметить, заключается в том, что независимо от того, какая программа представлена, размер доказательства всегда относительно мал, поэтому нагрузка на проверяющего, проверяющего доказательство, ограничена. Однако здесь есть некоторые нюансы: для систем доказательств, таких как Plonky2, использующих схемы обязательств на основе FRI, размер доказательства может увеличиваться. (Если только в конечном итоге не используются такие SNARK-обертки, как Plonk или Groth16, которые не увеличивают размер доказательства в зависимости от сложности утверждения, которое доказывается.)
Для машинного обучения вывод заключается в том, что как только будет разработана система доказательства, точно представляющая модель, фактическая стоимость проверки вывода будет очень низкой. Самое важное, что разработчики должны учитывать, это время доказателя и память: представлять модель таким образом, чтобы доказательство можно было относительно быстро сгенерировать, и чтобы размер доказательства, в идеале, составлял несколько килобайт. Чтобы доказать правильное выполнение модели машинного обучения в условиях нулевых знаний, вам нужно закодировать и представить архитектуру модели (слои, узлы и функции активации), параметры, ограничения и операции матричного умножения в виде схемы. Это включает в себя разбиение этих свойств на арифметические операции, которые могут выполняться в конечном поле.
Эта область все еще находится на начальной стадии. В процессе преобразования модели в схему точность и достоверность могут пострадать. Когда модель представляется в виде арифметической схемы, упомянутые ранее параметры модели, ограничения и операции матричного умножения могут потребовать приближения и упрощения. Когда арифметические операции кодируются как элементы в конечном поле доказательства, может быть потеряна некоторая точность (или стоимость генерации доказательства без этих оптимизаций в текущих рамках нулевых знаний будет непосильной). Кроме того, параметры и активации моделей машинного обучения обычно кодируются в 32-битном формате для повышения точности, но современные доказательства с нулевым знанием не могут представлять 32-битные операции с плавающей запятой в необходимом формате арифметической схемы без значительных затрат. Поэтому разработчики могут выбрать использование квантизированных моделей машинного обучения, в которых 32-битные целые числа были преобразованы в 8-битную точность. Эти типы моделей хорошо подходят для представления в виде доказательств с нулевым знанием, но проверяемые модели могут быть грубыми приближениями более качественных исходных моделей.
На этом этапе это действительно игра в догонялки. По мере оптимизации доказательств с нулевым знанием модели машинного обучения становятся все более сложными. Уже есть несколько многообещающих областей для оптимизации: рекурсивные доказательства могут уменьшить общий размер доказательства, позволяя доказательству использоваться в качестве входных данных для следующего доказательства, что позволяет сжимать доказательства. Есть также новые фреймворки, такие как ответвление Apache Tensor виртуальной машины Linear A, которое выпустило преобразователь, способный преобразовывать числа с плавающей запятой в представление, удобное для нулевых знаний. Наконец, мы в a16z crypto оптимистично смотрим на будущую работу, которая сделает представление 32-битных целых чисел в SNARK более разумным.
Два определения "масштаба" Доказательства с нулевым знанием достигают масштабируемости через сжатие: SNARK позволяют вам математически представлять крайне сложную систему (такую как виртуальная машина или модель машинного обучения) так, чтобы стоимость ее проверки была ниже, чем стоимость ее выполнения. С другой стороны, машинное обучение достигает масштабируемости через расширение: современные модели становятся лучше с большим количеством данных, параметров и GPU/TPU, участвующих в процессе обучения и вывода. Централизованные компании могут запускать серверы с почти неограниченной масштабируемостью: взимая ежемесячную плату за API-вызовы и оплачивая операционные расходы.
Экономическая реальность блокчейн-сетей почти противоположна: разработчики поощряются оптимизировать свой код, чтобы он работал на блокчейне как можно более эффективно и дешево. Эта асимметрия имеет огромное преимущество: она создает среду, в которой необходимо повышать эффективность систем доказательств. Мы должны стремиться к тому, чтобы в машинном обучении требовать те же преимущества, которые предоставляет блокчейн, а именно проверяемую собственность и общее истинное представление.
Хотя блокчейн стимулирует оптимизацию zk-SNARK, каждая область, связанная с вычислениями, получит выгоду.
Благодарности: Джастин Талер, Дэн Бонех, Гай Уоллет, Сэм Рагсдейл, Али Яхья, Крис Диксон, Эдди Лаззарин, Тим Рафгард, Роберт Хакетт, Тим Салливан, Джейсон Мортон, Пейюан Ляо, Тарун Читра, Брайан Ретфорд, Даниэль Кан, Ий Сун, Анна Роуз, Modulus Labs, DC Builder.













