GithubHelp home page GithubHelp logo

ravenprotocol / ravenverse Goto Github PK

View Code? Open in Web Editor NEW
41.0 17.0 15.0 1.88 MB

Decentralized Computing Backend for Artificial Intelligence, Web3, Metaverse, and Gaming Application

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

License: MIT License

Python 77.34% Jupyter Notebook 22.47% Dockerfile 0.19%
ai machinelearning matrix-multiplication distributed-computing decentralized artificial-intelligence gaming machine-learning metaverse web3

ravenverse's Introduction

Ravenverse

What is Ravenverse?

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!

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

Roles in Ravenverse

The Ravenverse is a community-developed implementation of the decentralized computing model outlined by Raven Protocol. Within the Raven ecosystem today, there are three main actors:

  • Requester: Requester is a person/entity who wants to request some compute power for their decentralized application. These requirements may vary from simple mathematical calculations to training complex ML/DL models.

  • Provider: A provider is a person/entity that wishes to provide computing resources to support the requester's decentralised apps.

  • Facilitator (support coming soon): Facilitator is a platform, website, application, that uses our tools like ravop, ravjs, ravpy to empower requesters and providers with no code tools to participate in the ravenverse network.

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

Libraries

Core modules

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

Modules built on top of core modules

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

Client Modules

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

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

Features

The current release of Ravenverse supports Distributed Computing and Federated Analytics across a network of Requesters and Providers around the world.

Distributed Computing

To share and coordinate their processing capacity for a shared computational need, such as the training of a sizable Machine Learning model, distributed computing connects diverse computing resources, such as PCs and cellphones. Each of these resources or nodes receives some data and completes a portion of a task through communication with a server and, in some situations, with other nodes. These nodes can coordinate their operations to quickly and effectively meet a large-scale, complicated computational requirement.

Federated Analytics

Key statistics like mean, variance, and standard deviation may be generated across numerous private datasets using federated analytics, a novel method of data analysis, without jeopardising privacy. It functions similarly to federated learning in that it does local computations on the data from each client device and only provides requesters with the aggregated results—never any data from a specific device. Without leaving the premises, sensitive data can be examined, including financial transactions, employee information, and medical records.

Detailed walkthroughs (from both Requester's and Provider's perspectives) on setting up and testing both distributed computing and federated analytics driven algorithms can be found under Tutorials folder.

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

Setup

This repository can be used by both requesters and providers as a foundation for setting up Raven's various other libraries and running their algorithms.

Create a Virtual Environment

conda create -n <env_name> python=3.8
conda activate <env_name>

Clone the Repository

git clone https://github.com/ravenprotocol/ravenverse.git

Getting your Ravenverse Token

Visit the Ravenverse Website (preferably on Chrome) and login using your MetaMask Wallet Credentials.

Copy your Private Ravenverse Token. This token will be required by all Raven libraries to authenticate transactions and data transfers.

For Requesters

Install our python packages hosted on PyPi.

pip install ravop
pip install ravdl
pip install ravml

With these libraries, Requesters can build, train and test their ML/DL models.

For Providers

If your wish to enter Ravenverse as a Provider, you must install RavPy:

pip install ravpy

RavPy is a python SDK that allows providers to intuitively participate in any ongoing graph computations in the Ravenverse.

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

Documentation

Documentation for each library of Ravenverse can be found in the README.md files of the corresponding GitHub Repositories.

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

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ravenverse's Issues

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.