Federated learning solution for machine learning

Coordinating federated training of multiple warehouses through federated learning technology and orchestrator, the problem of machine learning model training in distributed data environments is solved, data protection and privacy satisfaction is achieved, the training process is simplified and resource consumption is reduced.

CN119156622APending Publication Date: 2024-12-17MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 0 Cites 2 Cited by

Patent Information

Application Number
CN202380037338.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-05-19
Filing Date
2023-03-28
Publication Date
2024-12-17

AI Technical Summary

Technical Problem

The prior art is difficult to train machine learning models on data distributed in multiple locations, and due to the limitations of data protection and privacy laws, it is impossible to legally move personal identity information to a central repository, resulting in difficulty in collecting and processing training data sets.

Method used

Using federated learning technology, the federated learning pipeline is generated through an orchestrator to automatically perform tasks related to machine learning models, ensure the satisfaction of data protection and privacy requirements, and aggregate learning parameter information to obtain Fine-tuned model.

Benefits of technology

The training process of machine learning models is simplified, the consumption of storage, computing and network resources is reduced, data protection and privacy are ensured, and machine learning models are efficiently trained on data distributed in multiple locations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119156622A_ABST
    Figure CN119156622A_ABST
Patent Text Reader

Abstract

A data processing system implements receiving configuration parameters in a first warehouse for performing federated training of a machine learning model using data stored in a plurality of second warehouses, generating a federated learning pipeline based on the configuration parameters for automatically performing a plurality of tasks associated with federated learning of the machine learning model, enabling each corresponding warehouse in the plurality of second warehouses to train a local instance of the machine learning model according to a federated learning pipeline, and obtaining learnable parameter information associated with the local instance of the machine learning model of each second warehouse in the plurality of second warehouses at the first warehouse; and aggregating learnable parameter information obtained from the plurality of second warehouses to obtain a primary instance of the machine learning model that has been fine tuned according to the learnable parameter information.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Machine learning (ML) models are typically trained using large data sets to adjust the weights, biases, and / or other parameters of the machine learning model based on the data. The data can be stored across multiple cloud-based storage systems, stored locally at various data centers, or a combination thereof. Ideally, all relevant data would be collected at a central location and the model would be trained using the data. However, this is often impractical or impossible for legal and logistical reasons. The massive amounts of data that would need to be collected in a central location may severely impact the network and storage resources that collect all of the data in a central location. In addition, data protection and privacy laws may impose strict confidentiality requirements on the use and storage of data including personally identifiable information of residents of certain countries, states, provinces, or other regions where such laws have been implemented. Companies or other entities may conduct business in multiple regions where such restrictions have been imposed on data protection and privacy. Therefore, data containing such personally identifiable information cannot be legally moved to a central repository outside of these jurisdictions. Therefore, it is desirable to provide an improved system and method for facilitating a solution for training ML models, wherein the training data is distributed among multiple locations. Summary of the invention

[0002] An example data processing system according to the present disclosure may include a processor and a machine-readable medium storing executable instructions. The instructions, when executed, cause the processor to perform operations, including: receiving configuration parameters in a first warehouse for performing federated training of a machine learning model using data stored in a plurality of second warehouses; generating a federated learning pipeline based on the configuration parameters for automatically performing a plurality of tasks associated with federated learning of the machine learning model, including automatically generating code, scripts, or both for performing a plurality of tasks for training a local instance of the machine learning model using data stored in the corresponding warehouse in each of the plurality of second warehouses, and for providing the first warehouse with corresponding learnable parameter information associated with the local instance of the machine learning model, while ensuring that data protection and privacy requirements associated with the data used to train the local instance of the machine learning model are met; causing each of the plurality of second warehouses to train a local instance of the machine learning model according to the federated learning pipeline; obtaining learnable parameter information associated with the local instance of the machine learning model of each of the plurality of second warehouses at the first warehouse; and aggregating the learnable parameter information obtained from the plurality of second warehouses to obtain a master instance of the machine learning model that has been fine-tuned according to the learnable parameter information.

[0003] An example method implemented in a data processing system for performing federated learning of a machine learning model includes: receiving configuration parameters in a first warehouse for performing federated training of the machine learning model using data stored in multiple second warehouses; generating a federated learning pipeline based on the configuration parameters for automatically performing multiple tasks associated with the federated learning of the machine learning model, including automatically generating code, scripts, or both for performing multiple tasks for training a local instance of the machine learning model in each corresponding warehouse in the multiple second warehouses using data stored in the corresponding warehouse, and for providing corresponding learnable parameter information associated with the local instance of the machine learning model to the first warehouse, while ensuring that data protection and privacy requirements associated with the data used to train the local instance of the machine learning model are met; causing each corresponding warehouse in the multiple second warehouses to train a local instance of the machine learning model according to the federated learning pipeline; obtaining learnable parameter information associated with the local instance of the machine learning model in each second warehouse in the multiple second warehouses at the first warehouse; and aggregating the learnable parameter information obtained from the multiple second warehouses to obtain a master instance of the machine learning model that has been fine-tuned according to the learnable parameter information.

[0004] An example machine-readable medium having instructions stored thereon. The instructions, when executed, cause a processor of a programmable device to perform the following operations: receiving configuration parameters in a first warehouse for performing federated training of a machine learning model using data stored in a plurality of second warehouses; generating a federated learning pipeline based on the configuration parameters for automatically performing a plurality of tasks associated with federated learning of the machine learning model, including automatically generating code, scripts, or both for performing a plurality of tasks for training a local instance of the machine learning model in each respective warehouse in the plurality of second warehouses using data stored in the respective warehouses, and for providing corresponding learnable parameter information associated with the local instance of the machine learning model to the first warehouse while ensuring that data protection and privacy requirements associated with the data used to train the local instance of the machine learning model are met; causing each respective warehouse in the plurality of second warehouses to train a local instance of the machine learning model according to the federated learning pipeline; obtaining learnable parameter information associated with the local instance of the machine learning model in each second warehouse in the plurality of second warehouses at the first warehouse; and aggregating the learnable parameter information obtained from the plurality of second warehouses to obtain a master instance of the machine learning model that has been fine-tuned according to the learnable parameter information.

[0005] This summary is provided to introduce a series of concepts further described below in the detailed description in a simplified form. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all of the disadvantages noted in any part of this disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0006] The accompanying drawings depict one or more implementations consistent with the present teachings in an exemplary and non-limiting manner only. In the drawings, the same reference numerals refer to the same or similar elements. In addition, it should be understood that the accompanying drawings are not necessarily drawn to scale.

[0007] Figure 1A and Figure 1B is a diagram illustrating two example computing environments in which the techniques provided herein may be implemented.

[0008] Figure 2 is a diagram that illustrates, at a high level, the types of data that may be exchanged between an orchestrator and a repository during an iteration of a federated learning session in accordance with techniques provided herein.

[0009] Figure 3A and Figure 3B It can be seen from Figure 1 and Figure 2 Figure 1 shows a sample user interface provided by the orchestrator shown in FIG.

[0010] Figure 3C It shows that the scheduler is dynamically updated Figure 3A Figure 2. An example of a federated learning pipeline shown in Figure 2.

[0011] Figure 3D It shows that the scheduler is dynamically updated Figure 3A A diagram of another example of a federated learning pipeline shown in .

[0012] Figure 4 is a flow chart of the process for federated learning of machine learning models.

[0013] Figure 5 is a block diagram illustrating an example software architecture, portions of which may be used in conjunction with the various hardware architectures described herein, which may implement any of the described features.

[0014] Figure 6 is a block diagram illustrating components of an example machine configured to read instructions from a machine-readable medium and perform any of the features described herein. DETAILED DESCRIPTION

[0015] In the following detailed description, many specific details are set forth by way of example in order to provide a thorough understanding of the relevant teachings. However, it should be apparent that the present teachings can be practiced without such details. In other instances, well-known methods, processes, components and / or circuits have been described at a relatively high level but without detailed description in order to avoid unnecessarily obscuring aspects of the present teachings.

[0016] Techniques for federated machine learning are provided that address the technical problem of training ML models on data distributed among multiple locations without collecting the data at a centralized location for analysis. The technical advantage of these techniques is that the data for the dataset used to train the model is analyzed locally on the computing environment on which the data is stored. The data is not collected at a centralized location, thereby ensuring that data protection and privacy requirements associated with various datasets are met. These requirements are met by implementing an orchestrator that is configured to coordinate the federated training of ML models using "warehouses" that have access to corresponding portions of the data to be used to train the ML models. The data in each warehouse is separated from the data in other warehouses, and each warehouse is allocated computing and storage resources for storing data and performing various computing tasks on the data. The orchestrator coordinates the federated training with warehouses by providing learnable parameter information to the warehouses, which can include initial model weights, biases, and / or other parameters associated with the ML model. The learnable parameter information is a parameter used by nodes within the hidden layer of the ML network to transform the data that has been input into the network to generate predictions based on the network. Each warehouse trains a local instance of the ML model using locally available data. The warehouse then provides the updated learnable parameter information to the orchestrator, which aggregates the model weights received from each warehouse in the warehouse to update the main version ML model maintained by the orchestrator. The technical advantages of the federated machine learning techniques discussed herein provide privacy protection that ensures that only learnable parameter information can be exchanged between the orchestrator and the warehouse in one implementation. The data associated with each warehouse in the warehouse used to train ML is never disclosed outside the warehouse, thereby maintaining the data independence of the warehouse and ensuring that the data protection and privacy requirements associated with the warehouse's data sets are met.

