Federated Learning API v0.1

Draft Community Group Report

This version:
https://w3c.github.io/federated-learning-cg/reports/index.html
Latest published version:
https://w3c.github.io/federated-learning-cg/reports/index.html
Latest editor's draft:
https://w3c.github.io/federated-learning-cg/reports/index.html
Editor:
신성필(Sungpil Shin) (한국전자통신연구원(ETRI))
이원석(Wonsuk Lee) (한국전자통신연구원(ETRI))
Feedback:
GitHub w3c/federated-learning-cg (pull requests, new issue, open issues)

Abstract

This proposal defines interfaces that enables the implementation and management of federated learning systems.

Status of This Document

This specification was published by the Federated Learning Community Group. It is not a W3C Standard nor is it on the W3C Standards Track. Please note that under the W3C Community Final Specification Agreement (FSA) other conditions apply. Learn more about W3C Community and Business Groups.

GitHub Issues are preferred for discussion of this specification.

1. Introduction

1.1 Background

The scope of the Federated Learning API specification encompasses the development of a standardized interface that enables the implementation and management of federated learning systems. It focuses on the communication and coordination between central servers and client devices participating in federated learning, with an emphasis on privacy-preserving machine learning techniques. The specification covers the interactions, protocols, and data formats necessary for secure and efficient model training across decentralized devices.

1.2 Terminology

Note

Need to be developed.

1.3 Conformance

As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

The key word MUST in this document is to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

2. Requirements

The functional requirements for Federated Learning API outline the essential capabilities and specifications necessary to enable seamless communication, secure data transmission, and effective coordination of federated learning systems. These requirements encompass device registration, data upload, model synchronization, evaluation, result retrieval, training control, and ensuring security and privacy measures.

2.1 Device Registration

The API should allow devices or clients to securely register themselves with the federated learning system. The API should allow devices or clients to securely register themselves with the federated learning system. The API should provide endpoints for device registration, including necessary parameters and data formats.

2.2 Data Upload

The API should enable clients to securely upload their locally held data to the central server or coordinator for model training. It should support various data formats and provide guidelines for data serialization and transmission. The API should include endpoints for data submission, metadata specification, and possibly data encryption or anonymization.

2.3 Model Synchronization

The API should handle the communication and synchronization of model parameters between the central server and client devices. It should provide endpoints for retrieving the current model state, sending model updates from clients to the server, and distributing updated models back to the clients. The API should support efficient and secure transmission of model parameters, taking into account bandwidth limitations and data privacy requirements.

2.4 Model Evaluation

The API should include endpoints for clients to request model evaluation on their local data. It should support the transmission of evaluation requests and relevant data securely to the server. The API should allow clients to retrieve evaluation metrics or results from the server.

2.5 Result Retrieval

The API should enable clients to retrieve the final trained model or other relevant results from the central server. It should provide endpoints for requesting and downloading the trained model or aggregated results. The API should ensure secure transmission of results and provide mechanisms for access control to protect sensitive information.

2.6 Training Control

The API should allow for controlling the federated learning process, such as starting, pausing, or terminating model training. It should provide endpoints for managing training sessions, setting training parameters, and monitoring the progress of training. The API should support error handling and provide appropriate status codes for different training control operations.

2.7 Security and Privacy

The API should incorporate security measures, such as authentication, encryption, and access control, to protect the federated learning system. It should ensure the privacy and confidentiality of data during transmission and storage. The API should adhere to privacy regulations and best practices for handling sensitive information.

2.8 Extensibility and Compatibility

The API should be designed with extensibility in mind, allowing for the addition of new functionalities or endpoints in the future. It should be compatible with existing web standards and frameworks, facilitating integration with different software platforms and tools.

A. References

A.1 Normative references

[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc2119
[RFC8174]
Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words. B. Leiba. IETF. May 2017. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc8174