System, method and medium for hierarchical data processing of IoT device clusters

By adopting a multi-layer data processing system in IoT devices, edge devices can choose to process locally or send data to more powerful layer devices or provider networks, solving the problem of low reliability of data processing and prediction in IoT devices and achieving high accuracy. predictability and rapid response.

CN115086326BActive Publication Date: 2025-01-21AMAZON TECH INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210823633.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2017-07-26
Filing Date
2018-07-16
Publication Date
2025-01-21
Estimated Expiration
2038-07-16

AI Technical Summary

Technical Problem

IoT devices have low reliability in data processing and prediction, especially when the amount and type of model training data changes, resulting in the model losing accuracy.

Method used

The multi -layer data processing system is adopted, where the edge device and layer device are connected through the network. The edge device can choose to use the local model to process data or send the data to a more powerful layer device or the provider network for processing, and correct it according to the received results. Local prediction.

Benefits of technology

It achieves rapid generation of local results and uses a more powerful model for correction, improving prediction accuracy and response speed.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115086326B_ABST
    Figure CN115086326B_ABST
Patent Text Reader

Abstract

The present disclosure relates to hierarchical data processing for an IOT device cluster. The edge devices of the network collect data. The edge devices can determine whether to process the data using a local data processing model or to send the data to a layer device. The layer device can receive the data from the edge device and determine whether to process the data using a higher-level data processing model of the layer device. If the layer device determines to process the data, the layer device processes the data using the higher-level data processing model, generates a result based on the processing, and sends the result to an endpoint (e.g., back to the edge device, to another layer device, or to a control device). If the layer device determines not to process the data, the layer device can send the data to another layer device for processing by another higher-level model.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the invention patent application with the application date of July 16, 2018, named "Hierarchical Data Processing of IOT Device Clusters" and application number 201880049215.9. Technical Field

[0002] The present disclosure relates to hierarchical data processing for a cluster of IOT devices. Background Art

[0003] The Internet of Things (IoT) is a phrase given to the interconnection of computing devices dispersed around the world within the existing Internet infrastructure. IoT devices can be embedded in a variety of products such as home appliances, manufacturing equipment, printers, cars, thermostats, smart traffic lights, cameras, etc.

[0004] In some cases, IoT devices become part of a local network of devices using a connection to a hub device. A hub device is typically a more powerful device than the IoT device that is able to perform more computations and at a faster speed. For example, a house may have a hub device that forms a wireless connection with multiple different sensor IoT devices, such as a thermostat for measuring the temperature in different rooms or motion sensors in different rooms. The hub device can receive the temperature value or motion data and transmit the temperature value or motion data to one or more other endpoints. If the hub device is connected to the Internet, the value can be transmitted to a provider network or a user device, such as a user's smartphone.

[0005] Some IoT devices are powerful enough to implement relatively simple data processing models to analyze data and generate results, such as predictions. However, the reliability of such predictions may not be as high as the reliability of larger models running on more powerful computing devices. For example, a large model implemented by a service provider network or server computer may use hundreds of millions of parameters, while a model running on an IoT device may only use hundreds of thousands of parameters. In addition, the amount and type of data received by a model at a given IoT device may change over time. For example, a camera may capture images of novel objects for which it was not explicitly trained or capture images under novel lighting conditions for which it was not explicitly trained. Therefore, even though the model on the camera may have been initially trained based on sufficient training data, the model may lose accuracy and become increasingly useless over time. Summary of the invention

[0006] According to one aspect of the present disclosure, a system is provided, which includes one or more layer devices connected to a network, the one or more layer devices including corresponding data processing models, wherein individual layer devices in the layer devices are configured to: receive data; determine whether to process the data using the data processing model of the layer device or to send the data to one or more other layer devices connected to the network based on criteria associated with the data processing model and at least one of the higher-layer data processing models; and process the data using the data processing model or send the data to the one or more other layer devices in response to the determination.

[0007] According to another aspect of the present disclosure, a method is provided, which includes one or more layer devices connected to a network, the one or more layer devices including corresponding data processing models, wherein individual layer devices in the layer devices perform the following: receiving data; determining whether to process the data using the data processing model of the layer device or to send the data to one or more other layer devices connected to the network based on criteria associated with the data processing model and at least one of the higher-layer data processing models; and processing the data using the data processing model or sending the data to the one or more other layer devices in response to the determination.

[0008] According to yet another aspect of the present disclosure, a non-transitory computer-readable storage medium is provided, which stores program instructions, which, when executed by a computing device, cause the computing device to implement the method of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] Figure 1 A system for implementing split prediction based on local models of hub and provider networks according to some embodiments is presented.

[0010] Figure 2 is a block diagram of an example data hub device implementing a local model and result manager according to some embodiments.

[0011] Figure 3 is a flow chart illustrating implementation of split prediction based on local models of a hub device and a provider network according to some embodiments.

[0012] Figure 4 A system for implementing split prediction based on local models of edge devices and provider networks according to some embodiments is presented.

[0013] Figure 5A is a flow chart illustrating implementation of split prediction based on local models of edge devices and provider networks according to some embodiments.

[0014] Figure 5B is a flow diagram illustrating a data processing service of a provider network that generates results and transmits the results to a computing device of a remote network according to some embodiments.

[0015] Figure 6 A system for updating a model of an edge device through a provider network according to some embodiments is presented.

[0016] Figure 7 is a block diagram of an edge device implementing a local model according to some embodiments.

[0017] Fig. 8A is a flow chart illustrating updating a model of an edge device through a provider network according to some embodiments.

[0018] Figure 8B is a flow chart illustrating updating a local model of an edge device according to some embodiments.

[0019] Fig. 9 A system for updating a model of an edge device by a hub device according to some embodiments is presented.

[0020] Fig.10 is a flow chart illustrating updating a model of an edge device via a hub device according to some embodiments.

[0021] Fig.11 is a block diagram of an edge device implementing multiple local models according to some embodiments.

[0022] Fig.12 is a flow chart illustrating selecting a local model to process data at an edge device according to some embodiments.

[0023] Fig.13 A system for implementing model layering among multiple devices of a network is presented according to some embodiments.

[0024] Fig.14 is a block diagram of an edge device implementing a model and a layer manager according to some embodiments.

[0025] Fig.15 is a flow chart illustrating implementation of model layering among multiple devices in a network according to some embodiments.

[0026] Fig.16 is a flow chart illustrating implementation of model layering among multiple devices in a network to generate predictions according to some embodiments.

[0027] Fig.17 A system for implementing model layering by sending different data portions to different models is presented in accordance with some embodiments.

[0028] Fig.18 is a flow chart illustrating implementation of model layering by sending different data portions to different models according to some embodiments.

[0029] Fig.19 is a block diagram illustrating an example computer system that implements some or all of the techniques described herein, according to some embodiments.

[0030] Although embodiments are described herein for several embodiments and illustrative drawings by way of example, it will be appreciated by those skilled in the art that embodiments are not limited to the described embodiments or drawings. It should be understood that the drawings and their detailed description are not intended to limit the embodiments to the specific forms disclosed, but on the contrary, it is intended to cover all modifications, equivalents and alternatives falling within the spirit and scope defined by the appended claims. The titles used herein are only for organizational purposes and are not intended to limit the scope of this specification or claims. As used throughout this application, the word "may" is used in a permissible sense (i.e., meaning "possible"), rather than a mandatory sense (i.e., meaning "must"). Similarly, the word "include, including and includes" means "including but not limited to". DETAILED DESCRIPTION

[0031] The systems and methods described herein implement techniques for configuring a local network of Internet-connectable devices (e.g., IoT devices) to implement data processing models to quickly generate local results (e.g., local predictions) while also leveraging larger, more accurate data processing models running on more powerful devices (e.g., servers in a provider network) that generate more accurate results based on the same data.

[0032] In an embodiment, a remote provider network and a local network device (e.g., a hub device or an edge device) can be used to generate a split prediction. For example, a hub device of a local network can receive data from a sensor and process the data using a local model (e.g., a data processing model) to generate a local prediction. The sensor data can also be transmitted to a remote provider network, which returns another prediction. If the prediction returned from the provider network is more accurate, the local prediction can be corrected by the returned prediction.

[0033] In some embodiments, the provider network and / or hub device can update the local data model of the edge device based on the data collected by the edge device. For example, the provider network and / or hub device can periodically receive data from the edge device and generate new updates to the local model based on the new data. The provider network and / or hub device can then deploy the update to the corresponding edge device. In an embodiment, a completely new version of the local model is deployed to replace the current model of the corresponding edge device.

[0034] In an embodiment, multiple models may be implemented across multiple respective edge devices (e.g., layer devices) of a network. Some layer devices may implement larger, more accurate models than other layer devices. When a layer device receives data (e.g., from a sensor), the layer device may decide to process the data using the layer device's local model or to send the data to another layer device that has a larger, more accurate model for processing the data.

[0035] As used herein, a model may be any data processing model suitable for processing input data to generate one or more results. For example, a model may include a neural network, a deep neural network, a static or dynamic neural network, a memory network, and / or any other model architecture suitable for processing the collected data and generating one or more results / predictions. Thus, in an embodiment, a model may include any computational model, machine learning model, or artificial intelligence model suitable for processing data and generating one or more results. In addition, in some embodiments, different devices (e.g., edge devices, layer devices, hub devices, servers, etc.) may include different model architectures and / or be trained based on the same or different training data.

[0036] In various embodiments, any suitable secure communication protocol may be used to protect data sent between any devices (e.g., edge devices, layer devices, hub devices, servers, etc.) and between devices of different networks (e.g., local networks, cellular networks, provider networks). For example, data may be encrypted using Secure Sockets Layer (SSL), Transport Layer Security (TLS), Secure Hypertext Transfer Protocol (HTTPS), and / or any other suitable network security protocol.

[0037] In an embodiment, any data collected by a data collector (e.g., a sensor) may be converted into training data and used to train a model and / or generate updates to the model. Thus, analyzing data and / or generating a model based on the analysis may include creating training data and creating modifications and / or updates to the model based on the training data.

[0038] The term "prediction" is used in various examples herein. However, in various embodiments and figures, any other suitable result (e.g., a non-prediction result) may be substituted for prediction. The result may be a recognition based on data received from a sensor. For example, the result may be the recognition of a particular person, animal, or object based on an analysis of image data using an image classifier. In some embodiments, the word "prediction" may be used in place of "result," and vice versa.

[0039] In addition, the prediction can be the result of the predicted success of identifying an object, environment, person, animal, or anything else that changes state or position over time, or predicting a future state. For example, the prediction can be the temperature of an area or location one day from the current time. As another example, the prediction can be the location of an object 5 seconds from the current time. In an embodiment, the prediction can be a box around certain types of objects in an image, or can be a generated response of the system to one or more environmental conditions and / or events.

[0040] Figure 1 A system for implementing split prediction based on local models of a hub device and a provider network according to some embodiments is presented. In an embodiment, Figure 1 The hub device 100, provider network 102, local network 104, edge device 106, and any other components depicted may be associated with Figure 2-18 The hub device, provider network, edge device, and any other components depicted in any one of the embodiments are the same as or may include one or more of the same components. In an embodiment, Figure 1-16 Any of the hub devices, provider networks, local networks, edge devices, layer devices, and other components depicted in the Figure 1-16 The hub devices, provider networks, local networks, edge devices, layer devices, and other components depicted in any of the embodiments may be the same components (e.g., components of the same type) or may include one or more of the same components.

[0041] Although Figure 1-16 A single hub device for a local network may be described, but in various embodiments, any number of hub devices may be used in place of a single hub device. For example, in some embodiments, multiple hub devices may be used as redundant hub devices to improve the fault tolerance of the system. If one or more hub devices fail, the remaining one or more hub devices may continue to operate as described. Thus, in embodiments, a hub device may synchronize status with one or more other hub devices (e.g., at periodic intervals or upon detecting an event such as the addition of a new hub device or a hub device failure).

[0042] In some embodiments, instead of just one hub device, two or more hub devices may jointly perform the various described operations. Thus, two or more hub devices may each perform a specific portion of the described operations (e.g., distributed processing). In other embodiments, a combination of redundancy and distributed processing may be implemented by two or more hub devices. In embodiments, a hub device may represent any computing device described herein, including an edge device or a layer device.

[0043] In the depicted embodiment, the hub device 100 includes a local model 108 that can receive data from one or more edge devices 106 and process the received data. The local model 108 can include software and / or hardware that performs one or more operations on the received data. In an embodiment, the one or more operations can include analyzing the data, modifying the data based on the analysis, and / or generating a result (e.g., a prediction, new data, one or more commands, or other results) based on the analysis. For example, the result can be a local prediction 110. In an embodiment, the local prediction can be received by a result manager 112.

[0044] In some embodiments, the hub device 100 (e.g., the result manager 112) can also transmit data received from one or more edge devices 106 to the provider network 102. The data can be transmitted via a wide area network 114 (e.g., the Internet). Therefore, the provider network 102 can be considered a remote provider network and can be located in another physical location different from the hub device, such as another city, state, or country. In an embodiment, the provider network 102 includes a data processing service 116, which includes a model 118 that receives data from the hub device 112 and processes the received data.

