Federal learning task execution method and computing device

By obtaining and loading machine learning algorithm applications in preset algorithm warehouses in node programs of the federated learning platform, the problem of difficult to meet the personalized needs of the business party in the existing technology is solved, and the execution efficiency and user of federated learning tasks are improved Experience.

CN119250231APending Publication Date: 2025-01-03ANT BLOCKCHAIN TECHNOLOGY (SHANGHAI) CO LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202411508311.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-10-25
Publication Date
2025-01-03

AI Technical Summary

Technical Problem

The existing federated learning platform is difficult to meet the personalized needs of business parties for machine learning algorithms used by business prediction models, resulting in poor user experience.

Method used

By running the node program of the federated learning platform, obtain the target application in the preset algorithm warehouse, and load and use the machine learning algorithm required for the federated learning task to be executed in the node program, and then jointly execute federated learning with the other parties. Task.

Benefits of technology

It realizes application loading and using machine learning algorithms on demand, meeting users' needs for personalized business prediction models and improving user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119250231A_ABST
    Figure CN119250231A_ABST
Patent Text Reader

Abstract

A federated learning task execution method and computing device, the method and computing device relating to a plurality of participants, the method being executed by a first participant of the plurality of participants, the method comprising: operating a node program of a federated learning platform, a target application program corresponding to a machine learning algorithm needed to be used by the federated learning task is obtained, the target application program is from a preset algorithm warehouse, programs in the algorithm warehouse are obtained through development based on a consistent software development kit SDK, and the SDK corresponds to a federated learning platform; and loading the target application program in the node program, and jointly executing the federal learning task through the target application program and other participants in the plurality of participants.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of this specification belong to the field of computer technology, and more particularly, to a method and computing device for executing a federated learning task. Background Art

[0002] Federated learning can fully utilize the data and computing power of the participants, allowing multiple participants to collaborate to build more robust and effective business prediction models without sharing training samples. In an environment where data regulation is becoming increasingly stringent, federated learning can solve key issues such as data ownership, data privacy, data access rights, and access to heterogeneous data. Summary of the invention

[0003] The purpose of the present invention is to provide a method and computing device for executing a federated learning task.

[0004] In a first aspect, a method for executing a federated learning task is provided, the method involving multiple parties, the method being executed by a first party among the multiple parties, the method comprising: obtaining, by running a node program of a federated learning platform, a target application corresponding to a machine learning algorithm required to be used in a to-be-executed federated learning task, the target application coming from a preset algorithm repository, the programs in the algorithm repository being all developed based on a consistent software development kit SDK, and the SDK corresponding to the federated learning platform; loading the target application in the node program, and executing the federated learning task jointly with the remaining parties among the multiple parties through the target application.

[0005] In a second aspect, a computing device is provided, which corresponds to a first participant among multiple participants, and the computing device includes: a program acquisition unit, configured to acquire a target application corresponding to a machine learning algorithm required to be used in a to-be-executed federated learning task by running a node program of a federated learning platform, wherein the target application comes from a pre-set algorithm repository, and the programs in the algorithm repository are all developed based on a consistent software development kit SDK, which corresponds to the federated learning platform; a program scheduling unit, configured to load the target application in the node program, and jointly execute the federated learning task with the remaining participants among the multiple participants through the target application.

[0006] According to a third aspect, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed in a computing device, the computing device executes the method described in the first aspect.

[0007] In the technical solution provided in the embodiments of this specification, for the first party among multiple parties participating in the execution of a federated learning task, after determining the machine learning algorithm required for the federated learning task to be executed, the first party can obtain the target application corresponding to the machine learning algorithm from the preset algorithm repository by running the node program of the federated learning platform, and then load the target application in the node program, and jointly execute the federated learning task with the remaining parties among the multiple parties through the target application. In this way, the application corresponding to the machine learning algorithm that may be used does not need to be directly integrated into the client or server of the federated learning platform, and the relevant parties can load and use the application corresponding to the relevant machine learning algorithm on demand, which can better meet the personalized needs of users for the machine learning algorithm used in the federated learning task to be executed or the business prediction model expected to be obtained, and the user experience is better. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] In order to more clearly illustrate the technical solutions of the embodiments of this specification, the drawings required for use in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in this specification. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative labor.

[0009] Figure 1 A schematic diagram of an implementation architecture of federated learning provided in an embodiment of this specification;

