В последние годы модели машинного обучения развивались семимильными шагами с поразительной скоростью. По мере расширения возможностей моделей увеличивается и их сложность — современные усовершенствованные модели часто содержат миллионы или даже миллиарды параметров. Для решения этих масштабных задач было разработано множество систем доказательства с нулевым разглашением, которые стремятся динамически сбалансировать время доказательства, время проверки и размер доказательства.
Таблица 1: Экспоненциальный рост масштаба параметров модели
Хотя в настоящее время большая часть работы в области нулевых знаний сосредоточена на оптимизации самих систем доказательства, один ключевой аспект часто игнорируется — как разумно разбить крупномасштабные модели на более мелкие и более управляемые подмодули для доказательства. Вы можете спросить, почему это так важно?
Теперь давайте подробно объясним:
Современные модели машинного обучения часто имеют количество параметров в миллиардах, и даже в отсутствие каких-либо криптографических операций они занимают очень большие объемы памяти. В контексте доказательства с нулевым знанием (Zero-Knowledge Proof, ZKP) эта проблема усугубляется.
Каждый параметр с плавающей запятой должен быть преобразован в элемент в алгебраическом поле, что само по себе приводит к увеличению использования памяти примерно в 5-10 раз. Кроме того, для точного моделирования операций с плавающей запятой в алгебраической области вводятся дополнительные операционные издержки, которые обычно составляют около 5 раз.
В целом, требования к памяти модели могут увеличиться до 25-50 раз от первоначального объема. Например, модель с 1 миллиардом параметров с плавающей запятой 32 бита может потребовать от 100 до 200 ГБ памяти только для хранения преобразованных параметров. Учитывая затраты на промежуточные вычисления и саму систему доказательства, общие затраты на память легко превышают уровень ТБ.
Современные системы доказательства, такие как Groth 16 и Plonk, в необработанных реализациях обычно предполагают, что все соответствующие данные могут быть загружены в память одновременно. Хотя это предположение технически осуществимо, на практике оно представляет собой огромную сложность в условиях реального оборудования, что значительно ограничивает доступные вычислительные ресурсы для доказательств.
Решение Polyhedra: zkCuda
Что такое zkCuda?
Как указано в нашем документе по технологии zkCUDA:
Запущенная Polyhedra zkCUDA — это среда нулевых знаний, ориентированная на разработку высокопроизводительных цепей, специально созданная для повышения эффективности генерации доказательств. Без ущерба для способности выражения цепей zkCUDA может в полной мере использовать параллельные возможности базового доказателя и оборудования, обеспечивая быструю генерацию ZK-доказательств.
Язык zkCUDA по синтаксису и семантике очень похож на CUDA, что делает его очень удобным для разработчиков с опытом работы с CUDA, а его низкоуровневая реализация на Rust обеспечивает безопасность и производительность.
С помощью zkCUDA разработчики могут:
Быстрое создание высокопроизводительных ZK цепей;
Эффективное распределение и использование распределенных аппаратных ресурсов, таких как GPU или кластеры, поддерживающие MPI, для реализации масштабных параллельных вычислений.
Почему выбрать zkCUDA?
zkCuda — это высокопроизводительная вычислительная платформа с нулевым разглашением, основанная на вычислениях на GPU, которая разделяет гипермасштабируемые модели машинного обучения на более мелкие и более управляемые вычислительные единицы (ядра) и обеспечивает эффективное управление с помощью интерфейсного языка, подобного CUDA. Такая конструкция дает следующие ключевые преимущества:
1. Система доказательства точного соответствия
zkCUDA поддерживает детальный анализ каждого вычислительного ядра и находит наиболее подходящую систему доказательства с нулевым разглашением. Например:
Для высокопараллельных вычислительных задач можно использовать такие протоколы, как GKR, которые хорошо справляются с обработкой структурированной параллельности;
Для более мелких или неструктурированных задач лучше использовать такие системы доказательств, как Groth 16, которые имеют низкие затраты в компактных вычислительных сценариях.
Выбор кастомизированного бэкенда позволяет zkCUDA максимально раскрыть преимущества производительности различных ZK-протоколов.
2. Более умное распределение ресурсов и параллельная оптимизация
Различия в потребностях различных протоколов доказательства kernel в ресурсах CPU, памяти и I/O значительно. zkCUDA может точно оценивать потребление ресурсов каждой задачи и интеллектуально планировать, максимизируя общую пропускную способность.
Более того, zkCUDA поддерживает распределение задач между гетерогенными вычислительными платформами — включая CPU, GPU и FPGA — что позволяет оптимально использовать аппаратные ресурсы и значительно повышает системную производительность.
Естественное соответствие между zkCuda и протоколом GKR
Хотя zkCuda был разработан как универсальная вычислительная платформа, совместимая с различными системами нулевых знаний, он имеет естественную высокую совместимость с архитектурой протокола GKR (Goldwasser-Kalai-Rothblum).
В архитектурном дизайне zkCUDA с помощью механизма полиномиальных обязательств связываются различные подвычислительные ядра, что гарантирует, что все подвычисления работают на основе согласованных общих данных. Этот механизм критически важен для поддержания целостности системы, но он также приводит к значительным вычислительным затратам.
В отличие от него, протокол GKR предлагает более эффективный альтернативный путь. В отличие от традиционных систем с нулевым разглашением, которые требуют, чтобы каждое ядро полностью доказало свои внутренние ограничения, GKR позволяет рекурсивно отслеживать проверку вычислительной корректности от выхода ядра до входа. Этот механизм позволяет передавать правильность между ядрами, а не полностью проверять ее в каждом модуле. Основная идея аналогична градиентному обратному распространению в машинном обучении, где утверждения о правильности отслеживаются и передаются через вычислительные графы.
Хотя слияние таких «градиентов доказательства» в многолучевости создает некоторую сложность, именно этот механизм формирует основу для глубокой синергии между zkCUDA и GKR. Ожидается, что за счет согласования структурных особенностей в процессе обучения машинному обучению zkCUDA обеспечит более тесную системную интеграцию и более эффективную генерацию доказательств с нулевым разглашением в сценариях больших моделей.
Первоначальные результаты и будущие направления
Мы завершили начальную разработку фреймворка zkCuda и успешно протестировали его в нескольких сценариях, включая криптографические хеш-функции, такие как Keccak и SHA-256, а также небольшие модели машинного обучения.
Смотря в будущее, мы надеемся дальше внедрить ряд зрелых инженерных технологий в современное обучение машинному обучению, таких как оптимизированное распределение памяти (memory-efficient scheduling) и оптимизация на уровне графа (graph-level optimization). Мы верим, что интеграция этих стратегий в процесс генерации доказательств с нулевым раскрытием значительно повысит границы производительности системы и ее адаптивность.
Это только начало, zkCuda будет продолжать двигаться к эффективной, высоко масштабируемой и высоко адаптивной универсальной доказательной рамке.
Содержание носит исключительно справочный характер и не является предложением или офертой. Консультации по инвестициям, налогообложению или юридическим вопросам не предоставляются. Более подробную информацию о рисках см. в разделе «Дисклеймер».
Ядерный уровень доказательной механики моделей машинного обучения
Оригинальный автор: Zhiyong Fang
"Как съесть слона? По одному кусочку за раз."
В последние годы модели машинного обучения развивались семимильными шагами с поразительной скоростью. По мере расширения возможностей моделей увеличивается и их сложность — современные усовершенствованные модели часто содержат миллионы или даже миллиарды параметров. Для решения этих масштабных задач было разработано множество систем доказательства с нулевым разглашением, которые стремятся динамически сбалансировать время доказательства, время проверки и размер доказательства.
Таблица 1: Экспоненциальный рост масштаба параметров модели
Хотя в настоящее время большая часть работы в области нулевых знаний сосредоточена на оптимизации самих систем доказательства, один ключевой аспект часто игнорируется — как разумно разбить крупномасштабные модели на более мелкие и более управляемые подмодули для доказательства. Вы можете спросить, почему это так важно?
Теперь давайте подробно объясним:
Современные модели машинного обучения часто имеют количество параметров в миллиардах, и даже в отсутствие каких-либо криптографических операций они занимают очень большие объемы памяти. В контексте доказательства с нулевым знанием (Zero-Knowledge Proof, ZKP) эта проблема усугубляется.
Каждый параметр с плавающей запятой должен быть преобразован в элемент в алгебраическом поле, что само по себе приводит к увеличению использования памяти примерно в 5-10 раз. Кроме того, для точного моделирования операций с плавающей запятой в алгебраической области вводятся дополнительные операционные издержки, которые обычно составляют около 5 раз.
В целом, требования к памяти модели могут увеличиться до 25-50 раз от первоначального объема. Например, модель с 1 миллиардом параметров с плавающей запятой 32 бита может потребовать от 100 до 200 ГБ памяти только для хранения преобразованных параметров. Учитывая затраты на промежуточные вычисления и саму систему доказательства, общие затраты на память легко превышают уровень ТБ.
Современные системы доказательства, такие как Groth 16 и Plonk, в необработанных реализациях обычно предполагают, что все соответствующие данные могут быть загружены в память одновременно. Хотя это предположение технически осуществимо, на практике оно представляет собой огромную сложность в условиях реального оборудования, что значительно ограничивает доступные вычислительные ресурсы для доказательств.
Решение Polyhedra: zkCuda
Что такое zkCuda?
Как указано в нашем документе по технологии zkCUDA: Запущенная Polyhedra zkCUDA — это среда нулевых знаний, ориентированная на разработку высокопроизводительных цепей, специально созданная для повышения эффективности генерации доказательств. Без ущерба для способности выражения цепей zkCUDA может в полной мере использовать параллельные возможности базового доказателя и оборудования, обеспечивая быструю генерацию ZK-доказательств.
Язык zkCUDA по синтаксису и семантике очень похож на CUDA, что делает его очень удобным для разработчиков с опытом работы с CUDA, а его низкоуровневая реализация на Rust обеспечивает безопасность и производительность.
С помощью zkCUDA разработчики могут:
Почему выбрать zkCUDA?
zkCuda — это высокопроизводительная вычислительная платформа с нулевым разглашением, основанная на вычислениях на GPU, которая разделяет гипермасштабируемые модели машинного обучения на более мелкие и более управляемые вычислительные единицы (ядра) и обеспечивает эффективное управление с помощью интерфейсного языка, подобного CUDA. Такая конструкция дает следующие ключевые преимущества:
1. Система доказательства точного соответствия
zkCUDA поддерживает детальный анализ каждого вычислительного ядра и находит наиболее подходящую систему доказательства с нулевым разглашением. Например:
Выбор кастомизированного бэкенда позволяет zkCUDA максимально раскрыть преимущества производительности различных ZK-протоколов.
2. Более умное распределение ресурсов и параллельная оптимизация
Различия в потребностях различных протоколов доказательства kernel в ресурсах CPU, памяти и I/O значительно. zkCUDA может точно оценивать потребление ресурсов каждой задачи и интеллектуально планировать, максимизируя общую пропускную способность.
Более того, zkCUDA поддерживает распределение задач между гетерогенными вычислительными платформами — включая CPU, GPU и FPGA — что позволяет оптимально использовать аппаратные ресурсы и значительно повышает системную производительность.
Естественное соответствие между zkCuda и протоколом GKR
Хотя zkCuda был разработан как универсальная вычислительная платформа, совместимая с различными системами нулевых знаний, он имеет естественную высокую совместимость с архитектурой протокола GKR (Goldwasser-Kalai-Rothblum).
В архитектурном дизайне zkCUDA с помощью механизма полиномиальных обязательств связываются различные подвычислительные ядра, что гарантирует, что все подвычисления работают на основе согласованных общих данных. Этот механизм критически важен для поддержания целостности системы, но он также приводит к значительным вычислительным затратам.
В отличие от него, протокол GKR предлагает более эффективный альтернативный путь. В отличие от традиционных систем с нулевым разглашением, которые требуют, чтобы каждое ядро полностью доказало свои внутренние ограничения, GKR позволяет рекурсивно отслеживать проверку вычислительной корректности от выхода ядра до входа. Этот механизм позволяет передавать правильность между ядрами, а не полностью проверять ее в каждом модуле. Основная идея аналогична градиентному обратному распространению в машинном обучении, где утверждения о правильности отслеживаются и передаются через вычислительные графы.
Хотя слияние таких «градиентов доказательства» в многолучевости создает некоторую сложность, именно этот механизм формирует основу для глубокой синергии между zkCUDA и GKR. Ожидается, что за счет согласования структурных особенностей в процессе обучения машинному обучению zkCUDA обеспечит более тесную системную интеграцию и более эффективную генерацию доказательств с нулевым разглашением в сценариях больших моделей.
Первоначальные результаты и будущие направления
Мы завершили начальную разработку фреймворка zkCuda и успешно протестировали его в нескольких сценариях, включая криптографические хеш-функции, такие как Keccak и SHA-256, а также небольшие модели машинного обучения.
Смотря в будущее, мы надеемся дальше внедрить ряд зрелых инженерных технологий в современное обучение машинному обучению, таких как оптимизированное распределение памяти (memory-efficient scheduling) и оптимизация на уровне графа (graph-level optimization). Мы верим, что интеграция этих стратегий в процесс генерации доказательств с нулевым раскрытием значительно повысит границы производительности системы и ее адаптивность.
Это только начало, zkCuda будет продолжать двигаться к эффективной, высоко масштабируемой и высоко адаптивной универсальной доказательной рамке.
Исходная ссылка