CN112905187B - Compiling method, compiling device, electronic equipment and storage medium - Google Patents

Compiling method, compiling device, electronic equipment and storage medium Download PDF

Info

Publication number
CN112905187B
CN112905187B CN202110191679.7A CN202110191679A CN112905187B CN 112905187 B CN112905187 B CN 112905187B CN 202110191679 A CN202110191679 A CN 202110191679A CN 112905187 B CN112905187 B CN 112905187B
Authority
CN
China
Prior art keywords
encryption
graph
calculation
dynamic
computing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110191679.7A
Other languages
Chinese (zh)
Other versions
CN112905187A (en
Inventor
唐兴兴
陈建蓉
黄启军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WeBank Co Ltd
Original Assignee
WeBank Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN202110191679.7A priority Critical patent/CN112905187B/en
Publication of CN112905187A publication Critical patent/CN112905187A/en
Application granted granted Critical
Publication of CN112905187B publication Critical patent/CN112905187B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

The invention discloses a compiling method, a compiling device, electronic equipment and a storage medium. The compiling method is applied to participants of federal learning, and comprises the following steps: acquiring source codes, wherein the source codes comprise code segments for realizing federal learning; analyzing the source code to generate a dynamic calculation graph, wherein the dynamic calculation graph comprises calculation nodes corresponding to the code segments, and the dynamic calculation graph is used for representing data processing logic of federal learning; replacing operators of corresponding computing nodes in the dynamic computing graph by using a preset encryption operator to generate an encryption computing graph; and generating compiled codes according to the encryption computation graph. The participants of federal learning can compile the source codes by adopting the compiling method, and replace corresponding operators in the dynamic calculation graph by using preset encryption operators, so that encryption is realized in the compiling process. Because the compilation method supports encrypting operators in the source code, no encryption process is required to be written in the source code.

Description

Compiling method, compiling device, electronic equipment and storage medium
Technical Field
The present invention relates to the field of computers, and in particular, to a compiling method, a compiling device, an electronic device, and a storage medium.
Background
Technology is continuously developed, artificial intelligence technology is widely applied, and the value of data is increasingly outstanding. However, with the importance of data privacy and the release of corresponding policy regulations in recent years, conventional approaches to acquiring raw data and performing machine learning modeling have not been convenient and feasible. People began to model in a federal machine learning or multiparty security computing manner.
Federal machine learning or multiparty secure computing may involve information transmission, scheduling, etc. among multiple parties, and generally requires explicit transmission of encrypted information in code development, resulting in complex code, and difficult development and maintenance. The corresponding machine learning development and learning cost is high, and the experience is poor.
Disclosure of Invention
The invention mainly aims to provide a compiling method, a compiling device, electronic equipment and a storage medium, and aims to support simplification of source code development by improving a compiling process so as to improve efficiency of source code development and maintenance.
To achieve the above object, in a first aspect, the present invention provides a compiling method applied to a participant in federal learning, the method comprising:
acquiring source codes, wherein the source codes comprise code segments for realizing federal learning;
Analyzing the source code to generate a dynamic calculation graph, wherein the dynamic calculation graph comprises calculation nodes corresponding to the code segments, and the dynamic calculation graph is used for representing data processing logic of federal learning;
replacing operators of corresponding computing nodes in the dynamic computing graph by using a preset encryption operator to generate an encryption computing graph;
and generating compiled codes according to the encryption computation graph.
Optionally, the replacing the operators of the corresponding computing nodes in the dynamic computing graph with the preset encryption operators to generate the encryption computing graph includes:
obtaining a preset encryption operator, wherein the encryption operator comprises at least one of the following: an encryption operator for calculating a loss function, an encryption operator for performing addition calculation, an encryption operator for performing multiplication calculation, an encryption operator for performing subtraction calculation, an encryption operator for performing exponent calculation;
for each encryption operator, searching whether a corresponding computing node exists in the dynamic computing graph;
and if the corresponding computing node exists, replacing an operator of the computing node by using the encryption operator.
Optionally, the parsing the source code to generate a dynamic computation graph includes:
Analyzing the source code to generate a static calculation graph, wherein the static calculation graph comprises calculation nodes corresponding to the code segments, and the static calculation graph is used for representing data processing logic corresponding to the source code;
and generating a dynamic calculation graph according to the static calculation graph and a preset optimization rule, wherein the dynamic calculation graph is used for representing optimized data processing logic.
Optionally, the generating a dynamic computation graph according to the static computation graph and a preset optimization rule includes:
determining a node to be adjusted in the static calculation graph according to a preset optimization rule;
and adjusting the node to be adjusted to generate a dynamic calculation graph.
Optionally, the method further comprises:
determining an encryption algorithm used in encrypting data in the federal learning process, and determining calculation logic of ciphertext addition and/or ciphertext multiplication according to the encryption algorithm;
determining the calculation logic of each preset encryption operator according to the calculation logic of the ciphertext addition and ciphertext multiplication;
correspondingly, the generating compiled codes according to the encryption computation graph comprises the following steps: and generating compiled codes according to calculation logic corresponding to the encryption operators in the encryption calculation graph.
Optionally, the source code further includes an executable identifier corresponding to the code segment;
the parsing the source code to generate a dynamic computational graph includes:
generating a role node according to the executive side identifier, wherein the role node is associated with a computing node corresponding to the code segment;
the generating compiled codes according to the encryption computation graph comprises the following steps:
generating corresponding role judgment sentences according to the role nodes of the encryption computation graph to determine whether the federal learning participants are executors of computation nodes associated with the role nodes;
and generating a compiled code according to the role judgment statement and the calculation logic corresponding to the encryption operator in the encryption calculation graph.
In a second aspect, the present invention also provides a compiling apparatus, including:
the acquisition module is used for acquiring source codes, wherein the source codes comprise code segments for realizing federal learning;
the analysis module is used for analyzing the source code to generate a dynamic calculation graph, wherein the dynamic calculation graph comprises calculation nodes corresponding to the code segments, and the dynamic calculation graph is used for representing the data processing logic of the federal learning;
The encryption module is used for replacing operators of corresponding computing nodes in the dynamic computing graph by utilizing a preset encryption operator to generate an encryption computing graph;
and the code generation module is used for generating compiled codes according to the encryption computation graph.
In a third aspect, the present invention provides an electronic device comprising: a memory, a processor, and a compiler stored on the memory and executable on the processor, the compiler when executed by the processor implementing the steps of the compiling method according to the first aspect.
In a fourth aspect, the present invention provides a computer-readable storage medium having stored thereon a compiler program which, when executed by a processor, implements the steps of the compiling method according to the first aspect.
In a fifth aspect, the invention provides a computer program product comprising a computer program which, when executed by a processor, implements the method of the first aspect.
The invention provides a compiling method, a compiling device, electronic equipment and a storage medium. The compiling method is applied to participants of federal learning, and comprises the following steps: acquiring source codes, wherein the source codes comprise code segments for realizing federal learning; analyzing the source code to generate a dynamic calculation graph, wherein the dynamic calculation graph comprises calculation nodes corresponding to the code segments, and the dynamic calculation graph is used for representing data processing logic of federal learning; replacing operators of corresponding computing nodes in the dynamic computing graph by using a preset encryption operator to generate an encryption computing graph; and generating compiled codes according to the encryption computation graph. The participant participating in the federation study can compile the source code by adopting the compiling method, and in the compiling process, the code segment is analyzed to generate a corresponding dynamic calculation graph so as to represent the federation study data processing logic embodied by the code segment, wherein the data processing logic comprises a plurality of calculation nodes; and replacing a corresponding operator in the dynamic calculation graph by using a preset encryption operator to generate the encryption calculation graph, so as to obtain a compiled code. I.e. encryption is implemented during the compilation process. That is, this compilation method is the underlying foundation supporting source code simplification, and because the compilation method supports encrypting operators in the source code, thereby compiling the source code into executable code, there is no need to write encryption processes in the source code. Therefore, simplification of source codes is realized, and complexity of source code development and later maintenance difficulty are reduced.
Drawings
FIG. 1 is a schematic diagram of a federal learning principle provided by the present invention;
fig. 2 is a schematic diagram of an application scenario provided by the present invention;
FIG. 3 is a flowchart of a compiling method according to an embodiment of the present invention;
FIG. 4a is a schematic diagram of a dynamic computation graph generated after resolving a section of source code according to an embodiment of the present invention;
FIG. 4b is an encryption computation graph corresponding to the dynamic computation graph of FIG. 4 a;
FIG. 4c is another encryption computation graph corresponding to the dynamic computation graph of FIG. 4 a;
FIG. 4d is a schematic diagram of an encryption computation graph generated after parsing another piece of source code;
FIG. 5 is a schematic diagram of a compiling apparatus according to an embodiment of the present invention;
fig. 6 is a schematic structural diagram of an electronic device according to an embodiment of the present invention.
The achievement of the objects, functional features and advantages of the present invention will be further described with reference to the accompanying drawings, in conjunction with the embodiments.
Detailed Description
Exemplary embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. While exemplary embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure may be embodied in various forms and should not be limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art.
In many fields, techniques such as machine learning and model training based on big data are continuously developed. By mining big data, a lot of valuable information can be obtained. With the development of technology, sources of raw data are becoming more and more widespread, and even cross-domain federation exists.
In some business scenarios, multiple business platforms collect respective business data. These business data are valuable and are typically kept as private information for the business platform. Each service platform does not desire to share the original form of service data with other service platforms. In some demands, however, multiple business platforms desire to perform collaborative computations without disclosing business data for each party to increase business processing capacity. Based on this, methods such as federal machine learning have been developed.
Federal machine learning (Federated Machine Learning), also known as federal learning (Federated Learning), can combine parties to perform data usage and collaborative modeling on the premise that the data does not go out of the local area, and gradually becomes a common method in privacy protection calculation.
In the federal learning process, the privacy data of the participants can be protected through a parameter exchange mode under an encryption mechanism, the data cannot be transmitted, the participants do not need to expose the owned data to other participants, and the data of other participants cannot be reversely pushed, so that the federal learning can well protect the privacy of users and ensure the safety of the data, and the problem of data island can be solved.
Federal learning can be categorized into lateral federal learning (Horizontal Federated Learning), longitudinal federal learning (Vertical Federated Learning), and federal migration learning (Federated Transfer Learning) for different data sets.
Wherein, the lateral federation learning can be applied to scenes with more user features overlapping and less user overlapping for different data sets. For example, one is a bank of the A place, the other is a bank of the B place, the two banks are different in place and overlap with each other by a small amount, but the data of the two banks relate to the balance behavior, the asset data and the like of the user, and at this time, the data collaborative calculation between the two banks can be realized based on the horizontal federal learning.
Longitudinal federal learning can be applied to scenes where users of different data sets overlap more and user features overlap less. For example, there are two different institutions among the parties, one being a bank at a location and the other being an e-commerce at that location. The user groups of the electronic commerce system are likely to all contain most residents of the ground, so that the intersection of the users is large, but because the data of the banks relate to the balance behavior and the asset data of the users and the data of the electronic commerce relates to the browsing and purchasing histories of the users, the intersection of the user characteristics of the electronic commerce system is small, and the data collaborative calculation between the banks and the electronic commerce can be realized based on longitudinal federal learning.
Federal migration learning can be applied to scenarios where users of different data sets overlap less with user features. For example, there are two different institutions in the participants, one is a bank of the A-land and the other is an e-commerce of the B-land, the user groups of the two participants have little intersection, and the coincidence of the user features is also little. In this case, it is necessary to introduce transfer learning to promote the effect of collaborative calculation.
There are many machine learning algorithms that can be used for federal learning, including but not limited to neural networks, random forests, and the like.
Fig. 1 is a schematic diagram of federal learning principle according to an embodiment of the present invention. As shown in fig. 1, a server and k client terminals may participate in the federal learning process. In the federal learning process, a server issues global models to each client terminal, each client terminal trains the global models issued by the server by using local data, the trained local models are uploaded to the server, the server aggregates the models uploaded by each client terminal to obtain updated global models, and the process is repeated in sequence until the aggregated global models are converged.
Assuming that the iteration of the t-th round is currently being performed, the algorithm execution step flow is as follows:
Step 1, the server sets the current global model M t Issued to each client terminal C i
Step 2, client terminal C i The current global model M t Overlay local modelI.e. < ->
Step 3, client terminal C i Local training is carried out by utilizing own local training sample, and client terminal C i From a local model of (a)Become->Will->And uploading the model parameters of the model to a server.
Step 4, the server receives the model parameters uploaded by all the client terminalsThe global model is obtained through aggregation.
Because of the multi-party collaboration involved and the heterogeneous execution of the parties, the source code that needs to be developed is generally complex to implement a federal learning process similar to that described above. In order to ensure the security of the data of each client, the interactive data needs to be encrypted in the process of interaction between the client terminal and the server. The source code complexity of the encryption statement is increased, the corresponding machine learning cost is high, the development experience of a user is poor, and the later maintenance and modification of the source code are difficult.
Based on the above-mentioned problems, the present invention is to provide a compiling method, which aims to support simplification of source code development by improving the compiling process, so as to improve the efficiency of source code development and maintenance.
Fig. 2 is a schematic diagram of an application scenario provided by the present invention. As shown in fig. 2, a user writes source codes of federal learning at a user end according to own service requirements, so as to send the source codes to each participant participating in federal learning (3 participants are shown in the figure as an example, and the specific number of the participants depends on a practical scene). Each participant compiles a source code, encryption is realized through an encryption operator, an executable machine code is generated and operated, and each participant cooperates to realize the federal learning process. Thereby realizing the updating of the federal learning model parameters.
Fig. 3 is a flowchart of a compiling method according to an embodiment of the present invention. The compiling method provided in this embodiment is implemented by federally learning any one of a plurality of participants. As shown in fig. 3, the method of the present embodiment may include:
s301, acquiring a source code, wherein the source code comprises a code segment for realizing federal learning.
Specifically, the source code can be obtained by receiving the source code input by the user; alternatively, the source code may be obtained from other devices or devices where other parties are located.
The acquired source code may be source code corresponding to the role of the participant itself or source code common to the participants participating in the federal learning.
Each participant's device node involved in training may also be one or more, but the role of the participant is not limited to three: a provider of a feature variable and a target variable (G for short), a provider of a feature variable (host for short), and a coordinator (arbiter for short). Since roles in federal learning determine the operations that they need to perform, corresponding source code can be written for each role during the source code development process.
In some embodiments, a common set of source code may also be written for each character with the executable corner code identification of the code segment as a flag. That is, the source codes of all the participants participating in the federal learning are the same, and the source codes contain the operations required to be executed by all the participants, and the operations are identified by the roles of executing the operations. In the compiling process, compiling the role identifier of the executive party into a judging statement for judging the role of the executive party, and correspondingly generating a compiled code. Thus, each participant executes the compiled code, and whether the participant is an executing party of a certain operation or not can be judged through the judgment statement, so that whether the operation is executed or not is further determined. The aim of each participant to execute the operation belonging to the own role in the same source code is fulfilled.
S302, analyzing the source code to generate a dynamic calculation graph, wherein the dynamic calculation graph comprises calculation nodes corresponding to the code segments, and the dynamic calculation graph is used for representing data processing logic of federal learning.
The source code comprises relevant data processing logic for calculating based on the data of the participants to finally determine the model parameters, and the corresponding generated calculation graph can be used for representing the data processing logic of the unilateral data. The nodes are data or logic methods corresponding to the data, and paths among the nodes represent logic relations among the nodes. The nodes of the logical method corresponding to data are referred to herein as compute nodes and may generally characterize the computational logic between two or more data.
For the universal source code, corresponding role nodes can be generated according to the executive party identifiers in the universal source code; the role node is associated with a compute node corresponding to the code segment.
Specifically, corresponding role nodes are generated according to the execution side corner code identification, corresponding calculation nodes are generated according to the operation corresponding to the execution side corner code identification, and the role nodes are associated with the calculation nodes. The role node is actually equivalent to a node of a judgment logic, and when the result of the judgment logic is yes, the corresponding calculation nodes are sequentially executed according to the logic.
S303, replacing operators of corresponding computing nodes in the dynamic computing graph by using a preset encryption operator to generate the encryption computing graph.
And replacing operators of the computing nodes corresponding to the preset encryption operators in the dynamic computing graph with the preset encryption operators, so that the encryption computing graph can be generated.
The encryption operator is a predefined operator with an encryption function or an encryption calculation function or an encryption transmission function, and the bottom algorithm can realize encryption of corresponding data or calculation of encrypted data or encryption transmission of data.
According to the federal learning principle, the client terminal needs to rely on the local training sample data to perform model training, and then upload updated model data to the server. In order to ensure that the data does not go out of the local principle, and also in order to prevent other participants from reversely pushing out the original training sample data of the method, the data of each party needs encryption processing in the processing process. The calculation of the encrypted data is slightly different from that of the common data, so that the encryption operator is realized on the basis of the encryption calculation such as the security calculation or homomorphic encryption, and the encryption operator is further realized, or the encrypted original data is calculated, or the encrypted data obtained by calculation is encrypted and transmitted.
The result obtained by calculating the encrypted original data by using the encryption operator is the same as the result obtained by encrypting the result obtained by calculating the original data.
S304, generating compiled codes according to the encryption computation graph.
The source code may be a program written in an interpreted language, such as a program edited in the python language. python is simple and easy to learn as an interpreted language, but is not machine recognizable, and thus requires compilation into a recognizable machine language.
Each node in the encryption computation graph has corresponding logic, codes corresponding to each node can be generated according to the logic corresponding to the node in the encryption computation graph, then the codes are compiled and generated into complete compiled codes which can be identified and executed by a machine, and the processing flow of federal learning can be realized by executing the codes.
In practical application, a developer can design federally learned implementation logic, write source codes correspondingly and input the source codes into devices of all participants. When each participant learns federally, the source code can be analyzed based on the method to generate a dynamic calculation graph, operators of corresponding calculation nodes in the calculation graph are replaced by encryption operators to generate an encryption calculation graph, and the compiled code is generated based on the encryption calculation graph. The compiled code not only contains the realization logic of initial federal learning, but also realizes encryption processing on the data in the federal learning process. So that a developer can only pay attention to the specific logic implementation when writing the source code, and does not need to pay attention to the encryption process implementation.
The compiling method provided by the embodiment is applied to participants of federal learning, and comprises the following steps: acquiring a source code, wherein the source code comprises a code segment for realizing federal learning; analyzing the source code to generate a dynamic calculation graph, wherein the dynamic calculation graph comprises calculation nodes corresponding to code segments, and the dynamic calculation graph is used for representing data processing logic of federal learning; replacing operators of corresponding computing nodes in the dynamic computing graph by using a preset encryption operator to generate the encryption computing graph; and generating compiled codes according to the encryption calculation graph. The participant participating in the federation study can compile the source code by adopting the compiling method, and in the compiling process, the code segment is analyzed to generate a corresponding dynamic calculation graph so as to represent the federation study data processing logic embodied by the code segment, wherein the data processing logic comprises a plurality of calculation nodes; and replacing a corresponding operator in the dynamic calculation graph by using a preset encryption operator to generate the encryption calculation graph, so as to obtain a compiled code. I.e. encryption is implemented during the compilation process. That is, this compilation method is the underlying foundation supporting source code simplification, and because the compilation method supports encrypting operators in the source code, thereby compiling the source code into executable code, there is no need to write encryption processes in the source code. Therefore, simplification of source codes is realized, and complexity of source code development and later maintenance difficulty are reduced.
Specifically, the above-mentioned using a preset encryption operator to replace an operator of a corresponding computing node in the dynamic computing graph to generate the encryption computing graph may include: obtaining a preset encryption operator, wherein the encryption operator comprises at least one of the following: an encryption operator for calculating a loss function, an encryption operator for performing addition calculation, an encryption operator for performing multiplication calculation, an encryption operator for performing subtraction calculation, an encryption operator for performing exponent calculation; for each encryption operator, searching whether a corresponding computing node exists in the dynamic computing graph; and if the corresponding computing node exists, replacing operators of the computing node by using the encryption operators.
Specifically, for each preset encryption operator, a corresponding computing node can be determined from the dynamic computing graph according to the preset encryption operator; and replacing operators of the corresponding computing nodes by using a preset encryption operator to generate an encryption computing graph. That is, firstly, according to a preset encryption operator, determining whether a computing node corresponding to the preset encryption operator exists in the dynamic computing graph, and if so, replacing the encryption operator with the operator of the corresponding computing node.
In another mode, the computing nodes in the dynamic computing graph can be traversed, whether matched encryption operators exist or not is searched from preset encryption operators aiming at each computing node, and if yes, the operators of the corresponding computing nodes are replaced by the encryption operators.
In this way, the replacement of the corresponding computing node in the dynamic computing graph can be realized without omission.
The setting of the encryption operators may also be different for different encryption algorithms. The method may further comprise: determining an encryption algorithm used in encrypting data in the federal learning process, and determining calculation logic of ciphertext addition and/or ciphertext multiplication according to the encryption algorithm; and determining the calculation logic of each preset encryption operator according to the calculation logic of the ciphertext addition and the ciphertext multiplication. Correspondingly, the generating the compiled code according to the encryption computation graph includes: and generating compiled codes according to calculation logic corresponding to the encryption operators in the encryption calculation graph.
In cryptography, the original data to be encrypted is called a plaintext, the encrypted plaintext is called a ciphertext, a cipher key is called a cipher key for encrypting or decrypting the plaintext, and an algorithm for encrypting the plaintext into the ciphertext is called an encryption algorithm. Encryption algorithms may be used to determine the relationship between a key, a plaintext operation, and a ciphertext operation.
For example, in some encryption algorithms, the ciphertext of the product of two plaintext words is the same as the product of the corresponding two ciphertext words. Meanwhile, the encryption algorithm is said to have multiplication homomorphism. Such as ElGamal homomorphic encryption algorithm. For example, a and b are two plaintext words, and the corresponding ciphertext is [ [ a ] ], and [ [ b ] ], and if the [ [ a ] ] is calculated, the corresponding [ [ a ] ] is calculated.
For another example, in some encryption algorithms, the ciphertext of the addition of two plaintext words is the same as the product of the two ciphertext words. Meanwhile, the encryption algorithm is said to have addition homomorphism. Such as the Paillier homomorphic encryption algorithm. For example, a and b are two plaintext words, and the corresponding ciphertext is [ [ a ] ], and [ [ b ] ], and if [ [ a+b ] ] is to be calculated, only the corresponding [ [ a ] ] is to be calculated.
For another example, in some encryption algorithms, the ciphertext of the product of two plaintext words is the same as the product of two ciphertext words, and the ciphertext of the sum of two plaintext words is the same as the sum of two ciphertext words. Meanwhile, the encryption algorithm is said to have full homomorphism. Such as a multi-key NTRU homomorphic encryption algorithm. For example, a and b are two plaintext, the corresponding ciphertext is [ [ a ] ], and [ [ b ] ], if [ [ a+b ] ] is to be calculated, only the corresponding [ [ a ] ] is required to be calculated; in order to calculate [ [ a ] ], it is only necessary to calculate the corresponding [ [ a ] ] and [ [ b ] ].
It is understood that conversion may be implemented between multiplication and addition, and conversion may also be implemented between multiplication or addition and other operations such as division or subtraction. Thus, even if only the addition logic or multiplication logic of the plaintext is specified in the encryption algorithm, the logic of other operations can be deduced therefrom.
If the original node in the dynamic calculation graph is data acquired from other participants, namely plaintext data, the original node is required to be encrypted under the federal learning scene and is converted into encrypted data, namely ciphertext data; if the original node in the dynamic computational graph is local data, it is determined according to the computational logic whether the local data needs to be encrypted (e.g., if the local data needs to be computed with other party's encrypted data, encryption is needed); if the original nodes in the dynamic computational graph are additions, the nodes are replaced by homomorphic addition operators, and the logic of the homomorphic addition operators is determined according to the corresponding encryption algorithm. If the original node in the dynamic computational graph is a multiplication, the node is replaced by a homomorphic multiplier, and the logic of the homomorphic multiplier is determined according to a corresponding encryption algorithm.
In addition, all the computing nodes can be disassembled into addition and/or multiplication, and the replacement of the original operator and the encryption operator can be realized based on the same logic.
Fig. 4a is a schematic diagram of a dynamic computation graph generated after analyzing a section of source code, fig. 4b is an encryption computation graph corresponding to the dynamic computation graph of fig. 4a, and fig. 4c is another encryption computation graph corresponding to the dynamic computation graph of fig. 4 a. The execution subject of this piece of source code is party a. In this embodiment, the encryption algorithm used is the Paillier homomorphic encryption algorithm described above.
Wherein a represents the original data of party A, [ [ a ] ] represents the ciphertext of a; b represents the original data of party B, [ [ B ] ] represents the ciphertext of B; + represents an addition operator, and represents an encryption addition operator.
Corresponding to fig. 4a, the calculation logic of its actual characterization adds the data a provided by party a to the data B provided by party B. In the federal learning scenario, a and b are raw data from different parties, respectively, which need to be encrypted in view of data security. That is, party A may obtain [ [ B ] ] from party B and solve for a+b based on [ [ B ] ] and a locally. Although the [ [ b ] ] cannot be decrypted, the method can be based on the addition homomorphism of the Paillier homomorphic encryption algorithm, namely, the product of the ciphertext added by two plaintext and the two ciphertext is the same to solve: [ [ a ] ] [ [ b ] = [ [ a+b ] ].
The above-described computational logic may be implemented by generating a corresponding fig. 4b after replacing the encryption operator based on one of the operator replacement rules. Wherein the encryption addition # -computation logic is: obtaining [ [ B ] obtained by encrypting B from the party B, encrypting a to obtain [ [ a ] ], and then calculating the product of the obtained product and [ [ B ] ].
The above-described computation logic may also be implemented by generating a corresponding fig. 4c after replacing the encryption operators of the data node and the computation node based on another operator replacement rule. Wherein the data node a is replaced by an encrypted data node [ [ a ] ], which means that the corresponding ciphertext [ [ a ] ] is obtained after encrypting the data node a, and the calculation logic of the encryption addition is as follows: obtain [ [ B ] ] from party B and then calculate the product of [ [ a ] ] and [ [ B ] ].
This embodiment is only an example, and is intended to illustrate the computing logic of the encryption node, and in practical application, various algorithm logic may be implemented in combination with the description of this embodiment and the above embodiments. For example, fig. 4d is a schematic diagram of an encryption computation graph generated after parsing another piece of source code. Wherein MpcMatMul, mpcAdd, mpcSigmoid, MPCLoss is a predefined encryption operator, and represents encryption multiplication, encryption addition, encryption simon algorithm, and encryption loss algorithm, respectively. The encryption multiplication and encryption addition can determine the calculation logic according to the homomorphism of the encryption algorithm; the encryption simon algorithm is used to implement the simon function, and the encryption loss algorithm is used to calculate the loss function, which can be practically broken down into combinations of additions and/or multiplications based on the above analysis, to determine its calculation logic.
Correspondingly, after the computing logic corresponding to the encryption operator is determined, the corresponding compiled code can be generated accordingly. Specifically, if the encryption logic corresponds to the calculation logic of the encryption operator, the encryption is performed by using the corresponding key to generate a corresponding encryption statement, and the compiled code is generated according to the encryption statement.
Based on the bottom layer realization logic of the encryption operator, a specific encryption mode can be determined, a corresponding encryption statement is generated, and then the corresponding compiled code can be generated by combining data processing logic represented by the encryption computation graph. Thus, the aim of adding the encryption statement in the compiling process can be fulfilled. Based on the compiling logic, the source code can omit encryption step when being compiled, and the encryption step is generated in the compiling process.
For the universal source code, when generating the compiled code according to the encryption computation graph, the method further comprises: and generating corresponding role judgment sentences according to the role nodes of the encryption computation graph to determine whether the participants of federal learning are executors of the computation nodes associated with the role nodes.
Because the universal source code contains the executive party identifier capable of performing role judgment, and the compiling method of the embodiment can generate the interpretation statement for performing role judgment, the method has sufficient conditions to allow the same source code to be written for each participant, and the complexity of the source code can be further simplified.
In some embodiments, the parsing the source code to generate the dynamic computation graph may include: analyzing the source code to generate a static calculation graph, wherein the static calculation graph comprises calculation nodes corresponding to the code segments, and the static calculation graph is used for representing data processing logic corresponding to the source code; generating a dynamic calculation map according to the static calculation map and a preset optimization rule; the dynamic computational graph is used to characterize the optimized data processing logic. Wherein, generating the dynamic calculation graph according to the static calculation graph and the preset optimization rule may include: determining nodes to be adjusted in the static calculation graph according to a preset optimization rule; and adjusting the nodes to be adjusted to generate a dynamic calculation graph.
That is, the source code is directly parsed to generate a corresponding static computation graph. The data processing logic characterized by the static computational graph is consistent with the logic of the source code. And then, optimizing the static calculation graph to generate a dynamic calculation graph so as to realize the optimization on the data processing logic. The specific optimization rules may be pre-established, and when it is determined that optimizable logic exists in the static computational graph, optimization is performed based on the optimization rules. And determining the computing node where the optimizable logic is located as a node to be adjusted, and adjusting the node. Optimization specifically refers to the adjustment of computational logic, which is more simplified or easier to execute, in order to facilitate the simplification of the finally generated compiled code.
For example, for the same computational logic that is apparent in a static computational graph, the results of the duplicate logic may be saved, determined to be a new node, and the new node replaced with the node to which the duplicate logic relates. For example, the node combination in fig. 4a appears multiple times in the static calculation graph, it can be known that the calculation logic represented by the node combination is the same, and then the node combination is replaced by a new node, so as to simplify the calculation graph and realize optimization.
Fig. 5 is a schematic structural diagram of a compiling apparatus according to an embodiment of the present invention, and as shown in fig. 5, the compiling apparatus 500 includes: an acquisition module 501, a parsing module 502, an encryption module 503, and a code generation module 504.
The acquiring module 501 is configured to acquire source code, where the source code includes a code segment for implementing federal learning.
The parsing module 502 is configured to parse the source code to generate a dynamic computation graph, where the dynamic computation graph includes computation nodes corresponding to code segments, and the dynamic computation graph is used to characterize data processing logic of federal learning.
And the encryption module 503 is configured to replace operators of corresponding computing nodes in the dynamic computing graph with preset encryption operators to generate an encryption computing graph.
The code generation module 504 is configured to generate compiled code according to the encryption computation graph.
Optionally, the encryption module 503 is specifically configured to, when replacing an operator of a corresponding computing node in the dynamic computing graph with a preset encryption operator to generate the encryption computing graph:
obtaining a preset encryption operator, wherein the encryption operator comprises at least one of the following: an encryption operator for calculating a loss function, an encryption operator for performing addition calculation, an encryption operator for performing multiplication calculation, an encryption operator for performing subtraction calculation, an encryption operator for performing exponent calculation;
for each encryption operator, searching whether a corresponding computing node exists in the dynamic computing graph;
and if the corresponding computing node exists, replacing operators of the computing node by using the encryption operators.
Optionally, the parsing module 502 is specifically configured to, when parsing the source code to generate a dynamic computation graph:
analyzing the source code to generate a static calculation graph, wherein the static calculation graph comprises calculation nodes corresponding to the code segments, and the static calculation graph is used for representing data processing logic corresponding to the source code;
and generating a dynamic calculation graph according to the static calculation graph and a preset optimization rule, wherein the dynamic calculation graph is used for representing the optimized data processing logic.
Optionally, the parsing module 502 is specifically configured to, when generating a dynamic computation graph according to the static computation graph and a preset optimization rule:
determining nodes to be adjusted in the static calculation graph according to a preset optimization rule;
and adjusting the nodes to be adjusted to generate a dynamic calculation graph.
Optionally, the parsing module 502 is further configured to:
determining an encryption algorithm used in encrypting data in the federal learning process, and determining calculation logic of ciphertext addition and/or ciphertext multiplication according to the encryption algorithm;
determining the calculation logic of each preset encryption operator according to the calculation logic of ciphertext addition and ciphertext multiplication;
accordingly, the code generation module 504 is specifically configured to: and generating compiled codes according to calculation logic corresponding to the encryption operators in the encryption calculation graph.
Optionally, the source code further includes an executable identifier corresponding to the code segment;
the parsing module 502 is specifically configured to, when parsing the source code to generate a dynamic computation graph:
generating a role node according to the executive side identifier, wherein the role node is associated with a computing node corresponding to the code segment;
the code generation module 504 is specifically configured to, when generating compiled code according to the encryption computation graph:
Generating corresponding role judgment sentences according to the role nodes of the encryption computation graph to determine whether the participants of federal learning are executors of the computation nodes associated with the role nodes;
and generating compiled codes according to the role judgment statement and the calculation logic corresponding to the encryption operator in the encryption calculation graph.
The compiling device provided by the embodiment of the invention can execute the compiling method provided by any embodiment of the invention, has the corresponding functional modules for executing the compiling method and has the same beneficial effects as the compiling method, and is not repeated here.
Fig. 6 is a schematic structural diagram of an electronic device according to an embodiment of the present invention, as shown in fig. 6, the electronic device 600 includes: memory 601, processor 602, and a compiler program stored on the memory and executable on processor 602, which when executed by processor 602 implements the steps of the compiling method provided by any of the embodiments of the invention.
Wherein the memory 601 and the processor 602 are connected by a bus.
The related descriptions may be correspondingly understood by referring to the related descriptions and effects corresponding to the above embodiments, and are not repeated herein.
The present invention also provides a computer-readable storage medium having stored thereon a computer program that is executed by a processor to implement the compiling method provided in any of the above embodiments.
The computer readable storage medium may be, among other things, ROM, random Access Memory (RAM), CD-ROM, magnetic tape, floppy disk, optical data storage device, etc.
The invention also provides a computer program product comprising a computer program which, when executed by a processor, implements the method provided by any of the embodiments of the invention.
In the several embodiments provided by the present invention, it should be understood that the disclosed apparatus and method may be implemented in other ways. For example, the above-described device embodiments are merely illustrative, e.g., the division of modules is merely a logical function division, and there may be additional divisions of actual implementation, e.g., multiple modules may be combined or integrated into another system, or some features may be omitted or not performed. Alternatively, the coupling or direct coupling or communication connection shown or discussed with each other may be an indirect coupling or communication connection via some interfaces, devices or modules, which may be in electrical, mechanical, or other forms.
The modules illustrated as separate components may or may not be physically separate, and components shown as modules may or may not be physical units, may be located in one place, or may be distributed over multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
In addition, each functional module in the embodiments of the present invention may be integrated in one processing unit, or each module may exist alone physically, or two or more modules may be integrated in one unit. The units formed by the modules can be realized in a form of hardware or a form of hardware and software functional units.
The integrated modules, which are implemented in the form of software functional modules, may be stored in a computer readable storage medium. The software functional module is stored in a storage medium, and includes several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) or a processor (english: processor) to perform some steps of the methods of the embodiments of the invention.
It should be understood that the above processor may be a central processing unit (Central Processing Unit, abbreviated as CPU), but may also be other general purpose processors, digital signal processors (Digital Signal Processor, abbreviated as DSP), application specific integrated circuits (Application Specific Integrated Circuit, abbreviated as ASIC), etc. A general purpose processor may be a microprocessor or the processor may be any conventional processor or the like. The steps of a method disclosed in connection with the present invention may be embodied directly in a hardware processor for execution, or in a combination of hardware and software modules in a processor for execution.
The memory may comprise a high-speed RAM memory, and may further comprise a non-volatile memory NVM, such as at least one magnetic disk memory, and may also be a U-disk, a removable hard disk, a read-only memory, a magnetic disk or optical disk, etc.
The bus may be an industry standard architecture (Industry Standard Architecture, ISA) bus, an external device interconnect (Peripheral Component, PCI) bus, or an extended industry standard architecture (Extended Industry Standard Architecture, EISA) bus, among others. The buses may be divided into address buses, data buses, control buses, etc. For ease of illustration, the buses in the drawings of the present invention are not limited to only one bus or to one type of bus.
The storage medium may be implemented by any type or combination of volatile or nonvolatile memory devices such as Static Random Access Memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic memory, flash memory, magnetic or optical disk. A storage media may be any available media that can be accessed by a general purpose or special purpose computer.
An exemplary storage medium is coupled to the processor such the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an application specific integrated circuit (Application Specific Integrated Circuits, ASIC for short). It is also possible that the processor and the storage medium reside as discrete components in an electronic device or a master device.
The foregoing description is only of the preferred embodiments of the present invention, and is not intended to limit the scope of the invention, but rather is intended to cover any equivalents of the structures or equivalent processes disclosed herein or in the alternative, which may be employed directly or indirectly in other related arts.

Claims (10)

1. A compiling method for use with a participant in federal learning, the method comprising:
acquiring source codes, wherein the source codes comprise code segments for realizing federal learning;
analyzing the source code to generate a dynamic calculation graph, wherein the dynamic calculation graph comprises calculation nodes corresponding to the code segments, and the dynamic calculation graph is used for representing data processing logic of federal learning;
Replacing operators of corresponding computing nodes in the dynamic computing graph by using a preset encryption operator to generate an encryption computing graph;
and generating compiled codes according to the encryption computation graph.
2. The method of claim 1, wherein the replacing operators of corresponding computing nodes in the dynamic computing graph with preset encryption operators to generate an encryption computing graph comprises:
obtaining a preset encryption operator, wherein the encryption operator comprises at least one of the following: an encryption operator for calculating a loss function, an encryption operator for performing addition calculation, an encryption operator for performing multiplication calculation, an encryption operator for performing subtraction calculation, an encryption operator for performing exponent calculation;
for each encryption operator, searching whether a corresponding computing node exists in the dynamic computing graph;
and if the corresponding computing node exists, replacing an operator of the computing node by using the encryption operator.
3. The method of any of claims 1 or 2, wherein the parsing the source code to generate a dynamic computational graph comprises:
analyzing the source code to generate a static calculation graph, wherein the static calculation graph comprises calculation nodes corresponding to the code segments, and the static calculation graph is used for representing data processing logic corresponding to the source code;
And generating a dynamic calculation graph according to the static calculation graph and a preset optimization rule, wherein the dynamic calculation graph is used for representing optimized data processing logic.
4. The method of claim 3, wherein generating a dynamic computational graph according to the static computational graph and a preset optimization rule comprises:
determining a node to be adjusted in the static calculation graph according to a preset optimization rule;
and adjusting the node to be adjusted to generate a dynamic calculation graph.
5. The method according to any one of claims 1 or 2, further comprising:
determining an encryption algorithm used in encrypting data in the federal learning process, and determining calculation logic of ciphertext addition and/or ciphertext multiplication according to the encryption algorithm;
determining the calculation logic of each preset encryption operator according to the calculation logic of the ciphertext addition and ciphertext multiplication;
correspondingly, the generating compiled codes according to the encryption computation graph comprises the following steps: and generating compiled codes according to calculation logic corresponding to the encryption operators in the encryption calculation graph.
6. The method according to any one of claims 1 or 2, wherein the source code further comprises an executable identifier corresponding to the code segment;
The parsing the source code to generate a dynamic computational graph includes:
generating a role node according to the executive side identifier, wherein the role node is associated with a computing node corresponding to the code segment;
the generating compiled codes according to the encryption computation graph comprises the following steps:
generating corresponding role judgment sentences according to the role nodes of the encryption computation graph to determine whether the federal learning participants are executors of computation nodes associated with the role nodes;
and generating a compiled code according to the role judgment statement and the calculation logic corresponding to the encryption operator in the encryption calculation graph.
7. A compiling apparatus, comprising:
the acquisition module is used for acquiring source codes, wherein the source codes comprise code segments for realizing federal learning;
the analysis module is used for analyzing the source code to generate a dynamic calculation graph, wherein the dynamic calculation graph comprises calculation nodes corresponding to the code segments, and the dynamic calculation graph is used for representing the data processing logic of the federal learning;
the encryption module is used for replacing operators of corresponding computing nodes in the dynamic computing graph by utilizing a preset encryption operator to generate an encryption computing graph;
And the code generation module is used for generating compiled codes according to the encryption computation graph.
8. An electronic device, the electronic device comprising: memory, a processor and a compiler stored on the memory and executable on the processor, the compiler when executed by the processor implementing the steps of the compiling method according to any one of claims 1 to 6.
9. A computer readable storage medium, characterized in that the computer readable storage medium has stored thereon a compiler program, which when executed by a processor, implements the steps of the compiling method according to any one of claims 1 to 6.
10. A computer program product comprising a computer program, characterized in that the computer program, when executed by a processor, implements the method of any of claims 1 to 6.
CN202110191679.7A 2021-02-20 2021-02-20 Compiling method, compiling device, electronic equipment and storage medium Active CN112905187B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110191679.7A CN112905187B (en) 2021-02-20 2021-02-20 Compiling method, compiling device, electronic equipment and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110191679.7A CN112905187B (en) 2021-02-20 2021-02-20 Compiling method, compiling device, electronic equipment and storage medium

Publications (2)

Publication Number Publication Date
CN112905187A CN112905187A (en) 2021-06-04
CN112905187B true CN112905187B (en) 2024-02-23

Family

ID=76123848

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110191679.7A Active CN112905187B (en) 2021-02-20 2021-02-20 Compiling method, compiling device, electronic equipment and storage medium

Country Status (1)

Country Link
CN (1) CN112905187B (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113542228B (en) * 2021-06-18 2022-08-12 腾讯科技(深圳)有限公司 Data transmission method and device based on federal learning and readable storage medium
CN114239064A (en) * 2021-12-20 2022-03-25 杭州趣链科技有限公司 Privacy calculation method and device, electronic equipment and computer readable storage medium
CN114282257B (en) * 2022-03-08 2022-07-15 富算科技(上海)有限公司 Federal learning code generation method and device, electronic equipment and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109101237A (en) * 2018-08-01 2018-12-28 北京顶象技术有限公司 The encryption Compilation Method and device of code
CN111507481A (en) * 2020-04-17 2020-08-07 腾讯科技(深圳)有限公司 Federated learning system
CN111539731A (en) * 2020-06-19 2020-08-14 支付宝(杭州)信息技术有限公司 Block chain-based federal learning method and device and electronic equipment
CN112016703A (en) * 2020-10-15 2020-12-01 北京瑞莱智慧科技有限公司 Conversion system and method of machine learning algorithm and electronic equipment
CN112150280A (en) * 2020-10-16 2020-12-29 北京百度网讯科技有限公司 Federal learning method and device for improving matching efficiency, electronic device and medium

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10963226B2 (en) * 2017-10-25 2021-03-30 Aspiring Minds Assessment Private Limited Generating compilable code from uncompilable code

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109101237A (en) * 2018-08-01 2018-12-28 北京顶象技术有限公司 The encryption Compilation Method and device of code
CN111507481A (en) * 2020-04-17 2020-08-07 腾讯科技(深圳)有限公司 Federated learning system
CN111539731A (en) * 2020-06-19 2020-08-14 支付宝(杭州)信息技术有限公司 Block chain-based federal learning method and device and electronic equipment
CN112016703A (en) * 2020-10-15 2020-12-01 北京瑞莱智慧科技有限公司 Conversion system and method of machine learning algorithm and electronic equipment
CN112150280A (en) * 2020-10-16 2020-12-29 北京百度网讯科技有限公司 Federal learning method and device for improving matching efficiency, electronic device and medium

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Trace-based compilation for the Java HotSpot virtual machine;Christian Häubl;Proceedings of the 9th International Conference on Principles and Practice of Programming in Java;20110831;全文 *
面向移动终端智能的自治学习系统;徐梦炜;刘渊强;黄康;刘譞哲;黄罡;;软件学报;20201014(10);全文 *

Also Published As

Publication number Publication date
CN112905187A (en) 2021-06-04

Similar Documents

Publication Publication Date Title
Zhang et al. A survey on federated learning
CN112905187B (en) Compiling method, compiling device, electronic equipment and storage medium
Li et al. A survey on federated learning systems: Vision, hype and reality for data privacy and protection
US11902413B2 (en) Secure machine learning analytics using homomorphic encryption
Rahman et al. Challenges, applications and design aspects of federated learning: A survey
CN113159327B (en) Model training method and device based on federal learning system and electronic equipment
WO2022089256A1 (en) Method, apparatus and device for training federated neural network model, and computer program product and computer-readable storage medium
CN112085159B (en) User tag data prediction system, method and device and electronic equipment
Liu et al. Privacy preserving distributed data mining based on secure multi-party computation
CN112257873A (en) Training method, device, system, equipment and storage medium of machine learning model
CN112347500B (en) Machine learning method, device, system, equipment and storage medium of distributed system
CN112906864A (en) Information processing method, device, equipment, storage medium and computer program product
CN111612167A (en) Joint training method, device, equipment and storage medium of machine learning model
US20230068770A1 (en) Federated model training method and apparatus, electronic device, computer program product, and computer-readable storage medium
US20230362010A1 (en) Systems and methods for predicting communication account identities across decentralized applications
CN116167868A (en) Risk identification method, apparatus, device and storage medium based on privacy calculation
Hastings et al. Privacy-preserving network analytics
Li Combination of blockchain and AI for music intellectual property protection
Yang et al. Rectifying unfairness in recommendation feedback loop
Silva et al. Towards federated learning: An overview of methods and applications
Serrano et al. A peer-to-peer ownership-preserving data marketplace
Yu et al. Deep learning personalized recommendation-based construction method of hybrid blockchain model
Li et al. VFL-R: a novel framework for multi-party in vertical federated learning
WO2022148087A1 (en) Method and apparatus for training programming language translation model, device, and storage medium
Shanmugarasa et al. A systematic review of federated learning from clients’ perspective: challenges and solutions

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant