Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimize README with refactor and roadmap #1

Merged
merged 3 commits into from
Oct 18, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 36 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,10 @@
# OPML: OPtimistic Machine Learning on Blockchain


---

OPML enables off-chain AI model inference using optimistic approach with an on chain interactive dispute engine implementing fault proofs.

## Directory Layout

```
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
```
For more in-depth information, refer to the [project wiki](https://github.com/hyperoracle/opml/wiki).

For more in-depth information, please refer to the [project wiki](https://github.com/hyperoracle/opml/wiki). Additionally, you can find a tutorial on building a straightforward handwritten digit recognition DNN model (MNIST) within OPML in the [`docs/tutorial.md`](docs/tutorial.md).
You can also find a tutorial on building a straightforward handwritten digit recognition DNN model (MNIST) within OPML in the [`docs/tutorial.md`](docs/tutorial.md).

## Building

Expand All @@ -27,17 +18,49 @@ make build

The script files [`demo/challenge_simple.sh`](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
To test the example, we should first start a local node:

```shell
npx hardhat node
```
Then we can run

Then we can run:

```shell
sh ./demo/challenge_simple.sh
```

A large language model, the 7B-llama example is provided in the branch ["llama"](https://github.com/hyperoracle/opml/tree/llama).

## Roadmap

🔨 = Pending

🛠 = Work In Progress

✅ = Feature complete


| Feature | Status |
| ------- | :------: |
| **Supported Model** | |
| DNN for MNIST | ✅ |
| LLaMA | ✅ |
| **Mode** | |
| Inference| ✅ |
| Training | 🔨 |
| Fine-tuning | 🔨 |
| **Optimization** | |
| zk fault proof with zkOracle| 🛠 |

## Project Structure

```
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
```

## License

This code is MIT licensed.
Expand Down
Loading