1/ JSTprove V2 здесь. Это значительное обновление нашего стека zkML с более быстрыми цепями, большим количеством поддерживаемых слоев, более широкой совместимостью моделей и значительно лучшим опытом для разработчиков. Большой шаг к практическому, проверяемому ML.
2/ Мы выпустили две основные оптимизации схем. Мы заменили дорогие проверки диапазона на таблицы поиска и добавили алгоритм Фрейвальдса для быстрой вероятностной проверки матриц. Оба значительно снижают ограничения и накладные расходы на доказательства.
3/ Почему это важно: Проверки диапазона встречаются повсюду в ML-цепях (ReLU, ресcaling, max/min и т.д.) и они очень затратные. Замена их таблицами поиска экономит ограничения почти в каждой модели и дает немедленные приросты производительности.
4/ Для больших матричных операций мы теперь используем алгоритм Фрейвальдса. Вместо проверки за кубическое время мы применяем вероятностные проверки квадратичного времени, где это возможно, что значительно снижает стоимость проверки больших GEMM и аналогичных операций.
5/ Мы также расширили поддержку слоев ONNX. JSTprove теперь поддерживает Add, Sub, Mul, Max, Min, Clip, 4D MaxPool (пока что) и BatchNorm, открывая гораздо более широкий класс реальных моделей.
6/ JSTprove больше не предполагает единственный вход и выход. Теперь мы поддерживаем многовходные и многовыходные графы ONNX. Это потребовало глубоких изменений в среднем уровне и бэкенде на Rust, но значительно расширяет совместимость моделей.
7/ Мы также перестроили тестовую систему. Теперь вы можете тестировать отдельные слои, запускать полные тесты конвейера (квантование → схема → свидетель → доказательство → проверка), проверять формы и параметры, а также получать правильные, полезные ошибки для неподдерживаемых моделей.
8/ Добавление слоев, таких как BatchNorm, заставило нас очистить и модульно организовать большие части бэкенда. Это делает будущие добавления слоев и оптимизации гораздо быстрее, безопаснее и легче для понимания.
9/ Результат: JSTprove V2 быстрее, дешевле в доказательстве, более выразителен, более надежен и готов к гораздо более сложным моделям реального мира. Это большой шаг к тому, чтобы сделать проверяемое машинное обучение практичным в производстве.
121