[0010] Figure 2 A flowchart of a method for executing a federated learning task provided in an embodiment of this specification;

[0011] Figure 3 A schematic diagram of the structure of a computing device provided in an embodiment of this specification. DETAILED DESCRIPTION

[0012] In order to enable those skilled in the art to better understand the technical solutions in this specification, the technical solutions in the embodiments of this specification will be clearly and completely described below in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of this specification, not all of the embodiments. Based on the embodiments in this specification, all other embodiments obtained by ordinary technicians in this field without creative work should fall within the scope of protection of this specification.

[0013] Federated learning, also known as joint learning, can jointly conduct machine learning among multiple business parties that have training samples without exchanging training samples. The main feature of federated learning is that multiple business parties will participate in a task. Generally, a federated learning task involves two or more business parties, and in some cases, collaborative parties may also participate. The business data held by the business parties can be used as training samples for federated learning. Federated learning is to use the business data held by multiple business parties to jointly train business prediction models while meeting user privacy protection, data security and other requirements.

[0014] For example, suppose there are two different business parties A and B, each holding different business data. For example, party A has user feature data of a group of users, and business party B has user feature data of another group of users. For the sake of user privacy data protection, the two business parties cannot send their respective user feature data to other devices. If each business party uses its own business data to train the business prediction model, it may not be possible to train a high-quality prediction model due to insufficient sample data or incomplete data. Through federated learning, the data of multiple business parties can be used to jointly train the model while protecting the security of privacy data, so that each party can obtain a high-quality business prediction model.

[0015] Federated learning can be performed in a variety of implementation architectures.

[0016] Figure 1 This is a schematic diagram of the implementation architecture of federated learning provided in the embodiments of this specification. Figure 1 As shown, through the information interaction between the collaborative party and multiple business parties, it is possible to use the business data held by multiple business parties to complete the relevant federated learning tasks, that is, to complete the training of relevant business prediction models. Among them, the collaborative party may include but is not limited to a centralized server, and the business party may include but is not limited to an edge computing device as a client, such as a personal computer or a mobile phone and other terminal devices, thereby forming a client-server architecture. It should be noted that in actual application scenarios, the federated learning task can also adopt a peer-to-peer network architecture, which may include multiple business parties but not the collaborative party.

[0017] Exemplarily, in federated learning implemented under a client-server architecture, the business party can use its own business data to train the business prediction model and obtain gradient information for updating the model parameters. Multiple business parties will send the gradient information they obtain to the collaborative party after privacy processing; the collaborative party aggregates the privacy-processed gradient information and returns the aggregated gradient information to multiple business parties, and the business parties can use the aggregated gradient information to update the model parameters.

[0018] Depending on the forecasting transaction that the expected business forecasting model performs, different business forecasting models may use the same or different machine learning algorithms. The machine learning algorithm defines the structure of the business forecasting model and the process of processing input data, such as defining the number of network layers included in the business forecasting model, the basic configuration of each network layer, and the connection relationship between each network layer. In other words, the machine learning algorithm essentially refers to the original machine learning model that is not trained using relevant training samples. The algorithm types of machine learning algorithms used by business forecasting models may include, for example, but are not limited to linear algorithms, decision trees, support vector machines (SVM), convolutional neural networks (CNN), long short-term memory networks (LSTM), and recurrent neural networks (RNN), etc.; among them, linear algorithms may include, but are not limited to subtypes such as logistic regression and linear regression, and decision trees may include, but are not limited to subtypes such as extreme gradient boosting trees (XGBoost), gradient boosting decision trees (GBDT), and random forests. The trained business prediction model may include, but is not limited to, a natural language processing (NLP) model, a computer vision (CV) model, and a large language model (LLM) for executing prediction transactions.

[0019] When implementing federated learning, it is usually necessary to deploy the client of the federated learning platform on the relevant business parties; for federated learning implemented using a client-server architecture, it is also necessary to deploy the server of the federated learning platform on the collaborating party. At present, the federated learning platform is usually closed, that is, after multiple business parties purchase a federated learning platform provided by a service provider and deploy the client of the federated learning platform to the relevant business party's equipment, multiple business parties can only use the machine learning algorithm built into the client to perform federated learning tasks, which is difficult to meet the business party's personalized needs for the algorithm used in the business prediction model.

