Giter Club home page Giter Club logo

akshit17 / ravenverse Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ravenprotocol/ravenverse

0.0 0.0 0.0 1.89 MB

The foundation for any Machine Learning or Deep Learning Framework. Simply put, it is more like a decentralized calculator, comparable to a decentralized version of the IBM machines the were used to launch the Apollo astronauts. Apart from building ML/DL frameworks, a lot more can be done on it, such as maximizing yield on your favorite defi protocols like Compound and more!

Home Page: https://medium.com/ravenprotocol/building-blocks-of-the-raven-distribution-framework-on-github-d200967bbec0

License: MIT License

Shell 11.52% Python 88.48%

ravenverse's Introduction

Raven Distribution Framework(RDF)

The foundation for any Machine Learning or Deep Learning Framework. Simply put, it is more like a decentralized calculator, comparable to a decentralized version of the IBM machines that were used to launch the Apollo astronauts. Apart from building ML/DL frameworks, a lot more can be done on it, such as maximizing yield on your favorite DeFi protocols like Compound and more!

The Raven Distribution Framework (RDF) is a community-developed implementation of the decentralized computing model outlined by Raven Protocol. Within the Raven ecosystem today, there are two main actors:

  • Developers: Create models that need to be trained
  • Clients: Provide computational power to train the models

For Developers, there are three core libraries that drive the main function for computation distribution (RavOp, RavSock, and RavFTP), along with a growing list of libraries that extend the core to be more developer-friendly to use.

For Clients, there are two libraries, ravpy is the python client for federated and distributed computing and the javascript library RavJS enables anyone with a browser to contribute processing power. Additional clients are in consideration, such as Go and Rust (looking for community devs!).

Core libraries

  • RavOp: Core operations models for distributed computation
  • RavSock: Socket server to moderate client connections
  • RavFTP: FTP server to facilitate the transfer of files

Libraries built on top of core libraries

  • RavML: Machine learning specific library
  • RavDL (Coming soon): Deep learning specific library
  • RavViz: A dashboard to visualize operations and client connections

Client libraries

  • Ravpy: Python client for federated and distributed computing
  • RavJS: Javascript library to retrieve and calculate operations

-----------------------------------------------------

Setup

Installation

Create a virtual environment with Python 3.8 before you install RDF libraries

conda create -n <env_name> python=3.8

Clone the Repository

git clone https://github.com/ravenprotocol/raven-distribution-framework.git

Set up everything and install dependencies

For the latest build

sh setup.sh

For the stable build

sh setup_stable.sh

Configure Paths

Navigate to ravsock/config.py and set the FTP_ENVIRON_DIR variable to the bin folder of your python virtual environment. For instance:

FTP_ENVIRON_DIR = "~/miniconda/envs/<env_name>/bin"

Note: Set ENCRYPTION = True in the same file if a layer of homomorphic encryption needs to be added for Federated Analytics.

Set RDF_DATABASE_URI in the same file.

RDF_DATABASE_URI = "sqlite:///rdf.db?check_same_thread=False"

Create database with tables required for the project.

python reset.py  

The server is now configured correctly and ready to be fired up.

Start Ravsock Server

Ravsock is a crucial component of RDF that facilitates both federated and distributed functionalities of the framework.

It sits between the developer(who creates ops and writes algorithms) and the contributor who contributes the idle computing power. Its scheduling algorithm oversees the distribution and statuses of different Ops, Graphs and Subgraphs across multiple Clients.

python3 run_ravsock.py

-----------------------------------------------------

How to Run

Federated Analytics

Kindly visit FEDERATED_ANALYTICS.md for more info on creating and working with custom Federated Ops.

Distributed Computing

Kindly visit DISTRIBUTED_COMPUTING.md for more on creating graphs, initializing distributed clients in web browser and working with custom Ops to develop distributed ML algorithms.

-----------------------------------------------------

How to contribute:

Contributions are what make the open source community such a wonderful place to learn, be inspired, and create. You may contribute to our individual Repositories. Please read our contributor guide.

Any help you can give is much appreciated.

-----------------------------------------------------

License

This project is licensed under the MIT License - see the LICENSE file for details

ravenverse's People

Contributors

7entropy7 avatar axe76 avatar kailashahirwar avatar kailashmatelabs avatar mouni97matelabs avatar nipunbharti21 avatar pranitabhinav avatar pranshurastogi29 avatar rohit-2000 avatar sherm8n avatar siayush avatar ssunwalka01 avatar syuan100 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.