CN112651510B - Model updating method, working node and model updating system - Google Patents
Model updating method, working node and model updating system Download PDFInfo
- Publication number
- CN112651510B CN112651510B CN201911025363.XA CN201911025363A CN112651510B CN 112651510 B CN112651510 B CN 112651510B CN 201911025363 A CN201911025363 A CN 201911025363A CN 112651510 B CN112651510 B CN 112651510B
- Authority
- CN
- China
- Prior art keywords
- working node
- model
- working
- node
- information
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 106
- 230000004044 response Effects 0.000 claims description 19
- 238000010801 machine learning Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012706 support-vector machine Methods 0.000 claims description 5
- 238000003062 neural network model Methods 0.000 claims description 4
- 238000013473 artificial intelligence Methods 0.000 abstract description 4
- 238000005516 engineering process Methods 0.000 abstract description 3
- 230000003993 interaction Effects 0.000 abstract description 2
- 238000005457 optimization Methods 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 37
- 230000006854 communication Effects 0.000 description 37
- 230000008569 process Effects 0.000 description 31
- 230000006870 function Effects 0.000 description 25
- 238000004364 calculation method Methods 0.000 description 17
- 238000007726 management method Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 14
- 238000010295 mobile communication Methods 0.000 description 13
- 230000005236 sound signal Effects 0.000 description 13
- 210000000988 bone and bone Anatomy 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000036772 blood pressure Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000010985 leather Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 229940037201 oris Drugs 0.000 description 1
- 230000002138 osteoinductive effect Effects 0.000 description 1
- 230000010349 pulsation Effects 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003238 somatosensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Computer Security & Cryptography (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephone Function (AREA)
Abstract
The application relates to a model updating method in the field of artificial intelligence (ARTIFICIAL INTELLIGENCE, AI), which can provide a flexible and efficient optimization technology for a decentralised distributed AI system. The method can update the local model through interaction of the working nodes in the neighborhood. The application can update the model by combining the local model and data through receiving one or more information of at least one parameter, gradient and impulse of the model transmitted by other working nodes of the neighborhood.
Description
Technical Field
The application relates to the field of artificial intelligence (ARTIFICIAL INTELLIGENCE, AI), in particular to a model updating method, a working node and a model updating system.
Background
The machine learning system is the most important branch of the AI system. Distributed MACHINE LEARNING (DML) systems are systems currently in common use for handling large-scale artificial intelligence-like application tasks. The traditional distributed machine learning system is a centralized system, and a prediction model is obtained by training massive user data by using a computing cluster. Specifically, the central node schedules each working node to calculate the gradient of the loss function with respect to the model; after the calculation is completed, all the working nodes upload gradients to the central node; and the central node updates the model after receiving the uploaded gradient. In the using process, the user needs to request service from the system, the system makes a decision for the user's request according to the model trained by the central node, and then the decision result is transmitted to the user for execution. The whole process depends on the network, and network delay exists in the request and the response. Such a centralized system often requires intensive computing resources, and massive user data is uploaded to cloud-side storage, which is very prone to privacy security problems. Furthermore, federal learning technology is proposed, and schemes such as homomorphic encryption and differential privacy are adopted to solve the problem of user privacy security, so that users can implicitly utilize information update models of group users only by sharing models and model related information without sharing original data. Existing federal learning techniques still rely on a central node.
Disclosure of Invention
The embodiment of the application provides a model updating method, a working node and a model updating system, which can provide a flexible and efficient optimization technology for a decentralised distributed AI system without depending on a central node.
In a first aspect, an embodiment of the present application provides a method for updating a model, including: the first working node receives first information sent by at least one second working node; wherein the at least one second working node is a working node belonging to the same sub-network as the first working node; the first working node updates the model according to the first information and the model and data stored by the first working node; wherein each of the first information includes at least one of the following information of the second working node that transmits the first information: at least one parameter of the model, gradient, and impulse of the model; the model stored by the first working node has at least partially the same model structure as the model stored by the at least one second working node.
Possibly, the first working node or the second working node may be any intelligent terminal device, or may be a virtual node formed by a plurality of intelligent terminal devices.
In the embodiment of the application, the model stored by the first working node and the model stored by the second working node have at least partially identical model structures, and for the partially identical model structures, the first working node can update the model through first information sent by the second working node which belongs to the same neighborhood as the first working node and data stored by the first working node. Wherein the first information may include at least one of the following information of the second working node transmitting the first information: at least one parameter of the model, gradient, and impulse of the model. Compared with the prior art, the model updating method provided by the embodiment of the application is a decentralised model updating method, namely the method can not depend on a central node, and the first working node updates the model on the first working node by utilizing the model related information corresponding to the second working node transmitted by one or more second working nodes of the same sub-network to which the first working node belongs. In addition, the method does not need to upload the user data to the cloud, and only needs to update the model of the first working node through the model, gradient, impulse of the model and other parameters of the second working node, so that privacy safety of the user can be ensured. In addition, each working node can update the model of the first working node by combining the stored user data and the first information, and the personalized model can be customized for the working node by updating the model according to the stored user data, so that more accurate service is provided for the user. In addition, the first working node can directly use the data stored by the first working node to update the data without waiting for the calculation results of other working nodes, and the method has high calculation speed and small time delay.
In one possible implementation, the model stored in the first working node and the model stored in the at least one second working node have the same model structure.
In one possible implementation manner, the number of the second working nodes is k; before the first working node receives the first information sent by the at least one second working node, the method further includes: when the update condition is met, the first working node sends a first request to other working nodes belonging to the same subnet as the first working node; the first request is used for requesting the other working nodes to participate in the model updating of the first working node; the first working node receives a first response sent by the other working nodes; wherein the first response is used for representing whether the other working nodes participate in the model update of the first working node, and the number of the other working nodes participating in the model update of the first working node is m; the first working node selects k working nodes from m other working nodes and sends a request for acquiring the first information to the k working nodes; wherein the k working nodes are the second working nodes.
Possibly, the update condition is that the first working node is currently in an idle state, i.e. the first working node is not currently used by the user. Therefore, the first working node can be ensured not to influence the use of the user when the model is updated.
Possibly, the update condition is that the network environment in which the first working node is currently located is a non-mobile data network environment. Therefore, the cost of the user can be saved when the first working node performs model updating, and no extra network cost is generated.
Possibly, the update condition is that the first working node is currently in an idle state and the network environment in which the first working node is currently located is a non-mobile data network environment. Therefore, the first working node can be ensured not to influence the use of the user when the model is updated, and no extra network cost is generated, so that the cost of the user is saved.
In one possible implementation manner, after the first working node updates the model according to the first information and the model and data stored in the first working node, the method further includes: the first working node transmits an impulse of updating the model to the at least one second working node so that the at least one second working node performs model updating.
According to the embodiment of the application, the impulse of the model updated by the first working node can be sent to the second working node, so that the second working node also updates the model, the accuracy of the model output of the second working node is ensured, and more accurate service is provided for users.
In one possible implementation manner, before the first working node receives the first information sent by the at least one second working node, the method further includes: the first working node sends a request to the at least one second working node to obtain first information of the at least one second working node.
In the embodiment of the application, after the second working node participating in updating is determined, the first working node can send the request for acquiring the first information to the second working node so as to update the model according to the first information of the second working node, and the whole model updating process is only performed on the first working node without waiting for the computing process of other working nodes, so that the computing speed is high and the time delay is small.
In another possible implementation, the first information includes at least one parameter and a gradient of a model of the second working node that transmits the first information.
The first working node performing model updating on the model according to the first information and the model and data stored by the first working node includes:
The first working node performs one or more gradient descent for model updating by using any one of the received parameters of the models of the second working nodes and the average value of the parameters corresponding to any one of the parameters in the first working node and the received gradient of the second working nodes; or alternatively, the first and second heat exchangers may be,
The first working node performs one or more gradient descent by using at least one parameter of the received model of each second working node and the average value of the received gradient of each second working node to update the model; or alternatively, the first and second heat exchangers may be,
And the first working node performs one or more gradient descent by using any one of the received parameters of the models of the second working nodes, the average value of the parameters corresponding to any one of the parameters in the first working node and the average value of the gradients of the received second working nodes, so as to update the model.
In another possible implementation, the first information includes a gradient of a second working node that transmits the first information.
The first working node performing model updating on the model according to the first information and the model and data stored by the first working node includes:
the first working node performs one or more gradient descent by using the received gradient of each second working node to update the model.
The embodiment of the application provides a plurality of modes for updating the model according to the first information, the first working node can update the model of the first working node through the model and impulse of the second working node, the model update can be carried out through the implicit data such as the model and impulse without acquiring the user data, and the privacy safety of the user can be ensured.
In another possible implementation manner, the first information is information after being compressed or truncated.
In the embodiment of the application, the data transmitted between the first working node and the second working node is compressed or cut off, so that the network communication overhead can be reduced.
In another possible implementation manner, the first information is information encrypted in a homomorphic manner, or encrypted in a semi-homomorphic manner, or encrypted in a trusted computing environment by using a differential privacy method.
According to the embodiment of the application, the data transmitted between the first working node and the second working node is encrypted, so that the data security can be further ensured, and the privacy security of a user is ensured.
In another possible implementation manner, the model stored by the first working node is a machine learning model.
In another possible implementation manner, the machine learning model is a gradient update-based machine learning model, and the gradient update-based machine learning model includes a deep neural network model or a support vector machine (support vector machine, SVM) model.
In a second aspect, an embodiment of the present application provides a working node, the working node including a processor and a memory, the memory being configured to store computer program instructions, the processor executing the computer program instructions in the memory when the apparatus is running, to cause the apparatus to perform a method provided by the first aspect or any implementation manner of the first aspect of the embodiment of the present application.
In one possible implementation, the operating node is an electronic device or a part of the electronic device.
In another possible implementation, the working node is a system on a chip (SoC).
In a third aspect, an embodiment of the present application provides a model updating system, where the system includes a first working node and at least one second working node. The first working node is a working node provided by the second aspect of the embodiment or any implementation manner of the second aspect of the embodiment of the present application, and the second working node is a working node belonging to the same sub-network as the first working node.
In a fourth aspect, embodiments of the present application provide a computer readable storage medium having instructions stored therein which, when run on an electronic device, cause the electronic device to perform the method provided by the first aspect or any implementation manner of the first aspect.
In a fifth aspect, embodiments of the present application provide a computer program product which, when run on an electronic device, causes the electronic device to perform the method provided by the first aspect or any implementation manner of the first aspect.
In a sixth aspect, an embodiment of the present application provides an apparatus, where the apparatus includes a processing system, where the processing system is configured to execute program instructions to cause the apparatus to perform a method provided by the first aspect or any implementation manner of the first aspect.
In one possible implementation, the processing system includes at least one processor.
In one possible implementation, the apparatus further comprises at least one memory for storing the program instructions, the at least one memory coupled with the processing system.
In one possible implementation, the apparatus is an electronic device or a part of an electronic device.
In one possible implementation, the device is a system on chip SoC.
It will be appreciated that the working node provided in the second aspect, the model updating system provided in the third aspect, the computer storage medium provided in the fourth aspect, or the computer program product provided in the fifth aspect, or the apparatus provided in the sixth aspect, may be used to perform the model updating method provided in the first aspect. Therefore, the advantages achieved by the method can be referred to as the advantages of the corresponding method, and will not be described herein.
Drawings
In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings that are required to be used in the embodiments will be briefly described below.
FIG. 1 is a schematic diagram of a model update system according to an embodiment of the present application;
Fig. 2 is a schematic structural diagram of an electronic device according to an embodiment of the present application;
FIG. 3 is a schematic diagram of a process for selecting a second working node according to an embodiment of the present application;
FIG. 4 is a schematic diagram of a process of updating a stored model of a first working node and a second working node respectively according to an embodiment of the present application;
fig. 5 is a flow chart of a model updating method according to an embodiment of the present application.
Detailed Description
The technical solutions of the embodiments of the present application will be clearly and thoroughly described below with reference to the accompanying drawings.
The embodiment of the application provides a model updating method, a working node and a model updating system. The method may not rely on a central node, and after executing on a working node, may update a machine learning model (e.g., a deep neural network model, a support vector machine (support vector machine, SVM) model, etc. based on gradient update) on the working node in combination with stored data (local data) of the working node and information requested from other working nodes in the neighborhood (other working nodes belonging to the same sub-network as the working node). Therefore, massive user data does not need to be uploaded to the cloud, and privacy security of the user can be guaranteed. In addition, the working nodes in the method are updated by combining with the local data, so that the model of each working node is a personalized model, the use habit of a user using the working node is met, and accurate service is provided for the user. In addition, the local data is used for updating, so that the calculation results of other working nodes do not need to be waited, the model updating speed of the working node is high, and the time delay is small.
In the embodiment of the application, the model updated by the first working node can be used for prediction or reasoning. For example, the updated model can be applied to reasoning in the scenes of image recognition, voice recognition and the like, so that the accuracy of the image recognition or the voice recognition is improved. For another example, the updated model may be used to predict an Application (APP) to be used by the user, and the predicted APP is loaded into the memory in advance, so as to improve the response speed of the device. The method is not limited to the above listed usage scenario, and in the embodiment of the present application, the updated model of the first working node may also be applied to other usage scenarios, which is not limited by the comparison of the embodiment of the present application.
Next, a model updating system provided by an embodiment of the present application will be described with reference to fig. 1. Fig. 1 schematically illustrates a structure of a model updating system according to an embodiment of the present application.
As shown in fig. 1, the model update system 10 may include a first operational node 11 and at least one second operational node (second operational nodes 12a, 12b, 12c, 12d, 12e are shown in fig. 1 by way of example). Data transmission can be performed between each second working node and the first working node. The data transmission mode can be specifically wire transmission or wireless transmission. The wired transmission may be a data transmission via a data line, and the wireless transmission may be a data transmission via a mobile data network or a short-range wireless transmission (such as, but not limited to, bluetooth, wireless high-fidelity (WIRELESS FIDELITY, wi-Fi), etc.).
Specifically, each of the first or second working nodes may be a virtual node, which may be composed of one or more electronic devices (the first virtual node is exemplified in fig. 1 as including one electronic device). If the virtual node is composed of a plurality of electronic devices, one of the electronic devices may act as a gateway (gateway) to complete data interaction between the virtual node and other virtual nodes.
Specifically, the first working node and the second working node belong to the same subnet. The range of the subnet may be a connection range belonging to the same router or a connection range belonging to the same base station. The higher the demand of the model updating system on the calculated convergence speed, namely the faster the convergence, the larger the range of the subnet. The second working node is directly connected with the first working node in the same subnet, and the directly connected working nodes form a neighborhood N. Other working nodes belonging to the same subnet as the first working node may be referred to as neighborhood nodes.
The first working node may store a model (which may be referred to as a local model of the first working node), and the second working node may store a model (which may be referred to as a local model of the second working node). The local model of the first working node has the same model type as the local model of the second working node, and the local model of the first working node has at least partially the same model structure as the local model of the second working node.
The local model of the first working node may be a machine model, in particular a machine learning model based on gradient updating, such as but not limited to a deep neural network model or an SVM model.
The following describes a model structure using a deep neural network as an example of a convolutional neural network. The convolutional neural network may include an input layer, a convolutional layer, an activation function, a pooling layer, and a fully-connected layer. Wherein the input layer may be used to input user data; the convolution layer may be used to extract local features; the activation function may be used to add a nonlinear factor; the pooling layer is used for downsampling the features, extracting main features, simplifying the complexity of network calculation and increasing the robustness; the full connection layer is used for connecting all the characteristics and sending the output value to the classifier. The local model of the first working node and the local model of the second working node in the application have partially identical model structures, which can be at least layers containing updatable weight parameters, such as convolution layers and full connection layers.
The first working node or the second working node referred to in the present application may be an electronic device, or the working node may be part of the electronic device (e.g. a processor). The first working node or the second working node involved in the present application may also be a SoC.
The electronic device in the embodiment of the application may be a mobile phone, a tablet computer, a desktop, a laptop, a notebook, an ultra-mobile personal computer (UMPC), a handheld computer, a netbook, a Personal Digital Assistant (PDA), a wearable electronic device, or a virtual reality device.
In the following embodiments of the present application, an electronic device is taken as an example of a working node. The following describes the structure of a working node (electronic device) according to an embodiment of the present application with reference to fig. 2.
Fig. 2 shows a schematic structural diagram of the electronic device 100.
The electronic device 100 may include a processor 110, an external memory interface 120, an internal memory 121, a universal serial bus (universal serial bus, USB) interface 130, a charge management module 140, a power management module 141, a battery 142, an antenna 1, an antenna 2, a mobile communication module 150, a wireless communication module 160, an audio module 170, a speaker 170A, a receiver 170B, a microphone 170C, an earphone interface 170D, a sensor module 180, keys 190, a motor 191, an indicator 192, a camera 193, a display 194, and a subscriber identity module (subscriber identification module, SIM) card interface 195, etc. The sensor module 180 may include a pressure sensor 180A, a gyro sensor 180B, an air pressure sensor 180C, a magnetic sensor 180D, an acceleration sensor 180E, a distance sensor 180F, a proximity sensor 180G, a fingerprint sensor 180H, a temperature sensor 180J, a touch sensor 180K, an ambient light sensor 180L, a bone conduction sensor 180M, and the like.
It should be understood that the illustrated structure of the embodiment of the present application does not constitute a specific limitation on the electronic device 100. In other embodiments of the application, electronic device 100 may include more or fewer components than shown, or certain components may be combined, or certain components may be split, or different arrangements of components. The illustrated components may be implemented in hardware, software, or a combination of software and hardware.
The processor 110 may include one or more processing units, such as: the processor 110 may include an application processor (application processor, AP), a modem processor, a graphics processor (graphics processing unit, GPU), an image signal processor (IMAGE SIGNAL processor, ISP), a controller, a video codec, a digital signal processor (DIGITAL SIGNAL processor, DSP), a baseband processor, and/or a neural-Network Processor (NPU), etc. Wherein the different processing units may be separate devices or may be integrated in one or more processors.
The controller can generate operation control signals according to the instruction operation codes and the time sequence signals to finish the control of instruction fetching and instruction execution.
A memory may also be provided in the processor 110 for storing instructions and data. In some embodiments, the memory in the processor 110 is a cache memory. The memory may hold instructions or data that the processor 110 has just used or recycled. If the processor 110 needs to reuse the instruction or data, it can be called directly from the memory. Repeated accesses are avoided and the latency of the processor 110 is reduced, thereby improving the efficiency of the system.
In some embodiments, the processor 110 may include one or more interfaces. The interfaces may include an integrated circuit (inter-INTEGRATED CIRCUIT, I2C) interface, an integrated circuit built-in audio (inter-INTEGRATED CIRCUIT SOUND, I2S) interface, a pulse code modulation (pulse code modulation, PCM) interface, a universal asynchronous receiver transmitter (universal asynchronous receiver/transmitter, UART) interface, a mobile industry processor interface (mobile industry processor interface, MIPI), a general-purpose input/output (GPIO) interface, a subscriber identity module (subscriber identity module, SIM) interface, and/or a universal serial bus (universal serial bus, USB) interface, among others.
The I2C interface is a bi-directional synchronous serial bus comprising a serial data line (SERIAL DATA LINE, SDA) and a serial clock line (derail clock line, SCL). In some embodiments, the processor 110 may contain multiple sets of I2C buses. The processor 110 may be coupled to the touch sensor 180K, charger, flash, camera 193, etc., respectively, through different I2C bus interfaces. For example: the processor 110 may be coupled to the touch sensor 180K through an I2C interface, such that the processor 110 communicates with the touch sensor 180K through an I2C bus interface to implement a touch function of the electronic device 100.
The I2S interface may be used for audio communication. In some embodiments, the processor 110 may contain multiple sets of I2S buses. The processor 110 may be coupled to the audio module 170 via an I2S bus to enable communication between the processor 110 and the audio module 170. In some embodiments, the audio module 170 may transmit an audio signal to the wireless communication module 160 through the I2S interface, to implement a function of answering a call through the bluetooth headset.
PCM interfaces may also be used for audio communication to sample, quantize and encode analog signals. In some embodiments, the audio module 170 and the wireless communication module 160 may be coupled through a PCM bus interface. In some embodiments, the audio module 170 may also transmit audio signals to the wireless communication module 160 through the PCM interface to implement a function of answering a call through the bluetooth headset. Both the I2S interface and the PCM interface may be used for audio communication.
The UART interface is a universal serial data bus for asynchronous communications. The bus may be a bi-directional communication bus. It converts the data to be transmitted between serial communication and parallel communication. In some embodiments, a UART interface is typically used to connect the processor 110 with the wireless communication module 160. For example: the processor 110 communicates with a bluetooth module in the wireless communication module 160 through a UART interface to implement a bluetooth function. In some embodiments, the audio module 170 may transmit an audio signal to the wireless communication module 160 through a UART interface, to implement a function of playing music through a bluetooth headset.
The MIPI interface may be used to connect the processor 110 to peripheral devices such as a display 194, a camera 193, and the like. The MIPI interfaces include camera serial interfaces (CAMERA SERIAL INTERFACE, CSI), display serial interfaces (DISPLAY SERIAL INTERFACE, DSI), and the like. In some embodiments, processor 110 and camera 193 communicate through a CSI interface to implement the photographing functions of electronic device 100. The processor 110 and the display 194 communicate via a DSI interface to implement the display functionality of the electronic device 100.
The GPIO interface may be configured by software. The GPIO interface may be configured as a control signal or as a data signal. In some embodiments, a GPIO interface may be used to connect the processor 110 with the camera 193, the display 194, the wireless communication module 160, the audio module 170, the sensor module 180, and the like. The GPIO interface may also be configured as an I2C interface, an I2S interface, a UART interface, an MIPI interface, etc.
The USB interface 130 is an interface conforming to the USB standard specification, and may specifically be a Mini USB interface, a Micro USB interface, a USB Type C interface, or the like. The USB interface 130 may be used to connect a charger to charge the electronic device 100, and may also be used to transfer data between the electronic device 100 and a peripheral device. And can also be used for connecting with a headset, and playing audio through the headset. The interface may also be used to connect other electronic devices, such as AR devices, etc.
It should be understood that the interfacing relationship between the modules illustrated in the embodiments of the present application is only illustrative, and is not meant to limit the structure of the electronic device 100. In other embodiments of the present application, the electronic device 100 may also employ different interfacing manners in the above embodiments, or a combination of multiple interfacing manners.
The charge management module 140 is configured to receive a charge input from a charger. The charger can be a wireless charger or a wired charger. In some wired charging embodiments, the charge management module 140 may receive a charging input of a wired charger through the USB interface 130. In some wireless charging embodiments, the charge management module 140 may receive wireless charging input through a wireless charging coil of the electronic device 100. The charging management module 140 may also supply power to the electronic device through the power management module 141 while charging the battery 142.
The power management module 141 is used for connecting the battery 142, and the charge management module 140 and the processor 110. The power management module 141 receives input from the battery 142 and/or the charge management module 140 to power the processor 110, the internal memory 121, the display 194, the camera 193, the wireless communication module 160, and the like. The power management module 141 may also be configured to monitor battery capacity, battery cycle number, battery health (leakage, impedance) and other parameters. In other embodiments, the power management module 141 may also be provided in the processor 110. In other embodiments, the power management module 141 and the charge management module 140 may be disposed in the same device.
The wireless communication function of the electronic device 100 may be implemented by the antenna 1, the antenna 2, the mobile communication module 150, the wireless communication module 160, a modem processor, a baseband processor, and the like.
The antennas 1 and 2 are used for transmitting and receiving electromagnetic wave signals. Each antenna in the electronic device 100 may be used to cover a single or multiple communication bands. Different antennas may also be multiplexed to improve the utilization of the antennas. For example: the antenna 1 may be multiplexed into a diversity antenna of a wireless local area network. In other embodiments, the antenna may be used in conjunction with a tuning switch.
The mobile communication module 150 may provide a solution for wireless communication including 2G/3G/4G/5G, etc., applied to the electronic device 100. The mobile communication module 150 may include at least one filter, switch, power amplifier, low noise amplifier (low noise amplifier, LNA), etc. The mobile communication module 150 may receive electromagnetic waves from the antenna 1, perform processes such as filtering, amplifying, and the like on the received electromagnetic waves, and transmit the processed electromagnetic waves to the modem processor for demodulation. The mobile communication module 150 can amplify the signal modulated by the modem processor, and convert the signal into electromagnetic waves through the antenna 1 to radiate. In some embodiments, at least some of the functional modules of the mobile communication module 150 may be disposed in the processor 110. In some embodiments, at least some of the functional modules of the mobile communication module 150 may be provided in the same device as at least some of the modules of the processor 110. In the embodiment of the present application, the mobile communication module 150 may be configured to perform data transmission with other working nodes, for example, receive a request sent by the other working nodes, or send first information to the other working nodes.
The modem processor may include a modulator and a demodulator. The modulator is used for modulating the low-frequency baseband signal to be transmitted into a medium-high frequency signal. The demodulator is used for demodulating the received electromagnetic wave signal into a low-frequency baseband signal. The demodulator then transmits the demodulated low frequency baseband signal to the baseband processor for processing. The low frequency baseband signal is processed by the baseband processor and then transferred to the application processor. The application processor outputs sound signals through an audio device (not limited to the speaker 170A, the receiver 170B, etc.), or displays images or video through the display screen 194. In some embodiments, the modem processor may be a stand-alone device. In other embodiments, the modem processor may be provided in the same device as the mobile communication module 150 or other functional module, independent of the processor 110.
The wireless communication module 160 may provide solutions for wireless communication including wireless local area network (wireless local area networks, WLAN) (e.g., wireless fidelity (WIRELESS FIDELITY, wi-Fi) network), bluetooth (BT), global navigation satellite system (global navigation SATELLITE SYSTEM, GNSS), frequency modulation (frequency modulation, FM), near field communication (NEAR FIELD communication, NFC), infrared (IR), etc., applied to the electronic device 100. The wireless communication module 160 may be one or more devices that integrate at least one communication processing module. The wireless communication module 160 receives electromagnetic waves via the antenna 2, modulates the electromagnetic wave signals, filters the electromagnetic wave signals, and transmits the processed signals to the processor 110. The wireless communication module 160 may also receive a signal to be transmitted from the processor 110, frequency modulate it, amplify it, and convert it to electromagnetic waves for radiation via the antenna 2. In an embodiment of the present application, the wireless communication module 160 may be configured to perform data transmission with other working nodes, for example, receive a request sent by the other working nodes, or send first information to the other working nodes.
In some embodiments, antenna 1 and mobile communication module 150 of electronic device 100 are coupled, and antenna 2 and wireless communication module 160 are coupled, such that electronic device 100 may communicate with a network and other devices through wireless communication techniques. The wireless communication techniques can include the Global System for Mobile communications (global system for mobile communications, GSM), general packet radio service (GENERAL PACKET radio service, GPRS), code division multiple access (code division multiple access, CDMA), wideband code division multiple access (wideband code division multiple access, WCDMA), time division code division multiple access (time-division code division multiple access, TD-SCDMA), long term evolution (long term evolution, LTE), BT, GNSS, WLAN, NFC, FM, and/or IR techniques, among others. The GNSS may include a global satellite positioning system (global positioning system, GPS), a global navigation satellite system (global navigation SATELLITE SYSTEM, GLONASS), a beidou satellite navigation system (beidou navigation SATELLITE SYSTEM, BDS), a quasi zenith satellite system (quasi-zenith SATELLITE SYSTEM, QZSS) and/or a satellite based augmentation system (SATELLITE BASED AUGMENTATION SYSTEMS, SBAS).
The electronic device 100 implements display functions through a GPU, a display screen 194, an application processor, and the like. The GPU is a microprocessor for image processing, and is connected to the display 194 and the application processor. The GPU is used to perform mathematical and geometric calculations for graphics rendering. Processor 110 may include one or more GPUs that execute program instructions to generate or change display information.
The display screen 194 is used to display images, videos, and the like. The display 194 includes a display panel. The display panel may employ a Liquid Crystal Display (LCD) CRYSTAL DISPLAY, an organic light-emitting diode (OLED), an active-matrix organic LIGHT EMITTING diode (AMOLED), a flexible light-emitting diode (FLED), miniled, microLed, micro-oLed, a quantum dot LIGHT EMITTING diode (QLED), or the like. In some embodiments, the electronic device 100 may include 1 or N display screens 194, N being a positive integer greater than 1.
The electronic device 100 may implement photographing functions through an ISP, a camera 193, a video codec, a GPU, a display screen 194, an application processor, and the like.
The ISP is used to process data fed back by the camera 193. For example, when photographing, the shutter is opened, light is transmitted to the camera photosensitive element through the lens, the optical signal is converted into an electric signal, and the camera photosensitive element transmits the electric signal to the ISP for processing and is converted into an image visible to naked eyes. ISP can also optimize the noise, brightness and skin color of the image. The ISP can also optimize parameters such as exposure, color temperature and the like of a shooting scene. In some embodiments, the ISP may be provided in the camera 193. In embodiments of the present application, the ISP may process images acquired by the camera 193 that include user gestures.
The camera 193 is used to capture still images or video. The object generates an optical image through the lens and projects the optical image onto the photosensitive element. The photosensitive element may be a charge coupled device (charge coupled device, CCD) or a Complementary Metal Oxide Semiconductor (CMOS) phototransistor. The photosensitive element converts the optical signal into an electrical signal, which is then transferred to the ISP to be converted into a digital image signal. The ISP outputs the digital image signal to the DSP for processing. The DSP converts the digital image signal into an image signal in a standard RGB, YUV, or the like format. In some embodiments, electronic device 100 may include 1 or N cameras 193, N being a positive integer greater than 1. In an embodiment of the present application, the camera 193 may be configured to acquire the image stream at a first frequency and acquire the image stream at a second frequency when the NPU recognizes that the image stream includes a start portion of a gesture supported by the electronic device. Wherein the first frequency is lower than the second frequency. The camera 193 involved in the embodiment of the present application may be a front camera.
The digital signal processor is used for processing digital signals, and can process other digital signals besides digital image signals. For example, when the electronic device 100 selects a frequency bin, the digital signal processor is used to fourier transform the frequency bin energy, or the like.
Video codecs are used to compress or decompress digital video. The electronic device 100 may support one or more video codecs. In this way, the electronic device 100 may play or record video in a variety of encoding formats, such as: dynamic picture experts group (moving picture experts group, MPEG) 1, MPEG2, MPEG3, MPEG4, etc.
The NPU is a neural-network (NN) computing processor, and can rapidly process input information by referencing a biological neural network structure, for example, referencing a transmission mode between human brain neurons, and can also continuously perform self-learning. Applications such as intelligent awareness of the electronic device 100 may be implemented through the NPU, for example: image recognition, face recognition, speech recognition, text understanding, etc. In an embodiment of the present application, the NPU may be configured to process an image acquired by the camera 193, analyze whether a gesture included in the image is an initial portion of a gesture supported by the electronic device 100, or analyze whether the gesture included in the image is a gesture supported by the electronic device 100. In the embodiment of the application, the NPU can be used for storing the model of the working node, namely the local model of the working node, and updating the model.
The external memory interface 120 may be used to connect an external memory card, such as a Micro SD card, to enable expansion of the memory capabilities of the electronic device 100. The external memory card communicates with the processor 110 through an external memory interface 120 to implement data storage functions. For example, files such as music, video, etc. are stored in an external memory card.
The internal memory 121 may be used to store computer executable program code including instructions. The internal memory 121 may include a storage program area and a storage data area. The storage program area may store an application program (such as a sound playing function, an image playing function, etc.) required for at least one function of the operating system, etc. The storage data area may store data created during use of the electronic device 100 (e.g., audio data, phonebook, etc.), and so on. In addition, the internal memory 121 may include a high-speed random access memory, and may further include a nonvolatile memory such as at least one magnetic disk storage device, a flash memory device, a universal flash memory (universal flash storage, UFS), and the like. The processor 110 performs various functional applications of the electronic device 100 and data processing by executing instructions stored in the internal memory 121 and/or instructions stored in a memory provided in the processor. In an embodiment of the present application, the internal memory 121 may be used to store a model of the gesture supported by the electronic device 100, and a function corresponding to each supported gesture. Possibly, the supported gestures may be different in the application interfaces of different applications, and the functions implemented by the same gestures may also be different.
The electronic device 100 may implement audio functions through an audio module 170, a speaker 170A, a receiver 170B, a microphone 170C, an earphone interface 170D, an application processor, and the like. Such as music playing, recording, etc.
The audio module 170 is used to convert digital audio information into an analog audio signal output and also to convert an analog audio input into a digital audio signal. The audio module 170 may also be used to encode and decode audio signals. In some embodiments, the audio module 170 may be disposed in the processor 110, or a portion of the functional modules of the audio module 170 may be disposed in the processor 110.
The speaker 170A, also referred to as a "horn," is used to convert audio electrical signals into sound signals. The electronic device 100 may listen to music, or to hands-free conversations, through the speaker 170A.
A receiver 170B, also referred to as a "earpiece", is used to convert the audio electrical signal into a sound signal. When electronic device 100 is answering a telephone call or voice message, voice may be received by placing receiver 170B in close proximity to the human ear.
Microphone 170C, also referred to as a "microphone" or "microphone", is used to convert sound signals into electrical signals. When making a call or transmitting voice information, the user can sound near the microphone 170C through the mouth, inputting a sound signal to the microphone 170C. The electronic device 100 may be provided with at least one microphone 170C. In other embodiments, the electronic device 100 may be provided with two microphones 170C, and may implement a noise reduction function in addition to collecting sound signals. In other embodiments, the electronic device 100 may also be provided with three, four, or more microphones 170C to enable collection of sound signals, noise reduction, identification of sound sources, directional recording functions, etc.
The earphone interface 170D is used to connect a wired earphone. The headset interface 170D may be a USB interface 130 or a 3.5mm open mobile electronic device platform (open mobile terminal platform, OMTP) standard interface, a american cellular telecommunications industry association (cellular telecommunications industry association of the USA, CTIA) standard interface.
The pressure sensor 180A is used to sense a pressure signal, and may convert the pressure signal into an electrical signal. In some embodiments, the pressure sensor 180A may be disposed on the display screen 194. The pressure sensor 180A is of various types, such as a resistive pressure sensor, an inductive pressure sensor, a capacitive pressure sensor, and the like. The capacitive pressure sensor may be a capacitive pressure sensor comprising at least two parallel plates with conductive material. The capacitance between the electrodes changes when a force is applied to the pressure sensor 180A. The electronic device 100 determines the strength of the pressure from the change in capacitance. When a touch operation is applied to the display screen 194, the electronic apparatus 100 detects the touch operation intensity according to the pressure sensor 180A. The electronic device 100 may also calculate the location of the touch based on the detection signal of the pressure sensor 180A. In some embodiments, touch operations that act on the same touch location, but at different touch operation strengths, may correspond to different operation instructions. For example: and executing an instruction for checking the short message when the touch operation with the touch operation intensity smaller than the first pressure threshold acts on the short message application icon. And executing an instruction for newly creating the short message when the touch operation with the touch operation intensity being greater than or equal to the first pressure threshold acts on the short message application icon.
The gyro sensor 180B may be used to determine a motion gesture of the electronic device 100. In some embodiments, the angular velocity of electronic device 100 about three axes (i.e., x, y, and z axes) may be determined by gyro sensor 180B. The gyro sensor 180B may be used for photographing anti-shake. For example, when the shutter is pressed, the gyro sensor 180B detects the shake angle of the electronic device 100, calculates the distance to be compensated by the lens module according to the angle, and makes the lens counteract the shake of the electronic device 100 through the reverse motion, so as to realize anti-shake. The gyro sensor 180B may also be used for navigating, somatosensory game scenes.
The air pressure sensor 180C is used to measure air pressure. In some embodiments, electronic device 100 calculates altitude from barometric pressure values measured by barometric pressure sensor 180C, aiding in positioning and navigation.
The magnetic sensor 180D includes a hall sensor. The electronic device 100 may detect the opening and closing of the flip cover using the magnetic sensor 180D. In some embodiments, when the electronic device 100 is a flip machine, the electronic device 100 may detect the opening and closing of the flip according to the magnetic sensor 180D. And then according to the detected opening and closing state of the leather sheath or the opening and closing state of the flip, the characteristics of automatic unlocking of the flip and the like are set.
The acceleration sensor 180E may detect the magnitude of acceleration of the electronic device 100 in various directions (typically three axes). The magnitude and direction of gravity may be detected when the electronic device 100 is stationary. The electronic equipment gesture recognition method can also be used for recognizing the gesture of the electronic equipment, and is applied to horizontal and vertical screen switching, pedometers and other applications.
A distance sensor 180F for measuring a distance. The electronic device 100 may measure the distance by infrared or laser. In some embodiments, the electronic device 100 may range using the distance sensor 180F to achieve quick focus.
The proximity light sensor 180G may include, for example, a Light Emitting Diode (LED) and a light detector, such as a photodiode. The light emitting diode may be an infrared light emitting diode. The electronic device 100 emits infrared light outward through the light emitting diode. The electronic device 100 detects infrared reflected light from nearby objects using a photodiode. When sufficient reflected light is detected, it may be determined that there is an object in the vicinity of the electronic device 100. When insufficient reflected light is detected, the electronic device 100 may determine that there is no object in the vicinity of the electronic device 100. The electronic device 100 can detect that the user holds the electronic device 100 close to the ear by using the proximity light sensor 180G, so as to automatically extinguish the screen for the purpose of saving power. The proximity light sensor 180G may also be used in holster mode, pocket mode to automatically unlock and lock the screen.
The ambient light sensor 180L is used to sense ambient light level. The electronic device 100 may adaptively adjust the brightness of the display 194 based on the perceived ambient light level. The ambient light sensor 180L may also be used to automatically adjust white balance when taking a photograph. Ambient light sensor 180L may also cooperate with proximity light sensor 180G to detect whether electronic device 100 is in a pocket to prevent false touches.
The fingerprint sensor 180H is used to collect a fingerprint. The electronic device 100 may utilize the collected fingerprint feature to unlock the fingerprint, access the application lock, photograph the fingerprint, answer the incoming call, etc.
The temperature sensor 180J is for detecting temperature. In some embodiments, the electronic device 100 performs a temperature processing strategy using the temperature detected by the temperature sensor 180J. For example, when the temperature reported by temperature sensor 180J exceeds a threshold, electronic device 100 performs a reduction in the performance of a processor located in the vicinity of temperature sensor 180J in order to reduce power consumption to implement thermal protection. In other embodiments, when the temperature is below another threshold, the electronic device 100 heats the battery 142 to avoid the low temperature causing the electronic device 100 to be abnormally shut down. In other embodiments, when the temperature is below a further threshold, the electronic device 100 performs boosting of the output voltage of the battery 142 to avoid abnormal shutdown caused by low temperatures.
The touch sensor 180K, also referred to as a "touch device". The touch sensor 180K may be disposed on the display screen 194, and the touch sensor 180K and the display screen 194 form a touch screen, which is also called a "touch screen". The touch sensor 180K is for detecting a touch operation acting thereon or thereabout. The touch sensor may communicate the detected touch operation to the application processor to determine the touch event type. Visual output related to touch operations may be provided through the display 194. In other embodiments, the touch sensor 180K may also be disposed on the surface of the electronic device 100 at a different location than the display 194.
The bone conduction sensor 180M may acquire a vibration signal. In some embodiments, bone conduction sensor 180M may acquire a vibration signal of a human vocal tract vibrating bone pieces. The bone conduction sensor 180M may also contact the pulse of the human body to receive the blood pressure pulsation signal. In some embodiments, bone conduction sensor 180M may also be provided in a headset, in combination with an osteoinductive headset. The audio module 170 may analyze the voice signal based on the vibration signal of the sound portion vibration bone block obtained by the bone conduction sensor 180M, so as to implement a voice function. The application processor may analyze the heart rate information based on the blood pressure beat signal acquired by the bone conduction sensor 180M, so as to implement a heart rate detection function.
The keys 190 include a power-on key, a volume key, etc. The keys 190 may be mechanical keys. Or may be a touch key. The electronic device 100 may receive key inputs, generating key signal inputs related to user settings and function controls of the electronic device 100.
The motor 191 may generate a vibration cue. The motor 191 may be used for incoming call vibration alerting as well as for touch vibration feedback. For example, touch operations acting on different applications (e.g., photographing, audio playing, etc.) may correspond to different vibration feedback effects. The motor 191 may also correspond to different vibration feedback effects by touching different areas of the display screen 194. Different application scenarios (such as time reminding, receiving information, alarm clock, game, etc.) can also correspond to different vibration feedback effects. The touch vibration feedback effect may also support customization.
The indicator 192 may be an indicator light, may be used to indicate a state of charge, a change in charge, a message indicating a missed call, a notification, etc.
The SIM card interface 195 is used to connect a SIM card. The SIM card may be inserted into the SIM card interface 195, or removed from the SIM card interface 195 to enable contact and separation with the electronic device 100. The electronic device 100 may support 1 or N SIM card interfaces, N being a positive integer greater than 1. The SIM card interface 195 may support Nano SIM cards, micro SIM cards, and the like. The same SIM card interface 195 may be used to insert multiple cards simultaneously. The types of the plurality of cards may be the same or different. The SIM card interface 195 may also be compatible with different types of SIM cards. The SIM card interface 195 may also be compatible with external memory cards. The electronic device 100 interacts with the network through the SIM card to realize functions such as communication and data communication. In some embodiments, the electronic device 100 employs esims, i.e.: an embedded SIM card. The eSIM card can be embedded in the electronic device 100 and cannot be separated from the electronic device 100.
The model updating method provided by the embodiment of the application can be roughly divided into two parts: 1. the first working node selects a second working node participating in updating; 2. the first working node and the second working node update the own stored model respectively.
Fig. 3 illustrates a process in which a first worker node selects a second worker node to participate in an update. As shown in fig. 3, the process may include the following steps:
S301: and the first working node sends a first request to other working nodes belonging to the same subnet as the first working node under the condition that the first working node meets the updating condition.
The first request is used for requesting the other working nodes to participate in the model updating of the first working node. The number of other working nodes may be one or more.
Possibly, the update condition may be that the first working node is currently in an idle state, i.e. the first working node is not currently used by the user. Therefore, the first working node can be ensured not to influence the use of the user when the model is updated.
Possibly, the update condition may be that the network environment in which the first working node is currently located is a non-mobile data network environment. Therefore, the cost of the user can be saved when the first working node performs model updating, and no extra network cost is generated.
Possibly, the update condition may be that the first working node is currently in an idle state and the network environment in which the first working node is currently located is a non-mobile data network environment. Therefore, the first working node can be ensured not to influence the use of the user when the model is updated, and no extra network cost is generated, so that the cost of the user is saved.
Specifically, the range of the subnet may refer to the related description in fig. 1, which is not repeated herein.
S302: the other working nodes determine that they are in an updatable state.
Specifically, the updatable state may be that the working node is not currently participating in model updating of other working nodes, and the working node satisfies the update condition. For the description of the update condition, reference may be made to the description of the update condition for the first working node in S301, which is not repeated here.
S303: the other working nodes randomly choose whether to participate in the model update of the first working node.
Specifically, for some other working node, a request for model update initiated by a plurality of first working nodes may be received simultaneously. At this time, the first working node may randomly select one working node from the plurality of first working nodes to participate in the model update thereof.
S304: and if the model update of the first working node is selected to participate, sending a first response to the first working node.
Specifically, after determining to participate in the model update of the first working node, a first response is sent to the first working node. The first response is used to characterize that the other working node may participate in a model update of the first working node.
Possibly, if the other working node is in the non-updatable state, or the other working node is in the updatable state but does not select to participate in the model update of the first working node, the other working node may also send a first response to the first working node, which characterizes that the other working node does not participate in the model update of the first working node.
S305: the first working node selects k other working nodes from the m first responses as second working nodes.
Possibly, the first worker node may receive m first responses, indicating that m other worker nodes may participate in the model update of the first worker node, which may be marked as nodes participating in the update by the first worker node. Specifically, the first response may carry identification information of the other working node. The first working node may mark the working node as a node participating in the update through the identification information carried by the first response.
Specifically, the first working node may wait for a time t after sending the first request. The working node returning the first response in the t time is the node participating in updating. The value of t may be, for example, but not limited to, 5 milliseconds (ms), 10ms, 100ms, etc.
The first working node may randomly select k from m nodes participating in the update as the second working node. Wherein m and k are positive integers, and m is greater than or equal to k.
Specifically, the first working node may randomly sample k responses S (·) again from the m first responses. See S306 for specific how to respond again.
In the present application, the first working node may be denoted as n i, and the neighborhood node of the first working node n i (including the selected second working node) may be denoted as n j, where n j∈N(ni.
Fig. 4 illustrates a process in which a first working node and a second working node update their own stored models, respectively. As shown in fig. 4, the process may include the following steps:
S306: the first worker node sends a second request to the second worker node.
Specifically, the first working node randomly samples k responses S (·) again from the m first responses, which may specifically be that the first working node sends the second request to the second working node. Wherein the second request may be a request to obtain a gradient of the model and parameters of at least one model of the second working node. The parameters of the at least one model may be parameters of a model of a part of the model stored by the first working node and the second working node that is structurally identical.
S307: the second working node calculates a gradient of at least one parameter of its model with the model.
Specifically, the second working node, upon receiving the second request, calculates a gradient of at least one parameter of its local model (i.e., the model stored by the second working node) with the model.
At least one parameter of the model of the second operational node is noted { w j|nj∈S(N(ni)) }. Where w j represents at least one parameter of the model of the second operational node.
In particular, the model gradient calculated by the second working node may be based on a gradient on small batch data (mini-batch), which gradient is noted as { g j|nj∈S(N(ni)) }.
In particular, since the amount of user data (or sample data) of each working node is large, a subset of the entire user data (or sample data) can be divided into a plurality of small batch data. At the moment, the gradient of the second working node model can be calculated based on one of the small batch data, so that the calculation time can be reduced, the model training speed can be improved, and the accuracy of a calculation result can be ensured.
S308: the second working node sends at least one parameter and gradient of its model to the first working node.
S309: the first working node updates the model a first time and calculates a first impulse.
Specifically, after the first model update, the parameter expression of the model of the first working node is as follows:
Wherein, eta is a constant, characterizes the learning rate of the model, and the larger the eta value is, the larger the updating degree of the characterization model is. k is the number of the second working nodes. It is known that the number of parameters of the model may be plural, different parameters have respective gradients, and the above expression may be applied to each model parameter.
Illustratively, the parameters of the model may include parameter 1, parameter 2, parameter 3. The model of the first working node and the model of the second working node each comprise a parameter 1, a parameter 2 and a parameter 3. The updated parameter 1 of the first working node is noted asThe original parameter 1 of the first working node is denoted as w i,1 and the parameter 1 of the second working node is denoted as w j,1. The gradient in the first working node with respect to parameter 1w i,1 is g i,1 and the gradient in the second working node with respect to parameter 1w j,1 is g j,1. Then the first working nodeCan be calculated according to w i,1、wj,1、gi,1 and g j,1.
Specifically, the impulse is the difference between the model after update and before update. First impulse of
Possibly, in the process of actually updating the model, the first working node may not perform the first model update, but only calculate the value of the first impulse.
S310: the first working node sends a first impulse to the second working node.
S311: the second working node updates the model for the first time based on the first impulse.
Specifically, after the second working node receives the first impulse, updating at least one parameter w j of the model of the second working node to be
S312: the first worker node sends a third request to the second worker node.
Specifically, the first working node may send a third request to all the neighboring nodes participating in the update (including the k second working nodes described above). A third request may be used to request a new gradient to obtain a model of the second working node
S313: the second working node calculates a gradient across the subset of data.
Specifically, the neighborhood node that received the third request (including the k second working nodes described above) calculates a new gradient across its entire subset of data
314: The second working node sends the gradient across the subset of data to the first working node.
Specifically, all the above-mentioned neighborhood nodes participating in the update (including the above-mentioned k second working nodes) can return their new gradients to the first working node
S315: the first working node updates the model a second time and calculates a second impulse.
Specifically, the first worker node may make a second update to the first worker node's local model after collecting new gradients returned by ρ% (e.g., without limitation, 50%, 80%, etc.) of the neighborhood nodes (denoted P):
impulse after second model updating of first working node That is, the first working node can utilize the average value of the gradients of the received second working nodes to perform gradient descent to obtain the impulse of model update of the first working nodeAnd updating the model of the first working node according to the impulse.
The model parameters after the first working node updates the model for the second time can be expressed asIn particular, model parameters w i before being updated can be replaced byIs marked as
S316: the first working node sends a second impulse to the second working node.
Specifically, the first working node updates the impulse after the model is updated for the second timeThe second impulse.
S317: the second working node updates the model a second time based on the second impulse.
Specifically, the second working section updates parameters of its model according to the second impulse, and the updated model parameters may be expressed asIn particular, model parameters w j before being updated can be replaced byIs marked as
As can be seen from the integration of S309-S315, the first working node may perform model updating using at least one parameter of the received model of each second working node and the average of the received gradients of each second working node.
The above steps S309-S315 exemplify a process of performing model update with one gradient descent, and in the actual update process, the model update may be performed with multiple gradient descent.
Possibly, the multiple gradient descent to perform the model update may be that the second working node calculates the gradient g j on its small batch of data multiple times in S307, so that the first working node performs S309 multiple times to implement multiple gradient updates.
Possibly, the above-mentioned multiple gradient descent for model updating may also be that the second working node calculates its new gradient over the whole data subset multiple times in S313The first working node is caused to perform S315 multiple times to implement multiple gradient updates.
Possibly, the above-mentioned multiple gradient descent to perform model update may be a combination of the above two cases (i.e. multiple gradient g j in S307 and multiple new gradient in S313)). The number of gradient drops in both cases may be the same or different. The number of gradient decreases is not limited in the embodiment of the present application.
Not limited to the update methods listed in S309-S315, the following update methods may be used in the specific implementation:
mode one: the first working node may perform one or more gradient drops to update the model using the received gradients of the respective second working nodes.
In particular, when a plurality of gradient drops are performed, when the sub-gradient dropsFor the last gradient dropCan be recorded as
Mode two: and the first working node performs one or more gradient descent for model updating by using any parameter of the received model of each second working node, the average value of the parameters corresponding to the any parameter in the first working node and the received gradient of each second working node.
Order theMeans representing the mean of a parameter of the model of each second working node and the corresponding parameter of the model of the first node. Illustratively, if the first working node receives parameters of the model of the 3 second working nodes. The model of the first working node includes parameter 1, parameter 2, and parameter 3, and the parameters of the model sent by each second working node also include parameter 1, parameter 2, and parameter 3. ThenIs the average of the parameter 1 of the 3 second working nodes and the parameter 1 of the first working node, orFor the average of the parameters 2 of the 3 second working nodes and the parameters 2 of the first working node, orIs the average of the parameters 3 of the 3 second working nodes and the parameters 3 of the first working node. Namely:
Specifically, after the first model update, the parameters of the model of the first working node are
In particular, when a plurality of gradient drops are performed, when the sub-gradient dropsFor the last gradient dropCan be recorded asWherein,
Mode three: and the first working node performs one or more gradient descent by using any one of the received parameters of the models of the second working nodes, the average value of the parameters corresponding to the any one of the parameters in the first working node and the average value of the gradients of the received second working nodes, and performs model updating.
Order theMeans representing the mean of a parameter of the model of each second working node and the corresponding parameter of the model of the first node. For the followingThe second embodiment may refer to the second embodiment, and will not be described herein.
Specifically, after the first model update, the parameters of the model of the first working node are
In particular, when a plurality of gradient drops are performed, when the sub-gradient dropsFor the last gradient dropCan be recorded asWherein,
In addition, when the second working node transmits the first information to the first working node (S308 or S314), a relatively large bandwidth may be occupied, and the first information may be compressed or truncated. Specifically, the second working node may perform descending order arrangement on the absolute values of the gradients of the parameters, select a part of parameters with the absolute values of the gradients being ranked forward according to the network communication overhead budget, transmit the part of parameters, and update the part of parameters. Therefore, the data of the most important part or the most active part in the model can be selected for transmission, so that the network communication overhead is reduced.
Possibly, the data transmission between the first working node and the second working node (steps such as S308, S310, S314, S316, etc.) may use an encryption algorithm to process the transferred data, so as to ensure data security, further increase system security, form a decentralised lateral federal learning method, and ensure privacy of the user.
In particular, the encryption algorithm may be homomorphic encryption, semi-homomorphic encryption, or differential privacy methods in a trusted computing environment.
In the embodiment of the application, the model stored by the first working node and the model stored by the second working node have at least partially identical model structures, and for the partially identical model structures, the first working node can update the model through first information sent by the second working node which belongs to the same neighborhood as the first working node and data stored by the first working node. Wherein the first information may include at least one of the following information of the second working node transmitting the first information: at least one parameter of the model, gradient, and impulse of the model. Compared with the prior art, the model updating method provided by the embodiment of the application is a decentralised model updating method, namely the method can not depend on a central node, and the first working node updates the model on the first working node by utilizing the model related information corresponding to the second working node transmitted by one or more second working nodes of the same sub-network to which the first working node belongs. In addition, the method does not need to upload the user data to the cloud, and only needs to update the model of the first working node through the model, gradient, impulse of the model and other parameters of the second working node, so that privacy safety of the user can be ensured. In addition, each working node can update the model of the first working node by combining the stored user data and the first information, and the personalized model can be customized for the working node by updating the model according to the stored user data, so that more accurate service is provided for the user. In addition, the first working node can directly use the data stored by the first working node to update the data without waiting for the calculation results of other working nodes, and the method has high calculation speed and small time delay.
Next, referring to fig. 3 to fig. 4, a model updating method provided by an embodiment of the present application is described.
As shown in fig. 5, the model updating method may include the following steps:
S501: the first working node receives first information sent by at least one second working node.
S502: and the first working node updates the model according to the first information and the model and the data stored by the first working node.
Specifically, the at least one second working node is a working node belonging to the same subnetwork as the first working node. The first information may include at least one of the following information of the second working node transmitting the first information: at least one parameter of the model, gradient, and impulse of the model.
In particular, the model stored by the first working node has at least partially the same model structure as the model stored by the second working node.
Possibly, the model stored by the first working node has the same model structure as the model stored by the second working node.
In one possible embodiment, the number of second working nodes is k. Prior to S501, the method may further include a process of selecting the second working node, which may refer to the related description of fig. 3, which is not described herein.
In a possible embodiment, after S502, the method may further include: the first working node transmits the impulse of the updated model to the at least one second working node so that the second working node performs model updating.
Specifically, the impulse of the model updated by the first working node is the first impulse mentioned in S309The specific calculation process may refer to the related description in S309, and will not be described herein.
The process of updating the model by the second working node may refer to the relevant descriptions of S310-S311, which are not described herein.
In a possible embodiment, after the first working node selects k second working nodes, before S501, the method may further include: the first working node sends a request to the second working node to obtain its first information.
In one possible embodiment, the first information comprises at least one parameter and a gradient of a model of the second working node that sent the first information.
The mode that the first working node updates the model according to the first information and the model and the data stored by the first working node may include the following modes:
Mode one: the first working node performs one or more gradient descent by using the received gradient of each second working node to update the model.
The specific process of the first embodiment may refer to the calculation process of the first embodiment illustrated in the embodiment of fig. 4, which is not described herein.
Mode two: and the first working node performs one or more gradient descent by using any one of the received parameters of the models of the second working nodes and the average value of the parameters corresponding to the any one of the parameters in the first working node and the received gradient of each second working node to obtain impulse of model updating of the first working node, and updates the model of the first working node according to the impulse.
The specific process of the second mode may refer to the calculation process of the second mode listed in the embodiment of fig. 4, which is not described herein.
Mode three: and the first working node performs one or more gradient descent by using any one of the received parameters of the models of the second working nodes, the average value of the parameters corresponding to the any one of the parameters in the first working node and the average value of the gradients of the received second working nodes, and performs model updating.
The specific process of the third mode may refer to the calculation process of the third mode listed in the embodiment of fig. 4, which is not described herein.
Mode four: and the first working node performs gradient descent once or a plurality of times by using at least one parameter of the received model of each second working node and the average value of the received gradients of each second working node to obtain impulse of model updating of the first working node, and updates the model of the first working node according to the impulse.
The specific process of the fourth embodiment may refer to the calculation processes listed in S309-S315 in the embodiment of fig. 4, and will not be described herein.
In one possible embodiment, the first information is compressed or truncated information.
In one possible embodiment, the first information is encrypted in a homomorphic manner, or encrypted in a semi-homomorphic manner, or encrypted in a trusted computing environment by using a differential privacy method.
In the embodiment of the application, the model stored by the first working node and the model stored by the second working node have at least partially identical model structures, and for the partially identical model structures, the first working node can update the model through first information sent by the second working node which belongs to the same neighborhood as the first working node and data stored by the first working node. Wherein the first information may include at least one of the following information of the second working node transmitting the first information: at least one parameter of the model, gradient, and impulse of the model. Compared with the prior art, the model updating method provided by the embodiment of the application is a decentralised model updating method, namely the method can not depend on a central node, and the first working node updates the model on the first working node by utilizing the model related information corresponding to the second working node transmitted by one or more second working nodes of the same sub-network to which the first working node belongs. In addition, the method does not need to upload the user data to the cloud, and only needs to update the model of the first working node through the model, gradient, impulse of the model and other parameters of the second working node, so that privacy safety of the user can be ensured. In addition, each working node can update the model of the first working node by combining the stored user data and the first information, and the personalized model can be customized for the working node by updating the model according to the stored user data, so that more accurate service is provided for the user. In addition, the first working node can directly use the data stored by the first working node to update the data without waiting for the calculation results of other working nodes, and the method has high calculation speed and small time delay.
Those skilled in the art will appreciate that implementing all or part of the above-described methods in accordance with the embodiments may be accomplished by way of a computer program stored on a computer readable storage medium, which when executed may comprise the steps of the embodiments of the methods described above. The storage medium may be a magnetic disk, an optical disk, a read-only memory (ROM), a random-access memory (random access memory, RAM), or the like.
The steps in the method of the embodiment of the application can be sequentially adjusted, combined and deleted according to actual needs.
The method provided by the embodiment of the application can execute each step through the corresponding unit or module. The modules in the device of the embodiment of the application can be combined, divided and deleted according to actual needs.
The above embodiments are only for illustrating the technical solution of the present application, and not for limiting the same; although the application has been described in detail with reference to the foregoing embodiments, it will be understood by those of ordinary skill in the art that: the technical scheme described in the foregoing embodiments can be modified or some technical features thereof can be replaced by equivalents; such modifications and substitutions do not depart from the spirit of the application.
Claims (16)
1. A method of model updating, the method comprising:
The first working node receives first information sent by at least one second working node; wherein the at least one second working node is a working node belonging to the same sub-network as the first working node;
The first working node updates the model according to the first information and the model and data stored by the first working node;
Wherein each of the first information includes at least one of the following information of the second working node that transmitted the first information: at least one parameter of the model, gradient, and impulse of the model; wherein the gradient refers to a gradient of the at least one parameter, the impulse of the model is a difference between a parameter after model update and a parameter before update, and the model stored by the first working node and the model stored by the at least one second working node have at least partially the same model structure; determining impulse of the updated model according to a difference value between a parameter updated by the updated model and a parameter stored by the first working node before the model is updated;
The first working node sends the impulse of the updated model to the at least one second working node so that the at least one second working node performs model updating.
2. The method of claim 1, wherein the model stored by the first working node has the same model structure as the model stored by the at least one second working node.
3. A method according to claim 1 or 2, wherein the number of second working nodes is k;
before the first working node receives the first information sent by the at least one second working node, the method further includes:
Under the condition that the updating condition is met, the first working node sends a first request to other working nodes belonging to the same subnet as the first working node; the first request is used for requesting the other working nodes to participate in the model updating of the first working node;
The first working node receives a first response sent by the other working nodes; wherein the first response is used for representing whether the other working nodes participate in the model update of the first working node, and the number of the other working nodes participating in the model update of the first working node is m;
The first working node selects k working nodes from m other working nodes and sends a request for acquiring the first information to the k working nodes; wherein the k working nodes are the second working nodes.
4. The method according to claim 1 or 2, wherein before the first working node receives the first information sent by the at least one second working node, the method further comprises: the first working node sends a request to the at least one second working node to obtain first information of the at least one second working node.
5. The method according to claim 1 or 2, wherein the first information comprises at least one parameter and gradient of a model of a second working node that sent the first information;
the first working node performing model updating on the model according to the first information and the model and data stored by the first working node comprises the following steps:
The first working node performs one or more gradient descent for model updating by using any one of the received parameters of the models of the second working nodes, the average value of the parameters corresponding to the any one of the parameters in the first working node and the received gradient of the second working nodes; or alternatively, the first and second heat exchangers may be,
The first working node performs one or more gradient descent by using at least one parameter of the received model of each second working node and the average value of the received gradient of each second working node to update the model; or alternatively, the first and second heat exchangers may be,
And the first working node performs one or more gradient descent by using any one of the received parameters of the models of the second working nodes, the average value of the parameters corresponding to any one of the parameters in the first working node and the average value of the gradients of the received second working nodes, and updates the model.
6. The method of claim 1 or 2, wherein the first information comprises a gradient of a model of a second working node that sent the first information;
The first working node performing model updating on the model according to the first information and the model and data stored by the first working node comprises the following steps: and the first working node performs one or more gradient descent by using the received gradient of each second working node to update the model.
7. A method according to claim 1 or 2, wherein the first information is compressed or truncated information.
8. The method of claim 1 or 2, wherein the first information is information encrypted using homomorphic encryption, or semi-homomorphic encryption, or the first information is information encrypted using a differential privacy method in a trusted computing environment.
9.A method according to claim 1 or 2, wherein the model stored by the first working node is a machine learning model.
10. The method of claim 9, wherein the machine learning model is a gradient update-based machine learning model comprising a deep neural network model or a support vector machine, SVM, model.
11. An apparatus comprising a processor and a memory for storing computer program instructions, the processor executing the computer program instructions in the memory when the apparatus is running to cause the apparatus to perform the method of any one of claims 1 to 10.
12. The apparatus of claim 11, wherein the apparatus is an electronic device or a portion of the electronic device.
13. The apparatus of claim 11, wherein the apparatus is a system on chip SoC.
14. A model updating system, comprising a first working node, and at least one second working node, wherein the first working node is an apparatus according to any one of claims 11 to 13, and the second working node is a working node belonging to the same subnetwork as the first working node.
15. A computer readable storage medium having instructions stored therein which, when run on a computer or processor, cause the computer or processor to perform the method of any of claims 1-10.
16. A computer program product comprising instructions which, when run on a computer or processor, cause the computer or processor to perform the method of any of claims 1-10.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/120135 WO2021068926A1 (en) | 2019-10-12 | 2020-10-10 | Model updating method, working node, and model updating system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910969404 | 2019-10-12 | ||
CN2019109694044 | 2019-10-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112651510A CN112651510A (en) | 2021-04-13 |
CN112651510B true CN112651510B (en) | 2024-09-06 |
Family
ID=75343254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911025363.XA Active CN112651510B (en) | 2019-10-12 | 2019-10-25 | Model updating method, working node and model updating system |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112651510B (en) |
WO (1) | WO2021068926A1 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113033828B (en) * | 2021-04-29 | 2022-03-22 | 江苏超流信息技术有限公司 | Model training method, using method, system, credible node and equipment |
CN114301573B (en) * | 2021-11-24 | 2023-05-23 | 超讯通信股份有限公司 | Federal learning model parameter transmission method and system |
CN116527561A (en) * | 2022-01-20 | 2023-08-01 | 北京邮电大学 | Residual error propagation method and residual error propagation device of network model |
WO2024036567A1 (en) * | 2022-08-18 | 2024-02-22 | Huawei Technologies Co., Ltd. | Methods and apparatuses for learning an articifical intelligence or machine learning model |
CN118158737A (en) * | 2022-12-05 | 2024-06-07 | 维沃移动通信有限公司 | Information transmission method, information transmission device and communication equipment |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108446770A (en) * | 2017-02-16 | 2018-08-24 | 中国科学院上海高等研究院 | A kind of slow node processing system and method for distributed machines study based on sampling |
CN108491928A (en) * | 2018-03-29 | 2018-09-04 | 腾讯科技(深圳)有限公司 | Model parameter training method, device, server and storage medium |
CN108924910A (en) * | 2018-07-25 | 2018-11-30 | Oppo广东移动通信有限公司 | The update method and Related product of AI model |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11488008B2 (en) * | 2017-05-05 | 2022-11-01 | Intel Corporation | Hardware implemented point to point communication primitives for machine learning |
CN107169513B (en) * | 2017-05-05 | 2019-10-18 | 第四范式(北京)技术有限公司 | Control distributed machines learning system and its method that data use sequence |
JP6773618B2 (en) * | 2017-09-04 | 2020-10-21 | 株式会社東芝 | Learning equipment, information processing equipment, learning methods and programs |
CN109754060B (en) * | 2017-11-06 | 2023-08-25 | 阿里巴巴集团控股有限公司 | Training method and device for neural network machine learning model |
CN108280522B (en) * | 2018-01-03 | 2021-08-20 | 北京大学 | Plug-in distributed machine learning calculation framework and data processing method thereof |
CN109409125B (en) * | 2018-10-12 | 2022-05-31 | 南京邮电大学 | Data acquisition and regression analysis method for providing privacy protection |
CN109299781B (en) * | 2018-11-21 | 2021-12-03 | 安徽工业大学 | Distributed deep learning system based on momentum and pruning |
CN109740755B (en) * | 2019-01-08 | 2023-07-18 | 深圳市网心科技有限公司 | Data processing method and related device based on gradient descent method |
-
2019
- 2019-10-25 CN CN201911025363.XA patent/CN112651510B/en active Active
-
2020
- 2020-10-10 WO PCT/CN2020/120135 patent/WO2021068926A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108446770A (en) * | 2017-02-16 | 2018-08-24 | 中国科学院上海高等研究院 | A kind of slow node processing system and method for distributed machines study based on sampling |
CN108491928A (en) * | 2018-03-29 | 2018-09-04 | 腾讯科技(深圳)有限公司 | Model parameter training method, device, server and storage medium |
CN108924910A (en) * | 2018-07-25 | 2018-11-30 | Oppo广东移动通信有限公司 | The update method and Related product of AI model |
Also Published As
Publication number | Publication date |
---|---|
WO2021068926A1 (en) | 2021-04-15 |
CN112651510A (en) | 2021-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110364151B (en) | Voice awakening method and electronic equipment | |
CN111132234B (en) | Data transmission method and corresponding terminal | |
CN112651510B (en) | Model updating method, working node and model updating system | |
CN111552451B (en) | Display control method and device, computer readable medium and terminal equipment | |
CN114079893B (en) | Bluetooth communication method, terminal device and computer readable storage medium | |
CN113448482B (en) | Sliding response control method and device of touch screen and electronic equipment | |
WO2022022319A1 (en) | Image processing method, electronic device, image processing system and chip system | |
CN113490291B (en) | Data downloading method and device and terminal equipment | |
CN113472861B (en) | File transmission method and electronic equipment | |
CN114221402A (en) | Charging method and device of terminal equipment and terminal equipment | |
CN113596919B (en) | Data downloading method and device and terminal equipment | |
CN114554012B (en) | Incoming call answering method, electronic equipment and storage medium | |
CN115665632B (en) | Audio circuit, related device and control method | |
CN109285563B (en) | Voice data processing method and device in online translation process | |
CN116048772B (en) | Method and device for adjusting frequency of central processing unit and terminal equipment | |
CN114466238B (en) | Frame demultiplexing method, electronic device and storage medium | |
CN115393676A (en) | Gesture control optimization method and device, terminal and storage medium | |
CN114116610A (en) | Method, device, electronic equipment and medium for acquiring storage information | |
CN116346982B (en) | Method for processing audio, electronic device and readable storage medium | |
CN115734323B (en) | Power consumption optimization method and device | |
CN116708317B (en) | Data packet MTU adjustment method and device and terminal equipment | |
CN116087930B (en) | Audio ranging method, device, storage medium, and program product | |
CN116048769B (en) | Memory recycling method and device and terminal equipment | |
CN114398320A (en) | Distributed data searching method and index file sharing method | |
CN117991954A (en) | Device input method, system, electronic device and storage medium |
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 |