[0020] In view of this, a federated learning method and apparatus are provided in the embodiments of the present specification. For the first party among multiple parties participating in the execution of a federated learning task, after determining the machine learning algorithm required for the federated learning task to be executed, the first party can obtain a target application corresponding to the machine learning algorithm from a preset algorithm repository by running a node program of the federated learning platform, and then load the target application in the node program, and jointly execute the federated learning task with the remaining parties among the multiple parties through the target application. In this way, the application corresponding to the machine learning algorithm that may be used does not need to be directly integrated into the client or server of the federated learning platform, and the relevant parties can load and use the target application corresponding to the relevant machine learning algorithm on demand, which can better meet the personalized needs of users for the machine learning algorithm used for the federated learning task to be executed or the business prediction model expected to be obtained, and the user experience is better.

[0021] Referring to the above, depending on the implementation architecture adopted by federated learning, the federated learning platform includes at least a client deployed on the business side, and may also include a server deployed on the collaborative side. Therefore, the application corresponding to a single machine learning algorithm includes at least a first application (hereinafter referred to as the algorithm program) that needs to run on the business side device and allows the client to call it, and may also include a second application (hereinafter referred to as the aggregation program) that needs to run on the collaborative side device and allows the server to call it; the algorithm program and the aggregation program corresponding to the same machine learning algorithm can be packaged into the same algorithm package, which can be uploaded to the algorithm warehouse that allows the relevant business side devices and collaborative side devices to download it on demand.

[0022] For example, refer to Figure 1 According to the implementation architecture shown, relevant developers can upload algorithm package P1 corresponding to the machine learning algorithm P1 and algorithm package P2 corresponding to the machine learning algorithm P2 to the designated algorithm repository; wherein the algorithm package P1 includes the aggregation program P1-S and the algorithm program P1-C, and the algorithm package P2 includes the aggregation program P2-S and the algorithm program P2-C.

[0023] The name of the algorithm package corresponding to the machine learning algorithm can usually be the algorithm identifier of the machine algorithm. Among them, the algorithm identifier of the machine learning algorithm can be determined based on one or more of the following information: algorithm type (such as CV, NLP, Graph, and LLM, etc.), version number, and identification information of the developer / service provider, etc. The program identifier of the algorithm program can include the algorithm identifier of the machine learning algorithm to which it belongs and indication information such as C that characterizes the algorithm program. The program identifier of the aggregation program can include the algorithm identifier of the machine learning algorithm to which it belongs and indication information such as S that characterizes the aggregation program.

[0024] In order to enable the client and server of the federated learning platform to load and use the algorithm programs and aggregation programs corresponding to various possible machine learning algorithms on demand, the service provider of the federated learning platform can provide a unified software development kit (SDK) for the federated learning platform. The SDK can provide various application programming interfaces (API) that may be used by the algorithm programs and aggregation programs.

[0025] For example, the aforementioned SDK may provide a first abstract base class (referred to as Client Base API) corresponding to the algorithm program. When the developer develops the algorithm program corresponding to any machine learning algorithm, he may write the first derived class by inheriting the Client Base API, and complete the implementation logic of customizing certain predetermined transactions in the first derived class according to the developer's needs, ensuring that the client can complete the relevant predetermined transactions according to the developer's needs by calling the instance of the first derived class after completing the loading of the corresponding algorithm program. Exemplarily, the Client Base API may define a virtual function for loading training samples (referred to as nit_epoch_data) and a virtual function for training a business prediction model (train_step). The developer may write the implementation logic of nit_epoch_data and train_step in the first derived class, and the client may complete the relevant transactions in accordance with the nit_epoch_data and train_step implementation logic written by the developer by calling the instance of the first derived class.

[0026] For another example, the aforementioned SDK may provide a second abstract base class (referred to as Server Base API) corresponding to the aggregation program. When the developer develops the aggregation program corresponding to any machine learning algorithm, he can write a second derived class by inheriting the Server Base API, and complete the implementation logic of customizing certain predetermined transactions in the second derived class according to the developer's needs, ensuring that the server can complete the relevant predetermined transactions according to the developer's needs after completing the loading of the corresponding aggregation program by calling the instance of the second derived class in the corresponding program component. Exemplarily, a virtual function for aggregating gradient information (referred to as Gradient aggregation) may be defined in the Server Base API, and the developer may write the implementation logic of Gradient aggregation in the second derived class, and the server may complete the aggregation processing of the gradient information from multiple business party devices according to the Gradient aggregation implementation logic written by the developer by calling the instance of the second derived class.

