MCPcopy Create free account
hub / github.com/ICME-Lab/jolt-atlas

github.com/ICME-Lab/jolt-atlas @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
3,939 symbols 13,403 edges 322 files ⚖ custom 1,135 documented · 29% updated 3d ago★ 7623 open issues

Browse by type

Functions 3,379 Types & classes 560
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

JOLT Atlas

JOLT Atlas is a zero-knowledge machine learning (zkML) framework that extends the JOLT proving system to support ML inference verification from ONNX models.

Made with ❤️ by ICME Labs.

icme_labs

Overview

JOLT Atlas enables practical zero-knowledge machine learning by leveraging Just One Lookup Table (JOLT) technology. Traditional circuit-based approaches are prohibitively expensive when representing non-linear functions like ReLU and SoftMax. Lookups eliminate the need for circuit representation entirely.

In JOLT Atlas, we eliminate the complexity that plagues other approaches: no quotient polynomials, no byte decomposition, no grand products, no permutation checks, and most importantly — no complicated circuits.

Our core ethos is to reduce commitment costs via sumcheck while committing only to small-value polynomials.

Examples

Examples live in jolt-atlas-core/examples/ and demonstrate end-to-end prove → verify flows for various ONNX models.

GPT-2

GPT-2 proof and verification flow.

cargo run --release --package jolt-atlas-core --example gpt2

nanoGPT

A ~0.25M-parameter GPT model (4 transformer layers). Loads the ONNX graph, generates a SNARK proof of inference, and verifies it.

cargo run --release --package jolt-atlas-core --example nanoGPT

Transformer (self-attention)

Single self-attention block proof.

cargo run --release --package jolt-atlas-core --example transformer

MiniGPT / MicroGPT

Smaller GPT variants useful for quick iteration and debugging.

cargo run --release --package jolt-atlas-core --example minigpt
cargo run --release --package jolt-atlas-core --example microgpt

Benchmarks

System specs: MacBook Pro M3, 16GB RAM

GPT-2 (125M params)

GPT-2 is a 125-million-parameter transformer model from OpenAI.

JOLT Atlas

Stage Wall clock
Proving/verifying key generation (setup_prover) 1.003 s
Witness + commitment phase (ONNXProof::commit_witness_polynomials) 0.762 s
IOP proving (ONNXProof::iop) 5.997 s
Reduction opening proof (excluding HyperKZG::prove) 1.899 s
HyperKZG prove (HyperKZG::prove) 2.392 s
Proof time (ONNXProof::prove) 14.889 s
Verify time (ONNXProof::verify) 1.038 s
End-to-end total (setup_prover + prove + verify) 16.930 s

nanoGPT (~0.25M params, 4 transformer layers)

nanoGPT is the standard workload we use for cross-project comparison. It is a ~250k-parameter GPT model with 4 transformer layers.

JOLT Atlas:

Stage Wall clock
Verifying key generation (setup_verifier) <0.001 s
Proving key generation (setup_prover) 0.263 s
Proof time (ONNXProof::prove) 2.288 s
Verify time (ONNXProof::verify) 0.127 s
End-to-end total (setup_prover + prove + verify) 2.678 s

ezkl on the same model (source):

Stage Wall clock
Verifying key generation 192 s
Proving key generation 212 s
Proof time 237 s
Verify time 0.34 s

JOLT Atlas produces a proof for nanoGPT in ~2.29 s versus ezkl's ~237 s proof time (not counting their 400+ s of key generation). That is roughly a 104× speed-up on proof generation alone.

How to reproduce locally

# from repo root
cargo run --release --package jolt-atlas-core --example gpt2

Add -- --trace for Chrome Tracing JSON output (view in chrome://tracing), or -- --trace-terminal for timing printed to the terminal.

Getting Started

GPT-2 (first run)

GPT-2 uses a Hugging Face–hosted ONNX model that is not checked into the repo. A helper script downloads and prepares it automatically.

  1. Clone the repository.
  2. Install Rust and Cargo.
  3. Download the model:
# Create a virtual environment (one-time)
python3 -m venv .venv
source .venv/bin/activate

# Run the download script
python scripts/download_gpt2.py

This exports GPT-2 via Hugging Face Optimum into atlas-onnx-tracer/models/gpt2/ and copies model.onnxnetwork.onnx.

  1. Test the model (trace only, no proof):
cargo run --release --package atlas-onnx-tracer --example gpt2

You should see the model graph printed and an output shape like [1, 16, 65536] (vocab size 50257 padded to the next power of two).

  1. Prove & verify GPT-2:
cargo run --release --package jolt-atlas-core --example gpt2

A successful run prints Proof verified successfully!.

Acknowledgments

Thanks to the Jolt team for their foundational work. We are standing on the shoulders of giants.

Extension points exported contracts — how you extend this code

browse all types & interfaces →

Core symbols most depended-on inside this repo

browse all functions →

Shape

Method 2,270
Function 1,109
Class 440
Enum 60
Interface 60

Languages

Rust93%
Python7%

Modules by API surface

atlas-onnx-tracer/src/tensor/mod.rs103 symbols
atlas-onnx-tracer/src/tensor/ops.rs89 symbols
jolt-atlas-core/src/onnx_proof/e2e_tests.rs73 symbols
joltworks/src/poly/opening_proof.rs56 symbols
joltworks/src/field/tracked_ark.rs51 symbols
joltworks/src/subprotocols/mles_product_sum.rs50 symbols
joltworks/src/subprotocols/blindfold/mod.rs49 symbols
joltworks/src/poly/unipoly.rs49 symbols
jolt-atlas-core/src/onnx_proof/ops/softmax_last_axis/mod.rs46 symbols
joltworks/src/utils/counters.rs44 symbols
joltworks/src/poly/dense_mlpoly.rs42 symbols
joltworks/src/subprotocols/blindfold/output_constraint.rs40 symbols

For agents

$ claude mcp add jolt-atlas \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page