Skip to content

Getting Started

In examples/, we included a wide variety of examples that showed how federated learning algorithms in the research literature can be implemented using Plato by customizing the client, server, algorithm, and trainer classes.

Prepare the environment and assets

Use Python 3.13 and the checked-in lockfile. From the repository root, the base environment is provisioned with:

uv sync --locked --python 3.13

Most examples inherit the root dependencies. Some are workspace members with additional packages in their local pyproject.toml; shared optional features use root extras. Follow Installation for workspace selection and separate environments for incompatible extras such as ssl and llm_eval. Keep the selected extra on syncing uv run --locked commands.

Follow the particular example's recipe for its working directory, entrypoint, config, datasets, and model checkpoints. Some data sources download assets on first use; others require preparation or external access before training. See the Qwen3 reference and Lighteval preparation for those specific workloads.

CPU, CUDA, and Apple Silicon execution depend on the selected backend and workload. See Quick Start for device flags and Native MLX for the bounded Apple CPU/Metal reference and checks. A chapter or config in this index does not establish validated support for every dataset, algorithm, or device combination; qualification applies to the specific workload and environment recorded in its validation evidence.


Algorithms Using Plato

Archived Research

Case Studies