Bitfount-Supported Protocols
Protocols represent the agreed upon method by which a Data Scientist and a collection of Pods collaborate. The roles that are granted by Data Custodians are defined in terms of the protocols, and they in turn define the data and statistics that will be shared during task execution.
Bitfount currently supports the following protocols:
Protocol | Description | When to Use |
---|---|---|
Federated Averaging | This protocol performs a predetermined number of epochs or steps of training on each remote Pod before sending the updated model parameters to the Data Scientist. These parameters are then averaged and sent back to the Pods for as many federated iterations as the Data Scientist specifies. | When training or evaluating ML models in a federated manner. Works With: - Federated Training |
Results Only | Returns the results from the provided algorithm. This protocol is the most permissive protocol and only involves one round of communication. It simply runs the algorithm on the specified Pod(s) and returns the results as a list (one element for every Pod). | To return the results of a task to the Data Scientist. Works With: - Column Average - Model Evaluate - Model Train and Evaluate - Model Inference - SQL Query - Private SQL Query - Transformer Perplexity - Transformer Text Generation |
Inference And CSV Report | Runs remote model inference and then generates a CSV report locally from the results. | Best applied when model inference must be run on remote data but the results cannot leave the Pod. Works With: - Model Inference - CSV Report |
Conversation | Opens a long running chat-like session where the Data Scientist can send dynamic text prompts to the pod and receive text responses. | To chat with a remote huggingface LLM: Works With: - Transformer Text Generation |
Once instantiated, Data Scientists can initiate a run a protocol on a set of Pods using the run
method:
protocol = ... # Instantiate one of the relevant protocols
protocol.run(pod_identifiers=["user1/pod1", "user2/pod2"])
The protocol will only succeed if the Data Scientists has the requisite permissions from all of the Pods specified.
Don’t see a protocol that works for you? Submit your suggestion or provide feedback to us.