[0027] For example, the aforementioned SDK may provide one or more of the following various components: program components for supporting algorithmic programs and / or aggregation programs to perform communication transactions, wherein such program components may include but are not limited to: message passing interface (MPI), NVIDIA Collective Communication Library (NCCL), Remote Procedure Call (gRPC) and other APIs; program components for supporting algorithmic programs and / or aggregation programs to perform privacy processing transactions, wherein such program components may include but are not limited to: APIs for implementing transactions such as secure aggregation, secure comparison, differential privacy, etc.; program components for supporting algorithmic programs to obtain training samples, wherein such program components may include but are not limited to: APIs for obtaining training samples in various data formats such as character-separated values ​​(CSV) and optimized row columnar (ORC) from data sources such as files and other object storage services (OSS).

[0028] When developers use the aforementioned SDK to write source code for algorithm programs and / or aggregation programs corresponding to various machine learning algorithms, they can speed up the development process by directly calling relevant components in the source code; correspondingly, when the source code is packaged into algorithm programs and / or aggregation programs through the corresponding packaging tools, the algorithm programs and / or aggregation programs can include the called components.

[0029] When the algorithm package corresponding to a machine learning algorithm is uploaded to the algorithm repository that allows relevant business party devices and / or collaborative party devices to download, the business party devices and collaborative party devices can download and use the algorithm program or aggregation program corresponding to the machine learning algorithm from the algorithm library on demand with the support of their respective installed clients and servers to perform related federated learning tasks.

[0030] The following is a detailed description of a method for executing a federated learning task provided in an embodiment of this specification. The federated learning task involves multiple participants, and the method can be executed by the first participant among the multiple participants. It can be understood from the foregoing that the first participant may correspond to a business party device of a client of a federated learning platform, or may correspond to a collaborative party device of a server of a federated learning platform.

[0031] Reference Figure 2 As shown, the method may include but is not limited to part or all of the following steps S201 to S203.

[0032] Step S201, by running the node program of the federated learning platform, obtain the target application corresponding to the machine learning algorithm required for the federated learning task to be executed. The target application comes from a pre-set algorithm warehouse. The programs in the algorithm warehouse are all developed based on a consistent software development kit SDK, which corresponds to the federated learning platform.

[0033] Any of the multiple participants can create a federated learning task to be executed through its deployed client, select the remaining participants who need to jointly execute the federated learning task, and through information exchange with the remaining selected participants, finally jointly determine the target machine learning algorithm required for the federated learning task to be executed with the remaining selected participants.

[0034] Reference Figure 1As shown, the business party devices A and B are both deployed with the client of the federated learning platform, while the collaborative party device is deployed with the server of the federated learning platform. The business party device A can create a to-be-executed federated learning task T through its deployed client, select the remaining participants who need to jointly execute the federated learning task, including the business party device B and the collaborative party device, and send the task information corresponding to the federated learning task T to the business party device B and the collaborative party device. The task information may include, but is not limited to, the task identifier of the federated learning task T, and the algorithm identifier of the target machine learning algorithm that the business party device A expects to use, such as P1; accordingly, the business party device B and the collaborative party device can learn from the task information from the business party device A that the algorithm identifier of the target machine learning algorithm to be used in the federated learning task to be executed is P1.

[0035] If the first participant is a business party, the target application may be an algorithm program corresponding to the target machine learning algorithm. Exemplarily, any business party device, such as business party device A, may first query whether the algorithm program P1-C corresponding to the target machine learning algorithm P1 already exists in business party device A according to the algorithm identifier P1 after learning that the algorithm identifier of the target machine learning algorithm is P1. If so, the algorithm program P1-C is directly used as the target application to be loaded in the subsequent step S203; otherwise, the algorithm program P1-C corresponding to the target machine learning algorithm P1 may be downloaded from the corresponding algorithm library according to the algorithm identifier P1, and the downloaded algorithm program P1-C is used as the target application to be loaded in the subsequent step S203.

[0036] Referring to the foregoing, the node program described here can be the client or server of the federated learning platform.

