Skip to main content

Bitfount Task Elements

A core component of the Bitfount package is a declarative method for defining tasks. Data scientists define the task they want to perform, and on which Pods through declarative task definitions. When submitted, these task definitions are sent to the relevant Pods, each of which checks that the submitting data scientist has the required permissions to run that particular task on its data. The Pods communicate their decisions and the task then proceeds with all parties that have accepted.

Bitfount uses the term task element to describe constituents of the task definitions. The access control system used in the Bitfount Pod Policies is all defined in terms of the task elements supported in the platform. Similarly all tasks that can be submitted in the platform must be definable in terms of supported task elements.

Bitfount comes pre-installed with a number of default task elements.

Please check that you have upgraded to the latest Bitfount version to ensure you are able to leverage all the task elements described in this section.

Task elements include:

  • Protocols: A protocol defines how communication is orchestrated between Pods and the Data Scientist.
  • Algorithms: An algorithm defines what computation is done on each Pod at each iteration of a protocol.
  • Models: A model is a parameter to Model-based algorithms. For this class of algorithm, the model is the model architecture used for doing the analysis.
  • Data Structures: A data structure is a parameter of Model-based algorithms. For this class of algorithm, the data structure defines how to map data from the Pod into tensors for use in the analysis.
  • Bitfount Schema: A Bitfount Schema is a definition of the columns in a data source (whether a remote Pod or a local DataSource object).

Each of the sub-pages in this section explores the most up-to-date list of built-in Bitfount task elements by element type. Click the pages above to learn more!

Task Configuration Parameters

Once you are ready to run a task, you can familiarise yourself with the task configuration parameters in the table below. If you leverage the default Bitfount protocols and algorithms, you do not have to specify these parameters. For more details on task configuration parameters, see the API Reference.

Parameter NameDescriptionAccepted Values
pod_identifierThe Pod or list of Pods that holds the data on which you want to train. This can be found in the Bitfount Hub and is the identifier ({pod_owner_username}/{pod_name}) in the URL for the relevant Pod’s page. This can also be copied from under the display name on the Pod’s page. Be sure to capture both the username and Pod name when inputting this parameter.Typically alphanumeric based on Pod name.
datastructureThe structure of the data on which you will train the model. This should contain the target column, columns to select, and columns to ignore for training.Typically taken from schema. i.e. datastructure=DataStructure(target="TARGET", table="adult-demo")
schemaThe schema config specified for the Pod. This should have already been specified by the Pod owner, so you can use the get_pod_schema command to specify.get_pod_schema(pod_identifier)
protocolThe protocol to use. Note: The chosen protocol must have been permissioned by the Pod owner.Any supported protocol. i.e. FederatedAveraging
algorithmThe algorithm to use. Note: The chosen algorithm must be accessible given your assigned role in relation to the specified Pod.Any supported algorithm. i.e. Train
aggregator{optional} The secure aggregator to leverage in the event you choose a protocol requiring aggregator specification.i.e. bitfount.federated.aggregators.aggregator._ModellerSide
modelThe model you want to train.See “Training Models” Tutorials for examples.
model_hyperparametersThe settings used by the modeli.e. hyperparameters: Optional[_StrAnyDict] = None