[0017] The technology provided herein significantly simplifies the training of ML models using federated learning. The orchestrator provides a user interface that simplifies the process of generating, maintaining, and deploying a federated learning pipeline for training ML models. The user interface provides components for easily navigating the federated learning pipeline and adding, modifying, and removing stages of the federated learning pipeline. The user interface enables users to easily configure the hyperparameters of the ML model being trained and / or other configuration parameters of the federated learning process. The hyperparameters can define how many training epochs (epochs) will be performed during the training of the ML model. The epoch represents a complete pass through all training samples included in the training data set for training the model. The hyperparameters can also define the batch size of the specified number of training samples from the training data set to be processed in the training iteration. The orchestrator considers these hyperparameters when generating the federated learning pipeline, and automatically adds a specified number of training iteration stages to the federated pipeline based on the size of the data set for training the ML model, the batch size, and the expected number of epochs. In the past, complex code and / or scripts would have been manually written by data scientists or others to define the workflow of the training process. The federated learning techniques described herein provide a solution to this problem by automating much of the process via a workflow that automatically generates a federated learning pipeline based on these parameters. The orchestrator is configured to automatically generate a federated learning pipeline based in part on hyperparameters and / or other configuration parameters (such as those discussed below) specified for the ML model being trained.

[0018] The orchestrator also considers other configuration parameters when generating the federated learning pipeline. In some implementations, the configuration parameters include information identifying each of the warehouses in which the local instance of the ML model is to be trained, the amount of computing resources and / or storage resources to be allocated by the warehouse for training the local instance of the ML model, the input data source or data sources to be used by each warehouse to train the local instance of the ML model, and other parameters for configuring how the local instance of the model is to be trained by the warehouse. In some implementations, the configuration parameters may also include information indicating the type of pre-processing and post-processing that can be performed by the orchestrator and / or by the warehouse at each stage of the federated learning pipeline.

[0019] The orchestrator further simplifies the training process by automatically generating much of the code and / or scripts for implementing federated learning on the orchestrator and warehouses. The code and / or scripts can be customized to meet the requirements of the machine learning model being trained. The automated code and / or scripts define how to deploy learnable parameter information, such as model weights, biases, and / or other parameters, to each warehouse in the warehouse where the ML model is to be trained, for setting up compute and storage resources for training instances of the model in each warehouse in the warehouse, for retrieving training data from the corresponding data store or data stores associated with each warehouse, for performing training on local instances of the ML model in each warehouse, and for providing learnable parameter information from each local instance of the ML model from the warehouse back to the orchestrator. All of these operations would already require a large amount of complex code and / or scripts to be manually generated by a data scientist or other user implementing federated learning of ML models.

[0020] The user interface provided by the orchestrator for creating and generating federated learning pipelines and the automatic generation and deployment of code and / or scripts to the warehouse significantly reduces the chance that a user may introduce configuration errors into the training process, which would require rerunning the federated learning process to correct these errors. Thus, by eliminating such errors, the amount of memory, computing resources, and / or network resources consumed by the orchestrator and warehouse can be significantly reduced.

[0021] Another technical advantage of the technology provided herein is that the federated learning pipeline is not static, and the orchestrator can dynamically update the federated learning pipeline during the training of the ML model. In some implementations, the orchestrator evaluates the performance of the ML model while the federated learning pipeline is being executed to determine whether the performance of the model satisfies certain conditions indicating whether the model needs additional training. The orchestrator adds additional training iteration stages to the federated learning pipeline in response to the performance of the model, modifies the existing training iteration state of the federated learning pipeline, or removes the existing training iteration state of the federated learning pipeline. The orchestrator can also dynamically change the flow of the federated learning pipeline in response to user-specified criteria. The orchestrator can add additional stages to the federated learning pipeline, modify the existing stages of the federated learning pipeline, or delete stages from the federated learning pipeline in response to user-specified criteria being met. This approach allows the orchestrator to adjust the training of the ML model while training is being performed. Therefore, the number of training sessions required to train the ML model can be reduced, thereby reducing the computing, memory, and network resources required to train the ML model.

[0022] Federated learning pipelines provide significant improvements over current approaches to machine learning pipelines, which are typically static, very complex, and require a lot of manual intervention to build and maintain machine learning pipelines. In addition, the techniques provided herein can significantly reduce the memory, computing resources, and / or network resources associated with implementing and executing federated learning across warehouses. These and other technical advantages of the techniques disclosed herein will be apparent from the discussion of the example implementations that follow.

[0023] Figure 1A and Figure 1B 1 is a diagram illustrating two example computing environments in which the techniques provided herein may be implemented. Orchestrator 110 is configured to coordinate with warehouses 115a, 115b, 115c, 115d, and 115e (collectively, warehouses 115) to implement the federated learning techniques described herein. Orchestrator 110 and warehouses 115a, 115b, 115c, 115d, and 115e are each allocated computing and storage resources in a corresponding cloud-based environment in which orchestrator 110 and warehouses 115a, 115b, 115c, 115d, and 115e are located. Figure 1A The orchestrator 110 and all repositories in the example shown in are associated with a single workspace 105. In contrast, in Figure 1B In the example shown in , orchestrator 110 and repositories 115a, 115b, 115c, 115d, and 115e are associated with multiple separate workspaces. Figure 1B , orchestrator 110 and repository 115e are associated with workspace 105, repository 115a and 115c are associated with second workspace 125a, and repository 115b and 115d are associated with third workspace 125b.

[0024] The workspace provides a centralized platform for creating, training, managing, and deploying machine learning models to computing environments such as warehouses 115a, 115b, 115c, 115d, and 115e. The workspace can use Microsoft Azure Machine Workspaces are implemented in a dataset. Other implementations use another type of workspace associated with another machine learning platform. A workspace can maintain a history of training runs of the ML model associated with the workspace, which can be used by a data analyst to determine whether the ML model is performing as expected and to keep track of the training that has been performed on the ML model so far. The history can include a variety of information, including but not limited to logs, metrics, outputs, and snapshots of the scripts used in the training. The historical information can be used to determine the training that produces the best ML model to meet a specific goal.

[0025] The workspace can also facilitate the deployment of ML models to various computing environments where predictions output by the model can be utilized, such as but not limited to warehouses 115a, 115b, 115c, 115d, and 115e. Models can be deployed to other warehouses that are not involved in the training of the model according to business or operational needs. The resources on which the ML model can be deployed are referred to as "computation targets" in this article, and the workspace can support a variety of different types of computing targets. Computation targets can include, but are not limited to, containers, Kubernetes clusters, and hypertext delivery protocol (HTTP) endpoints. Containers provide a secure component for packaging, deploying, and managing cloud-based applications. Containers include executable application code and supporting services. Containers can provide a more lightweight and flexible solution than using virtual machines, which are often used to implement applications in cloud-based computing environments. A Kubernetes cluster is a collection of nodes, such as computing resources assigned to a warehouse, which can be configured to run containerized applications. HTTP endpoints provide a component for accessing resources in a cloud-based environment. HTTP endpoints can define a base uniform resource locator (URL) for requests submitted to HTTP endpoints. Other implementations can facilitate the deployment of machine learning models to other types of computing targets.

[0026] The workspace may provide tools to facilitate running experiments, creating pipelines, and managing data sets. Experiments may be set up to perform training runs for building ML models. Pipelines are reusable workflows in which users can define and / or manage reusable workflows for training and / or retraining ML models. The workspace may also include tools for managing data for training models and for creating pipelines for training and / or retraining ML models using data. As will be discussed in more detail in subsequent examples, the orchestrator 110 coordinates the implementation of these experiments with other computing environments, such as warehouses 115a, 115b, 115c, 115d, and 115e. The orchestrator 110 may also provide tools for creating, maintaining, and executing federated learning pipelines that may automate and / or significantly simplify many of the tasks associated with experiments to train ML models.

[0027] A workspace can be associated with one or more repositories, such as Figure 1A and Figure 1B115a, 115b, 115c, 115d, and 115e shown in . Orchestrator 110 is configured to maintain a master version of one or more ML models to be trained using the federated training techniques described herein. At least a portion of the data used to train the ML models may exist in warehouses 115a, 115b, 115c, 115d, and 115e. Whether the warehouse is associated with the same workspace as orchestrator 110 or is associated with a different workspace than orchestrator 110, orchestrator 110 can coordinate federated training with each of warehouses 115a, 115b, 115c, 115d, and 115e. Warehouses 115 may be associated with different workspaces due to data protection and / or data privacy requirements imposed by the jurisdiction in which the warehouse is located. Warehouses 115 may also be associated with different organizations that may have a common interest in developing machine learning models for a particular purpose, but cannot or do not want to disclose data to another organization. Orchestrator 110 may be able to automatically execute jobs on computing resources of a repository 115 associated with the same workspace as orchestrator 110. However, additional steps may need to be taken to allow orchestrator 110 to utilize federated learning operations with a repository 115 associated with a workspace different from the orchestrator. Code signing and policy controls may be implemented to facilitate federated learning with repositories 115 associated with different workspaces. These features will be discussed in more detail in subsequent examples.

