Skip to content

Latest commit

 

History

History
47 lines (38 loc) · 1.83 KB

README.md

File metadata and controls

47 lines (38 loc) · 1.83 KB

Simple Cairo Network Example

This is a simple Machine Learning graph writing in Cairo for verifiable inference.

Prerequisites

Ensure you have the following installed:

ML model graph

Here is a visual representation of the ML model graph: Model graph

Repo structure

The repository is organized as follows:

Generating Traces and Memory Files (in proof mode)

To generate the traces and memory files, follow these steps:

Compile Cairo Programs

Navigate to each program directory and compile:

cd model/cairo_programs/node0
scarb build
cd model/cairo_programs/node1
scarb build

Run the Cairo VM

From the root of the repository, execute:

cargo run

Find The Trace Files

The trace and memory files are generated in the vm_result directory.

Recursive Proving Plan (Entirely Offchain)

We have chosen to represent each node of the network (Gemm and Relu operations) by separate Cairo programs. As the idea is to reduce the computational complexity of a Cairo program into small programs, and to prove all the nodes of the graph in parallel. Then we want to use recursive proving to merge the proofs and assert that the output of a node is equal to the input of the correlated node.

Below is a diagram illustrating this concept: Recursive Schema