Phalanx¶
Federated learning on the latest Flower, with OpenTelemetry-native observability.
flwr 1.36 Message API
Federated LoRA
OTel traces and metrics
What is Phalanx?
A federated run you can watch, round by round
A federated-learning research testbed on the latest Flower release. Every round emits a server span and FL metrics, every client a span for its train and evaluate pass, so the whole run shows up in Jaeger, Grafana Tempo or any OpenTelemetry Collector.
How it works
One federated round, traced end to end
- Broadcast Adapters go to sampled clients
- Train Each client fine-tunes LoRA on its partition
- Aggregate FedAvg over the returned adapters
- Evaluate On client holdouts and the global test split
- Trace A round span with client spans as children
- Export OTLP, console, or in-memory for tests
Only the LoRA adapters and the classification head are federated. The frozen backbone never leaves a client.
The default showcase
Sentiment, federated, on a laptop
Model
Tiny BERT with LoRA
google/bert_uncased_L-2_H-128_A-2
Data
IMDB sentiment
Partitioned non-IID with a Dirichlet partitioner
Federation
Five simulated nodes
Reproduced from a clone with no bootstrap step
Hardware
CPU is enough
No GPU required
Flower 1.36
flwr-datasets
HuggingFace Transformers
PEFT / LoRA
OpenTelemetry
uv
Explore
Start here
Getting started
Install, run your first federated simulation, and print its OpenTelemetry traces.
Run a simulation → ArchitectureHow task, client_app, server_app and the telemetry layer fit the Flower app model.
Lineage and positioning, including the RIT InteFL capstone it grew out of.
See the work →