OPML enables off-chain AI model inference using optimistic approach with an on chain interactive dispute engine implementing fault proofs.
For more in-depth information, refer to the project wiki.
You can also find a tutorial on building a straightforward handwritten digit recognition DNN model (MNIST) within OPML in the docs/tutorial.md
.
Pre-requisites: Go (Go 1.19), Node.js, Make, and CMake.
git clone [email protected]:hyperoracle/opml.git --recursive
make build
The script files demo/challenge_simple.sh
presents an example scenario (a DNN model for MNIST) demonstrating the whole process of a fault proof, including the challenge game and single step verification.
To test the example, we should first start a local node:
npx hardhat node
Then we can run:
bash ./demo/challenge_simple.sh
A large language model, the llama example is provided in the branch "llama" (It also works for llama 2).
π¨ = Pending
π = Work In Progress
β = Feature complete
Feature | Status |
---|---|
Supported Model | |
DNN for MNIST | β |
LLaMA | β |
General DNN Model (Onnx Support) | π |
Traditional ML Algorithm (Decision Tree, KNN etc) | π¨ |
Mode | |
Inference | β |
Training | π¨ |
Fine-tuning | π¨ |
Optimization | |
ZK Fault Proof with zkOracle and zkWASM | π |
GPU Acceleration | π |
High Performance VM | π |
Functionality | |
User-Friendly SDK | π |
mlgo -- A tensor library for machine learning in pure Golang that can run on MIPS.
mlvm -- A MIPS runtime with ML execution
contracts -- A Merkleized MIPS processor on chain + the challenge logic
This code is MIT licensed.
Part of this code is borrowed from ethereum-optimism/cannon
Note: This code is unaudited. It in NO WAY should be used to secure any money until a lot more testing and auditing are done.