[0028] The data in the warehouse 115 may be subject to various types of data protection and privacy requirements. As discussed above, some jurisdictions may impose data protection and privacy laws that prohibit enterprises or other organizations from disclosing customer data. These data protections may extend to, but are not limited to, financial data, medical data, employment data, and other types of sensitive information. An organization or enterprise may also impose data protection and privacy rules on how sensitive data may be handled. These data protections may extend to, but are not limited to, research data, financial data, membership data, business plans, customer or membership information, and other types of data that are valuable to an organization or enterprise. Organizational or enterprise information may also be protected by data protection and privacy laws.

[0029] One approach to access policy control is to implement an access control policy that identifies which information cannot be shared by a repository 115 with an orchestrator 110. In such an implementation, any data that is not explicitly prohibited from being shared by an access control policy can be shared with an orchestrator 110. In some implementations, a repository 115 can be associated with a workspace, and the workspace can implement an access control policy that defines who can access data in a repository 115 associated with the workspace, the actions that these users can perform on the data, and whether data can be exported from a repository 115 to other repositories associated with the workspace or to other repositories not associated with the workspace. In other implementations, each repository 115 implements a repository-level access control policy that defines who can access data in a repository 115, the actions that these users can perform on the data, and whether data can be exported from a repository 115. In such an implementation, any data that is not explicitly prohibited from being shared by an access control policy can be shared with an orchestrator 110.

[0030] In a second approach to access policy control, access control policies (whether implemented at the workspace level or the warehouse level) can be configured to explicitly identify data that can be shared by the warehouse 115 with the orchestrator 110 as specific data. No data that is not explicitly identified by the access control policy can be shared with the orchestrator 110. In some implementations, the data that can be shared with the orchestrator 110 can be limited to learnable parameter information associated with the local instance of the ML model being trained in the warehouse. The access control policy can also allow metadata associated with the training of the local instance of the ML model to be shared with the orchestrator 110. The metadata can include information indicating whether the training of the local instance of the ML model was successful, how long the training of the local instance of the ML model took to complete, information indicating when the training of the local instance was initiated and when the training was completed, and information identifying error conditions that prevented the training of the local instance of the ML model from completing.

[0031] As discussed in subsequent examples, orchestrator 110 automatically generates scripts and / or code to implement a federated learning pipeline and provides these scripts and / or code to each repository in repositories 115 where the ML model is to be trained. The scripts and / or code may implement access control policies for the repository 115 where the scripts and / or code are being executed to train the local instance of the ML model.

[0032] Orchestrator 110 may provide a user interface for creating, maintaining, and / or executing a federated ML pipeline. The user interface may automate many tasks that would previously be manual and labor-intensive processes. Orchestrator 110 may store the main versions of ML models being developed, pipeline information for the federated learning pipelines used to train these ML models, and other data related to implementing federated learning of ML models in storage resources allocated to orchestrator 110. The federated ML pipeline user interface may access and / or update this information stored in the storage resources allocated to orchestrator 110. Examples of user interfaces and functionality that may be provided by such user interfaces will be described in detail in subsequent examples.

[0033] Orchestrator 110 may also be configured to facilitate setting up new workspaces and / or updating access control policies for workspaces external to workspace 105 associated with orchestrator 110 .

[0034] The following scenario demonstrates where you can exploit Figure 1A and Figure 1B The implementation shown in . Figure 1A In the first scenario of the implementation shown in , Company A is an international company present in multiple countries, each of which is associated with a warehouse from warehouses 115a, 115b, 115c, 115d, and 115e. Alice is a data scientist working for the sales department of Company A and is developing a machine learning model for predicting sales based on customer data. Each of the data stores represented by warehouses 115a, 115b, 115c, 115d, and 115e is associated with the same workspace 105 as the orchestrator 110 in this example. Therefore, the orchestrator 110 is allowed to launch jobs associated with the federated learning process described herein on the computing resources of warehouses 115a, 115b, 115c, 115d, and 115e. In the example based on Figure 1BIn the second scenario of the implementation shown in , Ben is a data scientist in the audit department of Company A and is developing a machine learning model for detecting anomalies in customer accounting data. In this example implementation, warehouses 115a and 115c are associated with customer data of a first customer, while warehouses 115b and 115d are associated with a second customer. Due to privacy and protection laws and / or customer requirements for data privacy and protection, the data in warehouses 115a, 115b, 115c, and 115d cannot be copied from their corresponding warehouses. Therefore, warehouses 115a and 115c associated with the first customer are associated with workspace 125a, while warehouses 115b and 115d are associated with workspace 125b. The data in warehouse 115e is associated with Company A and falls into the same workspace 105 as the orchestrator 110. Therefore, the orchestrator 110 can initiate a job associated with the federated learning process described herein on warehouse 115e. However, additional policy considerations relate to launching jobs in warehouses 115a, 115b, 115c, and 115d, which are associated with separate workspaces 125a and 125b, respectively. As will be discussed in more detail in subsequent examples, administrators of workspaces 125a and 125b can control, through policy, whether orchestrator 110 is allowed to launch jobs on workspaces 125a and 125b. The security and integrity of the data storage of warehouses 115a, 115b, 115c, and 115d can also be ensured through code signing and other processes to ensure that any software executed by the computing resources of warehouses 125a and 125b originates from a trusted source.

[0035] The following scenario illustrates another example in which the federated learning techniques provided herein can be implemented in an environment where one or more of the warehouses 115 are located, where the data to be used to train the ML model is associated with a workspace different from that of the orchestrator 110. In this example, a research hospital alliance is developing an ML model for predicting the efficacy of certain therapies in treating symptoms associated with a specific disease. Each hospital has its own warehouse 115, which includes patient treatment data, but no hospital can disclose patient-specific information to other hospitals. The orchestrator 110 can be implemented by one of these hospitals and configured to coordinate federated learning with the warehouses 115 of other hospitals. The orchestrator 110 can maintain a master version of the ML model. The orchestrator 110 can provide each warehouse with learnable parameter information of the master ML model, such as model weights, biases, and / or other parameters, and the warehouses can each use the corresponding patient data of the hospital to train a local instance of the ML model. Once the local copy has been trained, each warehouse 115 can provide updated learnable parameter information to the orchestrator 110 for aggregation. The aggregated weights, biases, and / or other parameters may then be used to update the weights, biases, and / or other parameters of the master ML model maintained by orchestrator 110. The training process may include multiple iterations of federated training to further fine-tune the performance of the ML model.

[0036] Figure 22 is a diagram that illustrates at a high level the types of data that can be exchanged between orchestrator 110 and warehouse 115 during an iteration of a federated learning session according to the techniques described herein. Orchestrator 115 can send a federated learning request 205 to warehouse 115. Federated learning request 115 can include machine learning weights associated with a pre-trained machine learning model to be fine-tuned using federated learning. Federated learning request 115 can trigger the warehouse to execute code that is configured to cause the warehouse to instantiate a local instance of the ML model on the computing resources of warehouse 115, train the local instance of the model using relevant private data maintained in the storage resources of warehouse 115, and / or perform other operations associated with the federated learning techniques provided herein. Warehouse 115 can determine whether orchestrator 115 is part of the same workspace and authenticate the request before execution, as discussed in subsequent examples. Once warehouse 115 has completed the requested operations, warehouse 115 can provide a federated learning response 210 to orchestrator 110, which includes updated weights for the local instance of the ML model. Warehouse 115 may also provide system metadata associated with the training of the ML model, which orchestrator 110 may use for reporting purposes. System metadata does not include any customer-specific information that may be associated with a particular customer. Instead, metadata may include high-level information, such as the number of customers whose data is included in the dataset used to fine-tune the ML model, the data range associated with the processed records, and / or other information that may be useful for reporting purposes. For example, metadata information may be useful to a data analyst for evaluating the performance of the model and for determining a training strategy for further fine-tuning the model (if further fine-tuning is required). Orchestrator 110 may compare the performance of the ML model to one or more performance criteria to determine whether additional training iterations may be required. Figure 2 The example operations shown in may be performed by orchestrator 110 and each of repositories 115 that include training data to be used for fine-tuning ML models.