[0045] Similar to local model 108, model 118 may include software and / or hardware that performs one or more operations on received data. In an embodiment, one or more operations may include analyzing data, modifying data based on the analysis, and / or generating results (e.g., predictions, new data, one or more commands, or other results) based on the analysis. For example, the result may be prediction 120. Data processing service 116 may then transmit prediction 120 to hub device 100 via network 114.

[0046] In an embodiment, result manager 112 receives prediction 120. Result manager 112 may then determine whether to correct local prediction 110 based on prediction 120 and / or local prediction 110. If result manager 112 determines not to correct local prediction 110, result manager 112 generates a response based on local prediction 110. For example, result manager 112 may generate a command or other message that causes hub device 100 to perform an action. In an embodiment, result manager 112 may send the command or message to an endpoint, such as another edge device of local network 104 or another computing device external to local network 104.

[0047] If results manager 112 determines to correct local prediction 110, results manager 112 will correct local prediction 110 based on prediction 120. For example, results manager 112 may modify local prediction 110 based on prediction 120. In some embodiments, to correct local prediction 110, results manager 112 replaces local prediction 110 with prediction 120.

[0048] In an embodiment, the result manager 112 then generates a response based on the corrected prediction. For example, the result manager 112 can generate a command or other message that causes the hub device 100 to perform an action. In an embodiment, the result manager 112 can send the command or message to an endpoint, such as another edge device of the local network 104 or another computing device outside the local network 104.

[0049] In some embodiments, to determine whether to correct the local prediction 110 based on the prediction 120 and / or the local prediction 110, the result manager 112 may first determine the confidence level of the local prediction 110 and the confidence level of the prediction 120. If the confidence level of the local prediction 110 is lower than the confidence level of the prediction 120, the result manager 112 may determine to correct the local result. In an embodiment, if the confidence level of the local prediction 110 is equal to or greater than the confidence level of the prediction 120, the result manager 112 may determine not to correct the local result.

[0050] In some embodiments, result manager 112 may determine whether the confidence level of local prediction 110 is above a threshold level. If so, result manager 112 may generate an initial response based on local prediction 110 before receiving prediction 120 from provider network 102 or before determining whether to correct local prediction 110 based on prediction 120 and / or local prediction 110. In some embodiments, result manager 112 determines the confidence level of prediction 120, and if the confidence level of local prediction 110 is lower than the confidence level of prediction 120, result manager 112 determines to correct the local result. In such embodiments, the response based on the corrected result may be different from the initial response.

[0051] Thus, in embodiments, the results manager 112 may generate a response using the local predictions 110 without waiting to receive the predictions 120. Furthermore, the results manager 112 may not correct the local predictions 110 and may not use the predictions 120. For example, after the results manager 112 generates a response using the local predictions 110, the results manager 112 may then ignore the predictions 120 received at a later time. In some embodiments, the results manager may use the received predictions 120 to update and / or modify the local model 108 to improve the accuracy of the local model 108 in making predictions based on additional data received at a later time.

[0052] In embodiments, the hub device 100 and the edge device 106 may each be connected to the same local network 104. In various embodiments, one or more of the hub device 100 and the edge device 106 may be capable of sending data to any other device of the local network 104 via a wired line and / or via wireless transmission.

[0053] As shown in the depicted embodiment, each edge device 110 includes a data collector 122. The data collector 122 can include any suitable device for collecting and / or generating data and sending the data to the hub device 100. For example, the data collector 122 can be an environmental sensor device that detects one or more environmental conditions (e.g., temperature, humidity, etc.) and generates and / or collects environmental data based on the detected environmental conditions. Thus, the generated data can indicate one or more environmental conditions of the edge device 106 or the local network 104.

[0054] In an embodiment, the data collector 122 may be a sensor or other device that detects performance and / or other operational aspects of a network (e.g., network bandwidth or traffic, power consumption of a data source device, etc.) and generates data based on the detected performance. Thus, the generated data may indicate performance or other operational aspects of a local network and / or edge device 106. In an embodiment, the generated data may be sent to the hub device 100 or to the provider network 102.

[0055] In some embodiments, the data collected by the data collector 122 is a time series data set, and the data collector 122 performs one or more operations on the time series data set to generate data to be transmitted to the hub device 100. For example, the data collector 122 can calculate an average based on two or more data values ​​of the collected data to generate the data to be transmitted.

[0056] In embodiments, the provider network 102 may also include a deployment service 124 that generates and / or deploys the local models 108 and / or the result manager 112 to the hub device 100. In some embodiments, the deployment service 124 may generate the local models 108 and / or the result manager 112 based on data describing one or more performance specifications and / or capabilities of the hub device 100.

[0057] By implementing the split prediction as described above, an initial response based on the local prediction can be provided in a lesser amount of time than the time the hub device would have to wait to receive the prediction from the provider network. Additionally, by providing the ability to correct the local prediction, the hub device can leverage the more powerful model of the provider network to alter or change the response generated by the hub device. Thus, the above techniques enable faster responses based on the local prediction while also leveraging the more accurate predictions received from the provider network, which can be used to correct the local prediction and make appropriate adjustments to the response.

[0058] In an embodiment, an edge device may be any type of computing device that collects data from the environment through one or more sensors. For example, an edge device may be a microphone, a camera, a temperature sensing device, a humidity detector, a vibration detector, a smoke detector, a motion sensor, etc. In an embodiment, an edge device may be any type of smart IoT device that is capable of communicating with other computing devices.

[0059] Figure 2 1 is a block diagram of an example hub device implementing a local model and a result manager according to some embodiments. In the depicted embodiment, hub device 100 includes processor 200, memory 202, battery 204, and network interface 206. Memory 202 includes result manager 112 and local model 108. Processor 200 can be any suitable processor, such as a graphics processing unit (GPU), a GPU accelerator, a field programmable gate array (FPGA), a digital signal processor (DSP), a DSP accelerator, or an application specific integrated circuit (ASIC). In embodiments, the ASIC can also include Figure 2 Memory 202 and / or any other components.

[0060] In some embodiments, memory 202 contains executable instructions, and processor 208 executes the instructions to implement result manager 112 and / or local model 108. In an embodiment, network interface 206 communicatively couples hub device 100 to a local network. Thus, hub device 100 may transmit data to and receive data from edge devices via network interface 206. In an embodiment, network interface 206 may transmit data via a wired or wireless interface.

[0061] In some embodiments, the hub device and one or more of its components (e.g., processors and memory) can be relatively lightweight and small compared to the components (e.g., processors and memory) used by the provider network 102 to implement the data processing service 116 and / or model 118. For example, the size of one or more memories and / or one or more processors used by one or more servers of the provider network 102 to implement the data processing service 116 and / or model 118 can be at least an order of magnitude larger than the size of the memory and / or processor used by the hub device 100. Thus, in embodiments, the model 118 of the data processing service 116 can produce more accurate results (e.g., predictions) at a higher confidence level and at a faster rate than the local model 108.

[0062] Figure 3 is a flow chart illustrating implementation of split prediction based on a local model of a hub device and a provider network according to some embodiments. In embodiments, the hub device may be an edge device, a layer device, or any other type of computing device suitable for performing the described functions. At box 302, the hub device receives data from one or more edge devices of a local network. At box 304, the hub device performs one or more operations on the data using the local model of the hub device. At box 306, the hub device also sends the data to a remote provider network.

[0063] In an embodiment, at least some of the steps of blocks 304 and / or 308 may occur approximately simultaneously or in parallel with blocks 306 and / or 310. In an embodiment, in response to receiving data from one or more edge devices of the local network, the hub device sends the data to a remote provider and sends the data to a local model to begin performing one or more operations on the data using the local model.

[0064] At block 308, the hub device and / or the local model generates a local prediction in response to performing one or more operations. At block 310, the hub device receives a prediction from a remote provider network, wherein the prediction is based on data sent to the remote provider network. In an embodiment, the hub device sends the local prediction to the result manager in response to generating the local prediction, and / or the hub device sends the prediction from the provider network in response to receiving the prediction from the provider network. Thus, the result manager can receive the local prediction first or receive the prediction first, depending on when the local prediction or prediction is ready first.

[0065] At box 312, the hub device (e.g., a result manager) determines whether to correct the local prediction to generate a corrected prediction. In an embodiment, the result manager determines whether to correct the local result to generate a corrected result based on the received result and the local result. The result manager can then generate a response based on the determination. For example, the result manager can determine a confidence level for the local result and determine a confidence level for the result. If the confidence level of the local result is lower than the confidence level of the result, the result manager can correct the local result to generate a corrected result.

[0066] In some embodiments, the received results include updates to the data processing model of the hub device.Thus, the hub device can update the local model using updates received from the provider network.

[0067] If the hub device determines not to correct the local prediction, the hub device generates a response based on the local prediction at block 314. If the hub device determines to correct the local prediction, the hub device corrects the local prediction at block 316. At block 318, the hub device generates a response based on the corrected prediction.

[0068] Figure 4 A system for implementing split prediction based on local models of edge devices and provider networks according to some embodiments is shown. The edge device 400 includes a result manager 112, a local model 108, and one or more data collectors 122. The provider network 102 includes a data processing service 116, which includes a model 118. The provider network 102 also includes a deployment service 124.

[0069] In the depicted embodiment, the edge device 400 includes a local model 108 that can receive data from one or more data collectors 122 (e.g., sensors) and process the received data. The local model 108 can include software and / or hardware that performs one or more operations on the received data. In an embodiment, the one or more operations can include analyzing the data, modifying the data based on the analysis, and / or generating a result (e.g., a prediction, new data, one or more commands, or other results) based on the analysis. For example, the result can be a local prediction 110. In an embodiment, the local prediction 110 can be received by a result manager 112.

[0070] In some embodiments, the edge device 400 (e.g., the result manager 112) may also transmit data received from one or more data collectors 122 to the provider network 102. The data may be transmitted via a wide area network 114 (e.g., the Internet). Thus, the provider network 102 may be considered a remote provider network and may be located in another physical location than the edge device, such as another city, state, or country. In an embodiment, the data processing service 116 and / or the model 118 receives the data sent from the hub device 112 and processes the received data.

[0071] As described above, the model 118 may include software and / or hardware that performs one or more operations on the received data. The one or more operations may include analyzing the data, modifying the data based on the analysis, and / or generating a result (e.g., a prediction 120, new data, one or more commands, or some other result) based on the analysis. The data processing service 116 may then transmit the prediction 120 to the edge device 400 via the network 114.

[0072] In an embodiment, the result manager 112 receives the prediction 120. The result manager 112 may then determine whether to correct the local prediction 110 based on the prediction 120 and / or the local prediction 110. If the result manager 112 determines not to correct the local prediction 110, the result manager 112 generates a response based on the local prediction 110. For example, the result manager 112 may generate a command or other message that causes the edge device 400 to perform an action. In an embodiment, the result manager 112 may send the command or message to an endpoint, such as another edge device of the local network 104, another computing device outside the local network 104, or another endpoint within the edge device 400.

[0073] If results manager 112 determines to correct local prediction 110, results manager 112 will correct local prediction 110 based on prediction 120. For example, results manager 112 may modify local prediction 110 based on prediction 120. In some embodiments, to correct local prediction 110, results manager 112 replaces local prediction 110 with prediction 120.

[0074] In an embodiment, the result manager 112 then generates a response based on the corrected prediction. For example, the result manager 112 can generate a command or other message that causes the edge device 400 to perform an action. In an embodiment, the result manager 112 can send the command or message to an endpoint, such as another edge device of the local network 104, another computing device outside the local network 104, or an endpoint within the edge device 400.

[0075] In some embodiments, to determine whether to correct the local prediction 110 based on the prediction 120 and / or the local prediction 110, the result manager 112 may first determine the confidence level of the local prediction 110 and the confidence level of the prediction 120. If the confidence level of the local prediction 110 is lower than the confidence level of the prediction 120, the result manager 112 may determine to correct the local result. In an embodiment, if the confidence level of the local prediction 110 is equal to or greater than the confidence level of the prediction 120, the result manager 112 may determine not to correct the local result.

[0076] In some embodiments, result manager 112 may determine whether the confidence level of local prediction 110 is above a threshold level. If so, result manager 112 may generate an initial response based on local prediction 110 before receiving prediction 120 from provider network 102 or before determining whether to correct local prediction 110 based on prediction 120 and / or local prediction 110. In some embodiments, result manager 112 determines the confidence level of prediction 120, and if the confidence level of local prediction 110 is lower than the confidence level of prediction 120, result manager 112 determines to correct the local result. In such embodiments, the response based on the corrected result may be different from the initial response.

[0077] In an embodiment, the edge device 400 and one or more other edge devices 106 may each be connected to the same local network. In some embodiments, at least some of the data received by the data model is received from one or more other edge devices 106. In various embodiments, the edge device 400 and one or more of the edge devices 106 may be capable of sending data to any other device of the local network 104 via a wired line and / or via wireless transmission.

[0078] In an embodiment, the data collector 122 may include any suitable device for collecting and / or generating data. For example, the data collector 122 may be an environmental sensor device that detects one or more environmental conditions (e.g., temperature, humidity, etc.) and generates and / or collects environmental data based on the detected environmental conditions. Thus, the generated data may indicate one or more environmental conditions of the edge device 106 or the local network 104.