[0037] If the first participant is a collaborative party, the target application may be an aggregation program corresponding to the target machine learning algorithm. Exemplarily, after learning that the algorithm identifier of the target machine learning algorithm is P1, the collaborative party device may first query whether the aggregation program P1-S corresponding to the target machine learning algorithm P1 already exists in the collaborative party device according to the algorithm identifier P1. If so, the aggregation program P1-S is directly used as the target application to be loaded in the subsequent step S205; otherwise, the aggregation program P1-S corresponding to the target machine learning algorithm P1 may be downloaded from the corresponding algorithm library according to the algorithm identifier P1, and the downloaded aggregation program P1-S is used as the target application to be loaded in the subsequent step S203.

[0038] Step S205: load the target application in the node program, and jointly execute the federated learning task with the remaining participants among the multiple participants through the target application.

[0039] The process of any participant using the loaded target application to perform a federated learning task can be seen in the previous description.

[0040] Continuing with the previous example, when the business party device A uses the client of the deployed federated learning platform to load the algorithm program P1-C of the machine learning algorithm P1, the algorithm program P1-C can be called through the client to start running and implement: obtaining training samples from the data source corresponding to the business party device A through the corresponding program component; loading the obtained training samples through the instance of the first abstract base class in the algorithm program P1-C and using the loaded training samples and the target machine learning algorithm P1 defined by the corresponding program component in the algorithm program P1-C to perform a round of training on the business prediction model to obtain the corresponding gradient information; performing privacy processing on the gradient information through the corresponding program component; and sending the ciphertext of the gradient information after privacy processing to the collaborative party device through the corresponding program component. The same applies to the business party device B.

[0041] Correspondingly, when the collaborative device uses the server of the deployed federated learning platform to load the aggregation program P1-S of the machine learning algorithm P1, the aggregation program P1-S can be called through the server, so that the aggregation program P1-S starts running and implements: through the instance of the second abstract base class in the aggregation program, the gradient information ciphertext from the business party device A and the business party device B is aggregated, and the aggregated gradient information ciphertext is returned to the business party devices A and B through the corresponding program components.

[0042] Finally, the business party devices A and B can process the aggregated gradient information ciphertext from the collaborative party devices into gradient information plaintext through the corresponding components in the algorithm program P1-C, and use the gradient information plaintext to update the model parameters of the business prediction model.

[0043] The business-side device updates the model parameters of the business prediction model for multiple rounds to obtain a trained business prediction model.

[0044] Based on the same concept as the aforementioned method embodiment, a computing device 300 is also provided in the embodiment of this specification, and the computing device corresponds to a first participant among multiple participants, and the computing device includes: a program acquisition unit 301, configured to obtain a target application corresponding to a machine learning algorithm required to be used in a to-be-executed federated learning task by running a node program of a federated learning platform, wherein the target application comes from a pre-set algorithm warehouse, and the programs in the algorithm warehouse are all developed based on a consistent software development kit SDK, and the SDK corresponds to the federated learning platform; a program scheduling unit 303, configured to load the target application in the node program, and jointly execute the federated learning task with the remaining participants among the multiple participants through the target application.

[0045] A computer-readable storage medium is also provided in an embodiment of the present specification, on which a computer program / instruction is stored. When the computer program / instruction is executed in a computer, the computer is caused to execute a method for executing a federated learning task performed by a computing device in the aforementioned embodiments.

[0046] A computing device is also provided in an embodiment of the present specification, including a memory and a processor, wherein the memory stores a computer program / instructions, and when the processor executes the computer program / instructions, a method for executing a federated learning task performed by the computing device in the aforementioned embodiments is implemented.

