The present disclosure is generally directed to a method and a system of simulation generation, and more specifically, to a method of generating simulations based on differenced data.
With the globally increasing demand in digital services, the data center (DC) market has been growing rapidly over the past decade. Many DC-related information and communications technology (ICT) companies have started investing in renewable energy (RE) to decarbonize their DCs and boost company reputations with newly achieved sustainability goals. A significant share of renewable energy procurement is conducted through power purchase agreements (PPA) where the ICT companies' goal is to match 100% of their operational electricity consumption with RE purchases. For example, several companies have taken the initiative with matching of global power usage for all of its operations with renewable power sources. These power purchases must be well planned in advance for a longer time span and often involve the construction of new RE production sites and long-term commitments with power utility providers. On the other hand, the power usage of DCs is continuously changing according to fluctuating user demand and operation changes (e.g. increase in server racks). Since RE power cannot be purchased flexibly on demand, it is necessary to plan approximated power usage ahead of time and simulate eventual changes in DC power usage based on DC infrastructure data.
In the related art, various types of simulations are conducted based on a logical presentation of DC including a plurality of nodes representing DC devices, e.g. servers, and a set of functions to calculate simulation outputs from input data. The simulator can assess e.g. the DC efficiency, impact of different IT devices, or energy cost based on a broad range of ‘what if’ analysis. The simulations depend heavily on detailed data inputs and given definitions of DC representations as well as a set of dependency functions. However, DC operators may lack such detailed information (e.g. data on server-level) or have difficulties coming up with dependency functions. Therefore, a more flexible approach for ‘what if’ simulations is needed.
Aspects of the present disclosure involve an innovative method for generating simulations based on data. The method may include receiving internal data and external data which affect output data; differencing the internal data, the external data, and the output data to create first differenced data; training a machine learning model using the first differenced data; receiving scenario input data as input to the machine learning model, wherein the scenario input data comprises conditional data input from a user and/or input data obtained from a separately simulated machine learning data change model, the conditional data input including at least one feature dimension associated with at least one of the internal data or the external data, and the input data including at least one feature dimension associated with at least one of the internal data or the external data; and generating predicted output based on the scenario input data.
Aspects of the present disclosure involve an innovative non-transitory computer readable medium, storing instructions for generating simulations based on data. The instructions may include receiving internal data and external data which affect output data; differencing the internal data, the external data, and the output data to create first differenced data; training a machine learning model using the first differenced data; receiving scenario input data as input to the machine learning model, wherein the scenario input data comprises conditional data input from a user and/or input data obtained from a separately simulated machine learning data change model, the conditional data input including at least one feature dimension associated with at least one of the internal data or the external data, and the input data including at least one feature dimension associated with at least one of the internal data or the external data; and generating predicted output based on the scenario input data.
Aspects of the present disclosure involve an innovative server system for generating simulations based on data. The server system may include receiving internal data and external data which affect output data; differencing the internal data, the external data, and the output data to create first differenced data; training a machine learning model using the first differenced data; receiving scenario input data as input to the machine learning model, wherein the scenario input data comprises conditional data input from a user and/or input data obtained from a separately simulated machine learning data change model, the conditional data input including at least one feature dimension associated with at least one of the internal data or the external data, and the input data including at least one feature dimension associated with at least one of the internal data or the external data; and generating predicted output based on the scenario input data.
Aspects of the present disclosure involve an innovative system for generating simulations based on data. The system can include means for receiving internal data and external data which affect output data; means for differencing the internal data, the external data, and the output data to create first differenced data; means for training a machine learning model using the first differenced data; means for receiving scenario input data as input to the machine learning model, wherein the scenario input data comprises conditional data input from a user and/or input data obtained from a separately simulated machine learning data change model, the conditional data input including at least one feature dimension associated with at least one of the internal data or the external data, and the input data including at least one feature dimension associated with at least one of the internal data or the external data; and means for generating predicted output based on the scenario input data.
A general architecture that implements the various features of the disclosure will now be described with reference to the drawings. The drawings and the associated descriptions are provided to illustrate example implementations of the disclosure and not to limit the scope of the disclosure. Throughout the drawings, reference numbers are reused to indicate correspondence between referenced elements.
The following detailed description following detailed description provides details of the figures and example implementations of the present application. Reference numerals and descriptions of redundant elements between figures are omitted for clarity. Terms used throughout the description are provided as examples and are not intended to be limiting. For example, the use of the term “automatic” may involve fully automatic or semi-automatic implementations involving user or administrator control over certain aspects of the implementation, depending on the desired implementation of one of the ordinary skills in the art practicing implementations of the present application. Selection can be conducted by a user through a user interface or other input means, or can be implemented through a desired algorithm. Example implementations as described herein can be utilized either singularly or in combination and the functionality of the example implementations can be implemented through any means according to the desired implementations.
In some example implementations, the data stream 102 relates to power data for cooling of the DC infrastructure. In such scenario, server power consumption and outdoor air temperature may be used as input data features to create the ML model, and predictions on cooling power consumption are generated as the model output feature.
The ‘what if’ model creator 140 comprises a data preparator 108, a data differencing unit 110, a change point detector 112, a ML model regression 114, and a baseline calculator 116. The ‘what if’ model creator 140 uses given data 130 as training data to create the ML model. In some example implementations, a number of ML models may be generated based on data input. The analyzed data and trained ML models can be stored in the data, ML model & baseline management DB 118 for subsequent use in the ‘what if’ simulator 150.
The data preparator 108 receives the given data 130 and a resampling process may be performed to determine an effective time sampling frequency having the best correlation distribution. In some example implementations, the data preparator 108 may group data according to available internal layout data provided as part of the internal data 104. Available internal layout data may include floor level, building number, shared power panels, room number, and so on, in accordance with the desired implementation. Data grouping ensures the same data granularity level is applied to available data. At the same time, making the use of ‘what if’ simulator 150 more flexible as different ML models can be built based on the different data granularities. After the data has been grouped and resampled, it is then processed at the data differencing unit 110 and the change point detector 112.
The change point detector 112 detects change points in the data. Change points detection may include detection of changes in operation mode. For instance, cooling power data tend to show changes in operation mode leading to changes in relationship with server power or outdoor temperature. Change points can be detected using change point detection methods. For example, by observing changes in mean and variance of each time series or by observing the change of modeling error of machine learning models.
The data differencing unit 110 produces differenced data of the internal data 104, external data 106, and output data based on time information. The differencing of data eliminates noisy ups and downs from data and helps to establish the underlying relationship more clearly. For example, difference between data at time step t and t−1 is x(t)-x(t−1). Where training data for ML modeling is limited, available amount of data can be increased by difference between several time steps (e.g. x(t)-x(t−1), x(t)-x(t−2), and etc.)
The ML model regression 114 receives outputs from the data differencing unit 110 and the change point detector 112 as inputs and builds/trains ML model based on the inputs. The generated ML models are then stored in the data, ML model & baseline management DB 118 and can be retrieved by the ‘What if’ simulator 150 for later use.
The baseline calculator 116 calculates one or more baselines for each of the ML model generated. Change points from the change point detector 112 are used as inputs to the baseline calculator 116 in generating the one or more baselines. Baselines may be obtained on different temporal characteristics as necessary. The baselines are then stored in the data, ML model & baseline management DB 118 and can be retrieved by the ‘What if’ simulator 150 for later use.
The ‘what if’ simulator 150 conducts simulations based on the trained ML model obtained from the ‘what if’ model creator 140. Simulations are performed by receiving new input data in the form of ‘what if’ scenario input 119. ‘What if’ scenario input 119 may include data stream, input from human operator, output from a ML data change simulator, and etc. In some example implementations, the ‘what if’ scenario input 119 may include a combination of data stream, input from human operator, and output from a ML data change simulator. The data stream, the input from human operator, and the output from the ML data change simulator all include at least one feature dimension associated with at least one of the internal data or the external data. The ML data change simulator is a ML learning model that makes predictions on future states. The ‘what if’ simulator 150 includes a ‘what if’ data preparator 120, model-based prediction 122, and an output data creator 124.
At the ‘what if’ data preparator 120, the data of the ‘what if’ scenario input 119 is received and processed to conform with processing format accepted by the trained ML model. Data processing may include data grouping, resampling, and so on in accordance with the desired implementation. In some example implementations, if the data associated with the ‘what if’ scenario input 119 are real values, the ‘what if’ data preparator 120 performs data differencing on the data using the at least one baselines calculated from the baseline calculator 116. In some example implementations, if the data associated with the ‘what if’ scenario input 119 is already differenced, the data can be used directly without the need to apply the at least one baselines calculated from the baseline calculator 116.
The processed data from the ‘what if’ data preparator 120 is then fed into the model-based prediction 122 as input for the trained ML model to predict changes in the output data features. The ML model simulates relationships between independent input features and dependent output features. In some example implementations, the ML model is trained to predict output feature of cooling power consumption based on impact of the input features server power and outdoor air temperature. For example, a server power increase of 50 and an outdoor air temperature increase of 10 could lead to a cooling power increase of 20. The input features may include but not limited to internal room temperature, internal room humidity, external humidity, weather data, server heat, server power consumption associated with a data center, and etc. The output features may include cooling power consumption associated with the data center, speed of an AC motor or ventilator in associated with operation of the data center, and etc.
The output data creator 124 obtains the predicted changes from the model-based prediction 122 and provides simulation output for the ‘what if’ simulator 150. Prior to outputting, the predicted changes must be returned to real values by adding the at least one baseline calculated from the baseline calculator 116. The type of baseline can be dependent on the type of data and its temporal characteristics. Once the ‘what if’ simulator 150 generates a simulation output, the output is provided to the display 126 to be displayed.
The foregoing example implementation may have various benefits and advantages. For example, flexible handling of different types of relationships between data without any prior definition of the relationships can be achieved by inferring only relationship between data feature dimensions based on available data and ML modeling. In addition, data differencing is more efficient when dealing with changes in operation mode, as the differenced data-based relationship between input and output data features often remain the same while only the baseline value changes. Data grouping also provides the additional advantage of making the ‘what if’ simulator more flexible as ML models for different data granularities can be built.
A time-based expected change table 228 is generated based on resampling and grouping of the input as performed by the ‘what if’ data preparator 120. The input is resampled at the 6 h interval and grouped based on room YY in building 1. The time-based expected change table exhibits a relationship between featured time in resampled intervals, server power, and outdoor temperature. As shown in
The time-based expected change table 228 serves as input to the retrieved trained ML model to generate model-based predictions. As illustrated in
In some example implementations, an external data DB 260 may provide additional information such as listing of holidays for the next year. Output data creator 224 takes the holiday information and merges the holiday information with the merged predictions to identify upcoming holidays over the nine months period. The merged predictions are then displayed on display 226, which is explained in further detail below.
A time-based expected change table 328 is generated by differencing the input using the at least one baselines calculated from the baseline calculator 116. The differencing is performed by the ‘what if’ data preparator 120. As illustrated in
The time-based expected change table 328 serves as input to the retrieved trained ML model to generate model-based predictions. As illustrated in
In some example implementations, an external data DB 360 may provide additional information such as listing of holidays for the next year. Output data creator 324 takes the holiday information and merges the holiday information with the merged predictions to identify upcoming holidays over the nine months period. The merged predictions are then displayed on display 326, which is explained in further detail below.
The ‘what if’ simulation output area generates simulation output based on user defined inputs such as aggregation type, target, output type, and number of period (“Show next”). As illustrated in
Summarized outputs area shows summaries of predicted outputs generated through model simulation. In the provided example, the cooling power prediction is room-based due to the selected aggregation of “Room”. The prediction shows predicted cooling power usage for the individual room and the associated building number over the period of ten months. Total predicted power usage can be generated by aggregating the predicted power usage for the identified rooms.
The process 900 continues by training one or more ML models based on resampled differenced input and output data, as well as the change point information at S906. More than one model can be trained if differenced data for two time periods belonging to different operations modes are sufficiently different. Retraining of ML model may be needed if detected changes from the change point detection methods are significant. In some example implementations, ML model is selected from different types of models and choosing the best performing model among the different model types. Model types may include but not limited to linear regression, DL model, Theil-sen regressor, and so on, in accordance with the desired implementation. In some example implementations, feature selection is considered by the different training models using the different input feature combinations or using correlation analysis to eliminate unrelated input features in relation to output feature.
At S910, the one or more trained ML models are stored to the database for future retrieval and use. At S912, one or more baselines are calculated and stored to the database. Possible baselines may include, but are not limited to, a date-based baseline created from past data (e.g. providing values for each date of a year), a holiday/workday baseline based on past data (e.g. providing values for workday and holiday), a seasonal baseline based on past data (providing values for seasonal pattern, e.g. weekly, daily, monthly, and so on), and a single baseline provision based on a single value (e.g. last value, average value, and so on)
Power grouping relationship table 1006, which represents table A-2, illustrates relationship between grouping granularity and next layer ID associated with group ID. Taking group ID 1 for example, grouping granularity is on the level of room and identifies “Room I” for group ID 1. Next layer ID for group ID 1 has the ID number of 3-1, where “3” represents the grouping type ID number “3” for “Room Group” from the power grouping information table 1002, and “1” represents the group ID 1 identifying “Room Group 1” as it would be managed in other instance of the power grouping relationship table 1006 for the grouping granularity “Room Group”.
Data table 1008, which represents table D-1, illustrates relationship tracked data and data unit in association with date and time. As shown in
Operation mode table 1106, which represents TableO_01, illustrates relationship between operations modes and associated operation mode time frames, model IDs, and baseline IDs. Taking operation mode A for example, operation time frames associated with the mode are identified and listed. In addition, a model ID of 1 and baseline ID of 2 are shown as being associated with operation mode A. Numbers associated with the operation mode table 1106 under the “Model ID” column correspond to entries managed under the model management table 1104. Numbers associated with the operation mode table 1106 under the “Baseline ID” column correspond to entries managed under the baseline management table 1110.
Difference data table 1108, which represents Table_001, illustrates relationship between various differenced data features and time. Data features may include server power, outdoor air temperature, cooling power, indoor temperature, indoor humidity, outdoor humidity, and etc. The difference data table 1108 tracks the monitored differenced data features based on sampled time frequency and date. For example, entries in the difference data table 1108 are sampled at the 6-hour interval and tracked from Jan. 1, 2020 to Dec. 31, 2020.
From operation mode table 1106, a baseline ID can be identified that is associated with a baseline management table 1110. As shown in
Similarly, from operation mode table 1106, a model ID can be identified that is associated with a model management table 1104. The model management table 1104 manages trained models for a data group. As shown in
From baseline management table 1110, a baseline value table ID of Base_Table_0002 can be identified that is associated with a baseline value table 1112. Baseline value table 1112, which represents Base_Table_002, illustrates relationship between various data features' baseline values and time. Data features may include server power, outdoor air temperature cooling power, indoor temperature, indoor humidity, outdoor humidity, and etc. The baseline value table 1112 tracks the baselines associated with data features based on featured time. For example, Base_Table_002 has a date-based featured time with 6-hour interval frequency equal to the 6-hour interval frequency of the entries in the difference table 1108.
Computer device 1205 can be communicatively coupled to input/user interface 1235 and output device/interface 1240. Either one or both of the input/user interface 1235 and output device/interface 1240 can be a wired or wireless interface and can be detachable. Input/user interface 1235 may include any device, component, sensor, or interface, physical or virtual, that can be used to provide input (e.g., buttons, touch-screen interface, keyboard, a pointing/cursor control, microphone, camera, braille, motion sensor, accelerometer, optical reader, and/or the like). Output device/interface 1240 may include a display, television, monitor, printer, speaker, braille, or the like. In some example implementations, input/user interface 1235 and output device/interface 1240 can be embedded with or physically coupled to the computer device 1205. In other example implementations, other computer devices may function as or provide the functions of input/user interface 1235 and output device/interface 1240 for a computer device 1205.
Examples of computer device 1205 may include, but are not limited to, highly mobile devices (e.g., smartphones, devices in vehicles and other machines, devices carried by humans and animals, and the like), mobile devices (e.g., tablets, notebooks, laptops, personal computers, portable televisions, radios, and the like), and devices not designed for mobility (e.g., desktop computers, other computers, information kiosks, televisions with one or more processors embedded therein and/or coupled thereto, radios, and the like).
Computer device 1205 can be communicatively coupled (e.g., via IO interface 1225) to external storage 1245 and network 1250 for communicating with any number of networked components, devices, and systems, including one or more computer devices of the same or different configuration. Computer device 1205 or any connected computer device can be functioning as, providing services of, or referred to as a server, client, thin server, general machine, special-purpose machine, or another label.
IO interface 1225 can include but is not limited to, wired and/or wireless interfaces using any communication or IO protocols or standards (e.g., Ethernet, 802.11x, Universal System Bus, WiMax, modem, a cellular network protocol, and the like) for communicating information to and/or from at least all the connected components, devices, and network in computing environment 1200. Network 1250 can be any network or combination of networks (e.g., the Internet, local area network, wide area network, a telephonic network, a cellular network, satellite network, and the like).
Computer device 1205 can use and/or communicate using computer-usable or computer readable media, including transitory media and non-transitory media. Transitory media include transmission media (e.g., metal cables, fiber optics), signals, carrier waves, and the like. Non-transitory media include magnetic media (e.g., disks and tapes), optical media (e.g., CD ROM, digital video disks, Blu-ray disks), solid-state media (e.g., RAM, ROM, flash memory, solid-state storage), and other non-volatile storage or memory.
Computer device 1205 can be used to implement techniques, methods, applications, processes, or computer-executable instructions in some example computing environments. Computer-executable instructions can be retrieved from transitory media, and stored on and retrieved from non-transitory media. The executable instructions can originate from one or more of any programming, scripting, and machine languages (e.g., C, C++, C #, Java, Visual Basic, Python, Perl, JavaScript, and others).
Processor(s) 1210 can execute under any operating system (OS) (not shown), in a native or virtual environment. One or more applications can be deployed that include logic unit 1260, application programming interface (API) unit 1265, input unit 1270, output unit 1275, and inter-unit communication mechanism 1295 for the different units to communicate with each other, with the OS, and with other applications (not shown). The described units and elements can be varied in design, function, configuration, or implementation and are not limited to the descriptions provided. Processor(s) 1210 can be in the form of hardware processors such as central processing units (CPUs) or in a combination of hardware and software units.
In some example implementations, when information or an execution instruction is received by API unit 1265, it may be communicated to one or more other units (e.g., logic unit 1260, input unit 1270, output unit 1275). In some instances, logic unit 1260 may be configured to control the information flow among the units and direct the services provided by API unit 1265, the input unit 1270, the output unit 1275, in some example implementations described above. For example, the flow of one or more processes or implementations may be controlled by logic unit 1260 alone or in conjunction with API unit 1265. The input unit 1270 may be configured to obtain input for the calculations described in the example implementations, and the output unit 1275 may be configured to provide an output based on the calculations described in example implementations.
Processor(s) 1210 can be configured to receive internal data and external data which affect output data. The processor(s) 1210 may also be configured to difference the internal data, the external data, and the output data to create first differenced data. The processor(s) 1210 may also be configured to train a machine learning model using the first differenced data. The processor(s) 1210 may also be configured to scenario input data as input to the machine learning model, wherein the scenario input data comprises conditional data input from a user and/or input data obtained from a separately simulated machine learning data change model, the conditional data input including at least one feature dimension associated with at least one of the internal data or the external data, and the input data including at least one feature dimension associated with at least one of the internal data or the external data. The processor(s) 1210 may also be configured to generate predicted output based on the scenario input data.
The processor(s) 1210 may also be configured to group the internal data based on select granularity, wherein the select granularity is based on available grouping information contained within the internal data. The processor(s) 1210 may also be configured to resampling the grouped internal data and the external data based on different sampling frequencies to establish correlation between the internal data, the external data, and the output data. The processor(s) 1210 may also be configured to identify a time sampling frequency having an optimal correlation distribution among the different sampling frequencies and using the identified time sampling frequency as sampling frequency to prepare the internal data, the external data, and the output data for training the machine learning model.
The processor(s) 1210 may also be configured to detect changes in relationship between the internal data, the external data, and the output data. The processor(s) 1210 may also be configured to determine whether retraining of a new machine learning model is needed based on the detected changes. The processor(s) 1210 may also be configured to difference the scenario input data using a plurality of baselines. The processor(s) 1210 may also be configured to calculate second differenced data using the plurality of baselines based on change points associated with the internal data, the external data, and the output data. The processor(s) 1210 may also be configured to generate the predicted output based on the second differenced data.
The processor(s) 1210 may also be configured to generate real value returned output through addition of the plurality of baselines to the predicted output. The processor(s) 1210 may also be configured to display the real value returned output through a graphic user interface (GUI), wherein the GUI generates graphic forecasts and output summaries based on the real value returned output. The processor(s) 1210 may also be configured to merge an additional external baseline of holiday information with the real value returned output to generate a true output. The processor(s) 1210 may also be configured to display the true output through a Graphic user interface (GUI), wherein the GUI generates graphic forecasts and output summaries based on the true output.
Some portions of the detailed description are presented in terms of algorithms and symbolic representations of operations within a computer. These algorithmic descriptions and symbolic representations are the means used by those skilled in the data processing arts to convey the essence of their innovations to others skilled in the art. An algorithm is a series of defined steps leading to a desired end state or result. In example implementations, the steps carried out require physical manipulations of tangible quantities for achieving a tangible result.
Unless specifically stated otherwise, as apparent from the discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing,” “computing,” “calculating,” “determining,” “displaying,” or the like, can include the actions and processes of a computer system or other information processing device that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system's memories or registers or other information storage, transmission or display devices.
Example implementations may also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may include one or more general-purpose computers selectively activated or reconfigured by one or more computer programs. Such computer programs may be stored in a computer readable medium, such as a computer readable storage medium or a computer readable signal medium. A computer readable storage medium may involve tangible mediums such as, but not limited to optical disks, magnetic disks, read-only memories, random access memories, solid-state devices, and drives, or any other types of tangible or non-transitory media suitable for storing electronic information. A computer readable signal medium may include mediums such as carrier waves. The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Computer programs can involve pure software implementations that involve instructions that perform the operations of the desired implementation.
Various general-purpose systems may be used with programs and modules in accordance with the examples herein, or it may prove convenient to construct a more specialized apparatus to perform desired method steps. In addition, the example implementations are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the example implementations as described herein. The instructions of the programming language(s) may be executed by one or more processing devices, e.g., central processing units (CPUs), processors, or controllers.
As is known in the art, the operations described above can be performed by hardware, software, or some combination of software and hardware. Various aspects of the example implementations may be implemented using circuits and logic devices (hardware), while other aspects may be implemented using instructions stored on a machine-readable medium (software), which if executed by a processor, would cause the processor to perform a method to carry out implementations of the present application. Further, some example implementations of the present application may be performed solely in hardware, whereas other example implementations may be performed solely in software. Moreover, the various functions described can be performed in a single unit, or can be spread across a number of components in any number of ways. When performed by software, the methods may be executed by a processor, such as a general-purpose computer, based on instructions stored on a computer readable medium. If desired, the instructions can be stored on the medium in a compressed and/or encrypted format.
Moreover, other implementations of the present application will be apparent to those skilled in the art from consideration of the specification and practice of the teachings of the present application. Various aspects and/or components of the described example implementations may be used singly or in any combination. It is intended that the specification and example implementations be considered as examples only, with the true scope and spirit of the present application being indicated by the following claims.