[0079] In an embodiment, the data collector 122 may be a sensor or other device that detects performance and / or other operational aspects of the edge device 400 (e.g., network bandwidth or traffic, power consumption of the edge device, etc.) and generates data based on the detected performance. Thus, the generated data may indicate the performance or other operational aspects of the edge device 400. In an embodiment, the generated data may be sent to the provider network 102.

[0080] In some embodiments, the data collected by the data collector 122 is a time series data set, and the data collector 122 performs one or more operations on the time series data set to generate data to be sent to the local model 108. For example, the data collector 122 can calculate an average based on two or more data values ​​of the collected data to generate the data to be sent.

[0081] In an embodiment, the provider network 102 may also include a deployment service 124 that generates and / or deploys the local model 108 and / or the result manager 112 to the edge device 400. In some embodiments, the deployment service 124 may generate the local model 108 and / or the result manager 112 based on data describing one or more performance specifications and / or capabilities of the edge device 400.

[0082] By implementing the split prediction as described above, an initial response based on the local prediction can be provided in a lesser amount of time than the time the edge device waits to receive the prediction from the provider network. Furthermore, by providing the ability to correct the local prediction, the edge device can take advantage of the more powerful model of the provider network (e.g., using a larger number of parameters and / or computing power) to modify or change the response generated by the edge device. Thus, the above techniques enable faster responses based on the local prediction while also taking advantage of the more accurate predictions received from the provider network, which can be used to correct the local prediction and make appropriate adjustments to the response.

[0083] Figure 5A is a flow chart illustrating implementation of split prediction based on local models of edge devices and provider networks according to some embodiments. At block 502, the edge device receives data from one or more data collectors. At block 504, the edge device performs one or more operations on the data using the local model of the edge device. At block 506, the edge device also sends the data to a remote provider network.

[0084] In an embodiment, at least some of the steps of blocks 504 and / or 508 may occur approximately simultaneously with or in parallel with blocks 506 and / or 510. In an embodiment, in response to receiving data from one or more data collectors, the edge device sends the data to a remote provider and sends the data to a local model to begin performing one or more operations on the data using the local model.

[0085] At block 508, the edge device and / or the local model generates a local prediction in response to performing one or more operations. At block 510, the edge device receives a prediction from a remote provider network, wherein the prediction is based on data sent to the remote provider network. In an embodiment, the edge device sends the local prediction to the result manager in response to generating the local prediction, and / or the edge device sends the prediction from the provider network in response to receiving the prediction from the provider network. Thus, the result manager may receive the local prediction first or receive the prediction first, depending on when the local prediction or prediction is ready first.

[0086] At block 512, the edge device (e.g., a result manager) determines whether to correct the local prediction to generate a corrected prediction. If the edge device determines not to correct the local prediction, then at block 514, the edge device generates a response based on the local prediction. If the edge device determines to correct the local prediction, then at block 516, the edge device corrects the local prediction. At block 518, the edge device generates a response based on the corrected prediction.

[0087] Figure 5B is a flow chart illustrating a data processing service of a provider network that generates results and transmits the results to a computing device of a remote network according to some embodiments. In embodiments, the computing device may be an edge device, a hub device, a layer device, or any other computing device suitable for performing the described functions.

[0088] At block 520, the data processing service obtains data from a computing device of the remote network (e.g., edge device 400 or hub device 100). In embodiments, the data may be collected from one or more data collectors (e.g., sensors) of the computing device. In embodiments, edge device 400 may be considered a computing device of the remote network, even though edge device 400 may be the only edge device of the remote network.

[0089] At block 522, the data processing service obtains a remote result from a remote data processing model of the computing device, wherein the remote result is based on the data. Thus, the data processing model of the computing device may have generated the remote result and transmitted it to the data processing service.

[0090] At block 524, the data processing service performs one or more operations on the data through the data processing model of the data processing service to generate a result. At block 526, the data processing service modifies the result. For example, the data processing service may modify the result based on one or more differences between the remote result and the result. In some embodiments, the data processing service may modify the result based on a difference between a confidence level of the remote result and a confidence level of the result.

[0091] In an embodiment, the result may be modified by determining one or more delta values ​​based at least on the difference between the remote result and the result; and then modifying the result by replacing the result with the one or more delta values ​​(e.g., replacing by a gradient or incremental change). In an embodiment, the size of the one or more delta values ​​transmitted to the computing device of the remote network is smaller than the size of the result replaced by the one or more delta values. Thus, less bandwidth is used when sending the result to the computing device of the remote network, thereby optimizing the transmission of the result.

[0092] In some embodiments, the data processing service may also generate updates to the remote data processing model of the computing device based on the remote results and the results, and then transmit the updates to the remote data processing model to the computing device of the remote network. The computing device may then use the updates to update the remote data processing model. For example, the data processing service may determine one or more changes that need to be made to improve the accuracy of the remote data processing model based on one or more differences between the remote results and the results. Only changes to the remote data processing model are sent, rather than sending a new remote data processing model. Therefore, less bandwidth is used to update the remote data processing model.

[0093] Figure 6 A system for updating a model of an edge device through a provider network according to some embodiments is shown. In the depicted embodiment, an edge device 600 is connected to a local network 104 and includes a local model 602 and a data collector 122. The provider network 102 includes a model training service 604 that generates one or more model updates 606.

[0094] One or more of the edge devices may collect data from the respective data collectors 122 and send the data to the provider network through the local network 104 and the network 114. For example, the edge device 600a may collect data 608a and send it to the provider network 102, and the edge device 600n may collect data 608n and send it to the provider network 102.

[0095] In an embodiment, the model training service 604 of the provider network 102 can receive data 608 from one or more of the edge devices 600. For example, the model training service 604 can receive data 608a and data 608n. The model training service 604 can then analyze the received data. The model training service 604 can then generate a local model update 606a to the local model 602a based on the analysis of the data 608a, and generate a local model update 606n to the local model 602n based on the analysis of the data 608n.

[0096] In an embodiment, the local model update 606a is configured to update the local model 602a, and the local model update 606n is configured to update the local model 602n. For example, each of the local model updates 606a, 606n can include computer-executable instructions and / or other data, wherein the computer-executable instructions and / or other data are configured to be loaded into a memory and update the corresponding local model 602a, 602n when executed by a processor of the corresponding edge device 600a, 600n.

[0097] In response to the generation of the local model updates 606a, 606n, the model training service 604 can deploy the local model updates 606a, 606n to the local network 104 and / or deploy the local model updates 606a, 606n to the corresponding edge devices 600a, 600n. Although the above example only includes two model updates, any other number of local model updates 606 can be generated by the model training service 604 based on the received data and deployed to the corresponding edge devices 600 in the above manner.

[0098] In an embodiment, one or more of the model updates may include one or more new versions of the corresponding local model that are configured to replace the corresponding local model. Thus, instead of just modifying the existing local model, in some cases, the existing local model will be replaced by a different model that is a newer version.

[0099] In some embodiments, one or more of the edge devices 600 can include a model trainer 612 that generates local model updates 614 and applies the local model updates 614 to update the local model 602. For example, the edge device 600 can receive data from the data collector 122 and analyze the data. The edge device 600 can then generate an update 614 to the local model 602 based on the analysis of the data, wherein the update 614 is configured to update the local model 602. The model trainer 612 can then apply the update 614 to the local model 602.

[0100] In an embodiment, the edge device 600 may also send the data received from the data collector 122 to the model training service 604. The edge device 600 may then receive another local model update 606 from the model training service, where the local model update 606 is based on the data received from the data collector 122. The edge device 600 and / or the model trainer 612 may then apply the local model update 606 to the local model 602.

[0101] In some embodiments, the local model update 606 is a new version of the local model, and the edge device 600 and / or the model trainer 612 replaces the local model 602 with the new version of the local model. In an embodiment, the edge device 600 and / or the model trainer 612 receives initial data from the data collector 122 and analyzes the initial data to initially generate the local model 602. In other embodiments, the edge device 600 initially receives the local model 602 from a model training service of the provider network 102.

[0102] In an embodiment, the model trainer 612 receives global data from the model training service 604, where the global data is based on data collected by one or more other edge devices of the one or more other remote edge devices 610. The model trainer 612 may then analyze the global data and generate updates 614 based on the analysis of the global data.

[0103] In some embodiments, the local model update 606 received from the model training service is based on both the data received from the data collector 122 and the global data collected by one or more other edge devices of the one or more other edge devices 610. For example, the model training service 604 can generate the local model update 606 based on the data received from the data collector 122 and the global data collected by one or more other edge devices of the one or more other edge devices 610.

[0104] In an embodiment, the model trainer 612 and / or the edge device 600 periodically receives additional local model updates 606 from the model training service 604 of the provider network 102, wherein the additional local model updates 606 are based at least on additional data collected by the data collector 122 and periodically sent to the model training service 604 of the provider network 102. For example, the model training service 604 may use the data collector 122 to collect additional data once a day and send the additional data to the model training service 604 of the provider network 102. In response, the model training service 604 generates additional local model updates 606 and sends them to the model trainer 612 and / or the edge device 600.

[0105] By using the above techniques, the edge device can update the local model to improve the accuracy of the local model by applying an update 614. Then, another local model update 606 can be received from the model training service, and the edge device can apply the local model update 606 to further improve the accuracy of the local model. This is possible because the model training service 604 can use a larger model and / or use additional training data to generate the local model update 606 that is not available to the edge device.

[0106] As described above, the model training service can initially create a given local model and deploy it to the remote network and / or edge device. For example, the model training service can generate one or more of the local models for one or more of the corresponding edge devices of the remote network, and then deploy the one or more local models to the remote network. In an embodiment, the model training service can generate a given local model based on topology data or any other data received from the corresponding edge device that will implement the local model.

[0107] In an embodiment, the model training service may receive global data from one or more other edge devices of the one or more other edge devices 610, analyze the global data, and generate one or more updates to the local model based on the analysis of the received data and the analysis of the global data. The updates may then be deployed to the respective edge devices. For example, images captured by cameras from many different homes and / or businesses may be used to enhance the training data used to generate the local model.

[0108] In some embodiments, the model training service may apply different weights to at least some of the received data and at least some of the global data during analysis of the received data and analysis of the global data. For example, during analysis of the received data and analysis of the global data, a higher weight may be applied to data received from the local network than to the global data. Thus, a certain amount of data received by the model training service from the local network may have a greater impact on the training of the local model than the same amount of global data received by the model training service.

[0109] Conversely, in some embodiments, during analysis of received data as well as analysis of global data, a higher weight may be applied to global data than to data received from a local network. Thus, an amount of global data received by a model training service may have a greater impact on the training of a local model than the same amount of data received by the model training service from a local network.

[0110] In an embodiment, analysis of data from two or more different edge devices may be used to generate updates to a local model for a particular edge device. Thus, a local model for a particular edge device may be updated and / or trained based not only on data from the particular edge device, but also based on data from one or more other edge devices of the same local network and / or other networks. In other words, generation of at least one of the updates to a particular local data processing model may be based on analysis of a portion of the data received by a model training service from two or more different edge devices.

[0111] In some embodiments, the model training service may generate one or more additional updates for one or more of the corresponding local data processing models and deploy them to one or more corresponding edge devices periodically and / or in response to a triggering event. For example, updates may be generated based on the received data and deployed to the edge devices hourly, daily, or weekly, or in response to the model training service receiving a command to update one or more of the local models of the corresponding edge devices.

[0112] Figure 7 is a block diagram of an edge device implementing a local model according to some embodiments. In the depicted embodiment, edge device 600 includes processor 200, memory 202, battery 204, and network interface 206. Memory 202 includes local model 602.

[0113] In some embodiments, the memory 202 includes executable instructions, and the processor 208 executes the instructions to implement the local model 108. In an embodiment, the network interface 206 communicatively couples the edge device 600 to the local network. Thus, the edge device 600 transmits data to the hub device 100 through the network interface 206. In an embodiment, the network interface 206 can transmit data through a wired or wireless interface.

[0114] In some embodiments, the edge device and one or more of its components (e.g., processors and memories) can be relatively lightweight and small compared to the components (e.g., processors and memories) used by the provider network to implement the model training service. For example, the size of one or more memories and / or one or more processors used by one or more servers of the provider network to implement the model training service can be at least an order of magnitude larger than the size of the memory and / or processor used by the edge device.

[0115] Fig. 8A 802, a model training service of a provider network receives data from one or more corresponding edge devices of a remote network. At block 804, the model training service analyzes the received data.

[0116] At box 806, the model training service generates updates to one or more local models based on the analysis of the received data, wherein the one or more updates are configured to update the one or more local models at the corresponding edge device. In an embodiment, the model training service generates one or more updates to one or more corresponding local models at the corresponding local model based on the state of one or more corresponding edge devices and / or the state of the remote network. The state of the edge device may include one or more performance and / or hardware specifications of the edge device (e.g., the amount of free memory, processor speed, etc.), the health state of the edge device, or any other suitable parameters for representing the state of the edge device. In some embodiments, the edge device or other device may provide one or more configuration files describing the state of the edge device to the model training service. The state of the remote network may be the available bandwidth between any computing devices of the network, the state of one or more of the computing devices of the network, or any other suitable parameters for representing the state of the network. At box 808, the model training service deploys one or more updates to the remote network and / or the corresponding edge device.

