1/ JSTprove V2 chegou. Esta é uma grande atualização do nosso stack zkML com circuitos mais rápidos, mais camadas suportadas, maior compatibilidade de modelos e uma experiência de desenvolvedor muito melhor. Um grande passo em direção a ML prático e verificável.
2/ Enviámos duas otimizações de circuito importantes. Substituímos verificações de intervalo dispendiosas por tabelas de consulta e adicionámos o algoritmo de Freivalds para verificação probabilística rápida de matrizes. Ambos reduzem significativamente as restrições e a sobrecarga de prova.
3/ Por que isso é importante: Verificações de intervalo aparecem em todos os lugares nos circuitos de ML (ReLU, reescalonamento, max/min, etc.) e são muito caras. Substituí-las por tabelas de consulta economiza restrições em quase todos os modelos e proporciona ganhos de desempenho imediatos.
4/ Para operações com matrizes grandes, agora usamos o algoritmo de Freivalds. Em vez de uma verificação em tempo cúbico, aplicamos verificações probabilísticas em tempo quadrático onde aplicável, reduzindo drasticamente o custo de verificação de grandes GEMMs e operações semelhantes.
5/ Também expandimos o suporte a camadas ONNX. O JSTprove agora suporta Add, Sub, Mul, Max, Min, Clip, MaxPool 4D (por enquanto) e BatchNorm, desbloqueando uma classe muito mais ampla de modelos do mundo real.
6/ JSTprove já não assume uma única entrada e saída. Agora suportamos gráficos ONNX com múltiplas entradas e saídas. Isso exigiu profundas refatorações no meio e no backend Rust, mas expande massivamente a compatibilidade do modelo.
7/ Também reconstruímos a estrutura de testes. Agora você pode testar camadas individuais, executar testes de pipeline completos (quantização → circuito → testemunha → provar → verificar), testar formas e parâmetros, e obter erros adequados e úteis para modelos não suportados.
8/ A adição de camadas como BatchNorm obrigou-nos a limpar e modularizar grandes partes do backend. Isto torna futuras adições de camadas e otimizações muito mais rápidas, seguras e fáceis de entender.
9/ O resultado: JSTprove V2 é mais rápido, mais barato de provar, mais expressivo, mais robusto e está pronto para modelos do mundo real muito mais complexos. Este é um grande passo em direção a tornar o aprendizado de máquina verificável prático na produção.
125