Giter VIP home page Giter VIP logo

substra-documentation's Introduction



Substra


Substra is an open source federated learning (FL) software. It enables the training and validation of machine learning models on distributed datasets. It provides a flexible Python interface and a web application to run federated learning training at scale. This specific repository is the low-level Python library used to interact with a Substra network.

Substra's main usage is in production environments. It has already been deployed and used by hospitals and biotech companies (see the MELLODDY project for instance). Substra can also be used on a single machine to perform FL simulations and debug code.

Substra was originally developed by Owkin and is now hosted by the Linux Foundation for AI and Data. Today Owkin is the main contributor to Substra.

Join the discussion on Slack and subscribe here to our newsletter.

To start using Substra

Have a look at our documentation.

Try out our MNIST example.

Support

If you need support, please either raise an issue on Github or ask on Slack.

Contributing

Substra warmly welcomes any contribution. Feel free to fork the repo and create a pull request.

Setup

To setup the project in development mode, run:

pip install -e ".[dev]"

To run all tests, use the following command:

make test

Some of the tests require Docker running on your machine before running them.

Code formatting

You can opt into auto-formatting of code on pre-commit using Black.

This relies on hooks managed by pre-commit, which you can set up as follows.

Install pre-commit, then run:

pre-commit install

Documentation generation

To generate the command line interface documentation, sdk and schemas documentation, the python version must be 3.8. Run the following command:

make doc

Documentation will be available in the references/ directory.

Changelog generation

The changelog is managed with towncrier. To add a new entry in the changelog, add a file in the changes folder. The file name should have the following structure: <unique_id>.<change_type>. The unique_id is a unique identifier, we currently use the PR number. The change_type can be of the following types: added, changed, removed, fixed.

To generate the changelog (for example during a release), use the following command (you must have the dev dependencies installed):

towncrier build --version=<x.y.z>

You can use the --draft option to see what would be generated without actually writing to the changelog (and without removing the fragments).

substra-documentation's People

Contributors

acellard avatar adarbier avatar alexandrepicosson avatar aureliengasser avatar bowni avatar clementmayer avatar davidendico-owkin avatar dependabot[bot] avatar eazyal avatar esadruhn avatar fabien-gelus avatar grouane avatar guilhem-barthes avatar ic-1101asterisk avatar jjerphan avatar jmorel avatar kaanyagci avatar louishulot avatar maikia avatar maximemowkin avatar mblottiere avatar milouu avatar natct10 avatar oleobal avatar romaingoussault avatar sdgjlbl avatar tanguy-marchand avatar thbcmlowk avatar thibaultfy avatar

Stargazers

 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

substra-documentation's Issues

[FEATURE_REQUEST] More docstrings for the SDK

Introduction

Docstrings of classes are often not present in the substra SDK and docstrings of functions or methods do not list the inputs and outputs with their types.

An example of this can be found in the substra repo for the client substra/substra/sdk/client.py.

[BUG] Quotes/Notes are not rendered on the doc website

Describe the bug

Quotes/Notes written in .md sources with > ... are not rendered properly on the documentation website.

How To Reproduce

  1. Go to this page and check out the first line after the article title

Expected behavior

Depending on the rendering template, his should render something like a vertical bar, maybe a different text color.

Add a note on how to remove dataset

As the permissions are not mutable when an asset is pushed to the network, it might be interesting to provide some tips about removing it (pods, etc.)

Advanced permission

Regime that covers serial and parallel learning - empowering the data controller - technique and concept - data governance platform

Remove link to the forum

There is a link to the Discourse forum in CONTRIBUTING.html#i-don-t-want-to-read-this-whole-thing-i-just-have-a-question

Setup : CLI "substra config" command is wrong

I'm on a Ubuntu VM.
I installed the Substra CLI v0.5 with
sudo pip3 install substra

I got an error when running this command :
sudo substra config http://substra-backend.node-1.com
The error :

Usage: substra config [OPTIONS] URL
Try 'substra config --help' for help.

Error: Missing option '--username' / '-u'.

However this command worked for me :
sudo substra config -u "node-1" -p 'p@$swr0d44' http://substra-backend.node-1.com
and then
sudo substra login
Could you change it in the doc ?
Thanks

troubleshooting minikube JUJU_LOCK_DENIED

If you get this error :

$ sudo minikube start --vm-driver=none --kubernetes-version='v1.15.4'
πŸ˜„  minikube v1.9.2 on Ubuntu 20.04 (vbox/amd64)
✨  Using the none driver based on existing profile
πŸ‘  Kubernetes 1.18.0 is now available. If you would like to upgrade, specify: --kubernetes-version=1.18.0
πŸ‘  Starting control plane node  in cluster minikube
🀦  StartHost failed, but will try again: boot lock: unable to open /tmp/juju-mka00e65579c2b557a802898fd1cf03ec4ab30a1: permission denied

❌  [JUJU_LOCK_DENIED] Failed to start none bare metal machine. "minikube start" may fix it. boot lock: unable to open /tmp/juju-mka00e65579c2b557a802898fd1cf03ec4ab30a1: permission denied
πŸ’‘  Suggestion: Run 'sudo sysctl fs.protected_regular=1', or try a driver which does not require root, such as '--driver=docker'
⁉️   Related issue: https://github.com/kubernetes/minikube/issues/6391

You will need to do : sudo sysctl fs.protected_regular=0

Update substra cli config & login commands

As recently updated, the config and login cli commands should look like this:

substra config --profile node-1 http://substra-backend.node-1.com    

substra login --profile node-1 --username node-1 --password 'p@$swr0d44'

Contributivity

Integrate contributivity works and methods into the framework.

Data preview

Allow a user to have a preview of data on several samples.

Badges

  • Add badges to the substra-documentation readme
  • Add License badge
  • Update slack url to point towards an invitation link

Setup : change version of skaffold

During the setup, i had this error when running the command sudo skaffold dev in hlf-k8s :

creating runner: creating builder: getting docker client: getting minikube env: running [minikube docker-env --shell none]
 - stdout: 
 - stderr: "* 'none' driver does not support 'minikube docker-env' command\n": exit status 64

The solution was to install skaffold 1.8 (not latest) :

curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/v1.8.0/skaffold-linux-amd64

chmod +x skaffold

sudo mv skaffold /usr/local/bin

Distillation techniques

Facilitate "distillation" techniques (compression, anonymization): starting from an existing template then create a copy that has better properties (example: question of size, better generalization, ...)

Filter out / remove assets on the front

When you have registered an asset (dataset or objective for instance) that has bug a in it, it would to be nice to be able to remove it from the front. I know we can not delete it but move it to "trash" somehow would be good.

I fear that after experimentation with Substra, my front page will be filled with datasets and objectives that do not work properly !

I know there is a filter option but it will be nice to automatically filter the 'trash' assets.

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.