[0037] Figure 3A and Figure 3B305 is a diagram of an example user interface that may be provided by the orchestrator 110. User interface 305 is an example of a user interface for building a federated learning pipeline for implementing federated learning. User interface 305 provides components for dynamically defining a federated learning pipeline and / or modifying a federated learning pipeline. The federated learning pipeline may be a dynamic federated learning pipeline that has been automatically generated by the orchestrator according to configuration parameters associated with the federated learning pipeline. As discussed in the previous example, the configuration parameters may include hyperparameter information of the ML model that is performing federated learning. The configuration parameters may also include information identifying each warehouse in the warehouse in which the local instance of the ML model is to be trained, the number of computing resources and / or storage resources to be allocated by the warehouse for training the local instance of the ML model, the input data source or multiple data sources to be used by each warehouse for training the local instance of the ML model, and other parameters for configuring how the local instance of the model is to be trained by the warehouse. The configuration parameters may also include information indicating the type of pre-processing and post-processing that may be performed by the orchestrator and / or by the warehouse at each stage of the federated learning pipeline. User interface 305 may provide a user with a component for viewing, creating, and / or modifying configuration parameters for generating an ML pipeline. Orchestrator 110 may use this information to generate a new federated training pipeline or modify an existing federated learning pipeline. As discussed in the previous example, orchestrator 110 may automatically generate scripts and / or code for implementing various stages of a federated learning pipeline based at least in part on the configuration parameters. Orchestrator 110 may be configured to push the code and / or script to each of the repositories participating in the training of the ML model.

[0038] In the user interface 305, the user can add stages to the federated learning pipeline, delete stages from the pipeline, and / or modify the parameters of the stages of the pipeline. In some implementations, the user interface 305 may include a toolbar 340 for selecting and adding stages to the pipeline. The toolbar 340 may provide a drag-and-drop interface that provides a graphical representation of the types of stages that the user can add to the federated learning pipeline. The user may also click or otherwise select a stage of the federated pipeline to view and / or modify the parameters of the stage of the pipeline. The user interface 305 may also include a control 330 that enables the user to start, pause, and / or stop the federated learning process defined by the pipeline. The orchestrator 110 may also authenticate the user to determine whether the user is allowed to create, modify, or execute a federated learning pipeline using the orchestrator 110.

[0039] exist Figure 3AIn the example shown in , the federated learning pipeline includes five stages 310a-310e to demonstrate some of the types of stages that may be included in the federated learning pipeline. Each stage is associated with one of the following states: pending, running, or completed. The completed state indicates that the operation associated with the stage of the federated learning pipeline has been successfully completed. The running state indicates that the operation associated with the stage of the federated learning pipeline is currently being performed by one or more warehouses in the orchestrator 110 and / or warehouse 115. The pending state indicates that the stage of the federated learning pipeline has not been reached and is waiting to be executed once the previous stage has been completed.

[0040] In the preprocessing stage 310a, the user can define various actions that can be taken to initialize the main version of the ML model in preparation for federated training. For example, the main version of the ML model can be pretrained using one or more publicly available datasets. The pretraining process can be used to initialize the ML model, which will then be fine-tuned using the federated learning process to adapt the model to a specific task. In addition, the preprocessing stage can include data standardization of the data, removal or replacement of null values, and / or other operations to prepare the data for the pretrained model. The specific preprocessing operations to be performed may depend on the type of data to be processed by the model. The user can click on or otherwise activate stage 310a so that the orchestrator 110 displays the details of the preprocessing stage that can be configured by the user. The user can specify the computing and storage resources of the orchestrator 110 to be used to perform the preprocessing stage. The user can identify one or more training datasets to be used for pretraining the ML model, and can also create or customize one or more scripts or codes to be executed to perform pretraining of the ML model.

[0041] The example shown in FIG. 3 also includes training iteration phases 310 b, 310 c, and 310 d, each of which represents an iteration of the federated training process applied to the ML model. Each iteration represents a set of operations performed by the orchestrator 110 and the corresponding warehouse 115 on which the federated learning of the ML model will occur. A batch of training data available locally in the storage resources of the warehouse 115 will be used by each warehouse 115 to train the local instance of the ML model. The batch size can be equal to the complete training data set, or it can be a subset of the complete training data set available in the warehouse 115. For example, if the training data includes 10,000 training examples and the batch size is 5,000 training examples, two iterations will be required to train the ML model on the entire batch of training examples. The number of training examples and the batch size may vary depending on the size of the data set contained in each warehouse in the warehouse 115. In some implementations, the orchestrator 110 can be configured to query each warehouse in the warehouse 115 to obtain the number of records available to each warehouse, and determine the recommended number of iterations based on the batch size. The orchestrator 110 may automatically add the recommended number of iterations to the federated learning pipeline by default. Therefore, the orchestrator 110 may add additional stages to the federated learning pipeline to accommodate the recommended number of iterations. However, the user may be provided with the option to increase or decrease the number of training iteration stages included in the pipeline by deleting training iteration stages that have been automatically added to the pipeline by the orchestrator or by manually adding additional training iteration stages. The training iteration stage may also allow the user to define additional information, such as the location of the computing and storage resources of the warehouse 115 including the data on which the model is to be trained. Figure 3B An example user interface 350 is provided that presents detailed information about operations that may be performed during a training iteration phase. Training iteration phases added automatically by orchestrator 110 or manually by a user may be automatically populated with configuration parameters, executable scripts and / or code, and other information for implementing the training iteration phases of a federated training pipeline.

[0042] Training iteration stages 310b, 310c, and 310d may also be associated with one or more completion conditions that, when satisfied, indicate that the ML model has been trained to achieve a desired performance threshold. Orchestrator 110 may evaluate the completion conditions to determine whether additional federated training iterations are required. Orchestrator 110 may then proceed with additional training stages as needed or proceed with the next stage of the federated training pipeline.

[0043] The post-processing stage 310e may perform various operations on the machine learning model obtained by the previous stage of the federated learning pipeline. The post-processing stage 310e may include updating the weights of the master instance of the ML model maintained by the orchestrator 110. The post-processing stage 310 may also include deploying the updated ML model to the computing environment of one or more warehouses 115 and / or other computing environments for generating predictions for the purpose of training the ML model. Other operations in addition to or in place of one or more of these example operations may be performed in the post-processing stage 310e.