[0117] Figure 8B 8 is a flow chart illustrating updating a local model of an edge device according to some embodiments. At block 810, an edge device (e.g., a model trainer) receives data from a data collector. In an embodiment, at least some of the data received by the edge device may be global data from one or more other edge devices at other locations. For example, a provider network may collect global data and send it to the edge device. At block 812, the edge device analyzes the received data. At block 814, the edge device generates an update to the local model based on the analysis of the received data, wherein the update is configured to update the local model of the edge device.

[0118] At box 816, the edge device applies the update to the local model. At box 818, the edge device sends the data to the model training service of the remote provider network. In an embodiment, the edge device may send the data to the model training service and receive the data from the data collector at approximately the same time and / or in parallel. At box 820, the edge device receives another local model update to the local model from the model training service, wherein the other local model update is based on data from one or more other edge devices in other locations and / or global data. At box 822, the edge device applies another local model update to the local model. In an embodiment, the other update may include one or more changes (e.g., delta values ​​or gradient values) to the update generated by the edge device.

[0119] Fig. 9A system for updating a model of an edge device by a hub device according to some embodiments is shown. In the depicted embodiment, an edge device 600 is connected to a local network 104 and includes a local model 602 and a data collector 122. The hub device 100 is connected to the local network 104 and includes a model trainer 902 that generates one or more model updates 606.

[0120] One or more of the edge devices may collect data from the corresponding data collector 122 and send the data to the hub device 100 via the local network 104. For example, the edge device 600a may collect data 608a and send it to the hub device 100, and the edge device 600n may collect and send data 608a to the hub device 100.

[0121] In an embodiment, the model trainer 902 of the hub device 100 may receive data 608 from one or more of the edge devices 600. For example, the model trainer 902 may receive data 608a and data 608n. The model trainer 902 may then analyze the received data. The model trainer 902 may then generate a local model update 606a to the local model 602a based on the analysis of the data 608a, and generate a local model update 606n to the local model 602n based on the analysis of the data 608n.

[0122] In an embodiment, the local model update 606a is configured to update the local model 602a, and the local model update 606n is configured to update the local model 602n. For example, each of the local model updates 606a, 606n can include computer-executable instructions and / or other data, wherein the computer-executable instructions and / or other data are configured to be loaded into a memory and update the corresponding local model 602a, 602n when executed by a processor of the corresponding edge device 600a, 600n.

[0123] In response to the generation of the local model updates 606a, 606n, the model trainer 902 can deploy the local model updates 606a, 606n to the respective edge devices 600a, 600n. Although the above example only includes two model updates, any other number of local model updates 606 can be generated by the model trainer 902 based on the received data and deployed to the respective edge devices 600 in the above manner.

[0124] In some embodiments, the data received by the model trainer can be sent to the provider network 102 for analysis and generation of local model updates 606. The model trainer can then receive one or more local model updates 606 from the provider network 102. The local model updates 606 can then be deployed to one or more corresponding edge devices 600. Thus, in an embodiment, there can be multiple layers of model trainers and / or model training services. At each higher layer, the model trainer and / or model training service can be larger, have access to larger training data sets, and can generate local model updates and / or local models that are configured to provide a higher level of accuracy and confidence in the results than the previous layer or other lower layers.

[0125] In an embodiment, one or more of the model updates may include one or more new versions of the corresponding local model that are configured to replace the corresponding local model. Thus, instead of just modifying the existing local model, in some cases, the existing local model will be replaced by a different model that is a newer version.

[0126] In some embodiments, the model trainer may initially create a given local model and deploy it to the edge device. For example, the model trainer may generate one or more of the local models for one or more of the corresponding edge devices, and then deploy the one or more local models to the corresponding edge devices. In an embodiment, the model trainer may generate a given local model based on topological data or any other data received from the corresponding edge device where the local model will be implemented.

[0127] In an embodiment, the model trainer may receive global data from one or more other remote networks (e.g., collected by one or more other edge devices of other networks), analyze the global data, and generate one or more updates to the local model based on the analysis of the received data and the analysis of the global data. The updates may then be deployed to the respective edge devices. For example, images captured by cameras from many different homes and / or businesses may be used to enhance the training data used to generate the local model.

[0128] In some embodiments, the model trainer may apply different weights to at least some of the received data and at least some of the global data during analysis of the received data and analysis of the global data. For example, during analysis of the received data and analysis of the global data, a higher weight may be applied to data received from the local network than to the global data. Thus, a certain amount of data received by the model trainer service from the local network may have a greater impact on the training of the local model than the same amount of global data received by the model trainer.

[0129] Conversely, in some embodiments, during analysis of received data as well as analysis of global data, higher weights may be applied to global data than weights applied to data received from local networks. Thus, an amount of global data received by a model trainer may have a greater impact on the training of a local model than the same amount of data received by the model trainer from a local network.

[0130] In an embodiment, analysis of data from two or more different edge devices may be used to generate updates to a local model for a particular edge device. Thus, a local model for a particular edge device may be updated and / or trained based not only on data from the particular edge device, but also based on data from one or more other edge devices of the same local network and / or other networks. In other words, generation of at least one of the updates to a particular local data processing model may be based on analysis of a portion of the data received by the model trainer from two or more different edge devices.

[0131] In some embodiments, the model trainer may generate one or more additional updates for one or more of the corresponding local data processing models and deploy them to one or more corresponding edge devices periodically and / or in response to a triggering event. For example, updates may be generated based on the received data and deployed to the edge devices hourly, daily, or weekly, or in response to the model trainer receiving a command to update one or more of the local models of the corresponding edge devices.

[0132] Fig.10 1 is a flow chart showing updating a model of an edge device by a hub device according to some embodiments. At block 1002, a model trainer of the hub device receives data from one or more corresponding edge devices of a local network. At block 1004, the model trainer analyzes the received data.

[0133] At block 1006, the model trainer generates updates to one or more local models based on the analysis of the received data, wherein the one or more updates are configured to update the one or more local models at the respective edge devices. At block 1008, the model trainer deploys the one or more updates to the respective edge devices.

[0134] In an embodiment, a model training service and / or a model trainer of a provider network may obtain a device configuration file (e.g., from an edge device or other source), which may be used to optimize and / or generate local model updates that are sent to an edge device and applied to a local model to update the local model. For example, a device configuration file may include one or more parameters, wherein the one or more parameters indicate one or more software and / or hardware configurations of the edge device (e.g., memory size, processor speed, etc.).

[0135] In some embodiments, a model training service and / or model trainer of a provider network may obtain one or more indications of the state of one or more edge devices. The indications may be used to optimize and / or generate corresponding local model updates, where the corresponding local model updates are sent to the edge device and applied to the local model to update the local model. For example, the indication may include the reliability of the edge device's connection, the amount of free memory available at the edge device, the amount of non-volatile storage available at the edge device, the health state of the edge device (e.g., relative to a previous health state or relative to other edge devices of the local network), and any other suitable indication of the state of the edge device, where the state may affect how to optimize and / or generate the local model. In addition, in some embodiments, models of the model training service and / or provider network may be generated, optimized, and / or modified based on device profiles of the edge device and / or based on indications of the state of one or more edge devices.

[0136] Fig.11 is a block diagram of an edge device implementing multiple local models according to some embodiments. In the depicted embodiment, the edge device 600 includes a local model manager 1102 that determines which of the local models 602a-602n will be used at any given time to process data received from one or more data collectors 122.

[0137] In an embodiment, the edge device can receive updates to one or more of its local models 602 and / or can receive the local models 602 as deployed models in the same or similar manner as described above with respect to the figures. For example, a model training service of a provider network and / or a model trainer of a hub device can receive data from the edge device 600, analyze the received data, generate one or more updates for one or more of the corresponding local models 602 based on the analysis, and deploy the one or more updates to one or more of the corresponding local models 602.

[0138] In some embodiments, the local models 602 are different from each other (e.g., perform one or more different operations on given input data), and different local models 602 are configured to process different data received by at least one edge device at different times. Therefore, the local model manager 1102 can assign specific time periods to each of the local models to process the received data. For example, the local model 602a can be selected by the local model manager 1102 to process data received by the data collector 122 in the morning (am) hours, and the local model 602n can be selected by the local model manager 1102 to process data received by the data collector 122 in the evening (pm) hours.

[0139] In an embodiment, the local model manager 1102 may select different local models in the local models 602 in response to detecting different environmental conditions. For example, when the local model manager 1102 determines that the amount of daylight detected by the data collector 122 is above a threshold level, the local model manager 1102 may select the model 602a to process the data received from the data collector 122. Conversely, when the local model manager 1102 determines that the amount of daylight detected by the data collector 122 is equal to or below a threshold level, the local model manager 1102 may select the model 602n to process the data received from the data collector 122.

[0140] In various embodiments, different models 602 may have different architectures and be trained using different machine learning techniques and / or data sets. For example, a model training service of a provider network, a model trainer of a hub device, and / or a local model trainer of an edge device may use an ensemble approach to generate different models (e.g., neural networks, deep neural networks, memory networks, etc.) using different machine learning algorithms. By using two or more models to process the same collected data, a consensus of results from multiple models (e.g., a majority or quorum) may be used to select a result / prediction.

[0141] In embodiments, augmentation and / or stacking may be used to utilize multiple different models on an edge device. For example, augmentation may include generating multiple models by training each new model to emphasize training instances that were misclassified by a previous model. Stacking may include combining information from multiple prediction models to generate a new model (e.g., a stacked model or a second-order model). In some embodiments, the performance of a stacked model is better than each of the individual models due to the ability of the stacked model to use or give more weight to the results of each base model with the best performance (e.g., making more accurate predictions compared to other models) and / or the ability of the stacked model to unweight or use less weight to the results of each base model with the worst performance (e.g., making less accurate predictions than other models). In embodiments, the more different the base models are from each other, the more accurate the results that a stacked model can provide.

[0142] Fig.12 1 is a flow chart illustrating selecting a local model to process data at an edge device according to some embodiments. At block 1202, a model training service of a provider network and / or a model trainer of a hub device deploys two or more local models to an edge device of a local network. At block 1204, the edge device receives data. For example, the edge device may receive data from one or more sensors of the edge device (e.g., an environmental sensor) and / or from one or more other edge devices of the local network.

[0143] At block 1206, the local model manager selects one of the local models of the edge device to process the data based at least on the current time. In some embodiments, the local model manager selects one of the local models of the edge device to process the data based at least on environmental conditions (e.g., environmental data collected by a sensor). In some embodiments, the local model manager selects one of the local models of the edge device to process the data based at least on the state of the edge device. For example, if the remaining useful life of a battery of the edge device is below a threshold amount of time, the local model manager may select one of the models that consumes the least amount of power to process the data, such as switching from a model that requires a GPU of the edge device to execute to a model that requires only a CPU of the edge device to execute. At block 1208, the edge device processes the data using the selected local model.

[0144] Fig.13 A system for implementing model layering between multiple devices of a network according to some embodiments is shown. In the depicted embodiment, a local network includes an edge device 1300 and a layer device 1302. As shown, a given edge device 1300 or layer device 1302 includes a model 1304. Model 1304 can operate in the same or similar manner as described above for local model 108. Therefore, model 1304 can include software and / or hardware that performs one or more operations on received data. In an embodiment, one or more operations can include analyzing data, modifying data based on analysis, and / or generating results (e.g., predictions, new data, one or more commands, or other certain results) based on analysis. For example, the result can be a local prediction. In some embodiments, the local prediction can be received by a layer manager 1306.

[0145] In some embodiments, the layer device 1302a (e.g., the layer manager 1306a) may also transmit data received from one or more layer devices 1302b-1302n to the provider network 102. The data may be transmitted over a wide area network 114 (e.g., the Internet). Thus, the provider network 102 may be considered a remote provider network and may be located in another physical location than the hub device, such as another city, state, or country. In an embodiment, the provider network 102 includes a layer service 1308 and a model 1310 that receives data from the layer device 1302a and processes the received data.

[0146] In some embodiments, the layer device 1302a behaves in a manner similar to the hub device described above. In other embodiments, the layer device 1302a may actually include multiple different layer devices 1302, each of which can communicate with the provider network. Therefore, in an embodiment, any level of redundancy of layer and edge devices or any other topological scheme and / or any number of layer and edge devices can be implemented. For example, the layer devices and / or edge devices can be arranged in a network topology, wherein the network topology includes one or more of the following: a tree topology, a mesh topology, a star topology, a fully connected topology, a partially connected topology, a bus topology, a ring topology, a linear topology, a point-to-point topology, a daisy chain topology, and a hybrid topology.

[0147] In an embodiment, the edge device 1300 includes a data collector 122. The edge device can collect data 1312 through the data collector. In some embodiments, the layer manager 1306 can receive and / or analyze the data 1312. The layer manager 1306 can determine whether to process the data 1312 using the model 1304 of the edge device or send the data 1312 to one or more layer devices 1302 of the local network 104. Depending on the determination, the layer manager 1306 either processes the data 1312 using the model 1304 or sends the data 1312 to the layer device 1302.

[0148] In an embodiment, the layer device 1302 receives data 1312 from the edge device 1300, and the layer manager 1306 of the layer device 1302 determines whether to process the data using the higher layer model 1304 of the layer device 1302. In some embodiments, the layer manager 1306 of the layer device 1302 receives and / or analyzes the data 1312. In an embodiment, the higher layer model 1304 is larger than the model 1304 of the edge device 1300 and / or generates results (e.g., predictions) with a higher confidence level for a given data 1312 than the model 1304 of the edge device 1300. In an embodiment, the layer device has a larger memory and / or a faster processor.

