This disclosure relates generally to neural network training, and, more particularly, to methods and apparatus for federated training of a neural network using trusted edge devices.
Deep learning (DL) is an important enabling technology for the revolution currently underway in artificial intelligence, driving truly remarkable advances in fields such as object detection, image classification, speech recognition, natural language processing, and many more. In contrast with classical machine learning, which often involves a time-consuming and expensive step of manual extraction of features from data, deep learning leverages deep artificial neural networks (NNs), including convolutional neural networks (CNNs), to automate the discovery of relevant features in input data.
Training of a neural network is an expensive computational process. Such training often requires many iterations until an acceptable level of training error is reached. In some examples, millions of training iterations of might be needed to arrive at the global minimum error. Processed by a single entity, such iterations may take days, or even weeks, to complete. To address this, distributed training, where many different edge devices are involved in the training process is used to distribute the processing to multiple nodes.
The figures are not to scale. In general, the same reference numbers will be used throughout the drawing(s) and accompanying written description to refer to the same or like parts.
Federated Learning enables a model representing a neural network to be trained using data across many edge systems without having to centralize the data used for such training. Edge devices perform local training, and provide training results to an aggregator device, which aggregates the training results among the multiple edge devices to update a centralized model, which can then be re-distributed to the edge devices for subsequent training and/or use. Such an approach facilitates many advantages such as, for example, bandwidth conservation (training data is already present at the edge device) and privacy (potentially private training data is not distributed outside of the edge that trained using that private training data).
However, because Federated Learning requires that the model be trained at the edge, various attack vectors to either discover or tamper with the model might be used. For example, an edge may lie about its training and submit training results that bias and/or disrupt the model (e.g., a malicious update attack). Malicious update attacks harmful to the model itself. Because existing aggregator devices cannot distinguish between legitimate and malicious updates, the aggregator may incorporate malicious results into the updated model. Some existing approaches attempt to mitigate these potential attacks by utilizing a Byzantine Gradient Descent when aggregating training results. The Byzantine Gradient Descent approach enables filtering of extreme edge results, provided the number of malicious updates is less than some predefined constant. The higher the constant, the greater the negative impact that the algorithm has on model convergence. If there are too many malicious updates, the aggregator cannot assure robustness.
An edge may attempt to discover the model parameters and/or structures, which may themselves be intellectual property (model stealing attacks). An edge may conduct an adaptive data extraction attack to attempt to reconstruct another edge's private data (e.g., a data extraction attack). An edge may lie about how much data the edge has used for training to attempt to gain larger influence over aggregated results (e.g., a data-size influence attack). An edge may conduct a Sybil attack in order to gain larger influence over aggregated results (e.g., a Sybil influence attack). An edge may poison their training data to introduce backdoors into the model (e.g., a data poisoning attack), and may even adapt the poisoned data over time to achieve limited forms of other attacks (e.g., an adaptive data poisoning attack).
While examples disclosed herein are described in the context of training and/or utilizing a neural network, any other machine-learning model trained using any approach such as, for example, gradient averaging, linear regression, logistic regression, support vector machines, etc.
While the illustrated example of
In examples disclosed herein, the aggregator device 110 is implemented by a server. However, any other type of computing platform may additionally or alternatively be used such as, for example a desktop computer, a laptop computer, etc. In examples disclosed herein, the TEE 112, implemented at the aggregator device 110 is implemented using Intel® Software Guard Extensions (SGX) technology to ensure that code executed and/or data stored at the aggregator device 110 is trusted and/or protected. However, any other type of trusted execution environment may additionally or alternatively be used. In examples disclosed herein, the example aggregator device 110 throttles the ability of edge devices to submit updates to the model, thereby limiting the ability of an attacker to maliciously affect the model. When implementing the TEE 112, the example aggregator 110 may be thought of as a trusted aggregator.
The network 120 of the illustrated example is a public network such as, for example, the Internet. However, any other network could be used. For example, some or all of the network 120 may be a company's intranet network (e.g., a private network), a user's home network, a public network (e.g., at a coffee shop). In examples disclosed herein, the network 120 transmits Ethernet communications. However, any other past, present, and/or future communication protocols may additionally or alternatively be used.
The example edge device(s) 130, 135, 137 of the illustrated example of
In examples disclosed herein, the TEE 132, implemented at the edge device 130 is implemented using Intel® SGX technology to ensure that code executed and/or data stored at the aggregator device 110 is trusted and/or protected. However, any other type of trusted execution environment may additionally or alternatively be used. When implementing the TEE 132, the example edge device 130 may be thought of as a trusted edge device.
In some examples, the TEE 132, implemented at the edge device 130, is used in combination with trusted input hardware of the edge device 130. Using trusted input hardware enables training to be performed with confidence that the training data has not been tampered with by a third party (e.g., an attacker attempting to modify training data).
In some other examples, the TEE 132, when implemented at the edge device, utilizes data update throttling to limit the ability of an attacker to perform training using un-trusted data.
The example model update receiver 210 of the illustrated example of
In some examples, the model update receiver 210 throttles the aggregation of updates. For example, the model update receiver 210 may determine whether a model update provided by an identified edge device has been used to update the central model in the past N rounds. Such throttling ensures that any given edge device is not allowed to have an excessive amount of influence on the central model. If the identified edge device has provided an update that has been used in the last N rounds, the example model update receiver 210 discards and/or ignores the model update from the edge device. If the identified edge device has not provided an update that has been used in the last N rounds, the example model update receiver 210 provides the received model update to the example model updater 230, thereby allowing the model update to be used when updating the central model, thereby allowing a given node to influence the central model stored in the central model data store 240 every N training iterations.
The example model updater 230 of the illustrated example of
The example central model data store 240 of the illustrated example of
The example model provider 250 of the illustrated example of
The example training data instructor 260 of the illustrated example of
In the illustrated example of
The example local data provider 370 of the illustrated example of
The example model receiver 305 of the illustrated example of
The example local model data store 310 of the illustrated example of
The example neural network processor 315 of the illustrated example of
The example neural network trainer 320 of the illustrated example of
The example local data throttler 325 of the illustrated example of
The example local data throttler 325 determines, based on an instruction received from the aggregator device 110, whether to commit any uncommitted training data. In examples disclosed herein, the example aggregator device 110 may instruct the edge device to use new training data based on a number of training rounds that have elapsed since local data was allowed to be included in the training data. For example, additional local data may be allowed to be incorporated only every three training rounds. If the example local data throttler 325 determines that new training data will be allowed, the example local data throttler 325 commits the hashes stored in the hash ledger 337. The example local data throttler 325 transmits an acknowledgement message to the aggregator device 110 acknowledging the commitment of the training data.
In some examples, the local data throttler 325 is instructed that new local data should be committed every N training rounds. In such an example, the local data throttler 325 determines whether N training rounds have elapsed since additional and/or new local model data was allowed to be used as part of the model training process. In some examples, the value for N is provided by the example aggregator device 110 when transmitting the model to the edge device 130. If the example local data throttler 325 determines that N rounds have not yet elapsed, new local data is not allowed to be incorporated in the training process. If the example update transmission throttler 325 determines that the at least N training rounds have elapsed since the new local data was last allowed to be incorporated in the model training process, the example local data throttler 325 enables the inclusion of new local data in the model training process.
The example model update provider 330 of the illustrated example of
The example local data accesser 335 of the illustrated example of
The example hash ledger 337 of the illustrated example of
The example query handler 340 of the illustrated example of
The example input scanner 345 of the illustrated example of
The example query ledger 350 of the illustrated example of
The example trusted input hardware 360 of the illustrated example of
The example local data provider 370 of the illustrated example of
While an example manner of implementing the example aggregator device 110 of
While an example manner of implementing the edge device 130 of
As used herein, the phrase “in communication,” including variations thereof, encompasses direct communication and/or indirect communication through one or more intermediary components, and does not require direct physical (e.g., wired) communication and/or constant communication, but rather additionally includes selective communication at periodic intervals, scheduled intervals, aperiodic intervals, and/or one-time events.
A flowchart representative of example hardware logic or machine readable instructions for implementing the example aggregator device 110 of
Flowcharts representative of example hardware logic or machine readable instructions for implementing the example edge device 130 of
As mentioned above, the example processes of
“Including” and “comprising” (and all forms and tenses thereof) are used herein to be open ended terms. Thus, whenever a claim employs any form of “include” or “comprise” (e.g., comprises, includes, comprising, including, having, etc.) as a preamble or within a claim recitation of any kind, it is to be understood that additional elements, terms, etc. may be present without falling outside the scope of the corresponding claim or recitation. As used herein, when the phrase “at least” is used as the transition term in, for example, a preamble of a claim, it is open-ended in the same manner as the term “comprising” and “including” are open ended. The term “and/or” when used, for example, in a form such as A, B, and/or C refers to any combination or subset of A, B, C such as (1) A alone, (2) B alone, (3) C alone, (4) A with B, (5) A with C, and (6) B with C.
Each edge 130, 137 trains the model using local data. (Block 420, 421). In examples disclosed herein, the neural network trainer 320 of the example edge device 130 instructs the neural network processor 315 to train using the local data accessed by the local data accesser 335. As a result of the training, a model update for that training round is created and is stored in the local model data store 310. In examples disclosed herein, the model update can be computed with any sort of model learning algorithm such that the aggregation function does not require access to the original data such as, for example, Stochastic Gradient Descent.
Each edge 130, 137 transmits its model update to the aggregator device 110 for aggregation. (Blocks 430, 431). The example model update receiver 210 of the example aggregator device 110 accesses the results provided by the edge devices 130, 137. (Block 440). In some examples, the model updates are aggregated as they arrive at the aggregator 110 (e.g., in a streaming average). In some examples, Byzantine Gradient Descent is used to exclude extreme model update results. In the illustrated example of
Using the aggregated model updates, the example model updater 230 of the example aggregator device 110 updates the model stored in the central model data store 240. (Block 450). The updated model then serves as a new model for the next training iteration, and control proceeds to block 410 where the process of
If the example training data instructor 260 determines that no new training data is allowed (e.g., block 470 returns a result of NO), the example process of
If the example training data instructor 260 determines that new training data will be allowed (e.g., block 470 returns a result of YES), the example training data instructor 260 transmits an instruction to the edge device(s) to commit any new training data that has been collected. (Block 475). The commitment of new training data at the edge device is described below in connection with
Once all expected commitment messages are received (e.g., block 485 returns a result of NO), the example process of
If the training data is not trusted (e.g., block 506 returns a result of NO), the example local data accesser 335 validates the new training data. (Block 509). In examples disclosed herein, validation may be performed by, for example, comparing the training data against previously submitted training data. However, any other approach to validating training data may additionally or alternatively be used.
Based on the validation of block 509, the example local data accesser 335 determines whether to allow use of the new training data. (Block 512). If the new training data is not allowed to be used (e.g., block 512 returns a result of NO), the example process of
The example local data throttler 325 saves the hash in the hash ledger 337 in an uncommitted state. (Block 518). In the uncommitted state, the local training data corresponding to the stored hash is not allowed to be used in the training process. As disclosed in connection with
If the example local data throttler 325 determines that new training data will be allowed (e.g., block 533 returns a result of YES), the example local data throttler 325 commits the hashes stored in the hash ledger 337. (Block 536).
The example local data throttler 325 then transmits an acknowledgement message to the aggregator device 110 acknowledging the commitment of the training data. (Block 539). With reference to blocks 480 and 485 of
Returning to block 533, in the event that the example local data throttler 325 determines that no new training data will be allowed in the instant training round (e.g., block 533 returns a result of NO), the example model receiver 305 receives the model and stores the model in the local model data store 310. In some examples, multiple versions of the model may be stored in the example model data store 310 to, for example, allow for training to be performed based on the latest central model, but querying to be performed based on a prior model (to reduce the likelihood that a model could be discovered via a training-based attack.
If the example local data throttler 325 determines that new training data will not be allowed (e.g., block 533 returns a result of NO), the example local data accesser 335 applies the model received from the aggregator device 110. (Block 542). The example local data accesser 335 collects the local training data that is to be used during training of the model. (Block 543). In examples disclosed herein, a hash of the local training data is compared against the committed hashes stored in the hash ledger 337 by the local data accesser 335. Only those local data items having corresponding hashes stored in the hash ledger 337 are allowed to be used for training. That is, if the local data accesser 335 determines that the hash of the local training data does not match any of the committed hashes of the prior training data (e.g., suggesting that the local training data has been tampered with), that local training data is not allowed to be used for training. For example, using an adaptive data the attack, an attacker may submit different training data rapidly in an attempt to damage the integrity of the model.
The example neural network trainer 320 trains the model implemented by the neural network processor 315. (Block 545). In examples disclosed herein, the neural network trainer 320 trains the model using local training data collected by the local data accesser 335. After training is complete, control proceeds to blocks 430 and/or 431 of
While in the illustrated example of
The example query handler 340 determines whether the query source is trusted. (Block 620). In examples disclosed herein, the query source is trusted when the query originates from the trusted input hardware 360, and the query sources not trusted when the query originates from the local data provider 370. However, any other approach for determining whether the query sources is trusted may additionally or alternatively be used such as, for example, validating a hash provided with the query. If the query sources not trusted (e.g., block 620 returns a result of NO), the example query handler 340 stores a record of the query in the query ledger 350. (Block 625). The records stored in the example query ledger 350 enables the query handler 340 to identify when queries were received and/or executed.
The example query handler 340 determines whether enough time has elapsed since a prior query. (Block 630). Reverse engineering attacks typically require far more model queries than legitimate use cases, especially when the attacker does not have access to the data used to train the model (a typical precondition of federated learning systems). Many TEEs provide trusted time services where the code executing in the TEE can be assured how much time has passed since the code began executing. In examples disclosed herein, such trusted time components are used to ensure a maximum total number of queries per second that would suffice for the use case, but severely limit reverse engineering attacks. In examples disclosed herein, the query handler 340 compares a timestamp representing a time at which the query was received against timestamp stored in the query ledger 350. In examples disclosed herein, the example query handler 340 determines that enough time is elapsed since a prior query when the smallest difference between the timestamp of the present query and any prior query stored in the example query ledger 350 is greater than a threshold amount of time. In examples disclosed herein the threshold amount of time is one query per second. However, any other threshold may additionally or alternatively be used. Using a threshold amount of time ensures that untrusted query sources are not allowed to repeatedly submit queries in an attempt to discover the model stored in the local model data store 310. The success of this validation greatly depends on the query rate (e.g., threshold amount of time) required to meet the intended functionality and the query rate required to attack the system. Put another way, a “query budget” is used that is intended to be sufficient for legitimate tasks, but insufficient for reverse engineering attacks.
If the example query handler 340 determines that enough time has not elapsed since the prior query (e.g., block 630 returns a result of NO), the example query handler 340 rejects the query. (Block 635). In examples disclosed herein, the query handler 340 provides a message to the query source indicating that the query has been rejected. However, in some examples, no response message is provided to the query source.
If the example query handler 340 determines that enough time has elapsed since the prior query (e.g., block 630 returns a result of YES), the example input scanner 345 analyzes the received query to determine whether the input appears to be synthetic. (Block 640). Reverse engineering attacks on federated models will typically involve synthesized data of some sort, as the attacker does not have access to the full training dataset. Synthesized data may appear statistically different than real data (e.g., the local data used to train the model). That is, the same TEE 132 training and running queries against the model would provide the very integrity needed to run such input analysis-based reverse engineering detection. In examples disclosed herein, a query is considered to be synthetic based on its similarity to the local data that was used to train the model. In some examples, similarity to local data may be determined based on respective hashes of the prior queries as compared to a hash of the received query. If the query appears to be synthetic (e.g., block 640 returns a result of YES), the example query handler 340 rejects the query. (Block 635).
If the query does not appear to be synthetic (e.g., block 640 returns result of NO), the example input scanner determines an amount of information that would be leaked by executing and/or providing a response to the query. (Block 650). The example input scanner 345 determines whether the amount of information that may be leaked by executing and or providing a response to the query is below a threshold. (Block 660). In some examples, the example input scanner 345 computes an amount of information that may be leaked with respect to the individual query that has been requested to be executed. Amounts of information leakage on any other time scale may additionally or alternatively be used such as, for example, for the lifetime of the operation of the edge device, over a past amount of time (e.g., ten minutes, one hour, one week), with respect to the current model stored in the local model data store 310, etc. If the total amount of information leakage is above the threshold (e.g., block 660 returns a result of NO), the example query handler rejects the query. (Block 635).
If the total amount of information leakage is below the threshold (e.g., block 660 returns a result of YES), or if the query source is trusted (e.g., block 620 returns a result of YES), then the query will be processed. The example query handler 340 selects a model to be used for the processing of the query. (Block 665). In examples disclosed herein, the model from the model from the prior training round is selected. Selecting the model from the prior training round ensures that a model that may have been modified by training that may have occurred at the edge device is not used. Moreover, such an approach reduces the likelihood that the selected model might be discovered by repeatedly querying the model. In some examples, the aggregator device may restrict the ability to train a model at a particular edge device (e.g., an edge device may only be allowed to train every N rounds), in which case, the query handler 340 may select the most recent model provided by the aggregator device 110 during a non-training round. In some examples, the selected model may be the model of the current round (e.g., if training is not enabled for that edge device for that round).
The example query handler 340 causes the neural network to classify the input data using the selected model stored in the local model data store 310. (Block 670). The example query handler 340 then provides a classification results to the query source. (Block 680). The example process 600 the illustrated example of
The processor platform 700 of the illustrated example includes a processor 712. The processor 712 of the illustrated example is hardware. For example, the processor 712 can be implemented by one or more integrated circuits, logic circuits, microprocessors, GPUs, DSPs, or controllers from any desired family or manufacturer. The hardware processor may be a semiconductor based (e.g., silicon based) device. In this example, the processor implements the example model update receiver 210, the example model updater 230, and/or the example model provider 250. In some examples, the example model update receiver 210, the example model updater 230, the example model provider 250, and/or the example training data instructor 260 are implemented within the trusted execution environment 112.
The processor 712 of the illustrated example includes a local memory 713 (e.g., a cache). The local memory 713 implements the example model data store 240 (which may be implemented as a part of the trusted execution environment 112). The processor 712 of the illustrated example is in communication with a main memory including a volatile memory 714 and a non-volatile memory 716 via a bus 718. The volatile memory 714 may be implemented by Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAMBUS® Dynamic Random Access Memory (RDRAM®) and/or any other type of random access memory device. The non-volatile memory 716 may be implemented by flash memory and/or any other desired type of memory device. Access to the main memory 714, 716 is controlled by a memory controller.
The processor platform 700 of the illustrated example also includes an interface circuit 720. The interface circuit 720 may be implemented by any type of interface standard, such as an Ethernet interface, a universal serial bus (USB), a Bluetooth® interface, a near field communication (NFC) interface, and/or a PCI express interface.
In the illustrated example, one or more input devices 722 are connected to the interface circuit 720. The input device(s) 722 permit(s) a user to enter data and/or commands into the processor 712. The input device(s) can be implemented by, for example, an audio sensor, a microphone, a camera (still or video), a keyboard, a button, a mouse, a touchscreen, a track-pad, a trackball, isopoint and/or a voice recognition system.
One or more output devices 724 are also connected to the interface circuit 720 of the illustrated example. The output devices 724 can be implemented, for example, by display devices (e.g., a light emitting diode (LED), an organic light emitting diode (OLED), a liquid crystal display (LCD), a cathode ray tube display (CRT), an in-place switching (IPS) display, a touchscreen, etc.), a tactile output device, a printer and/or speaker. The interface circuit 720 of the illustrated example, thus, typically includes a graphics driver card, a graphics driver chip and/or a graphics driver processor.
The interface circuit 720 of the illustrated example also includes a communication device such as a transmitter, a receiver, a transceiver, a modem, a residential gateway, a wireless access point, and/or a network interface to facilitate exchange of data with external machines (e.g., computing devices of any kind) via a network 726. The communication can be via, for example, an Ethernet connection, a digital subscriber line (DSL) connection, a telephone line connection, a coaxial cable system, a satellite system, a line-of-site wireless system, a cellular telephone system, etc.
The processor platform 700 of the illustrated example also includes one or more mass storage devices 728 for storing software and/or data. Examples of such mass storage devices 728 include floppy disk drives, hard drive disks, compact disk drives, Blu-ray disk drives, redundant array of independent disks (RAID) systems, and digital versatile disk (DVD) drives.
The machine executable instructions 732 of
The processor platform 800 of the illustrated example includes a processor 812. The processor 812 of the illustrated example is hardware. For example, the processor 812 can be implemented by one or more integrated circuits, logic circuits, microprocessors, GPUs, DSPs, or controllers from any desired family or manufacturer. The hardware processor may be a semiconductor based (e.g., silicon based) device. In this example, the processor implements the example model receiver 305, the example neural network processor 315, the example neural network trainer 320, the example local data throttler 325, the example model update provider 330, the example local data accesser 335, the example query handler 340, the example input scanner 345, the example trusted input hardware 360, and/or the example local data provider 370. In the illustrated example of
The processor 812 of the illustrated example includes a local memory 813 (e.g., a cache). The local memory 813 implements the local model data store 310, the example hash ledger 337, and the example query ledger 350 (which may be implemented as a part of the trusted execution environment 132). The processor 812 of the illustrated example is in communication with a main memory including a volatile memory 814 and a non-volatile memory 816 via a bus 818. The volatile memory 814 may be implemented by Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAMBUS® Dynamic Random Access Memory (RDRAM®) and/or any other type of random access memory device. The non-volatile memory 816 may be implemented by flash memory and/or any other desired type of memory device. Access to the main memory 814, 816 is controlled by a memory controller.
The processor platform 800 of the illustrated example also includes an interface circuit 820. The interface circuit 820 may be implemented by any type of interface standard, such as an Ethernet interface, a universal serial bus (USB), a Bluetooth® interface, a near field communication (NFC) interface, and/or a PCI express interface.
In the illustrated example, one or more input devices 822 are connected to the interface circuit 820. The input device(s) 822 permit(s) a user to enter data and/or commands into the processor 812. The input device(s) can be implemented by, for example, an audio sensor, a microphone, a camera (still or video), a keyboard, a button, a mouse, a touchscreen, a track-pad, a trackball, isopoint and/or a voice recognition system.
One or more output devices 824 are also connected to the interface circuit 820 of the illustrated example. The output devices 824 can be implemented, for example, by display devices (e.g., a light emitting diode (LED), an organic light emitting diode (OLED), a liquid crystal display (LCD), a cathode ray tube display (CRT), an in-place switching (IPS) display, a touchscreen, etc.), a tactile output device, a printer and/or speaker. The interface circuit 820 of the illustrated example, thus, typically includes a graphics driver card, a graphics driver chip and/or a graphics driver processor.
The interface circuit 820 of the illustrated example also includes a communication device such as a transmitter, a receiver, a transceiver, a modem, a residential gateway, a wireless access point, and/or a network interface to facilitate exchange of data with external machines (e.g., computing devices of any kind) via a network 826. The communication can be via, for example, an Ethernet connection, a digital subscriber line (DSL) connection, a telephone line connection, a coaxial cable system, a satellite system, a line-of-site wireless system, a cellular telephone system, etc.
The processor platform 800 of the illustrated example also includes one or more mass storage devices 828 for storing software and/or data. Examples of such mass storage devices 828 include floppy disk drives, hard drive disks, compact disk drives, Blu-ray disk drives, redundant array of independent disks (RAID) systems, and digital versatile disk (DVD) drives.
The machine executable instructions 832 of
From the foregoing, it will be appreciated that example methods, apparatus and articles of manufacture have been disclosed that enable distributed training of a neural network that is robust against potential attack vectors that may attempt to damage and/or discover the neural network model.
Example 1 includes an edge device for federated training of a neural network, the edge device comprising a local data throttler to determine whether to allow a new local data item to be incorporated into a training process of a neural network at the edge device, the neural network implemented within a trusted execution environment of the edge device, a hash ledger to store hashes corresponding to local data items that are permitted to be used in training of the neural network a model receiver to apply model parameters provided to the neural network by an aggregator device, a neural network trainer to train the neural network to create a model update using local data items that have a corresponding hash stored in the hash ledger, and a model update provider to provide the model update to the aggregator device.
Example 2 includes the edge device of example 1, wherein the local data throttler is further to determine whether the new local data item is trusted.
Example 3 includes the edge device of example 2, wherein the local data throttler is to determine that the new local data item is trusted when the new local data item originates from trusted hardware.
Example 4 includes the edge device of any one of examples 1 through 3, further including a local data accesser to validate hashes of the local data items against previously stored hashes of the respective local data items stored in the hash ledger.
Example 5 includes the edge device of example 4, wherein the validating is to prevent use of the local data items that have been modified since their corresponding hash was stored in the hash ledger.
Example 6 includes the edge device of example 1, wherein the local data throttler is to commit the hashes stored in the hash ledger, and the neural network trainer is to train the neural network using the local data items that have a corresponding committed hash stored in the hash ledger.
Example 7 includes the edge device of example 1, wherein at least one of the local data throttler, the model receiver, the neural network trainer, and the model update provider are implemented within the trusted execution environment of the edge device.
Example 8 includes at least one tangible machine readable storage medium comprising instructions which, when executed, cause at least one processor of an edge device to at least determine whether to allow a new local data item to be incorporated into a training process of a neural network implemented at the edge device, the neural network implemented within a trusted execution environment, store, in response to determining that the new local data item is to be incorporated into the training process of the neural network, a hash of the new local data item in a hash ledger, apply model parameters to the neural network, the model parameters received from an aggregator device, train the neural network to create a model update using local data items, the local data items having hashes stored in the hash ledger, and provide the model update to the aggregator device.
Example 9 includes the at least one machine-readable storage medium of example 8, wherein the instructions, when executed, cause the at least one processor to commit the hash stored in the hash ledger, and train the neural network using local data items having committed hashes stored in the hash ledger.
Example 10 includes the at least one machine-readable storage medium of example 9, wherein the committing of the hash stored in the hash ledger is responsive to an instruction provided to the edge device by the aggregator device.
Example 11 includes the at least one machine-readable storage medium of any one of examples 8 through 10, wherein the instructions, when executed, cause the at least one processor to validate hashes of the local data items against previously stored hashes of the respective local data items stored in the hash ledger.
Example 12 includes the at least one machine-readable storage medium of example 11, wherein the validating is to prevent use of the local data items that have been modified since their corresponding hash was stored in the hash ledger.
Example 13 includes the at least one machine-readable storage medium of example 8, wherein the instructions, when executed, cause the at least one processor to determining whether the new training data originates from trusted input hardware.
Example 14 includes a method for federated training of a neural network, the method comprising determining, by executing an instruction with a processor of an edge device, whether to allow a new local data item to be incorporated into a training process of a neural network implemented at the edge device, the neural network implemented within a trusted execution environment, storing, in response to determining that the new local data item is to be incorporated into the training process of the neural network, a hash of the new local data item in a hash ledger, applying model parameters to the neural network, the model parameters received from an aggregator device, training the neural network to create a model update using local data items, the local data items having hashes stored in the hash ledger, and providing the model update to the aggregator device.
Example 15 includes the method of example 14, further including committing the hash stored in the hash ledger, wherein the training of the neural network is performed using the local data items having committed hashes stored in the hash ledger.
Example 16 includes the method of example 15, wherein the committing of the hash stored in the hash ledger is responsive to an instruction provided to the edge device by the aggregator device.
Example 17 includes the method of any one of examples 14 through 17, further including validating hashes of the local data items against previously stored hashes of the respective local data items stored in the hash ledger.
Example 18 includes the method of example 17, the validating to prevent use of the local data items that have been modified since their corresponding hash was stored in the hash ledger.
Example 19 includes the method of example 14, wherein the determining of whether to allow the new training data includes determining whether the new training data originates from trusted input hardware.
Example 20 includes a system for federated training of a neural network, the system comprising an aggregator device to aggregate model updates provided by one or more edge devices, and the one or more edge devices to implement respective neural networks, the one or more edge devices to provide the model updates to the aggregator device, at least one of the edge devices to implement the neural network within a trusted execution environment.
Example 21 includes the system of example 20, wherein the one or more edge devices are to throttle inclusion of new local training data when training the respective neural networks based on an instruction provided by the aggregator device.
Example 22 includes the system of example 20, wherein at least one of the one or more edge devices is to throttle a request for utilization of the respective neural network when the request does not originate from trusted hardware of the corresponding edge device.
Example 23 includes an edge device comprising a neural network processor to implement a neural network, a query handler to determine whether a source of a received query is trusted, the query requesting processing of local data using the neural network, the query handler to, in response to determining that source of the query is trusted, cause the neural network processor to process the local data using the neural network.
Example 24 includes the edge device of example 23, further including a query ledger to store a record identifying when a prior query was processed, the query handler to, when (1) the source of the query is not trusted, and (2) a threshold amount of time has elapsed since processing of the prior query, cause the neural network processor to process the local data using the neural network.
Example 25 includes the edge device of example 23, further including an input scanner to determine whether input data included in the query appears to be synthetic, the query handler to, when (1) the source of the query is not trusted, and (2) the input data is not synthetic, cause the neural network processor to process the local data using the neural network.
Example 26 includes the edge device of example 25, wherein the input scanner is to determine whether the input data included in the query appears to be synthetic based on an amount of similarity between the input data included in the query and training data used to train the neural network.
Example 27 includes the edge device of example 23, wherein the query handler is further to cause the neural network processor to process the local data using the neural network when (1) the source of the query is not trusted, and (2) an amount of information leakage that would be caused by processing of the query is below an information leakage threshold, processing the local data using the neural network to prepare the result.
Example 28 includes at least one machine readable storage medium comprising instructions which, when executed, cause at least one processor to at least access, at an edge device, a query requesting processing of local data using the neural network, determine whether a source of the query is trusted, in response to determining that source of the query is trusted, process the local data using the neural network to prepare a result, and provide the result to the source of the query.
Example 29 includes the at least one machine-readable storage medium of example 28, wherein the instructions, when executed, further cause the at least one processor to, in response to determining that the source of the query is not trusted determine whether a threshold amount of time has elapsed since processing of a prior query, in response to determining that the threshold amount of time has elapsed since processing of the prior query, process the local data using the neural network to prepare the result.
Example 30 includes the at least one machine-readable storage medium of example 28, wherein the instructions, when executed, further cause the at least one processor to, in response to determining that the source of the query is not trusted determine whether input data included in the query appears to be synthetic, and in response to determining that the input data included in the query does not appear to be synthetic, process the local data using the neural network to prepare the result.
Example 31 includes the at least one machine-readable storage medium of example 30, wherein the instructions, when executed, further cause the at least one processor to determine whether the input data included in the query appears to be synthetic based on amount of similarity between the input data included in the query and training data used to train the neural network.
Example 32 includes the at least one machine-readable storage medium of example 28, wherein the instructions, when executed, further cause the at least one processor to, in response to determining that the source of the query is not trusted determine whether an amount of information leakage is below an information leakage threshold, and in response to determining that the amount of information leakage is below the information leakage threshold, process the local data using the neural network to prepare the result.
Example 33 includes the at least one machine-readable storage medium of example 28, wherein the instructions, when executed, further cause the at least one processor to, in response to determining that the source of the query is not trusted determine whether a threshold amount of time has elapsed since processing of a prior query, determine whether input data included in the query appears to be synthetic, determine whether an amount of information leakage is below an information leakage threshold, and in response to determining that (1) the threshold amount of time has elapsed since processing of the prior query, (2) the input data included in the query does not appear to be synthetic, and (3) the amount of information leakage is below the information leakage threshold, process the local data using the neural network to prepare the result.
Example 34 includes a method for use of a neural network, the method comprising accessing, at an edge device, a query requesting processing of local data using the neural network, determining whether a source of the query is trusted, in response to determining that source of the query is trusted, processing the local data using the neural network to prepare a result, and providing the result to the source of the query.
Example 35 includes the method of example 34, further including, in response to determining that the source of the query is not trusted determining, by executing an instruction with the processor, whether a threshold amount of time has elapsed since processing of a prior query, in response to determining that the threshold amount of time has elapsed since processing of the prior query, processing the local data using the neural network to prepare the result.
Example 36 includes the method of example 34, further including, in response to determining that the source of the query is not trusted determining, by executing an instruction with the processor, whether input data included in the query appears to be synthetic, and in response to determining that the input data included in the query does not appear to be synthetic, processing the local data using the neural network to prepare the result.
Example 37 includes the method of example 36, wherein the determining of whether the input data included in the query appears to be synthetic includes determining an amount of similarity between the input data included in the query and training data used to train the neural network.
Example 38 includes the method of example 34, further including, in response to determining that the source of the query is not trusted determining, by executing an instruction with a processor, whether an amount of information leakage is below an information leakage threshold, and in response to determining that the amount of information leakage is below the information leakage threshold, processing the local data using the neural network to prepare the result.
Example 39 includes the method of example 34, further including, in response to determining that the source of the query is not trusted determining, by executing an instruction with the processor, whether a threshold amount of time has elapsed since processing of a prior query, determining, by executing an instruction with the processor, whether input data included in the query appears to be synthetic, determining, by executing an instruction with a processor, whether an amount of information leakage is below an information leakage threshold, and in response to determining that (1) the threshold amount of time has elapsed since processing of the prior query, (2) the input data included in the query does not appear to be synthetic, and (3) the amount of information leakage is below the information leakage threshold, processing the local data using the neural network to prepare the result.
Example 40 includes a system for federated training of a neural network, the system comprising an aggregator device to aggregate model updates provided by one or more edge devices, the aggregator device to instruct the one or more edge devices to not use new local training data when training a machine learning model, and the one or more edge devices to implement respective neural networks, the one or more edge devices to provide the model updates to the aggregator device, the model updates created based on the new local training data received since the prior training round.
Example 41 includes the system of example 40, wherein the aggregator device is to instruct the one or more edge devices to use the new local training data for a given training round.
Example 42 includes the system of example 40, wherein the aggregator device is to implement a trusted execution environment.
Example 43 includes an edge device for federated training of a neural network, the edge device comprising throttling means for determining whether to allow a new local data item to be incorporated into a training process of a neural network the edge device, the neural network implemented within a trusted execution environment of the edge device, means for storing to store hashes corresponding to local data items that are permitted to be used in training of the neural network means for applying model parameters provided to the neural network by an aggregator device, means for training the neural network to create a model update using local data items that have a corresponding hash stored in the hash ledger, and means for providing the model update to the aggregator device.
Example 44 includes the edge device of example 43, wherein the throttling means is further to determine whether the new local data item is trusted.
Example 45 includes the edge device of example 44, wherein the throttling means is to determine that the new local data item is trusted when the new local data item originates from trusted hardware.
Example 46 includes the edge device of example 43, further including means for validating hashes of the local data items against previously stored hashes of the respective local data items stored in the hash ledger.
Example 47 includes the edge device of example 4, wherein the validating is to prevent use of the local data items that have been modified since their corresponding hash was stored in the hash ledger.
Example 48 includes the edge device of example 43, wherein the throttling means is to commit the hashes stored in the hash ledger, and the training means is to train the neural network using the local data items that have a corresponding committed hash stored in the hash ledger.
Example 49 includes the edge device of example 43, wherein at least one of the throttling means, the means for storing, the means for applying, the means for training, and the means for providing are implemented within the trusted execution environment of the edge device.
Although certain example methods, apparatus and articles of manufacture have been disclosed herein, the scope of coverage of this patent is not limited thereto. On the contrary, this patent covers all methods, apparatus and articles of manufacture fairly falling within the scope of the claims of this patent.
Number | Name | Date | Kind |
---|---|---|---|
20140181925 | Smith et al. | Jun 2014 | A1 |
20140189356 | Phegade et al. | Jul 2014 | A1 |
20140282868 | Sheller et al. | Sep 2014 | A1 |
20140282893 | Sheller et al. | Sep 2014 | A1 |
20140282945 | Smith et al. | Sep 2014 | A1 |
20140366111 | Sheller et al. | Dec 2014 | A1 |
20150143118 | Sheller et al. | May 2015 | A1 |
20150222633 | Smith et al. | Aug 2015 | A1 |
20150235024 | Corrion et al. | Aug 2015 | A1 |
20150281279 | Smith et al. | Oct 2015 | A1 |
20150304736 | Lal et al. | Oct 2015 | A1 |
20150341332 | Smith et al. | Nov 2015 | A1 |
20150363582 | Sheller et al. | Dec 2015 | A1 |
20150373007 | Sheller et al. | Dec 2015 | A1 |
20160006732 | Smith et al. | Jan 2016 | A1 |
20160174031 | Smith et al. | Jun 2016 | A1 |
20160180068 | Das et al. | Jun 2016 | A1 |
20160180078 | Chhabra et al. | Jun 2016 | A1 |
20160180093 | Goss et al. | Jun 2016 | A1 |
20160182502 | Smith et al. | Jun 2016 | A1 |
20160188350 | Shah et al. | Jun 2016 | A1 |
20160188848 | Smith et al. | Jun 2016 | A1 |
20160188853 | Smith et al. | Jun 2016 | A1 |
20160283411 | Sheller et al. | Sep 2016 | A1 |
20170085565 | Sheller et al. | Mar 2017 | A1 |
20170142089 | Sheller et al. | May 2017 | A1 |
20170147822 | Goss et al. | May 2017 | A1 |
20170154179 | Corrion et al. | Jun 2017 | A1 |
20170169231 | Chhabra et al. | Jun 2017 | A1 |
20170180363 | Smith et al. | Jun 2017 | A1 |
20170214526 | Smith et al. | Jul 2017 | A1 |
20170244684 | Smith et al. | Aug 2017 | A1 |
20170318016 | Smith et al. | Nov 2017 | A1 |
20170366353 | Struttmann | Dec 2017 | A1 |
20170374509 | Smith et al. | Dec 2017 | A1 |
Number | Date | Country | |
---|---|---|---|
20190042937 A1 | Feb 2019 | US |