[0044] Figure 3B An example user interface 350 is provided that presents detailed information about operations that can be performed during a training iteration phase. Figure 3A , a user interface 350 may be presented when the training iteration phase of the federated learning pipeline shown in FIG. The user interface 350 may present a graphical representation of various inputs to the federated learning process, as well as the training iteration phase (such as Figure 3A The graphical representation may be presented as a flow chart showing how data flows from one operation to another within a training iteration phase, and how orchestrator 110 evaluates and utilizes the results of the training iteration phase to determine whether training of the ML model should continue or has reached a desired performance threshold.

[0045] Pre-trained model information 355 represents the model weights of a version of the master ML model maintained by orchestrator 110. Pre-trained model 355 may be a pre-trained model trained by pre-processing stage 310a or by a previous training iteration stage such as Figure 3A The user may be able to view the pre-trained model information 355 including the model weights by clicking or otherwise activating the representation of the pre-trained model information 355 shown in the user interface 350. The pre-trained model information 355 may include version information of the model, which identifies the version being trained and Figure 3A An indication of the current training phase being executed of the federated training pipeline shown in . Some pre-trained model information 355 may not be available until a training iteration phase within the federated training pipeline is reached and is pending or completed.

[0046] Input data source 360a represents data associated with warehouse 115a to be used for training a model. Input data source 360b represents data associated with warehouse 115b to be used for training a model. Input data source 360c represents data associated with warehouse 115c to be used for training a model. Input data source 360d represents data associated with warehouse 115d to be used for training a model. Input data source 360e represents data associated with warehouse 115e to be used for training a model. Input data sources 360a, 360b, 360c, 360d, and 360e are collectively referred to as input data sources 360. Each respective warehouse works to train a local version of an ML model using respective private data contained in data source 360. The data in each of the input data sources 360 is maintained within its respective warehouse during the federated training process and is not disclosed outside of the warehouse boundaries. Although the example shown herein includes five input data sources 360, the number of input data sources 360 may vary from implementation to implementation, depending on the number of sources from which a particular ML model is to be trained.

[0047] The user interface 350 may provide various components for adding an input data source 360. In some implementations, the user interface 350 may include a button or other control that, when activated, allows a user to define a new data source that includes data on which the ML model is to be trained. The user interface 350 may provide a component for entering information identifying the computing and storage resources allocated to the warehouse in which the model is to be trained. In some implementations, the user interface 350 may present a default configuration file, such as a YAML file, to the user, which may be customized with the computing location and storage location associated with the warehouse. In other implementations, the user interface prompts the user to enter this information and automatically generates a configuration file for the user. The configuration file may be provided to the warehouse along with the federated learning request 205 for the corresponding warehouse 115 associated with the corresponding input data source 360, so that the model fine-tuner 365 operates on the correct data source. In some implementations, the configuration file specifies whether all or a subset of the data contained in the corresponding input data source 360 ​​is to be used to train the ML model instance. In some implementations, the user interface 350 may provide the user with a component for defining which data from the input data source 360 ​​should be used when training the model.

[0048] Each input data source 360 ​​is associated with a corresponding model fine-tuner 365. The model fine-tuner 365 is configured to instantiate and train a local instance of the ML model using data from the input data source 360 ​​of the warehouse in which training is being performed. The model fine-tuner 360 instantiates the local instance of the ML model based on the weights provided in the pre-trained model information 355. In some implementations, the model fine-tuner 365 is implemented using an interpreted language such as, but not limited to, Python, which defines actions that can be performed on the data to fine-tune the model. The logic implemented in each of the model fine-tuners 365a, 365b, 365c, 365d, and 365e can be substantially the same. Each model fine-tuner 365 can utilize configuration parameters associated with the corresponding data source 360 ​​to determine the data source and computing resources to be used to fine-tune the local instance of the ML model. The model tuner 365 may be executed by computing resources assigned to the corresponding warehouse 115 and be logically isolated to prevent the model tuner 365 from exporting any data outside of the warehouse 115 or accessing any memory outside of the defined memory locations for storing data to be used for training the model.

[0049] After the training of the ML model is completed by the model fine-tuner unit 365, the model fine-tuner 365 provides the fine-tuned weights of the model to the corresponding data delivery unit 370 in the data delivery units 370a, 370b, 370c, 370d, and 370e associated with the warehouse 115. The data delivery unit 370 is configured to send the federated learning response 210 to the orchestrator 110 with the updated ML model weights of the local version of the model generated by the model fine-tuner 365. The federated learning response may include status information related to the training process, such as error conditions that may have occurred during the training process. The error condition indicates that the fine-tuning of the local instance of the model cannot be completed for the operation associated with the failed stage. The orchestrator 110 determines whether to stop the current iteration of the federated training process or attempt to resubmit the federated learning request 205 to the corresponding warehouse 115 that experienced the error.

[0050] Orchestrator 110 implements model weight aggregation unit 375 and model evaluation unit 380. Model weight aggregation unit 375 is configured to receive updated model weights from each of the repositories and execute aggregation logic on the updated model weights to generate an updated version of the master ML model maintained by orchestrator 110. In some implementations, the aggregation logic is implemented using a scripting language such as, but not limited to, Python. In some implementations, the aggregation logic may average the weights from each of the models to determine the aggregate model weight. However, user interface 350 may provide a user with a component for customizing the aggregation logic to meet the requirements of the ML model being developed.

[0051] The model weight aggregation unit 375 provides the updated ML model to the model evaluation unit 380. The model evaluation unit 380 evaluates the performance of the updated ML model using the reference data. The model evaluation unit 380 provides the reference data as an input to the ML model and compares the predictions output by the model with the reference output data. The model evaluation unit 380 can be configured to output the results of the evaluation, which can be used by the orchestrator 110 to determine how to proceed in the federated learning pipeline. For example, the orchestrator 110 can determine that the model requires additional training and can determine that another training iteration should be performed. The orchestrator 110 can determine Figure 3A , whether the federated learning pipeline shown in includes subsequent training iteration stages, such as training iteration stages 310b, 310c, or 310c. If the orchestrator 110 determines that additional training is required, but no subsequent training iteration stages are currently included in the federated learning pipeline, the orchestrator 110 can be configured to dynamically update the federated learning pipeline to include one or more additional iteration stages to further fine-tune the ML model while the federated learning pipeline is being executed. The technical advantage of this approach is that the federated learning pipeline can be adjusted while the ML model is being trained to avoid the need to modify the federated learning pipeline and restart the training process. Therefore, by avoiding the need to restart the training of the ML model, computing, memory, and network resources can be saved. The user interface 305 and / or 310 may include components for the user to configure when the orchestrator can add additional training iteration stages and impose restrictions on how many additional iteration stages can be automatically added. These restrictions can prevent the orchestrator 110 from continuing to automatically extend the training of the ML model beyond the limits set by the user.

[0052] To ensure that data privacy and protection requirements are met, the model fine-tuner 365, the data delivery unit 370, and / or other scripts or codes to be executed on the corresponding warehouse 115 can be digitally signed to ensure that the script or code has been provided by the orchestrator 110 and has not been changed or damaged since the script or code was signed. The script and / or code can be signed using a private key associated with the orchestrator 110. The warehouse 115 can use a public key associated with the orchestrator 110 to verify that the script and / or code has not been changed. Each warehouse 115 can also implement a policy service that is configured to determine whether the orchestrator 110 is allowed to run a job on the computing resources of the warehouse 115. The policy service can determine whether the script or code is signed, whether the script or code is configured to access the data storage resources associated with the corresponding warehouse 115 on which they are running, and whether only model weights and / or limited system metadata that do not include any customer-specific information are delivered to the outside of the warehouse. If any of the policy conditions are not met, repository 115 may prohibit execution of the federated learning process and / or prohibit providing the resulting data to orchestrator 110. Orchestrator 110 may receive an indication that the federated learning process cannot be performed from repository 115. Orchestrator 110 may then alert an administrator that manual intervention may be required to resolve the problem that prevented the federated learning process from completing.

[0053] Figure 3C It shows that the scheduler 110 dynamically updates Figure 3A . The left side of the figure shows a first state of the federated learning pipeline, where the training iteration phase 310d is currently running, and the right side of the figure shows a second state of the federated learning pipeline, where the orchestrator 110 has dynamically updated the pipeline. The model evaluation unit 380 of the orchestrator 110 analyzes the performance of the updated version of the master ML model generated by the model weight aggregation unit 375, and determines that an additional training iteration phase 310 is needed to further improve the performance of the master ML model. The orchestrator 110 is configured to update the federated learning pipeline to include an additional training iteration phase 310f, in which additional training is performed on the ML model. The orchestrator 110 is configured to automatically generate the code and / or scripts required to perform the additional training iteration phase 310f, and provide the code to the warehouses 115b, 115c, 115d, and 115e where the training of the local instance of the ML model is to be performed. Orchestrator 110 may also provide updated configuration parameters to each of repositories 115b, 115c, 115d, and 115e to implement an updated federated learning pipeline.

[0054] Figure 3D is a diagram showing another example of the orchestrator 110 dynamically updating the federated learning pipeline. Figure 3DIn the example implementation shown in , the left side of the figure shows a first state of the federated learning pipeline, where the training iteration phase 310c is currently running, and the right side of the figure shows a second state of the federated learning pipeline, where the orchestrator 110 has dynamically updated the pipeline. Figure 3D In the example shown in , the model evaluation unit 380 of the orchestrator 110 analyzes the performance of the updated version of the master ML model generated by the model weight aggregation unit 375 and determines that no additional training iteration stage 310 is needed. In this example, the orchestrator removes the pending training iteration stage 310d. The federated learning pipeline is updated so that after completing stage 310c, the federated learning pipeline continues to the post-processing stage 310e.

[0055] Figure 3C and Figure 3D The example implementations shown in are examples of several ways that orchestrator 110 can modify a federated learning pipeline. In other implementations, orchestrator 110 can change the flow of a federated learning pipeline in other ways. For example, orchestrator 110 can add other types of additional stages to a federated learning pipeline, modify existing stages, or remove stages from a federated learning pipeline. In some implementations, Figure 3A User interface 305 shown in FIG. 1 may provide a user with components for defining conditions that trigger orchestrator 110 to add additional stages to a federated learning pipeline, modify existing stages, or remove stages from a federated learning pipeline.

[0056] Figure 4 is an example flow diagram of an example process 400 for using federated learning to train a machine learning model that may be implemented by orchestrator 110 .

[0057] Process 400 may include operation 410, which receives configuration parameters in a first warehouse for performing federated training of a machine learning model using data stored in multiple second warehouses. The first warehouse may be a warehouse associated with orchestrator 110, and the multiple second computing environments may be warehouses 115 discussed in the previous example 1. Orchestrator 110 may receive configuration parameters for training a machine learning model from a user who is authorized to access and utilize orchestrator 110 to train a machine learning model. Configuration parameters may include, but are not limited to, the location of computing and storage resources of orchestrator 110 and warehouse 115 that maintains data to be used to train the ML model. Configuration parameters may also include hyperparameters associated with the machine learning model to be trained and / or other parameters that may be used to configure the behavior of a federated learning pipeline.

[0058] Process 400 may include operation 420, which generates a federated learning pipeline based on configuration parameters for automatically performing multiple tasks associated with federated learning of a machine learning model. Operation 420 also includes generating a federated learning pipeline, including automatically generating code, scripts, or both for performing multiple tasks for training a local instance of the machine learning model in each corresponding warehouse of a plurality of second warehouses using data stored in the corresponding warehouse, and for providing corresponding learnable parameter information associated with the local instance of the machine learning model to the first warehouse, while ensuring that data protection and privacy requirements associated with the data used to train the local instance of the machine learning model are met. The data used to train the local instance of the machine learning model is not disclosed outside the corresponding warehouse. Figure 3A , Figure 3B , Figure 3C and Figure 3D The user interface shown in illustrates various aspects of the federated learning pipeline.

[0059] Process 400 may include operation 430, which causes each corresponding warehouse in the plurality of second warehouses to train a local instance of a machine learning model according to a federated learning pipeline. As discussed in the previous example, orchestrator 110 may automatically execute various processes defined in the stages of the federated learning pipeline, including coordinating the execution of various operations on warehouses 115 where data for training the model is located. Each warehouse in the set of second warehouses 115 performing federated learning executes code and / or scripts generated by orchestrator 110 at each stage of the federated learning pipeline. As discussed in the previous example, code signing and / or policy control may be implemented to ensure protection of the integrity and privacy of the data contained in the plurality of second warehouses 115.

[0060] Process 400 may include operation 440 of obtaining, at the first warehouse, learnable parameter information associated with a local instance of a machine learning model of each of the plurality of second warehouses. Each of the plurality of second warehouses 115 provides weights, biases, and / or other learnable parameter information of the local instance of the machine learning model to orchestrator 110, so that a master instance of the machine learning model maintained by orchestrator 110 can be fine-tuned based on learning by the local instance of the machine learning model.

[0061] Process 400 may include operation 450, which aggregates the learnable parameter information obtained from the plurality of second repositories to obtain a master instance of the machine learning model that has been fine-tuned according to the learnable parameter information. Orchestrator 110 aggregates the weights, biases, and / or other learnable parameter information received from each of the repositories to fine-tune the master instance of the machine learning model maintained by orchestrator 110.

[0062] This paper presents a combination of Figures 1 to Figure 4Detailed examples of the systems, devices, and techniques described herein are provided to illustrate the present disclosure and its benefits. Such usage examples should not be construed as limitations on the logical process embodiments of the present disclosure, nor should user interface methods that differ from those described herein be considered outside the scope of the present disclosure. It should be understood that references to displaying or presenting an item (such as, but not limited to, presenting an image on a display device, presenting audio via one or more speakers, and / or causing a device to vibrate) include issuing instructions, commands, and / or signals that cause or are reasonably expected to cause a device or system to display or present the item. In some embodiments, FIGS. 1 to 3 may be used to describe a display device, such as, but not limited to, ... Figure 4 The various features described in the present invention are implemented in corresponding modules, which may also be referred to as and / or include logic, components, units and / or mechanisms. The modules may constitute software modules (eg, codes embodied on a machine-readable medium) or hardware modules.

[0063] In some examples, the hardware module can be implemented mechanically, electronically, or using any appropriate combination thereof. For example, the hardware module may include a dedicated circuit or logic configured to perform certain operations. For example, the hardware module may include a dedicated processor, such as a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC). The hardware module may also include a programmable logic or circuit temporarily configured by software to perform certain operations, and may include a portion of machine-readable medium data and / or instructions for such configuration. For example, the hardware module may include software contained in a programmable processor configured to execute a set of software instructions. It will be recognized that the decision to implement the hardware module mechanically, in a dedicated and permanently configured circuit, or in a temporarily configured circuit (e.g., configured by software) may be driven by cost, time, support, and engineering considerations.