[0149] In response to determining to process the data using the higher layer model 1304, the layer manager 1306 of the layer device 1302 processes the data using the higher layer model 1304, generates a result 1314 based on the processing, and sends the result 1314 to the edge device 1300 and / or another endpoint. In an embodiment, the edge device 1300 performs an action and / or generates a command in response to receiving the result 1314.

[0150] In response to determining that the data 1312 is not processed using the higher layer model 1304, the layer manager 1306 of the layer device 1302 sends the data 1312 to another layer device 1302 (or to the provider network 102), where the data is processed by another model to generate a result 1314. In an embodiment, the layer device 1302 then receives the result 1314 from the other layer device 1302 (or from the provider network 102), where the result is based on the data 1312. The layer device 1302 can then send the result 1314 to the edge device 1300 and / or another endpoint.

[0151] In an embodiment, an edge device (e.g., a tier manager of an edge device) may determine whether to process data using a model of the edge device or to send the data to a tier device based on criteria. The criteria may include one or more of the following: an amount of energy required by the model to process the data, an amount of time required by the model to process the data, an amount of time since the model was updated, an amount of bandwidth available to send the data to the tier device (in some cases, excluding bandwidth), and a reliability of a network connection between the edge device and one or more other devices of a local network (e.g., an amount of time there is a connection versus an amount of time there is no connection).

[0152] For example, the layer manager of the edge device may determine that the amount of time and / or energy required for the model to process the data is above a threshold amount, and in response, send the data to the layer device. Conversely, the layer manager of the edge device may determine that the amount of time and / or energy required for the model to process the data is not above a threshold amount, and in response, process the data using the model of the edge device.

[0153] In an embodiment, the layer manager may determine that the amount of time since the model was updated is above a threshold amount, and in response, send the data to the layer device. Conversely, the layer manager of the edge device may determine that the amount of time since the model was updated is not above a threshold amount, and in response, process the data using the model of the edge device.

[0154] In some embodiments, the layer manager may determine that the amount of bandwidth available to send data to the layer device is above a threshold, and in response, send the data to the layer device. Conversely, the layer manager of the edge device may determine that the amount of bandwidth available to send data to the layer device is not above a threshold, and in response, process the data using the model of the edge device.

[0155] In an embodiment, the above criteria may also be used by a layer manager of a layer device to determine whether to process data using a layer device's model or to send the data to another layer device (or provider network). Thus, in an embodiment, data may be propagated through one or more layer devices until a particular layer device processes the data. After a particular layer device processes the data, the results from the processing may be propagated back to the edge device and / or one or more other endpoints.

[0156] In some embodiments, an edge device or tier device may generate a prediction based on processing of the data 1312 using a model of the edge device or tier device. The tier manager may then determine whether a confidence level of the prediction is below a threshold confidence level. If so, the tier manager may send the data to the tier device (or another tier device) for processing by the model of the tier device (or other tier device). If not, the edge device or tier device may use the prediction (e.g., to generate a response) without sending the data to the tier device (or another tier device).

[0157] Thus, in an embodiment, the data may be propagated to one or more layer devices until the confidence level of the prediction is not less than a threshold level. At that time, the prediction may be propagated back to the edge device and / or one or more other endpoints. In an embodiment, the provider network may contain the highest layer model. Thus, the farthest that the data may be propagated may be the model 1310 of the provider network. Thus, in an embodiment, the layer service 1308 makes the determination as described above for the layer manager 1306.

[0158] Fig.14 1300 is a block diagram of an edge device implementing a model and a layer manager according to some embodiments. In the depicted embodiment, the edge device 1300 includes a processor 200, a memory 202, a battery 204, a network interface 206, and one or more data collectors 122. The memory 202 includes a layer manager 1306 and a model 1304. In an embodiment, the layer device 1302 may include some or all of the components described for the edge device 1300.

[0159] In some embodiments, the memory 202 contains executable instructions, and the processor 208 executes the instructions to implement the layer manager 1306 and / or the model 1304. In an embodiment, the network interface 206 communicatively couples the edge device 1300 to a local network. Thus, the edge device 1300 can transmit data to and receive data from the layer device through the network interface 206. In an embodiment, the network interface 206 can transmit data through a wired or wireless interface.

[0160] In some embodiments, the edge device and one or more of its components (e.g., processors and memories) can be relatively lightweight and small compared to the components (e.g., processors and memories) used by the tier device or provider network to implement the model. For example, the size of one or more memories and / or one or more processors used by the servers of the tier device or provider network can be at least an order of magnitude larger than the size of the memory and / or processor used by the edge device 1300.

[0161] Thus, in embodiments, the model of a tier device or provider network may produce more accurate results (e.g., predictions) at a higher confidence level and at a faster rate than the model of an edge device. In embodiments, the higher a tier device is in the hierarchy of tier devices, the larger the model. Thus, the improvement of each tier may provide more accurate results at a higher confidence level and / or at a faster rate than one or more lower tiers.

[0162] Fig.15 1 is a flow chart illustrating implementing model layering between multiple devices of a network according to some embodiments. At block 1502, a data collector collects data at an edge device. At block 1504, a layer manager determines whether to process the data using a model of the edge device or to send the data to a layer device connected to the network. If the layer manager determines to process the data at the edge device, then at block 1506, the edge device processes the data using the model of the edge device. Then, at block 1514, the model generates a result.

[0163] If the layer manager determines not to process the data at the edge device, then at block 1508, the edge device sends the data to the layer device. In an embodiment, the layer device may be located at the bottom-most level of the hierarchy of layer devices. At block 1510, the layer manager of the layer device determines whether to process the data using the model of the layer device or to send the data to another layer device connected to the network. In an embodiment, the other layer device may be located at the next higher level from the current layer device. If the layer manager determines to send the data to another layer device, the process returns to block 1508.

[0164] If the layer manager determines to process the data using the layer device's model, then at block 1512, the layer device processes the data using the layer device's model. Then, at block 1514, the layer device's model generates a result. At block 1516, the layer device sends the result to the endpoint. For example, the layer device can send the result back to the layer device or edge device from which it received the data, and / or the layer device can send the result to one or more other endpoints.

[0165] Fig.1616 is a flow chart illustrating implementing a model layering between multiple devices of a network to generate predictions according to some embodiments. At block 1602, a data collector collects data at an edge device. At block 1604, a model of the edge device processes the data. In an embodiment, a layer manager determines to process the data using a model of the edge device, and in response, the model processes the data.

[0166] At block 1606, the model generates a prediction. At block 1504, the layer manager determines whether the confidence level of the prediction is below a threshold level. If the layer manager determines that the confidence level is not below the threshold level, then at block 1610, the layer manager generates a response based on the prediction. The process then returns to block 1602.

[0167] If the layer manager determines that the confidence level is below the threshold level, the layer manager sends the data to the layer device at block 1612. The layer device processes the data using the model at the layer device at block 1614. In an embodiment, the layer manager of the layer device determines to process the data using the model of the layer device, and in response, the model of the layer device processes the data.

[0168] At block 1616, the model of the layer device generates a prediction. At block 1618, the layer manager of the layer device determines whether the confidence level of the prediction is below a threshold level. If the layer manager determines that the confidence level is not below the threshold level, then at block 1620, the layer manager generates a response based on the prediction. The process then returns to block 1602.

[0169] At block 1616, if the layer manager determines that the confidence level is below a threshold level, the process returns to block 1612, where the layer manager sends the data to another layer device. For example, the layer device may be part of a hierarchy of layer devices as described above. Thus, the layer manager may send the data to the next layer device in the hierarchy. As described above, this process may continue until a prediction is generated with a confidence level that is not below a threshold level (e.g., a minimum confidence level).

[0170] Fig.17 A system for implementing model layering by sending different data portions to different models according to some embodiments is shown. In the depicted embodiment, a local network includes an edge device 1300 and a layer device 1302. As shown, the layer devices can be arranged in a hierarchy of different layers. In an embodiment, the local network can be arranged above the edge device 1300 and the layer device 1302. Fig.13 In one or more of the topologies discussed.

[0171] In an embodiment, one or more of the layers may include other devices external to the local network, such as the base station 1702 and the provider network 102. For example, in an embodiment, the base station 1702 may include one or more layer managers 1306 operating on one or more corresponding layer devices 1302 including corresponding models 1304. The base station 1702 may communicate with at least some of the provider network 102 and the layer devices 1302 of the local network via a wide area network 114 (e.g., the Internet).

[0172] As discussed above, model 1304 may include software and / or hardware that performs one or more operations on received data. In embodiments, the one or more operations may include analyzing data, modifying data based on the analysis, and / or generating results (e.g., predictions, new data, one or more commands, or some other result) based on the analysis. For example, the result may be a local prediction. In some embodiments, the local prediction may be received by layer manager 1306.

[0173] In an embodiment, there may be one or more edge devices each including a layer manager, at least one model, and at least one data collector. Each level of layer devices may include one or more layer devices each including a layer manager and at least one model. In an embodiment, there may be any number of levels of edge and / or layer devices.

[0174] In an embodiment, the edge device 1300 may collect data through one or more data collectors. In some embodiments, the collected data may include two or more different data portions 1704. The layer manager 1306 may receive and / or analyze the data 1312. In some embodiments, the layer manager 1306 may split the received data into two or more different data portions 1704. For example, image data captured from a camera may be demultiplexed into red image data, green image data, and blue image data. As another example, a portion of the data may be data collected from one sensor (e.g., audio data from a microphone), and another portion of the data may be image data collected from another sensor (e.g., a camera).

[0175] The layer manager 1306 can determine whether to process the data portion 1704 at one or more corresponding models 1304 of the edge device or to send the data portion 1704 to one or more corresponding layer devices 1302. Depending on the determination, the layer manager 1306 either processes the data portion 1704 using the corresponding model 1304 or sends the data portion 1704 to the corresponding layer device at the first or lowest level of the layer device 1302. In some embodiments, the data portion 1704 is generated by different models of the corresponding edge device 1300. Therefore, in some embodiments, the above determination can be made by multiple layer managers of the corresponding edge devices (e.g., using appropriate techniques of distributed computing / processing, majority consensus, etc.).

[0176] In some embodiments, the layer manager 1306 can determine to process the data portion 1704 at the one or more corresponding models 1304 of the edge device, and send the processed data portion 1704 to the one or more corresponding layer devices 1302. Therefore, the data portion 1704 sent to the one or more corresponding layer devices 1302 can be data collected by the data collector 122 that has been modified and / or transformed by the one or more corresponding models 1304.

[0177] In an embodiment, the corresponding layer device 1302 receives the data portion 1704 from the corresponding edge device 1300, and the layer manager 1306 of the corresponding layer device 1302 determines whether to process the data portion 1704 using the corresponding higher layer model 1304 of the layer device 1302. In some embodiments, the layer manager 1306 of the layer device 1302 receives and / or analyzes the data portion 1704 to make the above determination.

[0178] In an embodiment, the higher layer model 1304 is larger than the model 1304 of the edge device 1300 and / or generates one or more results (e.g., predictions) with a higher confidence level than the model 1304 of the edge device 1300 for a given data portion 1704. In an embodiment, the layer device has larger memory and / or faster computing hardware. In some embodiments, only one layer manager makes the above determination instead of multiple layer managers. In some embodiments, the respective layer managers jointly make the above determination (e.g., using appropriate techniques of distributed computing / processing, majority consensus, etc.).

[0179] In response to determining to process the data portion 1704 using the higher layer model 1304, the layer manager 1306 of the layer device 1302 processes the data portion 1704 using the higher layer model 1304, generates a result based on the processing, and sends the result to the edge device 1300 and / or another endpoint (e.g., one or more layer devices 1302 of the next layer). For example, the layer manager 1306 of the layer device 1302 at any given level can modify and / or transform the data received from the lower layer device 1302 using the corresponding model 1304, and send the modified / transformed data 1706, 1708, 1710 to the next level or layer service 1308 of one or more layer devices 1302. In an embodiment, one or more edge devices 1300 perform an action and / or generate a command in response to receiving the result. In addition, in some embodiments, the results are merged into one result or a smaller number of results.

[0180] In some embodiments, in response to determining that the data portions 1704, 1706, 1708 are not processed using the higher layer model 1304, the layer manager 1306 of the layer device 1302 may send the data portion 1704 to another layer of the layer device 1302 (or the provider network 102), where at the other layer, the data portions 1704, 1706, 1708, 1710 are processed by other models to generate one or more results. In an embodiment, the layer device 1302 then receives one or more results from the other layer device 1302 (or from the provider network 102), where the one or more results are based on the data portions 1704, 1706, 1708, 1710. The layer device 1302 may then send the one or more results to the edge device 1300 and / or one or more other endpoints. For example, one image processing model of a particular layer device may process sensor data from the red spectrum, another image processing model of another layer device may process sensor data from the green spectrum, and another image processing model of another layer device may process sensor data from the blue spectrum.

[0181] As discussed above for a single edge device, an edge device (e.g., a tier manager of an edge device) can determine whether to process the data portion 1704 using the model of the edge device or to send the data portion 1704 to the tier device based on criteria. As discussed above, the criteria can include one or more of the following: an amount of energy required by the model to process the data portion 1704, an amount of time required by the model to process the data portion 1704, an amount of time since the model was updated, and an amount of bandwidth available to send the data portion 1704 to the tier device.

