Invented by Pradeep Baliganapalli NAGARAJU, Steve Zhang, Jiahan Wang, Adam Jamison Oliner, Erick Anthony Dean, Splunk Inc
The Splunk Inc invention works as followsDisclosed” is a method that can be executed by a computer server system. The technique may include executing a process of machine learning to generate a model of machine learning based on data from electronic devices. The technique may also include encapsulating model data within a markup document. The technique may also include sending the markup document over a network to at least one of the electronic devices in order to cause that electronic device to update its local machine learning model.
Background for Transmitting Machine Learning Models to Edge Devices for Edge Analytics
Information technology environments may include a variety of edge devices. An edge device can be an electronic device which forms the endpoint of a connection. A device that is part of the Internet-of-Things can be an edge device. An edge device is a device that collects data and can exchange it on a network. A device connected to an IoT network can be permanently or intermittently connected. IoT devices can include electronic, software, sensor, and network connectivity elements that are already present in other items, such as vehicles, buildings or other devices. “An edge device can perform M2M communications (e.g. without human intervention), directly with other devices over a network. It may also interact physically with its environment.
Multiple edge devices in an IT environment can generate large quantities of data (edge data) The edge data can be generated from different locations. Edge data can be generated passively by sensors (e.g. cameras that photograph detected objects) or actively by cameras (e.g. sensors collecting environmental temperature). Machine-generated data can be included in edge data. The edge data may include machine-generated data (?machine data? ), including performance data, diagnostics, or other data which can be analyzed in order to diagnose equipment problems, monitor users’ interactions, and derive other insights. Edge data can be difficult to manage, understand and use effectively in certain environments due to its large amount and diversity.
There are a number of tools available for analyzing data generated by edge devices. Edge data can be pre-processed to reduce the amount of data generated. To facilitate retrieval and analysis at a future time, certain data items can be extracted and stored into a database. The rest of the edge data is typically not saved, and it is discarded when pre-processing is performed. As storage becomes more affordable and plentiful, it is possible to store large quantities of minimally or unprocessed (also known as “raw data”) data. It is increasingly possible to store large quantities of minimally processed or unprocessed data (collectively and individually referred to as?raw data?) for retrieval and later analysis. It is possible to gain more flexibility by storing the raw edge data, and then performing an analysis later. This allows analysts to examine all of their edge data rather than a subset. It may be possible for an analyst to examine different aspects of the data, which were previously unavailable for analysis due to massive amounts of data being discarded. While the vastly increased amount of data available offers many opportunities, it also creates new technical challenges.
In this description, references are made to “an embodiment” ?one embodiment? ?one embodiment’ or similar expressions mean that the feature, function or structure being described is part of at least one embodiment. The use of these phrases does not always refer to the exact same embodiment. The embodiments that are referred to in this specification do not have to be mutually exclusive.
Edge Devices can be configured to use machine learning techniques in order to improve the operation of their devices and/or to enhance the edge data that they produce. An edge device, in particular, can use a model built from input observations to make data-driven predictions, rather than strictly following static program instructions. A camera device, for example, may learn to detect objects and take images of them when they are detected. As the camera device processes images of more objects, machine learning may help improve the ability to recognize objects that are similar. Machine learning is computationally demanding and may exceed the capabilities currently available edge devices with limited storage and computation capabilities. Localized machine learning has no global awareness and is also limited by context.
Accordingly, a technique is introduced here for improving the performance and/or quality of edge devices or data generated by edge device, by using machine learning within a system which indexes, store, and facilitates the search and analysis data generated by a distributed network of edge devices. As discussed below, in various embodiments a central machine learning process uses edge data from all edge devices within a network (or more than one) to train a model. The resulting “global” model is then used by the individual edge devices and improves their performance. The resulting?global? model is used to improve local machine learning models that are used by individual edge devices.
The edge devices are able to index and store local data generated based on the inputs of the edge devices. Each edge device can process the data generated with a local algorithm to perform local actions. The local model on each edge device may be updated by a machine learning process that is implemented globally or locally.
The system, in some embodiments, includes a computer server that can index and save edge data obtained by the network of edge devices. (collectively “global edge data”). The server computer system is updated a global machine learning model (?globalmodel?) The global model is trained using global edge data collected from all edge devices (or more than one). The server computer can send model data to each edge device (e.g. the updated global models themselves, just a portion of the updated global models, or any other data that indicates how the global model was updated). The model data can be used by each edge device to replace or modify the local model that is used to process local data using a machine-learning process. The system can improve each edge device’s performance by using a machine-learning model locally at each device that was trained based on data from the edge devices themselves and others. This technique can reduce the impact of defects, aberrations and anomalies on any edge device.
At least some edge devices may be intermittently communicatively linked to the server computer during operation. This connection can be made via a wireless or wired link, or a combination of both. It can also be direct or indirect. While the edge device remains connected to the computer system, edge data and model information can be exchanged. Edge devices can continue to use the local model when they are disconnected from the server system. In some embodiments the edge computer can use a machine-learning local process to train the local model even when it is disconnected from the system. In some embodiments any edge device or server computer system can use schemas in order to extract training data out of unprocessed or minimally-processed (?raw data?) data. “raw data” or data derived by the raw data.
Model data may be exchanged via markup language between edge devices, and the server computer. The server computer system encodes model data using a schema for a markup-language and creates a document in markup that contains the encoded data. The edge device, which receives the markup document, parses it based on a schema to extract the model data. The edge device may then use the model to modify or replace its local model that is used to process locally generated data using a machine-learning process.
The description of the following will reveal a number of other features about the machine-learning technique. It is helpful to first consider an example system and environment in which this technique can be used. This will be described now.
1.0. “General Overview
The embodiments described herein refer to a distributed system of edge devices that are connected to a computer server system via a network. The disclosed system may include other computing components such as servers, sensors and routers. It can also include client devices, gateways, host devices and other devices not described specifically here.
FIG. The system diagram 1 illustrates a computer network according to a particular embodiment. The system 10 comprises distributed edge devices (12-1 and 12-2, also referred to collectively or individually as edge device 12), and a server system 14. The edge devices 12 may be connected communicatively to the server computer 14 via one or more networks. An edge device, as indicated above is a device that is electronic and can be used to form an endpoint of a network. An edge device can be a mobile phone or an IoT. “For example, edge devices 12 could be unmanned aerial vehicle (commonly known as drones), which connects to the server computer 14 via the network 16, but is disconnected otherwise.
At the very least, some edge devices 12 can only be intermittently connected to the networks 16″ As shown in FIG. As shown in FIG. Edge devices 12 can produce edge data, and send the edge data over networks 16 to the server computer systems 14. In certain embodiments, edge devices 12 are able to operate semi-autonomously or autonomously in order to perform designated tasks. In certain embodiments, edge devices 12 may operate under a user’s control to perform tasks.
Each edge device 12 can generate local edge data based on the inputs that are received by each edge device 12, in accordance with their intended functionality. A drone with a camera, for example, can take images of objects and generate image data. The edge devices 12 are able to process edge data and execute requests from the server system 14. They can also perform a variety of other computation tasks. Drones, for example, can use local models and edge data to identify objects captured in images. The edge devices 12 can generate large volumes of edge data during operation.
The volume of edge data generated as a result of the increasing number of edge devices in the system 10 can increase at a very rapid rate. Edge data can be generated by sensors or other inputs that are sent to edge devices 12. The edge devices 12 then use this data to perform local actions. Edge data could include, for example, temperature inputs and other parameters gathered by the sensors of edge devices 12. Edge data can also include system logs and packet data from networks, error logs or stack traces. Edge data may also include configurations, process controls, actuator commands, and other physical output commands.
There are a number of tools available for analyzing edge data. These tools can be used by the edge devices 12 or the server computer systems 14 to analyze edge data. The edge data, for example, can be sent to the server computer 14 by the edge devices 12 when they are connected via networks 16. The server computer system could then analyze the edge data produced by the edge devices. When the data is returned to the edge devices 12, they can take action based on it. The server computer 14 may in some cases instruct the edge device 12 to take action based on the analysis done at one or more edge devices 12, and/or the server computer 14.
In the embodiment illustrated, the edge devices 12 includes local machine learning models. 18. A machine learning process is a generalized algorithm that uses data to make predictions, classify and/or identify, etc. Data is used to make predictions, classifications and/or identifications instead of a set of static program instructions. These algorithms work by creating a model using data (e.g. local models 18). Machine learning algorithms, for example, can be used to build local models 18 using edge data. Local models 18 in particular can be trained using edge data for better data-driven outputs.
Machine learning is used in edge data analytics to create complex algorithms and models that are predictive. These analytical models can produce reliable, repeatable results and decisions, and they can also uncover hidden insights by learning from historical data and relationships. Machine learning algorithms are usually supervised or non-supervised. In supervised training, the computer is given examples of inputs and outputs with the aim of learning a mapping rule between the inputs. Unsupervised learning allows the algorithm to discover structure from the inputs without labeling them. Learning algorithms can improve their predictions by continuously learning from new inputs, such as training data. The disclosed embodiments can implement various types and variants of machine learning processes that are known to those skilled in the arts. These are not discussed in this document for the sake of conciseness.
It may not be feasible to implement machine learning at the edge device 12 due to the limited memory and/or processing resources. The server computer system 14 can implement machine learning algorithms to collect the edge data generated from the edge devices 12, and then use it to remotely train the local models 18. The machine learning algorithm 20 could, for example, update local models 18 in near-real-time using edge data generated from the edge devices 12. It would do this by exchanging model data produced by the machine-learning algorithms 20 on the server computer system 14 with edge data generated from the edge devices 12. In some embodiments the machine-learning algorithms 20 can be modified on the fly. This would alter the model that the machine-learning algorithms 20 computed. The edge devices 12 are able to learn from the edge data they collect (with the help of the server computer systems 14) and improve their local models 18 to perform better local actions.
Click here to view the patent on Google Patents.