[0064] Therefore, the phrase "hardware module" should be understood as a tangible entity that can perform certain operations and can be configured or arranged in a certain physical manner, which is physically constructed, permanently configured (e.g., hardwired) and / or temporarily configured to operate in a certain way or perform certain operations described herein (e.g., programmed) entity. As used herein, a "hardware-implemented module" refers to a hardware module. Considering an example in which a hardware module is temporarily configured (e.g., programmed), each hardware module in the hardware module does not need to be configured or instantiated at any one time instance. For example, in the case where a hardware module includes a programmable processor that is configured by software to be a special-purpose processor, the programmable processor can be configured as different special-purpose processors (e.g., including different hardware modules) at different times. Software can configure one or more processors accordingly, for example, constituting a specific hardware module in one time instance and constituting different hardware modules at different time instances. Hardware modules implemented using one or more processors can be referred to as "processor-implemented" or "computer-implemented".

[0065] A hardware module can provide information to other hardware modules and receive information from other hardware modules. Therefore, the described hardware modules can be considered as communicatively coupled. In the case where multiple hardware modules exist simultaneously, communication can be achieved by signal transmission (e.g., by appropriate circuits and buses) between or among two or more hardware modules in the hardware module. In an embodiment where multiple hardware modules are configured or instantiated at different times, communication between such hardware modules can be achieved, for example, by storing and retrieving information in a memory device accessible to multiple hardware modules. For example, a hardware module can perform an operation and store the output in a memory device, and then another hardware module can access the memory device to retrieve and process the stored output.

[0066] In some examples, at least some of the operations of the method may be performed by one or more processors or processor-implemented modules. In addition, one or more processors may also be used to support the performance of performing related operations in a "cloud computing" environment or as a "software as a service" (SaaS). For example, at least some of the operations may be performed by multiple computers (as an example of a machine including a processor) and / or performed among multiple computers, where the operations may be accessed via a network (e.g., the Internet) and / or via one or more software interfaces (e.g., application program interface (API)). The execution of some of the operations may be distributed among the processors, not only residing in a single machine, but also deployed across several machines. The processor or the processor-implemented module may be located in a single geographic location (e.g., in a home or office environment or a server farm), or may be distributed across multiple geographic locations.

[0067] Figure 5 is a block diagram 500 illustrating an example software architecture 502, portions of which may be used in conjunction with the various hardware architectures described herein that may implement any of the features described above. Figure 5 is a non-limiting example of a software architecture, and it will be appreciated that many other architectures may be implemented to facilitate the functionality described herein. The software architecture 502 may be implemented in hardware (such as Figure 6 Executed on a machine 600) that includes a processor 610, a memory 630, and an input / output (I / O) component 650, among other things. A representative hardware layer 504 is shown and may represent, for example Figure 6The machine 600 of the embodiment of the present invention. The representative hardware layer 504 includes a processing unit 506 and associated executable instructions 508. The executable instructions 508 represent executable instructions of the software architecture 502, including implementations of the methods, modules, etc. described herein. The hardware layer 504 also includes a memory / storage 510, which also includes executable instructions 508 and accompanying data. The hardware layer 504 may also include other hardware modules 512. The instructions 508 held by the processing unit 506 may be part of the instructions 508 held by the memory / storage 510.

[0068] Example software architecture 502 can be conceptualized as layers, each providing various functions. For example, software architecture 502 may include layers and components, such as operating system (OS) 514, library 516, framework 518, application 520, and presentation layer 544. In operation, application 520 and / or other components within a layer may invoke API calls 524 to other layers and receive corresponding results 526. The layers shown are representative in nature, and other software architectures may include additional or different layers. For example, some mobile or dedicated operating systems may not provide framework / middleware 518.

[0069] OS 514 can manage hardware resources and provide public services. OS 514 may include, for example, kernel 528, services 530, and drivers 532. Kernel 528 may serve as an abstraction layer between hardware layer 504 and other software layers. For example, kernel 528 may be responsible for memory management, processor management (e.g., scheduling), component management, networking, security settings, etc. Services 530 may provide other public services for other software layers. Driver 532 may be responsible for controlling or docking with underlying hardware layer 504. For example, driver 532 may include display driver, camera driver, memory / storage driver, peripheral device driver (e.g., via universal serial bus (USB)), network and / or wireless communication driver, audio driver, etc., depending on the hardware and / or software configuration.

[0070] The library 516 may provide a common infrastructure that can be used by the application 520 and / or other components and / or layers. The library 516 generally provides functions for other software modules to use to perform tasks, rather than directly interacting with the OS 514. The library 516 may include a system library 534 (e.g., a C standard library), which may provide functions such as memory allocation, string operations, and file operations. In addition, the library 516 may include an API library 536, such as a media library (e.g., supporting the presentation and manipulation of image, sound, and / or video data formats), a graphics library (e.g., an OpenGL library for rendering 2D and 3D graphics on a display), a database library (e.g., SQLite or other relational database functions), and a network library (e.g., WebKit, which may provide network browsing functions). The library 516 may also include various other libraries 538 to provide many functions to the application 520 and other software modules.

[0071] Framework 518 (sometimes also referred to as middleware) provides a higher-level common infrastructure that can be used by applications 520 and / or other software modules. For example, framework 518 can provide various graphical user interface (GUI) functions, advanced resource management, or advanced location services. Framework 518 can provide a wide range of other APIs for applications 520 and / or other software modules.

[0072] Applications 520 include built-in applications 540 and / or third-party applications 542. Examples of built-in applications 540 may include, but are not limited to, contact applications, browser applications, location applications, media applications, messaging applications, and / or game applications. Third-party applications 542 may include any application developed by an entity other than the supplier of a particular platform. Applications 520 may use the functionality available via OS 514, library 516, framework 518, and presentation layer 544 to create a user interface to interact with a user.