[0182] For example, one or more layer managers of one or more edge devices may determine that the amount of time and / or energy required for the model to process data portion 1704 is above a threshold amount, and in response, send data portion 1704 to the layer device. Conversely, one or more layer managers of one or more edge devices may determine that the amount of time and / or energy required for the model to process data portion 1704 is not above a threshold amount, and in response, process data portion 1704 using the model of the edge device.

[0183] In an embodiment, one or more layer managers may determine that the amount of time since the model was updated is above a threshold amount, and in response, send data portion 1704 to the layer device. Conversely, one or more layer managers of the edge device may determine that the amount of time since the model was updated is not above a threshold amount, and in response, process data portion 1704 using the model of the edge device.

[0184] In some embodiments, one or more layer managers may determine that the amount of bandwidth available to send data portion 1704 to the layer device is above a threshold, and in response, send data portion 1704 to the layer device. Conversely, one or more layer managers of the edge device may determine that the amount of bandwidth available to send data portion 1704 to the layer device is not above a threshold, and in response, process data portion 1704 using the edge device.

[0185] In an embodiment, the above criteria may also be used by one or more layer managers of a layer device to determine whether to process a data portion 1704, 1706, 1708 using a model of the layer device or to send the data portion 1704, 1706, 1708, 1710 to other layer devices (or provider networks) of another layer. Thus, in an embodiment, a data portion 1704, 1706, 1708, 1710 may be propagated through one or more layers of layer devices (either as modified / transformed data or as unmodified data) until a particular group of layer devices (or provider networks) processes the data portion 1704 (or completes modifying and / or transforming the data portion 1704, 1706, 1708, 1710). After a layer device processes the data portion 1704 or completes modifying and / or transforming the data portion 1704, 1706, 1708, 1710, one or more results from the processing may be propagated back to the edge device and / or one or more other endpoints.

[0186] As discussed above for individual edge devices or tier devices, the edge device or tier device can generate a prediction based on processing of the data portions 1704, 1706, 1708, 1710. The one or more tier managers can then determine whether the confidence level of the prediction is below a threshold confidence level. If so, the one or more tier managers can send the data to the tier device (or the next level of the tier device) to be processed by the model of the tier device (or the next level of the tier device). If not, the edge device or tier device can use the prediction (e.g., to generate one or more responses) without sending the data portions 1704, 1706, 1708 to the tier device (or the next level of the tier device).

[0187] Thus, in an embodiment, the data portions 1704, 1706, 1708, 1710 may be propagated to one or more layer devices until the confidence level of the prediction is not less than a threshold level. At that time, the prediction may be propagated back to one or more of the edge devices and / or one or more other endpoints. In an embodiment, the provider network may contain the highest layer model. Thus, the farthest to which the data portions 1704, 1706, 1708, 1710 may be propagated may be the model 1310 of the provider network. Thus, in an embodiment, the layer service 1308 makes a determination as described above for the layer manager 1306.

[0188] Fig.18 18 is a flow chart illustrating implementing model layering by sending different data portions to different models according to some embodiments. At block 1802, one or more data collectors collect data at an edge device. As described above, data may be collected by different edge devices.

[0189] At block 1804, the one or more edge devices send the respective portions of the data to the respective layer devices. At block 1806, the layer devices process the respective portions of the data at the respective models of the layer devices. As described above, in some embodiments, the data portions may be propagated to one or more additional levels of the layer devices before being returned to the layer devices. At block 1808, the one or more edge devices receive one or more results from the layer devices. At block 1810, the one or more edge devices generate a response (or multiple responses) based on the one or more results.

[0190] In some embodiments, Figure 1-Figure 18 Any of the models described in the can operate within the context of a reinforcement learning process for training / modifying the model. For example, the provider network and / or the hub device can obtain topology data from the local network at multiple points in time (e.g., periodically) and periodically modify or replace the model based on the topology data to improve the accuracy of the model, improve the confidence level of the results (e.g., predictions) generated by the model, and / or improve the performance of the network.

[0191] In an embodiment, a reinforcement learning process is used to obtain a minimum confidence level for the prediction while minimizing one or more costs associated with obtaining the prediction. For example, costs due to network traffic / latency and / or power consumption of edge devices can be minimized while still obtaining a minimum level of accuracy. In an embodiment, the confidence level and / or accuracy level can be measured as a percentage (e.g., 99% or 90.5%) or any other value suitable for quantifying the level of confidence or accuracy from no confidence or accuracy (e.g., 0%) to full confidence or accuracy (e.g., 100%).

[0192] In some embodiments, Figure 1-Figure 18 Any of the models of a hub device, edge device, layer device, or provider network described in the can operate within the context of an event-driven execution environment. For example, one or more functions of the model can be assigned to a corresponding event, so that a specific function is triggered in response to the event-driven execution environment detecting an event assigned to a specific function (e.g., receiving data from one or more specific edge devices). In an embodiment, a function can include one or more operations to process the received data and can generate a result (e.g., a prediction).

[0193] Any of a variety of computer systems can be configured to implement the processes associated with a provider network, base station, hub device, edge device, layer device, or any other component of the above figures. For example, Fig.19 is a block diagram illustrating an example computer system that implements some or all of the techniques described herein, according to some embodiments. In various embodiments, Figure 1-Figure 18 Any of the provider networks, base stations, hub devices, edge devices, layer devices, or any other components in the example may each include one or more computer systems 1900, such as Fig.19 In embodiments, a provider network, base station, hub device, edge device, tier device, or any other component may include one or more components of computer system 1900, where the components function in the same or similar manner as described above for computer system 1900.

[0194] In the illustrated embodiment, computer system 1900 includes one or more processors 1910 coupled to system memory 1920 via an input / output (I / O) interface 1930. Computer system 1900 further includes a network interface 1940 coupled to I / O interface 1930. In some embodiments, computer system 1900 may illustrate a server that implements enterprise logic or downloadable applications, while in other embodiments, the server may include more, fewer, or different elements than computer system 1900.

[0195] In various embodiments, computer system 1900 may be a uniprocessor system including one processor 1910, or a multiprocessor system including several processors 1910 (e.g., two, four, eight, or another suitable number). Processor 1910 may be any suitable processor capable of executing instructions. For example, in various embodiments, processor 1910 may be an embedded processor implementing any of a variety of instruction set architectures (ISAs), such as x106, PowerPC, SPARC, or MIPS ISAs, or any other suitable ISAs. In a multiprocessor system, each of processors 1910 may typically, but not necessarily, implement the same ISA.

[0196] System memory 1920 may be configured to store instructions and data accessible by processor 1910. In various embodiments, system memory 1920 may be implemented using any suitable memory technology, such as static random access memory (SRAM), synchronous dynamic RAM (SDRAM), non-volatile / flash memory, or any other type of memory. In the illustrated embodiment, program instructions and data that implement the desired functionality of the methods and techniques such as those described above for a file gateway, object storage system, client device, or service provider are shown as stored within system memory 1920 as program instructions 1925. In some embodiments, system memory 1920 may include data 1935 that may be configured as described herein.

[0197] In one embodiment, the I / O interface 1930 may be configured to coordinate I / O traffic between the processor 1910, the system memory 1920, and any peripheral devices in the system through the network interface 1940 or other peripheral interfaces. In some embodiments, the I / O interface 1930 may perform any necessary protocol, timing, or other data transformations to convert data signals from one component (e.g., the system memory 1920) into a format suitable for use by another component (e.g., the processor 1910). In some embodiments, the I / O interface 1930 may include support for devices attached through various types of peripheral buses (such as a variant of the Peripheral Component Interconnect (PCI) bus standard or the Universal Serial Bus (USB) standard). In some embodiments, the functionality of the I / O interface 1930 may be split into two or more independent components, such as a north bridge and a south bridge. And, in some embodiments, some or all of the functionality of the I / O interface 1930 (such as the interface to the system memory 1920) may be directly incorporated into the processor 1910.

[0198] The network interface 1940 can be configured to allow data to be exchanged between the computer system 1900 and other computer systems 1900 or devices attached to a network (such as a local network, a wide area network, or a local network within a provider network discussed above). Specifically, the network interface 1940 can be configured to allow communication between the computer system 1900 and / or various I / O devices 1950. As described herein, the I / O device 1950 can include a scanning device, a display device, an input device, and / or other communication devices. The network interface 1940 can generally support one or more wireless network protocols (e.g., Wi-Fi / IEEE802.11 or another wireless network standard). However, in various embodiments, the network interface 1940 can support communication through any suitable wired or wireless general data network (such as other types of Ethernet). In addition, the network interface 1940 can support communication through a telecommunication / telephone network (such as an analog voice network or a digital fiber optic communication network), through a storage area network (such as a fiber channel SAN), or through any other suitable type of network and / or protocol.

[0199] In some embodiments, system memory 1920 may be an embodiment of a computer-accessible medium configured to store program instructions and data as described above. However, in other embodiments, program instructions and / or data may be received, sent, or stored on different types of computer-accessible media. In general, a computer-accessible medium may include a computer-readable storage medium or memory medium, such as a magnetic medium or an optical medium, for example, a disk or DVD / CD-ROM coupled to the computer system 1900 via an I / O interface 1930. The computer-readable storage medium may also include any volatile or non-volatile medium, such as RAM (e.g., SDRAM, DDR SDRAM, RDRAM, SRAM, etc.), ROM, etc., which may be included in some embodiments of the computer system 1900 as system memory 1920 or another type of memory. In addition, the computer-accessible medium may include a transmission medium or a signal (e.g., an electrical signal, an electromagnetic signal, or a digital signal) that is conveyed via a communication medium (e.g., a network and / or a wireless link), such as may be implemented via a network interface 1940.

[0200] In some embodiments, I / O device 1950 may be a relatively simple or "lite" client device. For example, I / O device 1950 may be configured as a dumb terminal having display, data input, and communication capabilities but little computing functionality beyond that. However, in some embodiments, I / O device 1950 may be a computer system configured similarly to computer system 1900, including one or more processors 1910 and various other devices (although in some embodiments, computer system 1900 implementing I / O device 1950 may have slightly different devices or different classes of devices).

[0201] In various embodiments, according to, I / O device 1950 (e.g., scanner or display device and other communication devices) may include but are not limited to one or more of the following embodiments: handheld devices, devices worn by or attached to a person, and devices integrated into or mounted on any mobile or fixed equipment. I / O device 1950 may further include but is not limited to one or more of the following: personal computer systems, desktop computers, rack-mount computers, laptop or notebook computers, workstations, network computers, "dumb" terminals (i.e., computer terminals with little or no integrated processing capabilities), personal digital assistants (PDAs), mobile phones or other handheld devices, proprietary devices, printers, or any other device suitable for communicating with computer system 1900. In general, I / O device 1950 (e.g., cursor control device 1960, keyboard 1970, or one or more displays 1980) can be any device capable of communicating with elements of computing system 1900.

[0202] Embodiments of the present disclosure may also be described according to the following terms:

[0203] 1. A system comprising:

[0204] One or more edge devices connected to a network, wherein individual ones of the edge devices are configured to:

[0205] Collect data;

[0206] determining whether to process the data using a data processing model of the edge device or to send the data to one or more tier devices connected to the network; and

[0207] processing the data using the data processing model, or

[0208] sending the data to the one or more layer devices; and

[0209] The one or more layer devices, wherein individual layer devices of the layer devices are configured to:

[0210] receiving the data from the edge device;

[0211] determining whether to process the data using a higher layer data processing model of the layer device; and

[0212] In response to determining to process the data using the higher-level data processing model:

[0213] processing the data using the higher level data processing model;

[0214] generating a result based on the processing; and

[0215] The results are sent to the endpoint.

[0216] 2. The system of clause 1, wherein the higher-level data processing model of the layer device is larger than the data processing model of the edge device, and wherein the result is a prediction, and wherein the higher-level data processing model is configured to:

[0217] The prediction is generated with a higher confidence level than the data processing model of the edge device.

[0218] 3. The system of clause 1, wherein the edge device is configured to:

[0219] Determining whether to process the data using the data processing model of the edge device or to send the data to the tier device is determined based on criteria, wherein the criteria include one or more of the following:

[0220] the amount of energy required by the data processing model to process the data;

[0221] the amount of time required by the data processing model to process the data;

[0222] the amount of time since the data processing model was updated; and

[0223] The amount of bandwidth available to send the data to the tier device.

[0224] 4. The system of clause 1, wherein the edge device is configured to:

[0225] generating a prediction based on processing of the data using the data processing model of the edge device;

[0226] determining that a confidence level of the prediction is below a threshold confidence level; and

[0227] The data is sent to the one or more tier devices in response to the determining.

[0228] 5. The system of clause 1, wherein the layer device is configured to:

[0229] In response to determining not to process the data using the higher-level data processing model:

[0230] sending the data to another tier device or provider network;

[0231] receiving a result from the another tier device or the provider network, wherein the result is based on the data; and

[0232] The results are sent to the edge device.

[0233] 6. A method comprising:

[0234] One or more layer devices connected to a network, the one or more layer devices comprising corresponding data processing models, wherein individual ones of the layer devices perform the following:

[0235] Receive data;

[0236] determining whether to process the data using the data processing model of the layer device or to send the data to one or more other layer devices connected to the network based on criteria associated with at least one of the data processing model and a higher layer data processing model; and

[0237] In response to the determination:

[0238] processing the data using the data processing model, or

[0239] The data is sent to the one or more other layer devices.

[0240] 7. The method of clause 6, wherein the criteria include one or more of the following:

[0241] the amount of energy required by the data processing model to process the data;

[0242] the amount of time required by the data processing model to process the data;

[0243] the amount of time since the data processing model was updated; and

[0244] A confidence level for one or more corresponding predictions previously generated by the data processing model.

[0245] 8. A method according to clause 6, wherein at least some of the criteria are associated with the higher-level data processing model of one or more of the other layer devices, wherein the higher-level data processing model is larger than the data processing model of the layer devices.

[0246] 9. The method of clause 8, wherein the criteria further comprises:

[0247] an amount of bandwidth available to transmit the data from the layer device to the one or more other layer devices;

[0248] an amount of time required by the higher level data processing model to process the data;

[0249] an amount of time since the higher level data processing model was updated; and

[0250] A confidence level for one or more corresponding predictions previously generated by the higher-level data processing model.

[0251] 10. The method of clause 6, wherein the data comprises a plurality of data portions, and wherein sending the data comprises:

[0252] sending corresponding portions of the data to corresponding layer devices among the plurality of other layer devices; and

[0253] One or more results are received from one or more of the other tier devices, wherein the one or more results are based on the respective portions of the data.

[0254] 11. The method according to clause 6, further comprising:

[0255] processing the data using the data processing model; and

[0256] Processed data is sent to the one or more other layer devices, wherein the processed data includes data that has been transformed by the data processing model.

[0257] 12. The method of clause 6, wherein sending the data to the one or more other tier devices comprises sending the data to a remote provider network.

[0258] 13. The method of clause 6, wherein receiving data comprises:

[0259] The data is received from one or more environmental sensors of the layer device.

[0260] 14. A non-transitory computer-readable storage medium storing program instructions that, when executed by a layer device connected to a provider network, cause the layer device to:

[0261] Receive data;

[0262] determining whether to process the data using the data processing model of the layer device or to send the data to one or more other layer devices connected to the network based on criteria associated with at least one of the data processing model and a higher layer data processing model; and

[0263] In response to the determination:

[0264] processing the data using the data processing model, or

[0265] The data is sent to the one or more other layer devices.

[0266] 15. The non-transitory computer-readable storage medium of clause 14, wherein the criteria include one or more of the following:

[0267] the amount of energy required by the data processing model to process the data;

[0268] the amount of time required by the data processing model to process the data;

[0269] the amount of time since the data processing model was updated; and

[0270] A confidence level for one or more corresponding predictions previously generated by the data processing model.

[0271] 16. A non-transitory computer-readable storage medium according to clause 14, wherein at least some of the criteria are associated with the higher-level data processing model of one or more of the other layer devices, wherein the higher-level data processing model is larger than the data processing model of the layer devices.

[0272] 17. The non-transitory computer-readable storage medium of clause 16, wherein the criteria further comprises:

[0273] an amount of bandwidth available to transmit the data from the layer device to the one or more other layer devices;

[0274] an amount of time required by the higher level data processing model to process the data;

[0275] an amount of time since the higher level data processing model was updated; and

[0276] A confidence level for one or more corresponding predictions previously generated by the higher-level data processing model.

[0277] 18. The non-transitory computer-readable storage medium of clause 14, wherein the data comprises a plurality of data portions, and wherein the program instructions cause the layer device to further perform the following:

[0278] sending corresponding portions of the data to corresponding layer devices among the plurality of other layer devices; and

[0279] One or more results are received from one or more of the other tier devices, wherein the one or more results are based on the respective portions of the data.

[0280] 19. The non-transitory computer-readable storage medium of clause 14, wherein the program instructions cause the layer device to further perform the following:

[0281] The data is received from one or more environmental sensors of the layer device.

[0282] 20. The non-transitory computer-readable storage medium of clause 14, wherein the program instructions cause the layer device to further perform the following:

[0283] The data is transmitted to a remote provider network.

[0284] Embodiments of the present disclosure may also be described according to the following terms:

[0285] 1. A system comprising:

[0286] At least one hub device connected to the network, the at least one hub device comprising:

[0287] one or more processors; and

[0288] One or more memories, wherein the one or more memories have stored thereon instructions that, when executed by the one or more processors, cause the one or more processors to:

[0289] a local data processing model, wherein the local data processing model is configured to perform one or more operations on data received from one or more edge devices connected to the network to generate a local result; and

[0290] A result manager, wherein the result manager is configured to:

[0291] sending the data received from the edge device to a remote provider network;

[0292] receiving a result from the remote provider network, wherein the result is based on the data received from the edge device; and

[0293] A response is generated based on the partial results or the received results.

[0294] 2. The system of clause 1, wherein the result manager is configured to:

[0295] determining whether to correct the partial result to generate a corrected result based on the received result and the partial result; and

[0296] The response is generated based on the determination.

[0297] 3. The system of clause 1, wherein to determine whether to correct the partial result to generate the corrected result, the result manager is configured to:

[0298] determining a confidence level for the local result;

[0299] Determine the confidence level of the result; and

[0300] If the confidence level of the partial result is lower than the confidence level of the result, the partial result is corrected to generate the corrected result.

[0301] 4. The system of clause 1, wherein the result manager is configured to:

[0302] determining that a confidence level of the partial result is above a threshold level; and

[0303] In response to determining that the confidence level of the partial result is above the threshold level, an initial response is generated based on the partial result prior to receiving the result from the provider network.

[0304] 5. The system of clause 4, wherein the result manager is configured to:

[0305] determining a confidence level for the local result;

[0306] Determine the confidence level of the result; and

[0307] If the confidence level of the partial result is lower than the confidence level of the result, the partial result is corrected, wherein the response based on the corrected result is different from the initial response.

[0308] 6. A method comprising:

[0309] Perform the following via a computing device:

[0310] Receive data;

[0311] performing one or more operations on the data by a data processing model of the computing device to generate a local result;

[0312] sending said data to a web-based data processing service;

[0313] receiving a result from the network-based data processing service, wherein the result is based on the data; and

[0314] A response is generated based on the partial results or the received results.

[0315] 7. The method according to clause 6, further comprising:

[0316] determining whether to correct the partial result to generate a corrected result based on the received result and the partial result; and

[0317] The response is generated based on the determination.

[0318] 8. The method according to clause 6, further comprising:

[0319] determining a confidence level for the local result;

[0320] Determining the confidence level of the results; and

[0321] If the confidence level of the partial result is lower than the confidence level of the result, the partial result is corrected to generate the corrected result.

[0322] 9. The method according to clause 6, further comprising:

[0323] determining that a confidence level of the partial result is above a threshold level; and

[0324] In response to determining that the confidence level of the partial result is above the threshold level, an initial response is generated based on the partial result.

[0325] 10. The method according to clause 9, further comprising:

[0326] determining a confidence level for the local result;

[0327] Determining the confidence level of the results; and

[0328] If the confidence level of the partial result is lower than the confidence level of the result, a determination is made to correct the partial result, wherein the response based on the corrected result is different from the initial response.

[0329] 11. The method of clause 6, wherein the received results include updates to the data processing model of the computing device, and the method further comprises:

[0330] A local model is updated using the updates received from the provider network.

[0331] 12. The method of clause 6, wherein the computing device is connected to a network, and wherein at least a portion of the data is received from one or more environmental sensors connected to the network.

[0332] 13. The method of clause 6, wherein the computing device connected to a local network and the network-based data processing service is a service of a remote provider network.

[0333] 14. The method of clause 6, wherein generating a response based on the partial result or the corrected result comprises:

[0334] generating a command to cause the computing device to perform an action; and

[0335] The command is sent to the computing device.

[0336] 15. A non-transitory computer-readable storage medium storing program instructions that, when executed by one or more computing devices for a data processing service of a provider network, cause the one or more computing devices to:

[0337] obtaining, at the data processing service, data from a computing device of a remote network;

[0338] obtaining, at the data processing service, a remote result from a remote data processing model of the computing device, wherein the remote result is based on the data;

[0339] performing one or more operations on the data through a data processing model to generate a result;

[0340] modifying the result based at least on the remote result and the result; and

[0341] The modified results are transmitted from the provider network to the computing device of the remote network.

[0342] 16. The non-transitory computer-readable storage medium of clause 15, wherein the program instructions cause the one or more computing devices to further:

[0343] generating an update to the remote data processing model of the computing device based on the remote result and the result; and

[0344] The update is transmitted to the computing device of the remote network.

[0345] 17. The non-transitory computer-readable storage medium of clause 15, wherein the program instructions cause the one or more computing devices to further:

[0346] The result is modified based on one or more differences between the remote result and the result.

[0347] 18. The non-transitory computer-readable storage medium of clause 15, wherein the program instructions cause the one or more computing devices to further:

[0348] The result is modified based on a difference between the confidence level of the remote result and the confidence level of the result.

[0349] 19. The non-transitory computer-readable storage medium of clause 15, wherein the program instructions cause the one or more computing devices to further:

[0350] determining one or more delta values ​​based at least on one or more differences between the remote result and the result; and

[0351] The result is modified by replacing the result with the one or more increment values.

[0352] 20. The non-transitory computer-readable storage medium of clause 19, wherein a size of the one or more delta values ​​transmitted to the computing device of the remote network is smaller than a size of the result replaced by the one or more delta values.

[0353] Embodiments of the present disclosure may also be described according to the following terms:

[0354] 1. A system comprising:

[0355] one or more processors; and

[0356] one or more memories, wherein the one or more memories have stored thereon instructions that, when executed by the one or more processors, cause the one or more processors to implement a model training service for a provider network, wherein the model training service is configured to:

[0357] receiving data from a plurality of edge devices of a remote network;

[0358] Analyze the received data;

[0359] generating one or more updates to one or more corresponding local data processing models based on the analysis of the received data, wherein the one or more updates are configured to update the one or more corresponding local data processing models at corresponding one or more of the edge devices of the remote network; and

[0360] The one or more updates are deployed to the remote network.

[0361] 2. The system of clause 1, wherein the one or more updates comprise one or more new versions of the corresponding local data processing models configured to replace the corresponding local data processing models.

[0362] 3. A system according to clause 1, wherein the generation of the one or more updates to one or more corresponding local data processing models is based at least on one or more of the states of the one or more corresponding edge devices and the state of the remote network.

[0363] 4. The system of clause 1, wherein the model training service is configured to:

[0364] receiving global data from one or more other edge devices of one or more other remote networks;

[0365] analyzing the global data; and

[0366] The one or more updates to a local data processing model are generated based on the analysis of the received data and the analysis of the global data.

[0367] 5. A system according to clause 1, wherein the one or more updates include two or more different local data processing models of at least one of the edge devices, wherein the different local data processing models are configured to process different data received by the at least one edge device at different times.

[0368] 6. A method comprising:

[0369] Performed by at least one hub device connected to the network:

[0370] receiving data from a plurality of edge devices of the network;

[0371] Analyze the received data;

[0372] generating one or more updates to one or more corresponding local data processing models based on the analysis of the received data, wherein the one or more updates are configured to update the one or more corresponding local data processing models at corresponding one or more of the edge devices of the network; and

[0373] The one or more updates are deployed to the respective edge devices of the network.

[0374] 7. The method of clause 6, wherein the one or more updates comprise one or more new versions of the respective local data processing models configured to replace the respective local data processing models.

[0375] 8. The method according to clause 6, wherein the hub device performs the following:

[0376] The one or more updates are generated based at least on one or more of a status of the one or more respective edge devices and a status of the network.

[0377] 9. The method according to clause 6, wherein the hub device performs the following:

[0378] receiving global data from one or more other edge devices of one or more other remote networks;

[0379] analyzing the global data; and

[0380] The one or more updates to a local data processing model are generated based on the analysis of the received data and the analysis of the global data.

[0381] 10. The method of clause 6, wherein the hub device performs the following:

[0382] Different weights are applied to the received data and the global data during the analysis of the received data and the analysis of the global data.

[0383] 11. The method according to clause 6, wherein the hub device performs the following:

[0384] During the analysis of the received data and the analysis of the global data, a higher weight is applied to the received data than a weight applied to the global data.

[0385] 12. A method according to clause 6, wherein the one or more updates include two or more different local data processing models of at least one of the edge devices, wherein the different local data processing models are configured to process different data received by the at least one edge device at different times.

[0386] 13. The method according to clause 6, wherein the hub device performs the following:

[0387] At least one of the updates to a particular local data processing model of a particular edge device is generated based on an analysis of a portion of the data received from other edge devices of the network.

[0388] 14. A non-transitory computer-readable storage medium storing program instructions that, when executed by a computing device, cause the computing device to:

[0389] receiving data from a data collector;

[0390] Analyze the received data;

[0391] generating an update to a local data processing model of the computing device based on the analysis of the received data, wherein the update is configured to update the local data processing model;

[0392] applying the update to the local data processing model;

[0393] sending the data to a model training service of a remote provider network;

[0394] receiving another update to the local data processing model from the model training service of the remote provider network, wherein the update is based on the data; and