[0047] In the 1990s, improvements to a technology could be clearly distinguished as hardware improvements (for example, improvements to the circuit structure of diodes, transistors, switches, etc.) or software improvements (improvements to the method flow). However, with the development of technology, many improvements to the method flow today can be regarded as direct improvements to the hardware circuit structure. Designers almost always obtain the corresponding hardware circuit structure by programming the improved method flow into the hardware circuit. Therefore, it cannot be said that an improvement in a method flow cannot be implemented using a hardware entity module. For example, a programmable logic device (PLD) (such as a field programmable gate array (FPGA)) is such an integrated circuit whose logical function is determined by the user's programming of the device. Designers can "integrate" a digital system on a PLD by programming it themselves, without having to ask a chip manufacturer to design and produce a dedicated integrated circuit chip. Moreover, nowadays, instead of manually making integrated circuit chips, this kind of programming is mostly implemented by "logic compiler" software, which is similar to the software compiler used when developing and writing programs, and the original code before compilation must also be written in a specific programming language, which is called hardware description language (HDL). There is not only one HDL, but many kinds, such as ABEL (Advanced Boolean Expression Language), AHDL (Altera Hardware Description Language), Confluence, CUPL (Cornell University Programming Language), HDCal, JHDL (Java Hardware Description Language), Lava, Lola, MyHDL, PALASM, RHDL (Ruby Hardware Description Language), etc. The most commonly used ones are VHDL (Very-High-Speed ​​Integrated Circuit Hardware Description Language) and Verilog. Those skilled in the art should also know that it is only necessary to program the method flow slightly in the above-mentioned hardware description languages ​​and program it into the integrated circuit, and then it is easy to obtain the hardware circuit that implements the logic method flow.

[0048] The controller can be implemented in any appropriate manner, for example, the controller can take the form of a microprocessor or processor and a computer-readable medium storing a computer-readable program code (such as software or firmware) that can be executed by the (micro)processor, a logic gate, a switch, an application-specific integrated circuit (ASIC), a programmable logic controller, and an embedded microcontroller. Examples of controllers include, but are not limited to, the following microcontrollers: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, and Silicone Labs C8051F320. The memory controller can also be implemented as part of the control logic of the memory. Those skilled in the art also know that in addition to implementing the controller in a purely computer-readable program code manner, the controller can be implemented in the form of a logic gate, a switch, an application-specific integrated circuit, a programmable logic controller, and an embedded microcontroller by logically programming the method steps. Therefore, this controller can be considered as a hardware component, and the devices included therein for implementing various functions can also be regarded as structures within the hardware component. Or even, the devices for implementing various functions can be regarded as both software modules for implementing the method and structures within the hardware component.

[0049] The systems, devices, modules or units described in the above embodiments may be implemented by computer chips or entities, or by products with certain functions. A typical implementation device is a server system. Of course, the present application does not exclude that with the development of computer technology in the future, the computer that implements the functions of the above embodiments may be, for example, a personal computer, a laptop computer, a vehicle-mounted human-computer interaction device, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or a combination of any of these devices.

[0050] Although one or more embodiments of the present specification provide method operation steps as described in the embodiments or flow charts, more or less operation steps may be included based on conventional or non-creative means. The order of steps listed in the embodiments is only one way of executing the order of many steps, and does not represent the only execution order. When the device or terminal product in practice is executed, it can be executed in sequence or in parallel according to the method shown in the embodiments or the drawings (for example, a parallel processor or a multi-threaded processing environment, or even a distributed data processing environment). The term "include", "include" or any other variant thereof is intended to cover non-exclusive inclusion, so that the process, method, product or equipment including a series of elements includes not only those elements, but also includes other elements that are not explicitly listed, or also includes elements inherent to such a process, method, product or equipment. In the absence of more restrictions, it is not excluded that there are other identical or equivalent elements in the process, method, product or equipment including the elements. For example, if the words first, second, etc. are used to represent the name, they do not represent any specific order.

[0051] For the convenience of description, the above devices are described in various modules according to their functions. Of course, when implementing one or more of the present specification, the functions of each module can be implemented in the same or more software and / or hardware, or the module implementing the same function can be implemented by a combination of multiple sub-modules or sub-units, etc. The device embodiments described above are only schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.

[0052] The present invention is described with reference to flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present invention. It should be understood that each process and / or block in the flowchart and / or block diagram, as well as the combination of processes and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to generate a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.

[0053] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture comprising an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.

[0054] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for implementing the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.

[0055] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.

[0056] The memory may include non-permanent storage in a computer-readable medium, random access memory (RAM) and / or non-volatile memory in the form of read-only memory (ROM) or flash RAM. The memory is an example of a computer-readable medium.

[0057] Computer readable media include permanent and non-permanent, removable and non-removable media that can be implemented by any method or technology to store information. Information can be computer readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disk read-only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic disk storage, graphene storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer readable media does not include temporary computer readable media (transitory media), such as modulated data signals and carrier waves.