[0073] Some software architectures use virtual machines, as shown by virtual machine 548. Virtual machine 548 provides an execution environment where applications / modules can run as they would on a hardware machine (e.g., such as Figure 6 The virtual machine 548 may be hosted by a host OS (e.g., OS 514) or a hypervisor and may have a virtual machine monitor 546 that manages the operation of the virtual machine 548 and interoperation with the host operating system. A software architecture that may be different from the software architecture 502 outside the virtual machine is executed within the virtual machine 548, such as an OS 550, libraries 552, frameworks 554, applications 556, and / or presentation layer 558.

[0074] Figure 6600 is a block diagram showing components of an example machine 600 configured to read instructions from a machine-readable medium (e.g., a machine-readable medium) and perform any of the features described herein. The example machine 600 is in the form of a computer system, in which instructions 616 (e.g., in the form of software components) for causing the machine 600 to perform any of the features described herein can be executed. Therefore, the instructions 616 can be used to implement the modules or components described herein. The instructions 616 cause the unprogrammed and / or unconfigured machine 600 to operate as a specific machine configured to perform the described features. The machine 600 can be configured to operate as a standalone device, or can be coupled (e.g., networked) to other machines. In a networked deployment, the machine 600 can operate as a server machine or a client machine in a server-client network environment, or as a node in a peer-to-peer or distributed network environment. The machine 600 can be embodied as, for example, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (STB), a game and / or entertainment system, a smart phone, a mobile device, a wearable device (e.g., a smart watch), and an Internet of Things (IoT) device. Further, while only a single machine 600 is illustrated, the term "machine" includes any collection of machines that individually or jointly execute instructions 616 .

[0075] The machine 600 may include a processor 610, a memory 630, and I / O components 650, which may be communicatively coupled via, for example, a bus 602. The bus 602 may include multiple buses that couple the various elements of the machine 600 via various bus technologies and protocols. In an example, the processor 610 (including, for example, a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), an ASIC, or a suitable combination thereof) may include one or more processors 612a to 612n, which may execute instructions 616 and process data. In some examples, one or more processors 610 may execute instructions provided or identified by one or more other processors 610. The term "processor" includes a multi-core processor, which includes cores that can execute instructions simultaneously. Although Figure 6 Multiple processors are shown, but machine 600 may include a single processor with a single core, a single processor with multiple cores (e.g., a multi-core processor), multiple processors each with a single core, multiple processors each with multiple cores, or any combination thereof. In some examples, machine 600 may include multiple processors distributed among multiple machines.

[0076] The memory / storage device 630 may include a main memory 632, a static memory 634 or other memory, and a storage unit 636, both of which are accessible by the processor 610, such as via the bus 602. The storage unit 636 and the memory 632, 634 store instructions 616 that implement any one or more of the functions described herein. The memory / storage device 630 may also store temporary, intermediate and / or long-term data for the processor 610. The instructions 616 may also reside, in whole or in part, within the memory 632, 634, within the storage unit 636, within at least one of the processors 610 (e.g., within a command buffer or cache memory), within a memory within at least one of the I / O components 650, or any suitable combination thereof during their execution. Therefore, the memory 632, 634, the storage unit 636, the memory in the processor 610, and the memory in the I / O component 650 are examples of machine-readable media.

[0077] As used herein, a "machine-readable medium" refers to a device capable of temporarily or permanently storing instructions and data that cause the machine 600 to operate in a particular manner, and may include, but is not limited to, random access memory (RAM), read-only memory (ROM), buffer memory, flash memory, optical storage media, magnetic storage media and devices, cache memory, network-accessible or cloud storage, other types of storage, and / or any suitable combination thereof. The term "machine-readable medium" applies to a single medium, or a combination of multiple media, for storing instructions (e.g., instructions 616) for execution by the machine 600, such that the instructions, when executed by one or more processors 610 of the machine 600, cause the machine 600 to perform one or more of the features described herein. Thus, a "machine-readable medium" may refer to a single storage device, as well as a "cloud-based" storage system or storage network that includes multiple storage devices or devices. The term "machine-readable medium" does not include the signal itself.

[0078] I / O components 650 may include various hardware components suitable for receiving input, providing output, generating output, sending information, exchanging information, capturing measurements, etc. The specific I / O components 650 included in a particular machine will depend on the type and / or function of the machine. For example, a mobile device such as a mobile phone may include a touch input device, while a headless server or IoT device may not include such a touch input device. Figure 6The specific examples of I / O components shown in are by no means limiting, and other types of components may be included in the machine 600. The grouping of the I / O components 650 is merely to simplify this discussion, and the grouping is by no means limiting. In various examples, the I / O components 650 may include a user output component 652 and a user input component 654. The user output component 652 may include, for example, a display component (e.g., a liquid crystal display (LCD) or a projector) for displaying information, an acoustic component (e.g., a speaker), a touch component (e.g., a vibration motor or a force feedback device), and / or other signal generators. The user input component 654 may include, for example, an alphanumeric input component (e.g., a keyboard or a touch screen), a pointing component (e.g., a mouse device, a touch pad, or another pointing instrument) and / or a tactile input component (e.g., a physical button or touch screen that provides the position and / or force of a touch or touch gesture) configured to receive various user inputs such as user commands and / or selections.

[0079] In some examples, the I / O component 650 may include a biometric component 656, a motion component 658, an environmental component 660, and / or a positioning component 662, as well as various other physical sensor components. The biometric component 656 may include, for example, components for detecting body expressions (e.g., facial expressions, vocal expressions, gestures or body postures, or eye tracking), measuring biosignals (e.g., heart rate or brain waves), and identifying people (e.g., via voice, retina, fingerprint, and / or facial identification). The motion component 658 may include, for example, an acceleration sensor (e.g., an accelerometer) and a rotation sensor (e.g., a gyroscope). The environmental component 660 may include, for example, an illumination sensor, a temperature sensor, a humidity sensor, a pressure sensor (e.g., a barometer), an acoustic sensor (e.g., a microphone for detecting ambient noise), a proximity sensor (e.g., infrared sensing of nearby objects), and / or other components that can provide indications, measurements, or signals corresponding to the surrounding physical environment. The positioning component 662 may include, for example, a position sensor (e.g., a global positioning system (GPS) receiver), an altitude sensor (e.g., an air pressure sensor from which the altitude can be derived), and / or an orientation sensor (e.g., a magnetometer).

[0080] I / O components 650 may include communication components 664 that implement various techniques that can be used to couple machine 600 to network(s) 670 and / or device(s) 680 via respective communication couplings 672 and 682. Communication components 664 may include one or more network interface components or other appropriate devices to interface with network(s) 670. Communication components 664 may include, for example, components suitable for providing wired communication, wireless communication, cellular communication, near field communication (NFC), Bluetooth communication, Wi-Fi, and / or communication via other modalities. Device(s) 680 may include other machines or various peripherals (e.g., via USB coupling).

[0081] In some examples, communication component 664 can detect an identifier or include a component suitable for detecting an identifier. For example, communication component 664 can include a radio frequency identification (RFID) tag reader, an NFC detector, an optical sensor (e.g., a one-dimensional or multi-dimensional barcode, or other optical code), and / or an acoustic detector (e.g., a microphone for an audio signal that identifies a tag). In some examples, location information can be determined based on information from communication component 662, such as, but not limited to, a geographic location via an Internet Protocol (IP) address, a location via Wi-Fi, cellular, NFC, Bluetooth, or other wireless station identification, and / or signal triangulation.

[0082] Although various embodiments have been described, the description is intended to be exemplary rather than restrictive, and it should be understood that there are many more possible embodiments and implementations within the scope of the embodiments. Although many possible combinations of features are shown in the drawings and discussed in this detailed description, many other combinations of the disclosed features are possible. Unless specifically limited, any feature of any embodiment can be used in combination with any other feature or element in any other embodiment or replace any other feature or element in any other embodiment. Therefore, it should be understood that any of the features shown and / or discussed in this disclosure can be implemented together in any appropriate combination. Therefore, the embodiments should not be limited except in accordance with the attached claims and their equivalents. In addition, various modifications and changes can be made within the scope of the attached claims.

[0083] Although what is considered to be the best mode and / or other examples have been described above, it should be understood that various modifications may be made therein, and the subject matter disclosed herein may be implemented in various forms and examples, and the teachings may be applied to numerous applications, only some of which have been described herein. It is intended that any and all applications, modifications and variations that fall within the true scope of the present teachings be protected by the appended claims.

[0084] Unless otherwise indicated, all measurements, values, ratings, positions, sizes, dimensions and other specifications set forth in this specification, including in the claims that follow, are approximate and not exact. They are intended to be within a reasonable range consistent with the functions to which they are related and with customary practice in the art to which they belong.

[0085] The scope of protection is limited only by the appended claims. The scope is intended and should be interpreted to be as broad as possible, consistent with the ordinary meaning of the language used in the claims when interpreted in light of this specification and subsequent prosecution history, and to encompass all structural and functional equivalents. Notwithstanding the foregoing, no claim is intended to encompass subject matter that does not satisfy the requirements of Sections 101, 102, or 103 of the Patent Act, nor should it be interpreted in such a manner. Any unintended inclusion of such subject matter is hereby disclaimed.

[0086] Except as directly stated above, nothing in any statement or description is intended or should be construed as conferring upon the public any component, step, feature, object, benefit, advantage, or equivalent, whether recited in the claims or not.