[0395] The further update is applied to the local data processing model.

[0396] 15. The non-transitory computer-readable storage medium of clause 14, wherein the another update comprises a new version of the local data processing model, and wherein the program instructions cause the computing device to further perform the following:

[0397] The local data processing model is replaced with the new version of the local data processing model.

[0398] 16. The non-transitory computer-readable storage medium of clause 14, wherein the program instructions cause the one or more computing devices to further:

[0399] receiving other data from the data collector; and

[0400] The local data processing model is generated based on other data.

[0401] 17. The non-transitory computer-readable storage medium of clause 14, wherein the program instructions cause the one or more computing devices to further:

[0402] receiving global data from the model training service, wherein the global data is based on data collected by one or more other edge devices of one or more other remote networks;

[0403] analyzing the global data; and

[0404] The updates to the local data processing model are generated based on the analysis of the global data.

[0405] 18. The non-transitory computer-readable storage medium of clause 14, wherein the another update is further based on one or more of:

[0406] other data collected by one or more other edge devices of a local network including the computing device, or

[0407] Global data collected by one or more other edge devices of one or more other remote networks.

[0408] 19. The non-transitory computer-readable storage medium of clause 14, wherein the another update comprises one or more changes to the update generated by the computing device.

[0409] 20. The non-transitory computer-readable storage medium of clause 14, wherein the program instructions cause the one or more computing devices to further:

[0410] periodically receiving additional updates to the local data processing model from the model training service of the remote provider network, wherein the additional updates are based at least on additional data collected by the data collector; and

[0411] Apply the additional updates described.

[0412] The various methods shown in the figure and described herein represent illustrative embodiments of the method. The method can be implemented manually, with software, with hardware, or with a combination thereof. The order of any method can be changed, and various elements can be added, reordered, combined, omitted, and modified. For example, in one embodiment, the method can be implemented by a computer system, which includes a processor that executes program instructions stored on a computer-readable storage medium coupled to the processor. The program instructions can be configured to implement the functions described herein (e.g., functions of data transmission tools, various services, databases, devices, and / or other communication devices, etc.).

[0413] It will be apparent to those skilled in the art having the benefit of this disclosure that various modifications and changes may occur. It is intended to embrace all such modifications and changes, and therefore, the above description is to be regarded as illustrative rather than restrictive.

[0414] Various embodiments may further include receiving, sending or storing instructions and / or data implemented according to the foregoing description on a computer-accessible medium. In general, a computer-accessible medium may include a storage medium or memory medium (such as a magnetic medium or an optical medium, for example, a disk or a DVD / CD-ROM), a volatile or non-volatile medium (such as a RAM (e.g., SDRAM, DDR, RDRAM, SRAM, etc.), a ROM, etc.), and a transmission medium or signal (such as an electrical signal, an electromagnetic signal, or a digital signal transmitted through a communication medium (such as a network and / or a wireless link)).

Claims

1. A system for model stratification, comprising: one or more processors of the provider’s network; and One or more memories, wherein the one or more memories have stored thereon instructions that, when executed by the one or more processors, cause the one or more processors to: obtaining data from a remote device, wherein the data is collected by one or more data collectors associated with the remote device; obtaining a remote result from a remote data processing model of a remote device, wherein the remote result is generated by the remote data processing model based on the data; performing, by the data processing model of the provider network, one or more operations on the data to generate another result for the provider network; determining one or more values ​​based on one or more differences between the remote result and the other result of the provider network; generating a modified result including at least the one or more values, wherein the modified result is less than the other result of the provider network; and The modified results are transmitted from the provider network to the remote device.

2. The system of claim 1, wherein: To generate the modified result including at least the one or more values, the instructions cause the one or more processors to: The other result is modified based on the one or more differences between the remote result and the other result.

3. The system of claim 1 or 2, wherein: To generate the modified result including at least the one or more values, the instructions cause the one or more processors to: The modified result is generated based on a difference between the confidence level of the remote result and the confidence level of the another result.

4. The system of claim 1 or 2, wherein the instructions cause the one or more processors to: generating an update to a remote data processing model based on the remote result and the other result; and Transmit updates to remote devices.

5. The system of claim 4, wherein the update comprises one or more changes to be made to a remote data processing model, and wherein to generate the update, the instructions cause the one or more processors to: The one or more changes to be made are determined to improve the accuracy of the remote data processing model.

6. The system of claim 1 or 2, wherein: To obtain the data from the remote device, the instructions cause the one or more processors to: The data is obtained from a hub device of a remote network, wherein the data includes data received by the hub device from one or more edge devices of the remote network.

7. The system of claim 6, wherein to obtain the remote result from the remote data processing model of the remote device, the instructions cause the one or more processors to: The remote results are obtained from a remote data processing model of the hub device.

8. A method for model stratification, comprising: Executed by one or more computing devices of the provider network: obtaining data from a remote device, wherein the data is collected by one or more data collectors associated with the remote device; obtaining a remote result from a remote data processing model of a remote device, wherein the remote result is generated by the remote data processing model based on the data; performing, by a data processing model of the provider network, one or more operations on the data to generate another result for the provider network; determining one or more values ​​based on one or more differences between the remote result and the other result of the provider network; generating a modified result including at least the one or more values, wherein the modified result is less than the other result of the provider network; and The modified results are transmitted from the provider network to the remote device.

9. The method of claim 8, wherein generating the modified result including at least the one or more values ​​comprises: The other result is modified based on the one or more differences between the remote result and the other result.

10. The method of claim 8 or 9, wherein generating the modified result including at least the one or more values ​​comprises: The modified result is generated based on a difference between the confidence level of the remote result and the confidence level of the another result.

11. The method of claim 8 or 9, further comprising: generating an update to a remote data processing model based on the remote result and the other result; and The update is transmitted to the remote device.

12. The method of claim 11, wherein the update comprises one or more changes to be made to a remote data processing model, and wherein generating the update comprises: One or more changes to be made are determined to increase the accuracy of the remote data processing model.

13. The method of claim 8 or 9, wherein obtaining the data from a remote device comprises: The data is obtained from a hub device of a remote network, wherein the data includes data received by the hub device from one or more edge devices of the remote network.

14. The method of claim 13, wherein obtaining the remote result from a remote data processing model of a remote device comprises: The remote results are obtained from a remote data processing model of the hub device.

15. One or more non-transitory computer-accessible storage media storing program instructions that, when executed on or across one or more processors of a provider network: obtaining data from a remote device, wherein the data is collected by one or more data collectors associated with the remote device; obtaining a remote result from a remote data processing model of a remote device, wherein the remote result is generated by the remote data processing model based on the data; performing, by the data processing model of the provider network, one or more operations on the data to generate another result for the provider network; determining one or more values ​​based on one or more differences between the remote result and the another result of the provider network; generating a modified result including at least the one or more values, wherein the modified result is less than the other result of the provider network; and The modified results are transmitted from the provider network to the remote device.

16. One or more storage media as claimed in claim 15, wherein: To generate a modified result comprising at least the one or more values, the program instructions, when executed on or across the one or more processors: The other result is modified based on the one or more differences between the remote result and the other result.

17. One or more storage media as claimed in claim 15 or 16, wherein: To generate a modified result comprising at least the one or more values, the program instructions, when executed on or across the one or more processors: A modified result is generated based on a difference between the confidence level of the remote result and the confidence level of the other result.

18. The one or more storage media of claim 15 or 16, wherein the program instructions, when executed on or across the one or more processors: generating an update to the remote data processing model based on the remote result and the other result; and The update is transmitted to the remote device.

19. One or more storage media as claimed in claim 18, wherein: The update comprises one or more changes to be made to the remote data processing model, and wherein to generate the update, the program instructions, when executed on or across the one or more processors: The one or more changes to be made are determined to improve the accuracy of the remote data processing model.

20. The one or more storage media of claim 15 or 16, wherein to obtain a remote result from a remote data processing model of a remote network, the program instructions, when executed on or across the one or more processors: A remote result is obtained from a remote data processing model of a hub device of a remote network, wherein the data includes data received by the hub device from one or more edge devices of the remote network.

21. A system for model layering, comprising: At least one hub device connected to a network, comprising: one or more processors; and One or more memories, wherein the one or more memories have instructions stored thereon, which when executed by the one or more processors cause the one or more processors to implement: A local data processing model, wherein the local data processing model is configured to perform one or more operations on data received from one or more edge devices connected to the network to generate Local results; and A result manager, wherein the result manager is configured to: sending data received from the edge device to a remote provider network; Generate an initial response before receiving remote results; receiving a remote result from a remote provider network, wherein the remote result is based on performing one or more operations by a remote data processing model at the provider network on the data received from the edge device to generate an initial remote result, and wherein the remote result is smaller than the initial remote result and includes one or more delta values ​​based on a difference between the local result and the initial remote result; and Based on the remote results and the local results, a determination is made whether to correct the local results to generate an additional response that is different than an initial response previously generated by the results manager based on the local results.

22. The system of claim 21, wherein: The Result Manager is configured to: Based on the confidence level of the local result, a determination is made whether to generate an initial response before receiving the remote result.

23. The system of claim 21 or 22, wherein the result manager is configured to: Determine confidence levels for local results; Determine the confidence level of the remote results; and If the confidence level of the local result is lower than the confidence level of the remote result, the local result is corrected to generate a corrected result.

24. The system of claim 21 or 22, wherein the result manager is configured to: determining that a confidence level of the local result is above a threshold level; and wherein to generate an initial response prior to receiving the remote result, the result manager is configured to: In response to determining that the confidence level of the partial result is above a threshold level, an initial response is generated.

25. The system of claim 21 or 22, wherein the result manager is configured to: Determine confidence levels for local results; Determine the confidence level of the remote results; and If the confidence level of the local result is not lower than the confidence level of the remote result, it is determined that the local result is not corrected.

26. A method for model stratification, comprising: Executed by a computing device: Receive data; performing, by a data processing model of the computing device, one or more operations on the data to generate a local result; sending said data to a web-based data processing service; Generate an initial response before receiving remote results; receiving a remote result from a remote provider network, wherein the remote result is based on performing one or more operations by a remote data processing model at the provider network on the data received from the edge device to generate an initial remote result, and wherein the remote result is smaller than the initial remote result and includes one or more delta values ​​based on a difference between the local result and the initial remote result; and Based on the remote results and the local results, a determination is made whether to correct the local results to generate an additional response that is different than an initial response previously generated by the results manager based on the local results.

27. The method of claim 26, further comprising: Based on the confidence level of the local result, a determination is made whether to generate an initial response before receiving the remote result.

28. The method of claim 26 or 27, wherein determining whether to correct a partial result comprises: determining a confidence level of the partial result; Determine the confidence level of the remote results; and Determine whether the confidence level of the local result is lower than the confidence level of the remote result.

29. The method of claim 26 or 27, further comprising: determining that the confidence level of the local result is above a threshold level; and Generating an initial response before receiving a remote result includes: In response to determining that the confidence level of the partial result is above the threshold level, an initial response is generated.

30. The method of claim 29, further comprising: In response to determining to correct the local result to generate an additional response: modifying the local result based on at least the remote result; and Based on the modified local results, additional responses are generated.

31. The method of claim 26 or 27, wherein the remote result comprises an update to a data processing model of the computing device, and further comprising: Update the local model with updates from the remote provider network.

32. The method of claim 26 or 27, wherein the computing device is connected to a network, and wherein at least a portion of the data is received from one or more environmental sensors connected to the network.

33. A method as claimed in claim 26 or 27, wherein the computing device connected to the local network and the network-based data processing service are services of a remote provider network.

34. The method of claim 26 or 27, wherein generating different responses comprises: generating a command for another computing device to perform an action; and The command is sent to the other computing device.

35. A non-transitory computer-readable storage medium storing program instructions that, when executed by one or more computing devices for a data processing service of a provider network, cause the one or more computing devices to: At the data processing service, obtaining data from a computing device on a remote network; obtaining, at the data processing service, a remote result from a remote data processing model of the computing device, wherein the remote result is based on the data; performing one or more operations on the data by the data processing model to generate a result; modifying a result of the data processing model generated by processing the same data based at least on a remote result of the remote data processing model generated by processing the data at the remote network to generate a modified result that is different from the result of the data processing model and different from the remote result of the remote data processing model of the remote network, wherein the modification of the result comprises determining one or more delta values ​​based on a difference between a remote result and the result, and replacing the result with the one or more delta values, and wherein the one or more delta values ​​are less than the result replaced by the one or more delta values; and The modified results are transmitted from the provider network to a computing device in the remote network.

36. The non-transitory computer readable storage medium of claim 35, wherein the program instructions cause the one or more computing devices to further: generating an update of a remote data processing model of the computing device based on the remote results and the results; and The update is transmitted to a computing device on a remote network.

37. The non-transitory computer readable storage medium of claim 35 or 36, wherein the program instructions cause the one or more computing devices to further: The result is modified based on one or more differences between the remote result and the result.

38. The non-transitory computer readable storage medium of claim 35 or 36, wherein the program instructions cause the one or more computing devices to further: The result is modified based on a difference between the confidence level of the remote result and the confidence level of the result.

Citation Information

Patent Citations

  • Enhanced data management virtualization system

    CN104769555A

  • Method and system for optimizing wireless networks through feedback and adaptation

    US20090303888A1