An SDK for building applications on top of FLock V1
Project description
Flock SDK
Welcome to the Flock SDK repository! 🚀 Flock SDK is a powerful software development kit that leverages Federated Learning and Blockchain to enable data and computation resources owners to collaboratively train machine learning models using any source data. With Flock SDK, you can define and start ML training tasks on the Flock platform efficiently. 💪
Key Features
-
🔗 Federated Learning: Flock SDK harnesses the power of Federated Learning, a distributed approach that allows data owners to train machine learning models collaboratively while keeping their data locally.
-
🤝 Collaborative Training: By sharing source data, Flock enables multiple participants to contribute to the training process, resulting in improved model performance and accuracy.
-
💰 Rewards and Smart Contracts: Flock's ML training participants are incentivized with rewards and penalties specified by pre-defined smart contracts, ensuring fair and transparent compensation.
-
🔒 Secure and Privacy-preserving: Flock SDK prioritizes data privacy and security, allowing data owners to retain control over their sensitive information throughout the training process.
-
🧩 Flexible Integration: The SDK is designed to be easily integrated into your existing workflows and systems, making it a perfect fit for a wide range of applications.
Example Usages
-
🌐🤖 Flock Large Language Model: Visit the
flock_llm
directory for an example usage of Flock SDK with the Flock Large Language Model(LLM). This demonstrates how to finetune a Vicuna-7B using the instruction sets provided by different contributors and train aLoRA
adapeter using federated leaning on chain. -
🛡️💳 Credit Card Fraud Detection: Check out the
credit_card_fraud_detection
directory for an example usage of Flock SDK to train a fraud detection model using a federated learning approach. -
📸🔎 MobileNet Example: Explore the
mobilenet_example
directory for an example implementation of Flock SDK to train a MobileNet model for image classification, leveraging the power of federated learning.
Quick Start
Creating a new model
Prerequisites:
You must have docker
and docker compose
installed and set up to run as non-root user.
Installing Flock SDK as a package
This step is only required if you want to test invoking the model without the client running it in a docker container.
Installing the SDK as a python package is pretty simple, all you need to do is run pip install flock-sdk
.
If you are running a local flock chain
- Choose the appropriate example to build from inside the
examples
folder and implement the evaluate, train and aggregate functions as required. - Make sure that IPFS is started by running
docker-compose up
in the client directory - Run
./upload_image.sh
inside the chosen example folder to build and upload the model definition to IPFS - Modify the
MODEL_DEFINITION_HASH
in theMakefile
inside the client repo to match the returned hash - Start the network by running
make chain
inside the client repo - Launch the clients using instructions in the client directory's README.
If you are running on the official flock chain
- Choose the appropriate example to build from inside the
examples
folder and implement the evaluate, train and aggregate functions as required. - Run
./upload_image.sh
inside the chosen example folder to build and upload the model definition to IPFS - Create a new FlockTask with the returned IPFS hash in the Flock frontend
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file flock-sdk-0.0.3.tar.gz
.
File metadata
- Download URL: flock-sdk-0.0.3.tar.gz
- Upload date:
- Size: 4.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 40054b9c9eb0c24b5d37c55ba0eca2ddf40ade9abb80f3896835d679884a23e2 |
|
MD5 | 99276396d7934679d08ef4010e2760c8 |
|
BLAKE2b-256 | 353221a52bf41cceaaaa2e9d1e0132207e40b308ba6c1bab5b06ef5c6c9a171b |
File details
Details for the file flock_sdk-0.0.3-py3-none-any.whl
.
File metadata
- Download URL: flock_sdk-0.0.3-py3-none-any.whl
- Upload date:
- Size: 4.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9940739c3cc0bd30f5059f33be62b992f5d9325a8e3956de03b20ce195807242 |
|
MD5 | 0c3f869abd10f46af11369fe5f4a8919 |
|
BLAKE2b-256 | 7982f84dead859018284c9b3c37b671e3fc2cec6d2f414fe31811d978efd84eb |