1/ JSTprove V2 現已推出。 這是我們 zkML 堆疊的一次重大升級,擁有更快的電路、更多支持的層、更廣泛的模型兼容性,以及更好的開發者體驗。 邁向實用的、可驗證的機器學習的一大步。
2/ 我們發佈了兩項主要的電路優化。 我們用查找表替換了昂貴的範圍檢查,並添加了 Freivalds 的算法以快速進行概率矩陣驗證。這兩者都顯著減少了約束和證明的開銷。
3/ 為什麼這很重要: 範圍檢查在機器學習電路中無處不在(ReLU、重新縮放、最大/最小等),而且它們非常昂貴。 用查找表替換它們可以節省幾乎每個模型的約束,並帶來立即的性能提升。
4/ 對於大型矩陣運算,我們現在使用 Freivalds 的算法。 在適用的情況下,我們應用二次時間的概率檢查,而不是立方時間的驗證,這大大降低了驗證大型 GEMM 和類似操作的成本。
5/ 我們也擴展了 ONNX 層的支持。 JSTprove 現在支持 Add、Sub、Mul、Max、Min、Clip、4D MaxPool(目前為止)和 BatchNorm,解鎖了更廣泛的現實世界模型。
6/ JSTprove 不再假設單一的輸入和輸出。 我們現在支持多輸入和多輸出的 ONNX 圖形。這需要對中端和 Rust 後端進行深度重構,但大大擴展了模型的兼容性。
7/ 我們也重建了測試框架。 您現在可以測試單獨的層,運行完整的管道測試(量化 → 電路 → 證人 → 證明 → 驗證),模糊形狀和參數,並獲得對不支持的模型的適當且有幫助的錯誤。
8/ 添加像 BatchNorm 這樣的層迫使我們清理和模組化後端的大部分部分。 這使得未來層的添加和優化變得更快、更安全,並且更容易理解。
9/ 結果:JSTprove V2 更快、更便宜、更具表達力、更穩健,並且準備好應對更複雜的現實世界模型。 這是使可驗證的機器學習在生產中實用的一大步。
148