[0058] It should be understood by those skilled in the art that one or more embodiments of the present specification may be provided as a method, system or computer program product. Therefore, one or more embodiments of the present specification may take the form of a complete hardware embodiment, a complete software embodiment or an embodiment combining software and hardware. Moreover, one or more embodiments of the present specification may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0059] One or more embodiments of the present specification may be described in the general context of computer-executable instructions executed by a computer, such as program modules. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform specific tasks or implement specific abstract data types. One or more embodiments of the present specification may also be practiced in distributed computing environments where tasks are performed by remote processing devices connected through a communication network. In a distributed computing environment, program modules may be located in local and remote computer storage media, including storage devices.

[0060] Each embodiment in this specification is described in a progressive manner, and the same and similar parts between the embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments. In particular, for the system embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiment. In the description of this specification, the description of the reference terms "one embodiment", "some embodiments", "example", "specific example", or "some examples" means that the specific features, structures, materials or characteristics described in conjunction with the embodiment or example are included in at least one embodiment or example of this specification. In this specification, the schematic representation of the above terms does not necessarily target the same embodiment or example. Moreover, the specific features, structures, materials or characteristics described can be combined in any one or more embodiments or examples in a suitable manner. In addition, in the absence of mutual contradiction, a person skilled in the art can combine and combine the different embodiments or examples described in this specification and the features of different embodiments or examples.

[0061] The above description is only an example of one or more embodiments of the present specification and is not intended to limit one or more embodiments of the present specification. For those skilled in the art, one or more embodiments of the present specification may have various changes and variations. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present specification shall be included in the scope of the claims.

Claims

1. A method for executing a federated learning task, the method involving multiple participants, the method being executed by a first participant among the multiple participants, the method comprising: By running the node program of the federated learning platform, a target application corresponding to the machine learning algorithm required to be used in the federated learning task to be executed is obtained, wherein the target application comes from a pre-set algorithm warehouse, and the programs in the algorithm warehouse are all developed based on a consistent software development kit SDK, and the SDK corresponds to the federated learning platform; The target application is loaded in the node program, and the federated learning task is jointly executed with the remaining participants of the multiple participants through the target application.

2. According to the method of claim 1, the multiple participants include a collaborative party and multiple business parties, and the business parties hold training samples for training business prediction models.

3. According to the method of claim 2, the first participant belongs to the multiple business parties, and the node program is a client of the federated learning platform; wherein, The target application includes a first program component for implementing the machine learning algorithm.

4. The method according to claim 3, wherein the SDK comprises a first abstract base class; wherein, The target application further includes a second program component, wherein the second program component includes a first derived class that inherits the first abstract base class and is used to define the implementation logic of the first transaction.

5. According to the method of claim 4, the first transaction includes loading training samples or training a business prediction model.

6. According to the method according to claim 4, the SDK also includes at least one of the following various program components: a third program component for supporting the target application to perform communication transactions, a fourth program component for supporting the target application to perform privacy processing transactions, and a fifth program component for supporting the target application to obtain training samples.

7. According to the method of claim 2, the first participant is the collaborator, the node program is the server of the federated learning platform, and the SDK includes a second abstract base class; wherein, The target application includes a sixth program component, and the sixth program component includes a second derived class that inherits the second abstract base class and is used to define the implementation logic of the second transaction.

8. According to the method of claim 7, the second transaction includes aggregating gradient information from the multiple business parties, and the gradient information is obtained by the corresponding business party in the process of training the business prediction model using the training samples held by it.

9. According to the method of any one of claims 1 to 8, the step of obtaining a target application corresponding to the machine learning algorithm required to be used in the federated learning task comprises: The target application is downloaded from the algorithm repository.

10. A computing device, the computing device corresponding to a first participant among a plurality of participants, the computing device comprising: A program acquisition unit is configured to acquire a target application corresponding to a machine learning algorithm required to be used in a to-be-executed federated learning task by running a node program of the federated learning platform, wherein the target application is from a preset algorithm warehouse, and the programs in the algorithm warehouse are all developed based on a consistent software development kit SDK, and the SDK corresponds to the federated learning platform; A program scheduling unit is configured to load the target application in the node program, and jointly execute the federated learning task with the remaining participants of the multiple participants through the target application.

11. A computer-readable storage medium having a computer program stored thereon, wherein when the computer program is executed in a computing device, the computing device executes the method according to any one of claims 1 to 9.

Citation Information

Cited By

  • Federated learning task execution method and computing device

    WO2026086902A1