Combined Federated Data Services with Blossom and Flower
When it comes to Federated Learning frameworks we typically find two leading open source projects - Apache Wayang [2] (maintained by databloom) and Flower [3] (maintained by Adap). And at the first view both frameworks seem to do the same. But, as usual, the 2nd view tells another story.
How does Flower differ from Wayang?Flower is a federated learning system, written in Python and supports a large number of training and AI frameworks. The beauty of Flower is the strategy concept [4]; the data scientist can define which and how a dedicated framework is used. Flower delivers the model to the desired framework and watches the execution, gets the calculations back and starts the next cycle. That makes Federated Learning in Python easy, but also limits the use at the same time to platforms supported by Python.
Combine Blossom and Flower and build a Federated Data Science NLP Stack
How to build a chatbot system, which serves multiple functions and customers across the world, like in a bank? A chatbot stack typically uses NLP combined with multiple data source to provide a natural communication between humans and machines. The demand of Machine-Human interaction and human based communication has considerably increased and the forecasts of Gartner are a testament to it.
Here comes Blossom into the game. With Blossom we can connect to each of those systems (if desired and needed), and we can use already available data processing frameworks and engines like Spark, Kafka or Flink (and their commercial counterparts) without blowing up the engineering team.
Now the fun part with Flower: we plug Flower to Blossom, and voilà - problem solved! The architecture could look like:
import blossom as bls
import flwr as fl
import tensorflow as tf
context = bls.context(env="federated")
transactions = context.read("url to transaction") \
.filter( transactionFilter )
input_flower = context.read("url to customer table") \
.filter( customerFilter ) \
.join (transactions ) \
.map ( convertToVector ) \
.toNumpy()
context.runFlower(
input_flower, \
server=fl.server.start_server("0.0.0.0:8080", config={"num_rounds": 3}) \
client=fl.client.start_numpy_client("0.0.0.0:8080", client=FlowerImplementedClient())
flowerEngine=tf
)
Conclusion:
To build cutting edge AI and machine learning / NLP stacks is not an area only the biggest data companies in the world can handle. With this approach we guarantee data sustainability, unmatched data privacy and enable digital transformation on a completely new level.
[1] https://cacm.acm.org/magazines/2020/12/248796-federated-learning-for-privacy-preserving-ai/fulltext
[2] https://wayang.apache.org/documentation.html
[3] https://github.com/adap/flower
Thank you for sharing the valuable article.
ReplyDeleteBest Data Management Services Company/a>