• Stars
    star
    150
  • Rank 245,862 (Top 5 %)
  • Language
    Python
  • Created over 6 years ago
  • Updated about 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Exchange ML models in a trustless manner!

Danku

Machine Learning algorithms are being developed and improved at an incredible rate, but are not necessarily getting more accessible to the broader community. That’s why today Algorithmia is announcing DanKu, a new blockchain-based protocol for evaluating and purchasing ML models on a public blockchain such as Ethereum. DanKu enables anyone to get access to high quality, objectively measured machine learning models. At Algorithmia, we believe that widespread access to algorithms and deployment solutions is going to be a fundamental building block of a balanced future for AI, and DanKu is a step towards that vision.

The DanKu protocol utilizes blockchain technology via smart contracts. The contract allows anyone to post a data set, an evaluation function, and a monetary reward for anyone who can provide the best trained machine learning model for the data. Participants train deep neural networks to model the data, and submit their trained networks to the blockchain. The blockchain executes these neural network models to evaluate submissions, and ensure that payment goes to the best model.

The contract allows for the creation of a decentralized and trustless marketplace for exchanging ML models. This gives ML practitioners an opportunity to monetize their skills directly. It also allows any participant or organization to solicit machine learning models from all over the world. This will incentivize the creation of better machine learning models, and make AI more accessible to companies and software agents. Anyone with a dataset, including software agents can create DanKu contracts.

Whitepaper

0. Requirements

To run the DanKu unittests, we first need to setup our local development environment. The following commands have been tested for OSX and Linux.

0.1. Installing the Solidity Compiler

For OSX

Install a these homebrew packages:

brew install pkg-config libffi autoconf automake libtool openssl

Install the solidity compiler (solc):

brew update
brew upgrade
brew tap ethereum/ethereum
brew install solidity
brew link solidity

For Linux

sudo add-apt-repository ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install solc libssl-dev

0.2. Initialize your Virtual Environment

Install virtualenv if you don't have it yet. (Comes installed with Python3.6)

Setup a virtual environment with Python 3:

cd danku;
python3.6 -m venv venv;
source venv/bin/activate;

0.3. Install the Populus Framework

Install populus and other requirements while in virtualenv:

pip install -r requirements.txt

Yay! You should be able to develop Ethereum contracts in Python 3 now!

1. Populus

All contracts are developed and tested using the Populus framework.

To compile all contracts, run the following:

populus compile

To run all the tests, use the following:

python -m pytest --disable-pytest-warnings tests/*

2. Danku Contracts

The DanKu contract can be found in the contracts directory.

For more information about DanKu contracts, please read the white paper.

More Repositories

1

sample-apps

Sample apps and sites with Algorithmia integration
JavaScript
195
star
2

algorithmia-python

Python Client for Algorithmia Algorithms and Data API
Python
138
star
3

awesome-ipython-notebooks

Jupyter Notebook
45
star
4

algorithmia-nodejs

Algorithmia node.js client library
TypeScript
40
star
5

algorithmia-ruby

Ruby Client for Algorithmia Algorithms and Data API
Ruby
20
star
6

algorithmia-rust

A rust client library to query the Algorithmia API
Rust
19
star
7

model-deployment

Examples showcasing model deployment
Jupyter Notebook
17
star
8

shorties

A place to submit your Algorithmia Shorties Contest submissions!
Python
17
star
9

langpacks

Standardized builder and runners for Algorithmia algorithms
Python
16
star
10

dev-center

The Algorithmia Developer Center
CSS
15
star
11

algorithmia-java

Java Client for Algorithmia Algorithms and Data API
Java
15
star
12

algorithmia-swift

A Swift/iOS client library for the Algorithmia API
Swift
14
star
13

algorithmia-r

R Client for Algorithmia Algorithms and Data API
R
14
star
14

deepfilter-training

AMI + Script for training your own DeepFilter filters.
Shell
11
star
15

algorithms-for-webdevs-ebook

JavaScript
10
star
16

pytorch-ergonomics

Improving the developer experience of pytorch on Algorithmia and beyond!
Python
10
star
17

algorithmia-ci-action

An algorithmia github Action to test and deploy github backed Algorithmia.com algorithms
Python
9
star
18

algorithmia-c-sharp

.NET Client for Algorithmia Algorithms and Data API
C#
9
star
19

algorithmia-scala

Scala Client for Algorithmia Algorithms and Data API
Scala
6
star
20

mlflow-algorithmia

mlflow extension for Algorithmia
Python
6
star
21

algorithmia-adk-python

The Python based Algorithm Development Kit, used to deploy onto Algorithmia
Python
6
star
22

algorithmia-android

Algorithmia Android Client
Java
5
star
23

integrations

Integrations with third-party services/providers: code templates, plugins, etc
Python
5
star
24

algorithmia-modeldeployment-action

Algorithmia Github Action capable of running Jupyter notebooks to create the ML model, uploading the model and updating the algorithm at Algorithmia
Python
4
star
25

test-algo-action

A github action designed to test an algorithm on www.algorithmia.com
Python
4
star
26

algorithmia-bench

Algorithmia Benchmark Tester is a library for testing algorithm performance, comparing algorithms and getting statistical information for each benchmark run.
Python
3
star
27

algorithmia_ci

Source for https://algorithmia.com/algorithms/zeryx/algorithmia_ci_simple
Python
2
star
28

heroku-kafka-demo

To be used part of Heroku's KAFKA 5-parts demo (https://heroku.github.io/kafka-demo/). This is part #6, which adds sentiment analysis to the data pipeline.
JavaScript
2
star
29

algorithmia-spark-demo

Repo showing test code for integration with Spark
Scala
2
star
30

api-docs

JavaScript
2
star
31

build-wait-action

Waits for an Algorithm build process to finish, returns the build result
Python
2
star
32

publish-algo-action

Publishes a secessfully built and published algorithm to www.algorithmia.com
Python
2
star
33

wheelmaker

enabling C++/python projects to function on Algorithmia
Python
1
star
34

old-algorithm-templates

Python
1
star
35

algorithmia-csharp-pipe

A package enabling deployment of C# algorithms on Algorithmia.
C#
1
star
36

githubactions-modeldeployment-deprecated

Deprecated and earliest implementation of Algorithmia Github Action
Python
1
star
37

githubactions-modeldeployment-demo-algorithmiaalgo

Demo ML repository, using Algorithmia Model Deployment Github Action, to auto deploy on an algorithm hosted on Algorithmia
Jupyter Notebook
1
star
38

algorithmia-adk-java

The Java based Algorithm Development Kit, used to deploy onto Algorithmia
Java
1
star
39

algorithmia-ratchet

A set of algorithm zips and scripts to automatically deploy them to new & custom algorithm environments
Python
1
star
40

githubactions-modeldeployment-template

Template ML repository to get started with Algorithmia Model Deployment Github Action integration
Jupyter Notebook
1
star
41

algorithmia-cli

Compatability shim for the python-based CLI installer
Shell
1
star