CLI

The FEDN Command-Line Interface (CLI) is a powerful tool that allows users to interact with the FEDN platform. It provides a comprehensive set of commands to manage and operate various components of the FEDN network, including starting services, managing sessions, and retrieving data.

With the FEDN CLI, users can:

  • Start and manage FEDN services such as the combiner, controller, and clients.

  • Interact with the controller to: - Manage sessions, including starting, stopping, and monitoring their progress. - Retrieve data and results related to sessions, such as aggregated models and validation metrics. - Query the state of the network, including the status of connected combiners and clients.

  • Test entry points in a FEDN package: - For example, use the CLI to test the script defined in the train entry point of a FEDN package. This allows users to validate and debug their training scripts in isolation before deploying them in a federated learning session.

The FEDN CLI is designed to streamline the management of the FEDN platform, making it easier for users to deploy, monitor, and interact with their federated learning networks.

For detailed usage and examples, refer to the sections below.

Client

The fedn client commands allow users to start and manage FEDN clients. Clients are the entities that participate in federated learning sessions and contribute their local data and models to the network.

Commands:

  • fedn client start - Start a FEDN client using a specified configuration file or package. Example:

fedn client start --init client_config.yaml --local-package
  • fedn client list - List all active FEDN clients in the network. Example:

fedn client list
  • fedn client get-config - Get the configuration of a specific FEDN client from Studio, including the client’s token and other details. Example:

fedn client get-config --name test-client

Combiner

The fedn combiner commands allow users to start and manage combiners, which aggregate models from clients in the network.

Commands:

  • fedn combiner start - Start a FEDN combiner using a specified configuration file. Example:

fedn combiner start --config combiner_config.yaml

Controller

The fedn controller commands allow users to start and manage the FEDN controller, which orchestrates the entire federated learning process.

Commands:

  • fedn controller start - Start the FEDN controller using a specified configuration file. Example:

fedn controller start --config controller_config.yaml

Studio

The fedn studio commands allow users to log in to the FEDN Studio and interact with the platform.

Commands:

  • fedn studio login - Log in to the FEDN Studio using a username, password, and host. Example:

fedn studio login -u username -P password -H studio_host

Project

The fedn project commands allow users to create, delete, list, and set the context for projects in the FEDN Studio.

Commands:

  • fedn project create - Create a new project in the FEDN Studio. Example:

fedn project create -n project_name -H studio_host
  • fedn project delete - Delete an existing project. Example:

fedn project delete -id project_id -H studio_host
  • fedn project list - List all projects in the FEDN Studio. Example:

fedn project list -H studio_host
  • fedn project set-context - Set the context for a specific project. Example:

fedn project set-context -id project_id -H studio_host

Model

The fedn model commands allow users to manage models in the FEDN Studio.

Commands:

  • fedn model set-active - Set a specific model as the active model for a project. Example:

fedn model set-active -f model_file.npz -H studio_host
  • fedn model list - List all models in the FEDN Studio. Example:

fedn model list -H studio_host

Package

The fedn package commands allow users to create and list packages in the FEDN Studio.

Commands:

  • fedn package create - Create a new package for a project. Example:

fedn package create -n package_name -H studio_host
  • fedn package list - List all packages in the FEDN Studio. Example:

fedn package list -H studio_host

Session

The fedn session commands allow users to start and list sessions in the FEDN Studio.

Commands:

  • fedn session start - Start a new session for a project. Example:

fedn session start -n session_name -H studio_host
  • fedn session list - List all sessions in the FEDN Studio. Example:

fedn session list -H studio_host

Validation

The fedn validation commands allow users to retrieve and list validation results.

Commands:

  • fedn validation get - Retrieve validation results for a specific round. Example:

fedn validation get -r round_number -H studio_host
  • fedn validation list - List all validation results for a project. Example:

fedn validation list -H studio_host