Plato includes a reference workflow for federated time-series forecasting with Hugging Face time-series models. The initial case study predicts EV charging availability: each client owns one user's charging history and trains on sliding windows from that user's hourly sequence.
Unlike the TimesFM wrapper's channel-independent path, the reference PatchTSMixer config uses mode = "mix_channel" so the model can use the time features jointly.
Run the reference configs
Install the normal Plato environment first:
uvsync
Then run one of the configs from the repository root.
local_steps_per_round is counted in completed optimizer steps, not epochs. See the DiLoCo design contract for the mechanics behind this server type.
Result logging
The time-series configs use MSE as the scalar test metric:
[results]types="round, elapsed_time, mse"
A lower MSE is better.
Troubleshooting
Dataset file not found
Make sure data.datasource_path points to the downloaded dataset1_ev_charging_reports.csv. Relative paths are resolved from the Plato repository root when using the reference commands above.
User not found
If a configured user is missing, check the garage setting. Users from multiple garages require:
garage="all"
TimesFM class not available
TimesFM 2.5 requires a recent transformers version that exposes TimesFm2_5ModelForPrediction. If model import fails, update the environment and verify the class can be imported before launching a long run.
Metric looks like accuracy in old scripts
For time-series runs, use configs that include:
[results]types="round, elapsed_time, mse"
The server and client logs label the primary metric as MSE when the active trainer testing strategy reports metric_name = "mse".