[0087] It should be understood that the terms and expressions used herein have the ordinary meanings assigned to such terms and expressions with respect to the corresponding queries and research fields thereof, unless the specific meanings have been set forth in addition herein. Relational terms such as first and second etc. may be used only to distinguish one entity or action from another entity or action, without necessarily requiring or implying any actual such relationship or order between such entities or actions. The terms "include", "comprises" or any other variation thereof are intended to cover non-exclusive inclusions, so that the process, method, article or device including a list of elements includes not only these elements, but also other elements that are not explicitly listed or inherent to such processes, methods, articles or devices. In the absence of further constraints, an element beginning with "one" or "an" does not exclude the presence of additional identical elements in the process, method, article or device including the element.

[0088] The disclosed abstract is provided to allow the reader to quickly determine the nature of the technical disclosure. It should be understood at the time of submission that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing detailed description, it can be seen that various features are grouped together in various examples for the purpose of simplifying the disclosure. This method of disclosure should not be interpreted as reflecting the intention that the claims require more features than those explicitly stated in each claim. On the contrary, as reflected in the attached claims, the subject matter of the invention is in less than all of the features of a single disclosed example. Therefore, the attached claims are hereby incorporated into the detailed description, with each claim existing independently as a separately claimed subject matter.

Claims

1. A data processing system, include: processor; as well as A machine-readable medium storing executable instructions that, when executed, cause the processor to perform operations comprising: receiving, in a first warehouse, configuration parameters for performing federated training of a machine learning model using data stored in the plurality of second warehouses; generating a federated learning pipeline based on the configuration parameters for automatically performing a plurality of tasks associated with the federated learning of the machine learning model, including automatically generating codes, scripts, or both for performing the plurality of tasks for training a local instance of the machine learning model in each respective warehouse of the plurality of second warehouses using the data stored in the respective warehouse, and for providing the first warehouse with respective learnable parameter information associated with the local instance of the machine learning model, while ensuring that data protection and privacy requirements associated with the data used to train the local instance of the machine learning model are satisfied; causing each corresponding warehouse in a plurality of second warehouses to train the local instance of the machine learning model according to the federated learning pipeline; obtaining, at the first warehouse, the learnable parameter information associated with the local instance of the machine learning model for each of a plurality of second warehouses; and Aggregate the learnable parameter information obtained from multiple second warehouses to obtain a master instance of the machine learning model that has been fine-tuned according to the learnable parameter information.

2. The data processing system of claim 1 , wherein each respective one of the plurality of second warehouses is caused to train the local instance of the machine learning model according to the federated learning pipeline to perform the following operations: receiving, from the first repository, the learnable parameters associated with a master instance of the machine learning model maintained by the first repository; instantiating the local instance of the first machine learning model based on the learnable parameters associated with the master instance of the machine learning model; training the local instance of the first machine learning model using the local dataset maintained in the corresponding repository to obtain an updated local instance of the first machine learning model; obtaining the learnable parameter information from the updated local instance of the first machine learning model; as well as The learnable parameter information is provided to the first warehouse.

3. The data processing system of claim 2, wherein the machine-readable medium includes instructions configured to cause the processor to: sending the learnable parameter information associated with the master instance of the machine learning model to the plurality of second warehouses; receiving updated learnable parameter information from each second warehouse of the plurality of second warehouses; aggregating the updated learnable parameter information received from each second warehouse of the plurality of second warehouses to obtain aggregated machine learning model parameters; The master instance of the machine learning model is updated using the aggregated machine learning model parameters.

4. The data processing system of claim 3, wherein the machine-readable medium includes instructions configured to cause the processor to: In response to updating the first machine learning model using the aggregated machine learning model parameters, evaluating a performance of the master instance of the machine learning model by providing reference data to the first machine learning model and comparing an output of the first machine learning model to the reference output data; determining that the performance of the primary instance of the machine learning model has not satisfied one or more performance criteria; as well as In response to the performance of the master instance of the machine learning model failing to meet the one or more performance criteria, one or more additional training iteration stages are automatically added to the federated learning pipeline.

5. The data processing system of claim 3, wherein the machine-readable medium includes instructions configured to cause the processor to: In response to updating the new first machine learning model using the aggregated machine learning model parameters, evaluating a performance of the master instance of the machine learning model by providing reference data to the first machine learning model and comparing an output of the first machine learning model to the reference output data; determining that the performance of the master instance of the machine learning model has satisfied one or more performance criteria; as well as Automatically removing one or more training iteration stages from the federated learning pipeline in response to the performance of the master instance of the machine learning model satisfying the one or more performance criteria.

6. The data processing system according to claim 1, wherein generating the federated learning pipeline further comprises the following operations: The executable code, script, or both are digitally signed using a private key associated with the first repository.

7. The data processing system according to claim 1, wherein generating the federated learning pipeline further comprises the following operations: A determination is made as to whether a policy associated with each of the plurality of second warehouses permits the first warehouse to initiate a job on the plurality of second warehouses.

8. The data processing system of claim 7, wherein determining whether the policy associated with each of the plurality of second warehouses permits the first warehouse to initiate a job on the plurality of second warehouses is include: A determination is made as to whether each respective second warehouse of the plurality of second warehouses is associated with the same workspace as the first warehouse.

9. The data processing system according to claim 7, wherein generating the federated learning pipeline further comprises the following operations: Determine whether an access control policy associated with each of the plurality of second warehouses allows the first warehouse to access the corresponding learnable parameter information associated with the corresponding local instance of the machine learning model.

10. A method implemented in a data processing system for performing federated learning of a machine learning model, the method include: receiving, in a first warehouse, configuration parameters for performing federated training of the machine learning model using data stored in the plurality of second warehouses; generating a federated learning pipeline based on the configuration parameters for automatically performing a plurality of tasks associated with the federated learning of the machine learning model, including automatically generating codes, scripts, or both for performing the plurality of tasks for training a local instance of the machine learning model in each respective warehouse of the plurality of second warehouses using the data stored in the respective warehouse, and for providing the first warehouse with respective learnable parameter information associated with the local instance of the machine learning model, while ensuring that data protection and privacy requirements associated with the data used to train the local instance of the machine learning model are satisfied; causing each corresponding warehouse among the plurality of second warehouses to train the local instance of the machine learning model according to the federated learning pipeline; obtaining, at the first warehouse, the learnable parameter information associated with the local instance of the machine learning model for each of the plurality of second warehouses; as well as Aggregate the learnable parameter information obtained from the plurality of second warehouses to obtain a master instance of the machine learning model that has been fine-tuned according to the learnable parameter information.

11. The method of claim 10, wherein each respective one of the plurality of second warehouses is caused to train the local instance of the machine learning model according to the federated learning pipeline to perform the following operations: receiving, from the first repository, the learnable parameters associated with a master instance of the machine learning model maintained by the first repository; instantiating the local instance of the first machine learning model based on the learnable parameters associated with the master instance of the machine learning model; training the local instance of the first machine learning model using the local dataset maintained in the corresponding repository to obtain an updated local instance of the first machine learning model; obtaining the learnable parameter information from the updated local instance of the first machine learning model; as well as The learnable parameter information is provided to the first warehouse.

12. The method of claim 11, wherein the machine-readable medium comprises instructions configured to cause the processor to: sending the learnable parameter information associated with the master instance of the machine learning model to the plurality of second warehouses; receiving updated learnable parameter information from each second warehouse of the plurality of second warehouses; aggregating the updated learnable parameter information received from each of the plurality of second warehouses to obtain aggregated machine learning model parameters; The master instance of the machine learning model is updated using the aggregated machine learning model parameters.

13. The method of claim 12, wherein the machine-readable medium comprises instructions configured to cause the processor to: In response to updating the first machine learning model using the aggregated machine learning model parameters, evaluating a performance of the master instance of the machine learning model by providing reference data to the first machine learning model and comparing an output of the first machine learning model to the reference output data; determining that the performance of the primary instance of the machine learning model has not satisfied one or more performance criteria; as well as In response to the performance of the master instance of the machine learning model failing to meet the one or more performance criteria, one or more additional training iteration stages are automatically added to the federated learning pipeline.

14. The method according to claim 12, further comprising: include: In response to updating the first machine learning model using the aggregated machine learning model parameters, evaluating a performance of the master instance of the machine learning model by providing reference data to the first machine learning model and comparing an output of the first machine learning model to the reference output data; determining that the performance of the master instance of the machine learning model has satisfied one or more performance criteria; as well as Automatically removing one or more training iteration stages from the federated learning pipeline in response to the performance of the master instance of the machine learning model satisfying the one or more performance criteria.

15. The method according to claim 10, wherein generating the federated learning pipeline further comprises the following operations: The executable code, script, or both are digitally signed using a private key associated with the first repository.

Citation Information

Cited By

  • Edge AI collaboration method and system based on cloud big model enhancement

    CN119396497A

  • Edge AI collaboration method and system based on cloud-based large model enhancement

    CN119396497B