This application relates generally to a building system of a building. This application relates more particularly to systems for managing and processing data of the building system.
Various interactions between building systems, components of building systems, users, technicians, and/or devices managed by users or technicians can rely on timely generation and presentation of relevant information relating to user prompts and/or queries, as well as accurate, up to date configuration of devices in order to properly function with respect to the building systems and other components in the building.
One or more aspects relate to edge devices in building management systems that can perform automatic self-organization and configuration operations, including but not limited to in command and control contexts. For example, the edge devices can include a scan agent to detect context information relating to where the devices are located with respect to the building and/or other components in the building. A machine learning model can use the context information, along with current configuration or capability information of the device, to identify any software/firmware/application packages to install on the device to customize the device for effective operation relative to the building/other components in the building.
At least one aspect relates to a method. The method can include detecting, by one or more processors of a device, an initialization condition of the device responsive to establishment of a communication link between the device and a building management system. The method can include operating a scan agent, by the one or more processors, responsive to detecting the initialization condition, to retrieve a building data structure from the building management system via the communication link. The method can include extracting, by the one or more processors, from the building data structure, a context characteristic of the device relative to one or more remote devices coupled with the building management system. The method can include applying, as input to a machine learning model, the context characteristic and an identifier of the device to cause the machine learning model to determine configuration data for installation on the device corresponding to one or more functions for the device to perform, the machine learning model configured according to training data that includes examples of configuration data associated with at least one of examples of context characteristics or examples of device identifiers. The method providing, by the one or more processors to an installation data repository, a request for the configuration data. The method can include receiving, by the one or more processors, the configuration data. The method can include configuring, by the one or more processors, the device based on the configuration data.
At least one aspect relates to a device. The device can include one or more processors to operate a scan agent to perform a scan of a building management system with which the device is connected, operate a machine learning model to detect one or more functions for the device to perform according to the scan, retrieve a package from an installation repository according to the detected one or more functions, and install the retrieved package.
At least one embodiment relates to a method. The method can include detecting, by one or more processors of a device, an initialization condition of the device responsive to establishment of a communication link between the device and a building management system. The method can include operating a scan agent, by the one or more processors, responsive to detecting the initialization condition, to retrieve a building data structure from the building management system via the communication link. The method can include extracting, by the one or more processors, from the building data structure, a context characteristic of the device relative to one or more remote devices coupled with the building management system. The method can include applying, as input to a machine learning model, by the one or more processors, the context characteristic of the device and an identifier of the device to cause the machine learning model to determine configuration data for installation on the device corresponding to one or more functions for the device to perform. The machine learning model can be configured according to training data comprising examples of configuration data associated with at least one of examples of context characteristics or examples of device identifiers. The method can include providing, by the one or more processors to an installation data repository, a request for the configuration data. The method can include receiving, by the one or more processors, the configuration data. The method can include configuring, by the one or more processors, the device based on the configuration data.
In some embodiments, extracting, by the one or more processors, the context characteristic of the device can include processing the building data structure to identify at least one of a location of the device, a location of the one or more remote devices, or a device function for the device to perform with respect to the one or more remote devices.
In some embodiments, the identifier of the device can include a hardware configuration of the device.
In some embodiments, the building data structure can include a graph indicating one or more logical or physical relationships between the one or more remote devices.
In some embodiments, the machine learning model can include at least one of a neural network comprising a transformer, an encoder, or a decoder.
In some embodiments, the configuration data can include an installation package and configuring the device can include installing the installation package on the device.
In some embodiments, the context characteristic of the device can indicate a role for the device to control operation of the one or more remote devices.
In some embodiments, the context characteristic of the device can indicate a role for the device to process data outputted by the one or more remote devices.
In some embodiments, the context characteristic of the device can indicate a performance metric for the building management system.
In some embodiments, the method can include providing, by the one or more processors, an indication of at least one of the configuration data or the one or more functions for the device to perform to a user interface. The method can include receiving, by the one or more processors from the user interface, an input indicating approval of the indication. The method can include configuring, by the one or more processors, the device based on the configuration data responsive to receiving the approval.
In some embodiments, the method can include receiving, by the one or more processors, from the building management system, one or more sets of information corresponding to a plurality of devices deployed across a network. The method can include identifying, by the one or more processors, using the one or more sets of information, a status for each device of the plurality of devices. The status can indicate a type of software being installed. The method can include generating, by the one or more processors, responsive to identifying the status for each device of the plurality of devices, a report to indicate the status for each device of the plurality of devices.
At least one embodiment relates to one or more non-transitory storage media. The one or more non-transitory storage media can store instructions. The instructions can, when executed by one or more processors, cause the one or more processors to perform operations that include detecting an initialization condition of a device responsive to establishment of a communication link between the device and a building management system. The operations can include operating a scan agent responsive to detecting the initialization condition, to retrieve a building data structure from the building management system via the communication link. The operations can include extracting, from the building data structure, a context characteristic of the device relative to one or more remote devices coupled with the building management system. The operations can include applying, as input to a machine learning model, the context characteristic of the device and an identifier of the device to cause the machine learning model to determine configuration data for installation on the device corresponding to one or more functions for the device to perform. The machine learning model can be configured according to training data comprising examples of configuration data associated with at least one of examples of context characteristics or examples of device identifiers. The operations can include providing, to an installation data repository, a request for the configuration data. The operations can include receiving the configuration data. The operations can include configuring the device based on the configuration data.
In some embodiments, extracting the context characteristic of the device can include processing the building data structure to identify at least one of a location of the device, a location of the one or more remote devices, or a device function for the device to perform with respect to the one or more remote devices.
In some embodiments, the identifier of the device can include a hardware configuration of the device.
In some embodiments, the building data structure can include a graph indicating one or more logical or physical relationships between the one or more remote devices.
In some embodiments, the machine learning model can include at least one of a neural network comprising a transformer, an encoder, or a decoder.
In some embodiments, the configuration data can include an installation package and configuring the device can include installing the installation package on the device.
At least one embodiment relates to a system. The system can include one or more memory devices. The one or more memory devices can store instructions thereon. The instructions can, when executed by one or more processors, cause the one or more processors to operate a scan agent to perform a scan of a building management system with which a device is connected. The instructions can cause the one or more processors to operate a machine learning model to detect one or more functions for the device to perform according to the scan. The instructions can cause the one or more processors to retrieve a package from an installation repository according to the one or more functions. The instructions can cause the one or more processors to install the package.
In some embodiments, the machine learning model can detect the one or more functions based on at least one of a function for the device to control a remote device associated with the building management system or a function for the device to receive a command from the remote device.
In some embodiments, the instructions can cause the one or more processors to detect an initialization condition of the device responsive to establishment of a communication link between the device and the building management system.
Various objects, aspects, features, and advantages of the disclosure will become more apparent and better understood by referring to the detailed description taken in conjunction with the accompanying drawings, in which like reference characters identify corresponding elements throughout. In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements.
Referring generally to the FIGURES, systems and methods in accordance with the present disclosure can implement various systems to precisely generate data relating to operations to be performed for managing building systems and components and/or items of equipment, including systems and components of heating, ventilation, cooling, and/or refrigeration (HVAC-R) systems, video monitoring systems, or security systems. For example, various systems described herein can be implemented to generate data more precisely for various applications including, for example and without limitation, virtual assistance for providing information and recommendations pertaining to a building and/or various assets therein in response to user prompts.
AI and/or machine learning (ML) systems, including but not limited to LLMs, can be used to generate text data and data of other modalities in a more responsive manner to real-time conditions, including generating strings of text data that may not be provided in the same manner in existing documents, yet may still meet criteria for useful text information, such as relevance, style, and coherence. For example, LLMs can predict text data based at least on inputted prompts and by being configured (e.g., trained, modified, updated, fine-tuned) according to training data representative of the text data to predict or otherwise generate.
However, various considerations may limit the ability of such systems to precisely generate appropriate data for specific conditions. For example, due to the predictive nature of the generated data, some LLMs may generate text data that is incorrect, imprecise, or not relevant to the specific conditions. Using the LLMs may require a user to manually vary the content and/or syntax of inputs provided to the LLMs (e.g., vary inputted prompts) until the output of the LLMs meets various objective or subjective criteria of the user. The LLMs can have token limits for sizes of inputted text during training and/or runtime/inference operations (and relaxing or increasing such limits may require increased computational processing, API calls to LLM services, and/or memory usage), limiting the ability of the LLMs to be effectively configured or operated using large amounts of raw data or otherwise unstructured data. In some instances, relatively large LLMs, such as LLMs having billions or trillions of parameters, may be less agile in responding to novel queries or applications. In addition, various LLMs may lack transparency, such as to be unable to provide to a user a conceptual/semantic-level explanation of a given output was generated and/or selected relative to other possible outputs.
Systems and methods in accordance with the present disclosure can use machine learning models, including LLMs and other generative AI systems, to capture data, including but not limited to unstructured knowledge from various data sources, and process the data to accurately generate outputs, such as completions responsive to prompts, including in structured data formats for various applications and use cases. The system can implement various automated and/or expert-based thresholds and data quality management processes to improve the accuracy and quality of generated outputs and update training of the machine learning models accordingly. The system can enable real-time messaging and/or conversational interfaces for users to input various user prompts and receive corresponding informational completions via machine learning models trained using building knowledge graph data that is translated into natural language text prompts.
Systems and methods in accordance with the present disclosure can leverage the efficiency of language models (e.g., GPT-based models or other pre-trained LLMs) in extracting semantic information (e.g., semantic information identifying building entities, types of building entities, relationships between building entities) from the unstructured data in order to generate more accurate outputs regarding various building entities. As such, by implementing language models using various operations and processes described herein, building management systems can take advantage of the causal/semantic associations between the unstructured data and the data relating to various building entities, and the language models can allow these systems to extract these relationships more efficiently in order to more accurately predict targeted, useful information at inference-time/runtime. While various implementations are described as being implemented using generative AI models such as transformers and/or GANs, in some embodiments, various features described herein can be implemented using non-generative AI models or even without using AI/machine learning, and all such modifications fall within the scope of the present disclosure.
In various implementations, the systems can include a plurality of machine learning models that may be configured using integrated or disparate data sources. This can facilitate more integrated user experiences or more specialized (and/or lower computational usage for) data processing and output generation. Outputs from one or more first systems, such as one or more first algorithms or machine learning models, can be provided at least as part of inputs to one or more second systems, such as one or more second algorithms or machine learning models. For example, a first language model can be configured to process unstructured inputs (e.g., text, speech, images, etc.) into a structure output format compatible for use by a second system, such as to provide relevant information pertaining to one or more assets within a building.
The systems and methods described herein utilize language models trained or otherwise fine-tuned using building knowledge graph data to allow for accurate ask-me-anything type chat bots (or other information request applications) to be created that have a variety of benefits over traditional building information request systems. For example, by training or otherwise fine-tuning language models using building knowledge graph data, natural language questions can be provided by users, thereby eliminating the need for users to learn specified query language. Further, because the language models are already pre-trained with a large amount of general data, the building knowledge graph data can be used to quickly fine-tune the language models without needing a large or expansive data set specifically related to the building.
For example, the system 100 can be implemented for operations associated with any of a variety of building management systems (BMSs) or equipment or components thereof. A BMS can include a system of devices that can control, monitor, and manage equipment in or around a building or building area. The BMS can include, for example, a HVAC system, a security system, a video monitoring system, a lighting system, a fire alerting system, any other system that is capable of managing building functions or devices, or any combination thereof. The BMS can include or be coupled with items of equipment, for example and without limitation, such as heaters, chillers, boilers, air handling units, sensors, actuators, refrigeration systems, fans, blowers, heat exchangers, energy storage devices, condensers, valves, or various combinations thereof.
The items of equipment can operate in accordance with various qualitative and quantitative parameters, variables, setpoints, and/or thresholds or other criteria, for example. In some instances, the system 100 and/or the items of equipment can include or be coupled with one or more controllers for controlling parameters of the items of equipment, such as to receive control commands for controlling operation of the items of equipment via one or more wired, wireless, and/or user interfaces of controller.
Various components of the system 100 or portions thereof can be implemented by one or more processors coupled with or more memory devices (memory). The processors can be a general purpose or specific purpose processors, an application specific integrated circuit (ASIC), one or more field programmable gate arrays (FPGAs), a group of processing components, or other suitable processing components. The processors may be configured to execute computer code and/or instructions stored in the memories or received from other computer readable media (e.g., CDROM, network storage, a remote server, etc.). The processors can be configured in various computer architectures, such as graphics processing units (GPUs), distributed computing architectures, cloud server architectures, client-server architectures, or various combinations thereof. One or more first processors can be implemented by a first device, such as an edge device, and one or more second processors can be implemented by a second device, such as a server or other device that is communicatively coupled with the first device and may have greater processor and/or memory resources.
The memories can include one or more devices (e.g., memory units, memory devices, storage devices, etc.) for storing data and/or computer code for completing and/or facilitating the various processes described in the present disclosure. The memories can include random access memory (RAM), read-only memory (ROM), hard drive storage, temporary storage, non-volatile memory, flash memory, optical memory, or any other suitable memory for storing software objects and/or computer instructions. The memories can include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structures described in the present disclosure. The memories can be communicably connected to the processors and can include computer code for executing (e.g., by the processors) one or more processes described herein.
The system 100 can include or be coupled with one or more first models 104. The first model 104 can include one or more neural networks, including neural networks configured as generative models. For example, the first model 104 can predict or generate new data (e.g., artificial data; synthetic data; data not explicitly represented in data used for configuring the first model 104). The first model 104 can generate any of a variety of modalities of data, such as text, speech, audio, images, and/or video data. The neural network can include a plurality of nodes, which may be arranged in layers for providing outputs of one or more nodes of one layer as inputs to one or more nodes of another layer. The neural network can include one or more input layers, one or more hidden layers, and one or more output layers. Each node can include or be associated with parameters such as weights, biases, and/or thresholds, representing how the node can perform computations to process inputs to generate outputs. The parameters of the nodes can be configured by various learning or training operations, such as unsupervised learning, weakly supervised learning, semi-supervised learning, or supervised learning.
The first model 104 can include, for example and without limitation, one or more language models, LLMs, attention-based neural networks, transformer-based neural networks, generative pretrained transformer (GPT) models, bidirectional encoder representations from transformers (BERT) models, encoder/decoder models, sequence to sequence models, autoencoder models, generative adversarial networks (GANs), convolutional neural networks (CNNs), recurrent neural networks (RNNs), diffusion models (e.g., denoising diffusion probabilistic models (DDPMs)), or various combinations thereof.
For example, the first model 104 can include at least one GPT model. The GPT model can receive an input sequence, and can parse the input sequence to determine a sequence of tokens (e.g., words or other semantic units of the input sequence, such as by using Byte Pair Encoding tokenization). The GPT model can include or be coupled with a vocabulary of tokens, which can be represented as a one-hot encoding vector, where each token of the vocabulary has a corresponding index in the encoding vector; as such, the GPT model can convert the input sequence into a modified input sequence, such as by applying an embedding matrix to the token tokens of the input sequence (e.g., using a neural network embedding function), and/or applying positional encoding (e.g., sin-cosine positional encoding) to the tokens of the input sequence. The GPT model can process the modified input sequence to determine a next token in the sequence (e.g., to append to the end of the sequence), such as by determining probability scores indicating the likelihood of one or more candidate tokens being the next token, and selecting the next token according to the probability scores (e.g., selecting the candidate token having the highest probability scores as the next token). For example, the GPT model can apply various attention and/or transformer based operations or networks to the modified input sequence to identify relationships between tokens for detecting the next token to form the output sequence.
The first model 104 can include at least one diffusion model, which can be used to generate image and/or video data. For example, the diffusional model can include a denoising neural network and/or a denoising diffusion probabilistic model neural network. The denoising neural network can be configured by applying noise to one or more training data elements (e.g., images, video frames) to generate noised data, providing the noised data as input to a candidate denoising neural network, causing the candidate denoising neural network to modify the noised data according to a denoising schedule, evaluating a convergence condition based on comparing the modified noised data with the training data instances, and modifying the candidate denoising neural network according to the convergence condition (e.g., modifying weights and/or biases of one or more layers of the neural network). In some implementations, the first model 104 includes a plurality of generative models, such as GPT and diffusion models, that can be trained separately or jointly to facilitate generating multi-modal outputs, such as technical documents (e.g., service guides) that include both text and image/video information.
In some implementations, the first model 104 can be configured using various unsupervised and/or supervised training operations. The first model 104 can be configured using training data from various domain-agnostic and/or domain-specific data sources, including but not limited to various forms of text, speech, audio, image, and/or video data, or various combinations thereof. The training data can include a plurality of training data elements (e.g., training data instances). Each training data element can be arranged in structured or unstructured formats; for example, the training data element can include an example output mapped to an example input, such as a query representing a service request or one or more portions of a service request, and a response representing data provided responsive to the query. The training data can include data that is not separated into input and output subsets (e.g., for configuring the first model 104 to perform clustering, classification, or other unsupervised ML operations). The training data can include human-labeled information, including but not limited to feedback regarding outputs of the models 104, 116. This can allow the system 100 to generate more human-like outputs.
In some implementations, the training data includes data relating to building management systems. For example, the training data can include examples of HVAC-R data, such as operating manuals, technical data sheets, configuration settings, operating setpoints, diagnostic guides, troubleshooting guides, user reports, technician reports. In some implementations, the training data used to configure the first model 104 includes at least some publicly accessible data, such as data retrievable via the Internet.
Referring further to
The second model 116 can be similar to the first model 104. For example, the second model 116 can have a similar or identical backbone or neural network architecture as the first model 104. In some implementations, the first model 104 and the second model 116 each include generative AI machine learning models, such as LLMs (e.g., GPT-based LLMs) and/or diffusion models. The second model 116 can be configured using processes analogous to those described for configuring the first model 104.
In some implementations, the model updater 108 can perform operations on at least one of the first model 104 or the second model 116 via one or more interfaces, such as application programming interfaces (APIs). For example, the models 104, 116 can be operated and maintained by one or more systems separate from the system 100. The model updater 108 can provide training data to the first model 104, via the API, to determine the second model 116 based on the first model 104 and the training data. The model updater 108 can control various training parameters or hyperparameters (e.g., learning rates, etc.) by providing instructions via the API to manage configuring the second model 116 using the first model 104.
The model updater 108 can determine the second model 116 using data from one or more data sources 112. For example, the system 100 can determine the second model 116 by modifying the first model 104 using data from the one or more data sources 112. The data sources 112 can include or be coupled with any of a variety of integrated or disparate databases, data warehouses, digital twin data structures (e.g., digital twins of items of equipment or building management systems or portions thereof), data lakes, data repositories, documentation records, or various combinations thereof. In some implementations, the data sources 112 include HVAC-R data in any of text, speech, audio, image, or video data, or various combinations thereof, such as data associated with HVAC-R components and procedures including but not limited to installation, operation, configuration, repair, servicing, diagnostics, and/or troubleshooting of HVAC-R components and systems. Various data described below with reference to data sources 112 may be provided in the same or different data elements, and may be updated at various points. The data sources 112 can include or be coupled with items of equipment (e.g., where the items of equipment output data for the data sources 112, such as sensor data, etc.). The data sources 112 can include various online and/or social media sources, such as blog posts or data submitted to applications maintained by entities that manage the buildings. The system 100 can determine relations between data from different sources, such as by using timeseries information and identifiers of the sites or buildings at which items of equipment are present to detect relationships between various different data relating to the items of equipment (e.g., to train the models 104, 116 using both timeseries data (e.g., sensor data; outputs of algorithms or models, etc.) regarding a given item of equipment and freeform natural language reports regarding the given item of equipment).
The data sources 112 can include unstructured data or structured data (e.g., data that is labeled with or assigned to one or more predetermined fields or identifiers, or is in a predetermined format, such as a database or tabular format). The unstructured data can include one or more data elements that are not in a predetermined format (e.g., are not assigned to fields, or labeled with or assigned with identifiers, that are indicative of a characteristic of the one or more data elements). The data sources 112 can include semi-structured data, such as data assigned to one or more fields that may not specify at least some characteristics of the data, such as data represented in a report having one or more fields to which freeform data is assigned (e.g., a report having a field labeled “describe the item of equipment” in which text or user input describing the item of equipment is provided). The data sources 112 can include data that is incomplete,
For example, using the first model 104 and/or second model 116 to process the data can allow the system 100 to extract useful information from data in a variety of formats, including unstructured/freeform formats, which can allow service technicians to input information in less burdensome formats. The data can be of any of a plurality of formats (e.g., text, speech, audio, image, video, etc.), including multi-modal formats. For example, the data may be received from service technicians in forms such as text (e.g., laptop/desktop or mobile application text entry), audio, and/or video (e.g., dictating findings while capturing video).
The data sources 112 can include engineering data regarding one or more items of equipment. The engineering data can include manuals, such as installation manuals, instruction manuals, or operating procedure guides. The engineering data can include specifications or other information regarding operation of items of equipment. The engineering data can include engineering drawings, process flow diagrams, refrigeration cycle parameters (e.g., temperatures, pressures), or various other information relating to locations, installations, structures, and functions of items of equipment.
In some implementations, the data sources 112 can include operational data regarding one or more items of equipment. The operational data can represent detected information regarding items of equipment, such as sensor data, logged data, user reports, or technician reports. The operational data can include, for example, service tickets generated responsive to requests for service, work orders, data from digital twin data structures maintained by an entity of the item of equipment, outputs or other information from equipment operation models (e.g., chiller vibration models), or various combinations thereof. Logged data, user reports, service tickets, billing records, time sheets, and various other such data can provide temporal information, such as how long service operations may take, or durations of time between service operations, which can allow the system 100 to predict resources to use for performing service as well as when to request service.
The data sources 112 can include, for instance, warranty data. The warranty data can include warranty documents or agreements that indicate conditions under which various entities associated with items of equipment are to provide service, repair, or other actions corresponding to items of equipment, such as actions corresponding to service requests.
The data sources 112 can include service data. The service data can include data from any of various service providers, such as service reports. The service data can indicate service procedures performed, including associated service procedures with initial service requests and/or sensor data related conditions to trigger service and/or sensor data measured during service processes.
In some implementations, the data sources 112 can include parts data, including but not limited to parts usage and sales data. For example, the data sources 112 can indicate various parts associated with installation or repair of items of equipment. The data sources 112 can indicate tools for performing service and/or installing parts.
The system 100 can include, with the data of the data sources 112, labels to facilitate cross-reference between items of data that may relate to common items of equipment, sites, service technicians, customers, or various combinations thereof. For example, data from disparate sources may be labeled with time data, which can allow the system 100 (e.g., by configuring the models 104, 116) to increase a likelihood of associating information from the disparate sources due to the information being detected or recorded (e.g., as service reports) at the same time or near in time.
For example, the data sources 112 can include data that can be particular to specific or similar items of equipment, buildings, equipment configurations, environmental states, or various combinations thereof. In some implementations, the data includes labels or identifiers of such information, such as to indicate locations, weather conditions, timing information, uses of the items of equipment or the buildings or sites at which the items of equipment are present, etc. This can enable the models 104, 116 to detect patterns of usage (e.g., spikes; troughs; seasonal or other temporal patterns) or other information that may be useful for determining causes of issues or causes of service requests, or predict future issues, such as to allow the models 104, 116 to be trained using information indicative of causes of issues across multiple items of equipment (which may have the same or similar causes even if the data regarding the items of equipment is not identical). For example, an item of equipment may be at a site that is a museum; by relating site usage or occupancy data with data regarding the item of equipment, such as sensor data and service reports, the system 100 can configure the models 104, 116 to determine a high likelihood of issues occurring before events associated with high usage (e.g., gala, major exhibit opening), and can generate recommendations to perform diagnostics or servicing prior to the events.
Referring further to
For example, the model updater 108 can identify one or more parameters (e.g., weights and/or biases) of one or more layers of the first model 104, and maintain (e.g., freeze, maintain as the identified values while updating) the values of the one or more parameters of the one or more layers. In some implementations, the model updater 108 can modify the one or more layers, such as to add, remove, or change an output layer of the one or more layers, or to not maintain the values of the one or more parameters. The model updater 108 can select at least a subset of the identified one or parameters to maintain according to various criteria, such as user input or other instructions indicative of an extent to which the first model 104 is to be modified to determine the second model 116. In some implementations, the model updater 108 can modify the first model 104 so that an output layer of the first model 104 corresponds to output to be determined for applications 120.
Responsive to selecting the one or more parameters to maintain, the model updater 108 can apply, as input to the second model 116 (e.g., to a candidate second model 116, such as the modified first model 104, such as the first model 104 having the identified parameters maintained as the identified values), training data from the data sources 112. For example, the model updater 108 can apply the training data as input to the second model 116 to cause the second model 116 to generate one or more candidate outputs.
The model updater 108 can evaluate a convergence condition to modify the candidate second model 116 based at least on the one or more candidate outputs and the training data applied as input to the candidate second model 116. For example, the model updater 108 can evaluate an objective function of the convergence condition, such as a loss function (e.g., L1 loss, L2 loss, root mean square error, cross-entropy or log loss, etc.) based on the one or more candidate outputs and the training data; this evaluation can indicate how closely the candidate outputs generated by the candidate second model 116 correspond to the ground truth represented by the training data. The model updater 108 can use any of a variety of optimization algorithms (e.g., gradient descent, stochastic descent, Adam optimization, etc.) to modify one or more parameters (e.g., weights or biases of the layer(s) of the candidate second model 116 that are not frozen) of the candidate second model 116 according to the evaluation of the objective function. In some implementations, the model updater 108 can use various hyperparameters to evaluate the convergence condition and/or perform the configuration of the candidate second model 116 to determine the second model 116, including but not limited to hyperparameters such as learning rates, numbers of iterations or epochs of training, etc.
As described further herein with respect to applications 120, in some implementations, the model updater 108 can select the training data from the data of the data sources 112 to apply as the input based at least on a particular application of the plurality of applications 120 for which the second model 116 is to be used for. For example, the model updater 108 can select data from the data source 112 for the product recommendation generator application 120, or select various combinations of data from the data sources 112 (e.g., engineering data, operational data, and service data) for the service recommendation generator application 120. The model updater 108 can apply various combinations of data from various data sources 112 to facilitate configuring the second model 116 for one or more applications 120.
In some implementations, the system 100 can perform at least one of conditioning, classifier-based guidance, or classifier-free guidance to configure the second model 116 using the data from the data sources 112. For example, the system 100 can use classifiers associated with the data, such as identifiers of the item of equipment, a type of the item of equipment, a type of entity operating the item of equipment, a site at which the item of equipment is provided, or a history of issues at the site, to condition the training of the second model 116. For example, the system 100 combine (e.g., concatenate) various such classifiers with the data for inputting to the second model 116 during training, for at least a subset of the data used to configure the second model 116, which can enable the second model 116 to be responsive to analogous information for runtime/inference time operations.
Referring further to
The applications 120 can include any of a variety of desktop, web-based/browser-based, or mobile applications. For example, the applications 120 can be implemented by enterprise management software systems, employee or other user applications (e.g., applications that relate to BMS functionality such as temperature control, user preferences, conference room scheduling, etc.), equipment portals that provide data regarding items of equipment, or various combinations thereof.
The applications 120 can include user interfaces, dashboards, wizards, checklists, conversational interfaces, chatbots, configuration tools, or various combinations thereof. The applications 120 can receive an input, such as a prompt (e.g., from a user), provide the prompt to the second model 116 to cause the second model 116 to generate an output, such as a completion in response to the prompt, and present an indication of the output. The applications 120 can receive inputs and/or present outputs in any of a variety of presentation modalities, such as text, speech, audio, image, and/or video modalities. For example, the applications 120 can receive unstructured or freeform inputs from a user, such as a service technician, and generate reports in a standardized format, such as a customer-specific format. This can allow, for example, technicians to automatically, and flexibly, generate customer-ready reports after service visits without requiring strict input by the technician or manually sitting down and writing reports; to receive inputs as dictations in order to generate reports; to receive inputs in any form or a variety of forms, and use the second model 116 (which can be trained to cross-reference metadata in different portions of inputs and relate together data elements) to generate output reports (e.g., the second model 116, having been configured with data that includes time information, can use timestamps of input from dictation and timestamps of when an image is taken, and place the image in the report in a target position or label based on time correlation).
In some implementations, the applications 120 include at least one virtual assistant (e.g., virtual assistance for technician services) application 120. The virtual assistant application can provide various services to support technician operations, such as presenting information from service requests, receiving queries regarding actions to perform to service items of equipment, and presenting responses indicating actions to perform to service items of equipment. The virtual assistant application can receive information regarding an item of equipment to be serviced, such as sensor data, text descriptions, or camera images, and process the received information using the second model 116 to generate corresponding responses.
For example, the virtual assistant application 120 can be implemented in a UI/UX wizard configuration, such as to provide a sequence of requests for information from the user (the sequence may include requests that are at least one of predetermined or dynamically generated responsive to inputs from the user for previous requests). For example, the virtual assistant application 120 can provide one or more requests for information from users such as service technicians, facility managers, or other occupants, and provide the received responses to at least one of the second model 116 or a root cause detection function (e.g., algorithm, model, data structure mapping inputs to candidate causes, etc.) to determine a prediction of a cause of the issue of the item of equipment and/or solutions. The virtual assistant application 120 can use requests for information such as for unstructured text by which the user describes characteristics of the item of equipment relating to the issue; answers expected to correspond to different scenarios indicative of the issue; and/or image and/or video input (e.g., images of problems, equipment, spaces, etc. that can provide more context around the issue and/or configurations). For example, responsive to receiving a response via the virtual assistant application 120 indicating that the problem is with temperature in the space, the system 100 can request, via the virtual assistant application 120, information regarding HVAC-R equipment associated with the space, such as pictures of the space, an air handling unit, a chiller, or various combinations thereof.
The virtual assistant application 120 can include a plurality of applications 120 (e.g., variations of interfaces or customizations of interfaces) for a plurality of respective user types. For example, the virtual assistant application 120 can include a first application 120 for a customer user, and a second application 120 for a service technician user. The virtual assistant applications 120 can allow for updating and other communications between the first and second applications 120 as well as the second model 116. Using one or more of the first application 120 and the second application 120, the system 100 can manage continuous/real-time conversations for one or more users, and evaluate the users' engagement with the information provided (e.g., did the user, customer, service technician, etc., follow the provided steps for responding to the issue or performing service, did the user discontinue providing inputs to the virtual assistant application 120, etc.), such as to enable the system 100 to update the information generated by the second model 116 for the virtual assistant application 120 according to the engagement. In some implementations, the system 100 can use the second model 116 to detect sentiment of the user of the virtual assistant application 120, and update the second model 116 according to the detected sentiment, such as to improve the experience provided by the virtual assistant application 120.
The applications 120 can include at least one document writer application 120, such as a technical document writer. The document writer application 120 can facilitate preparing structured (e.g. form-based) and/or unstructured documentation, such as documentation associated with service requests. For example, the document writer application 120 can present a user interface corresponding to a template document to be prepared that is associated with at least one of a service request or the item of equipment for which the service request is generated, such as to present one or more predefined form sections or fields. The document writer application 120 can use inputs, such as prompts received from the users and/or technical data provided by the user regarding the item of equipment, such as sensor data, text descriptions, or camera images, to generate information to include in the documentation. For example, the document writer application 120 can provide the inputs to the second model 116 to cause the second model 116 to generate completions for text information to include in the fields of the documentation.
The applications 120 can include, in some implementations, at least one diagnostics and troubleshooting application 120. The diagnostics and troubleshooting application 120 can receive inputs including at least one of a service request or information regarding the item of equipment to be serviced, such as information identified by a service technician. The diagnostics and troubleshooting application 120 can provide the inputs to a corresponding second model 116 to cause the second model 116 to generate outputs such as indications of potential items to be checked regarding the item of equipment, modifications or fixes to make to perform the service, or values or ranges of values of parameters of the item of equipment that may be indicative of specific issues to for the service technician to address or repair.
The applications 120 can at least one service recommendation generator application 120. The service recommendation generator application 120 can receive inputs such as a service request or information regarding the item of equipment to be serviced, and provide the inputs to the second model 116 to cause the second model 116 to generate outputs for presenting service recommendations, such as actions to perform to address the service request.
In some implementations, the applications 120 can include a product recommendation generator application 120. The product recommendation generator application 120 can process inputs such as information regarding the item of equipment or the service request, using one or more second models 116 (e.g., models trained using parts data from the data sources 112), to determine a recommendation of a part or product to replace or otherwise use for repairing the item of equipment.
Referring further to
The feedback repository 124 can include feedback received from users regarding output presented by the applications 120. For example, for at least a subset of outputs presented by the applications 120, the applications 120 can present one or more user input elements for receiving feedback regarding the outputs. The user input elements can include, for example, indications of binary feedback regarding the outputs (e.g., good/bad feedback; feedback indicating the outputs do or do not meet the user's criteria, such as criteria regarding technical accuracy or precision); indications of multiple levels of feedback (e.g., scoring the outputs on a predetermined scale, such as a 1-5 scale or 1-10 scale); freeform feedback (e.g., text or audio feedback); or various combinations thereof.
The system 100 can store and/or maintain feedback in the feedback repository 124. In some implementations, the system 100 stores the feedback with one or more data elements associated with the feedback, including but not limited to the outputs for which the feedback was received, the second model(s) 116 used to generate the outputs, and/or input information used by the second models 116 to generate the outputs (e.g., service request information; information captured by the user regarding the item of equipment).
The feedback trainer 128 can update the one or more second models 116 using the feedback. The feedback trainer 128 can be similar to the model updater 108. In some implementations, the feedback trainer 128 is implemented by the model updater 108; for example, the model updater 108 can include or be coupled with the feedback trainer 128. The feedback trainer 128 can perform various configuration operations (e.g., retraining, fine-tuning, transfer learning, etc.) on the second models 116 using the feedback from the feedback repository 124. In some implementations, the feedback trainer 128 identifies one or more first parameters of the second model 116 to maintain as having predetermined values (e.g., freeze the weights and/or biases of one or more first layers of the second model 116), and performs a training process, such as a fine tuning process, to configure parameters of one or more second parameters of the second model 116 using the feedback (e.g., one or more second layers of the second model 116, such as output layers or output heads of the second model 116).
In some implementations, the system 100 may not include and/or use the model updater 108 (or the feedback trainer 128) to determine the second models 116. For example, the system 100 can include or be coupled with an output processor (e.g., an output processor similar or identical to accuracy checker 316 described with reference to
Referring further to
The system 100 can be used to automate operations for scheduling, provisioning, and deploying service technicians and resources for service technicians to perform service operations. For example, the system 100 can use at least one of the first model 104 or the second model 116 to determine, based on processing information regarding service operations for items of equipment relative to completion criteria for the service operation, particular characteristics of service operations such as experience parameters of scheduled service technicians, identifiers of parts provided for the service operations, geographical data, types of customers, types of problems, or information content provided to the service technicians to facilitate the service operation, where such characteristics correspond to the completion criteria being satisfied (e.g., where such characteristics correspond to an increase in likelihood of the completion criteria being satisfied relative to other characteristics for service technicians, parts, information content, etc.). For example, the system 100 can determine, for a given item of equipment, particular parts to include on a truck to be sent to the site of the item of equipment. As such, the system 100, responsive to processing inputs at runtime such as service requests, can automatically and more accurately identify service technicians and parts to direct to the item of equipment for the service operations. The system 100 can use timing information to perform batch scheduling for multiple service operations and/or multiple technicians for the same or multiple service operations. The system 100 can perform batch scheduling for multiple trucks for multiple items of equipment, such as to schedule a first one or more parts having a greater likelihood for satisfying the completion criteria for a first item of equipment on a first truck, and a second one or more parts having a greater likelihood for satisfying the completion criteria for a second item of equipment on a second truck.
The system 200 can include at least one data repository 204, which can be similar to the data sources 112 described with reference to
The data repository 204 can include a product database 212, which can be similar or identical to the parts data of the data sources 112. The product database 212 can include, for example, data regarding products available from various vendors, specifications or parameters regarding products, and indications of products used for various service operations. The product database 212 can include data such as events or alarms associated with products; logs of product operation; and/or time series data regarding product operation, such as longitudinal data values of operation of products and/or building equipment.
The data repository 204 can include an operations database 216, which can be similar or identical to the operations data of the data sources 112. For example, the operations database 216 can include data such as manuals regarding parts, products, and/or items of equipment; customer service data; and or reports, such as operation or service logs.
In some implementations, the data repository 204 can include an output database 220, which can include data of outputs that may be generated by various machine learning models and/or algorithms. For example, the output database 220 can include values of pre-calculated predictions and/or insights, such as parameters regarding operation items of equipment, such as setpoints, changes in setpoints, flow rates, control schemes, identifications of error conditions, or various combinations thereof.
As depicted in
In some implementations, the prompt management system 228 includes a pre-processor 232. The pre-processor 232 can perform various operations to prepare the data from the data repository 204 for prompt generation. For example, the pre-processor 232 can perform any of various filtering, compression, tokenizing, or combining (e.g., combining data from various databases of the data repository 204) operations.
The prompt management system 228 can include a prompt generator 236. The prompt generator 236 can generate, from data of the data repository 204, one or more training data elements that include a prompt and a completion corresponding to the prompt. In some implementations, the prompt generator 236 receives user input indicative of prompt and completion portions of data. For example, the user input can indicate template portions representing prompts of structured data, such as predefined fields or forms of documents, and corresponding completions provided for the documents. The user input can assign prompts to unstructured data. In some implementations, the prompt generator 236 automatically determines prompts and completions from data of the data repository 204, such as by using any of various natural language processing algorithms to detect prompts and completions from data. In some implementations, the system 200 does not identify distinct prompts and completions from data of the data repository 204.
Referring further to
The training management system 240 can include a training manager 244. The training manager 244 can incorporate features of at least one of the model updater 108 or the feedback trainer 128 described with reference to
In some implementations, the training management system 240 includes prompts 248. For example, the training management system 240 can store one or more training data elements from the prompt management system 228, such as to facilitate asynchronous and/or batched training processes.
The training manager 244 can control the training of machine learning models using information or instructions maintained in a model tuning database 256. For example, the training manager 244 can store, in the model tuning database 256, various parameters or hyperparameters for models and/or model training.
In some implementations, the training manager 244 stores a record of training operations in a jobs database 252. For example, the training manager 244 can maintain data such as a queue of training jobs, parameters or hyperparameters to be used for training jobs, or information regarding performance of training.
Referring further to
The model system 260 can include a model configuration processor 264. The model configuration processor 264 can incorporate features of the model updater 108 and/or the feedback trainer 128 described with reference to
The client device 304 can be a device of a user, such as a technician or building manager. The client device 304 can include any of various wireless or wired communication interfaces to communicate data with the model system 260, such as to provide requests to the model system 260 indicative of data for the machine learning models 268 to generate, and to receive outputs from the model system 260. The client device 304 can include various user input and output devices to facilitate receiving and presenting inputs and outputs.
In some implementations, the system 200 provides data to the client device 304 for the client device 304 to operate the at least one application session 308. The application session 308 can include a session corresponding to any of the applications 120 described with reference to
In some implementations, the application session 308 maintains a session state regarding the application session 308. The session state can include one or more prompts received by the application session 308, and can include one or more completions received by the application session 308 from the model system 260. The session state can include one or more items of feedback received regarding the completions, such as feedback indicating accuracy of the completion.
The system 200 can include or be coupled with one or more session inputs 340 or sources thereof. The session inputs 340 can include, for example and without limitation, location-related inputs, such as identifiers of an entity managing an item of equipment or a building or building management system, a jurisdiction (e.g., city, state, country, etc.), a language, or a policy or configuration associated with operation of the item of equipment, building, or building management system. The session inputs 340 can indicate an identifier of the user of the application session 308. The session inputs 340 can include data regarding items of equipment or building management systems, including but not limited to operation data or sensor data. The session inputs 340 can include information from one or more applications, algorithms, simulations, neural networks, machine learning models, or various combinations thereof, such as to provide analyses, predictions, or other information regarding items of equipment. The session inputs 340 can data from or analogous to the data of the data repository 204.
In some implementations, the model system 260 includes at least one sessions database 312. The sessions database 312 can maintain records of application session 308 implemented by client devices 304. For example, the sessions database 312 can include records of prompts provided to the machine learning models 268 and completions generated by the machine learning models 268. As described further with reference to
As depicted in
In some implementations, the system 200 includes an accuracy checker 316. The accuracy checker 316 can include one or more rules, heuristics, logic, policies, algorithms, functions, machine learning models, neural networks, scripts, or various combinations thereof to perform operations including evaluating performance criteria regarding the completions determined by the model system 260. For example, the accuracy checker 316 can include at least one completion listener 320. The completion listener 320 can receive the completions determined by the model system 260 (e.g., responsive to the completions being generated by the machine learning model 268 and/or by retrieving the completions from the sessions database 312).
The accuracy checker 316 can include at least one completion evaluator 324. The completion evaluator 324 can evaluate the completions (e.g., as received or retrieved by the completion listener 320) according to various criteria. In some implementations, the completion evaluator 324 evaluates the completions by comparing the completions with corresponding data from the data repository 204. For example, the completion evaluator 324 can identify data of the data repository 204 having similar text as the prompts and/or completions (e.g., using any of various natural language processing algorithms), and determine whether the data of the completions is within a range of expected data represented by the data of the data repository 204.
In some implementations, the accuracy checker 316 can store an output from evaluating the completion (e.g., an indication of whether the completion satisfies the criteria) in an evaluation database 328. For example, the accuracy checker 316 can assign the output (which may indicate at least one of a binary indication of whether the completion satisfied the criteria or an indication of a portion of the completion that did not satisfy the criteria) to the completion for storage in the evaluation database 328, which can facilitate further training of the machine learning models 268 using the completions and output.
The accuracy checker 316 can include or be coupled with at least one post-processor 336. The post-processor 336 can perform various operations to evaluate, validate, and/or modify the completions generated by the model system 260. In some implementations, the post-processor 336 includes or is coupled with data filters 500, validation system 600, and/or the expert filter collision system 700 described with reference to
Referring further to
The system 200 can include or be coupled with operations data 348. The operations data 348 can be part of or analogous to one or more data sources of the data repository 204. The operations data 348 can include, for example and without limitation, data regarding real-world operations of building management systems and/or items of equipment, such as changes in building policies, building states, ticket or repair data, results of servicing or other operations, performance indices, or various combinations thereof. The operations data 348 can be retrieved by the application session 308, such as to condition or modify prompts and/or requests for prompts on operations data 348.
As depicted in
For example, the role-specific models 360 can include one or more of an author model 360, an editor model 360, a validator model 360, or various combinations thereof. The author model 360 can be used to generate an initial or candidate completion, such as to receive the prompt (e.g., via pre-processor 332) and generate the initial completion responsive to the prompt. The editor model 360 and/or validator model 360 can apply any of various criteria, such as accuracy checking criteria, to the initial completion, to validate or modify (e.g., revise) the initial completion. For example, the editor model 360 and/or validator model 360 can be coupled with the external systems 344 to query the external systems 344 using the initial completion (e.g., to detect a difference between the initial completion and one or more expected values or ranges of values for the initial completion), and at least one of output an alert or modify the initial completion (e.g., directly or by identifying at least a portion of the initial completion for the author model 360 to regenerate). In some implementations, at least one of the editor model 360 or the validator model 360 are tuned with different hyperparameters from the author model 360, or can adjust the hyperparameter(s) of the author model 360, such as to facilitate modifying the initial completion using a model having a higher threshold for confidence of outputted results responsive to the at least one of the editor model 360 or the validator model 360 determining that the initial completion does not satisfy one or more criteria. In some implementations, the at least one of the editor model 360 or the validator model 360 is tuned to have a different (e.g., lower) risk threshold than the author model 360, which can allow the author model 360 to generate completions that may fall into a greater domain/range of possible values, while the at least one of the editor model 360 or the validator model 360 can refine the completions (e.g., limit refinement to specific portions that do not meet the thresholds) generated by the author model 360 to fall within appropriate thresholds (e.g., rather than limiting the threshold for the author model 360).
For example, responsive to the validator model 360 determining that the initial completion includes a value (e.g., setpoint to meet a target value of a performance index) that is outside of a range of values validated by a simulation for an item of equipment, the validator model 360 can cause the author model 360 to regenerate at least a portion of the initial completion that includes the value; such regeneration may include increasing a confidence threshold for the author model 360. The validator model 360 can query the author model 360 for a confidence level associated with the initial completion, and cause the author model 360 to regenerate the initial completion and/or generate additional completions responsive to the confidence level not satisfying a threshold. The validator model 360 can query the author model 360 regarding portions (e.g., granular portions) of the initial completion, such as to request the author model 360 to divide the initial completion into portions, and separately evaluate each of the portions. The validator model 360 can convert the initial completion into a vector, and use the vector as a key to perform a vector concept lookup to evaluate the initial completion against one or more results retrieved using the key.
The feedback system 400 can receive feedback (e.g., from the client device 304) in various formats. For example, the feedback can include any of text, speech, audio, image, and/or video data. The feedback can be associated (e.g., in a data structure generated by the application session 308) with the outputs of the machine learning models 268 for which the feedback is provided. The feedback can be received or extracted from various forms of data, including external data sources such as manuals, service reports, or Wikipedia-type documentation.
In some implementations, the feedback system 400 includes a pre-processor 404. The pre-processor 404 can perform any of various operations to modify the feedback for further processing. For example, the pre-processor 404 can incorporate features of, or be implemented by, the pre-processor 232, such as to perform operations including filtering, compression, tokenizing, or translation operations (e.g., translation into a common language of the data of the data repository 204).
The feedback system 400 can include a bias checker 408. The bias checker 408 can evaluate the feedback using various bias criteria, and control inclusion of the feedback in a feedback database 416 (e.g., a feedback database 416 of the data repository 204 as depicted in
The feedback system 400 can include a feedback encoder 412. The feedback encoder 412 can process the feedback (e.g., responsive to bias checking by the bias checker 408) for inclusion in the feedback database 416. For example, the feedback encoder 412 can encode the feedback as values corresponding to outputs scoring determined by the model system 260 while generating completions (e.g., where the feedback indicates that the completion presented via the application session 308 was acceptable, the feedback encoder 412 can encode the feedback by associating the feedback with the completion and assigning a relatively high score to the completion).
As indicated by the dashed arrows in
For example, the data filters 500 can be used to evaluate data relative to thresholds relating to data including, for example and without limitation, acceptable data ranges, setpoints, temperatures, pressures, flow rates (e.g., mass flow rates), or vibration rates for an item of equipment. The threshold can include any of various thresholds, such as one or more of minimum, maximum, absolute, relative, fixed band, and/or floating band thresholds.
The data filters 500 can enable the system 200 to detect when data, such as prompts, completions, or other inputs and/or outputs of the system 200, collide with thresholds that represent realistic behavior or operation or other limits of items of equipment. For example, the thresholds of the data filters 500 can correspond to values of data that are within feasible or recommended operating ranges. In some implementations, the system 200 determines or receives the thresholds using models or simulations of items of equipment, such as plant or equipment simulators, chiller models, HVAC-R models, refrigeration cycle models, etc. The system 200 can receive the thresholds as user input (e.g., from experts, technicians, or other users). The thresholds of the data filters 500 can be based on information from various data sources. The thresholds can include, for example and without limitation, thresholds based on information such as equipment limitations, safety margins, physics, expert teaching, etc. For example, the data filters 500 can include thresholds determined from various models, functions, or data structures (e.g., tables) representing physical properties and processes, such as physics of psychometrics, thermodynamics, and/or fluid dynamics information.
The system 200 can determine the thresholds using the feedback system 400 and/or the client device 304, such as by providing a request for feedback that includes a request for a corresponding threshold associated with the completion and/or prompt presented by the application session 308. For example, the system 200 can use the feedback to identify realistic thresholds, such as by using feedback regarding data generated by the machine learning models 268 for ranges, setpoints, and/or start-up or operating sequences regarding items of equipment (and which can thus be validated by human experts). In some implementations, the system 200 selectively requests feedback indicative of thresholds based on an identifier of a user of the application session 308, such as to selectively request feedback from users having predetermined levels of expertise and/or assign weights to feedback according to criteria such as levels of expertise.
In some implementations, one or more data filters 500 correspond to a given setup. For example, the setup can represent a configuration of a corresponding item of equipment (e.g., configuration of a chiller, etc.). The data filters 500 can represent various thresholds or conditions with respect to values for the configuration, such as feasible or recommendation operating ranges for the values. In some implementations, one or more data filters 500 correspond to a given situation. For example, the situation can represent at least one of an operating mode or a condition of a corresponding item of equipment.
The system 200 can perform various actions responsive to the processing of data by the data filters 500. In some implementations, the system 200 can pass data to a destination without modifying the data (e.g., retaining a value of the data prior to evaluation by the data filter 500) responsive to the data satisfying the criteria of the respective data filter(s) 500. In some implementations, the system 200 can at least one of (i) modify the data or (ii) output an alert responsive to the data not satisfying the criteria of the respective data filter(s) 500. For example, the system 200 can modify the data by modifying one or more values of the data to be within the criteria of the data filters 500.
In some implementations, the system 200 modifies the data by causing the machine learning models 268 to regenerate the completion corresponding to the data (e.g., for up to a predetermined threshold number of regeneration attempts before triggering the alert). This can enable the data filters 500 and the system 200 selectively trigger alerts responsive to determining that the data (e.g., the collision between the data and the thresholds of the data filters 500) may not be repairable by the machine learning model 268 aspects of the system 200.
The system 200 can output the alert to the client device 304. The system 200 can assign a flag corresponding to the alert to at least one of the prompt (e.g., in prompts database 224) or the completion having the data that triggered the alert.
For example, the validation system 600 can receive data such as data retrieved from the data repository 204, prompts outputted by the prompt management system 228, completions outputted by the model system 260, indications of accuracy outputted by the accuracy checker 316, etc., and provide the received data to at least one of an expert system or a user interface. In some implementations, the validation system 600 receives a given item of data prior to the given item of data being processed by the model system 260, such as to validate inputs to the machine learning models 268 prior to the inputs being processed by the machine learning models 268 to generate outputs, such as completions.
In some implementations, the validation system 600 validates data by at least one of (i) assigning a label (e.g., a flag, etc.) to the data indicating that the data is validated or (ii) passing the data to a destination without modifying the data. For example, responsive to receiving at least one of a user input (e.g., from a human validator/supervisor/expert) that the data is valid or an indication from an expert system that the data is valid, the validation system 600 can assign the label and/or provide the data to the destination.
The validation system 600 can selectively provide data from the system 200 to the validation interface responsive to operation of the data filters 500. This can enable the validation system 600 to trigger validation of the data responsive to collision of the data with the criteria of the data filters 500. For example, responsive to the data filters 500 determining that an item of data does not satisfy a corresponding criteria, the data filters 500 can provide the item of data to the validation system 600. The data filters 500 can assign various labels to the item of data, such as indications of the values of the thresholds that the data filters 500 used to determine that the item of data did not satisfy the thresholds. Responsive to receiving the item of data from the data filters 500, the validation system 600 can provide the item of data to the validation interface (e.g., to a user interface of client device 304 and/or application session 308; for comparison with a model, simulation, algorithm, or other operation of an expert system) for validation. In some implementations, the validation system 600 can receive an indication that the item of data is valid (e.g., even if the item of data did not satisfy the criteria of the data filters 500) and can provide the indication to the data filters 500 to cause the data filters 500 to at least partially modify the respective thresholds according to the indication.
In some implementations, the validation system 600 selectively retrieves data for validation where (i) the data is determined or outputted prior to use by the machine learning models 268, such as data from the data repository 204 or the prompt management system 228, or (ii) the data does not satisfy a respective data filter 500 that processes the data. This can enable the system 200, the data filters 500, and the validation system 600 to update the machine learning models 268 and other machine learning aspects (e.g., generative AI aspects) of the system 200 to more accurately generate data and completions (e.g., enabling the data filters 500 to generate alerts that are received by the human experts/expert systems that may be repairable by adjustments to one or more components of the system 200).
In some implementations, the expert system 700 retrieves data to be provided to the application session 308, such as completions generated by the machine learning models 268. The expert system 700 can present the data via the expert session 708, such as to request feedback regarding the data from the client device 704. For example, the expert system 700 can receive feedback regarding the data for modifying or validating the data (e.g., editing or validating completions). In some implementations, the expert system 700 requests at least one of an identifier or a credential of a user of the client device 704 prior to providing the data to the client device 704 and/or requesting feedback regarding the data from the expert session 708. For example, the expert system 700 can request the feedback responsive to determining that the at least one of the identifier or the credential satisfies a target value for the data. This can allow the expert system 700 to selectively identify experts to use for monitoring and validating the data.
In some implementations, the expert system 700 facilitates a communication session regarding the data, between the application session 308 and the expert session 708. For example, the expert system 700, responsive to detecting presentation of the data via the application session 308, can request feedback regarding the data (e.g., user input via the application session 308 for feedback regarding the data), and provide the feedback to the client device 704 to present via the expert session 708. The expert session 708 can receive expert feedback regarding at least one of the data or the feedback from the user to provide to the application session 308. In some implementations, the expert system 700 can facilitate any of various real-time or asynchronous messaging protocols between the application session 308 and expert session 708 regarding the data, such as any of text, speech, audio, image, and/or video communications or combinations thereof. This can allow the expert system 700 to provide a platform for a user receiving the data (e.g., customer or field technician) to receive expert feedback from a user of the client device 704 (e.g., expert technician). In some implementations, the expert system 700 stores a record of one or more messages or other communications between the application session 308 and the expert session 708 in the data repository 204 to facilitate further configuration of the machine learning models 268 based on the interactions between the users of the application session 308 and the expert session 708.
Referring further to
For example, in some implementations, various data discussed herein may be stored in, retrieved from, or processed in the context of building data platforms and/or digital twins; processed at (e.g., processed using models executed at) a cloud or other off-premises computing system/device or group of systems/devices, an edge or other on-premises system/device or group of systems/devices, or a hybrid thereof in which some processing occurs off-premises and some occurs on-premises; and/or implemented using one or more gateways for communication and data management amongst various such systems/devices. In some such implementations, the building data platforms and/or digital twins may be provided within an infrastructure such as those described in U.S. patent application Ser. No. 17/134,661 filed Dec. 28, 2020, Ser. No. 18/080,360, filed Dec. 13, 2022, Ser. No. 17/537,046 filed Nov. 29, 2021, and Ser. No. 18/096,965, filed Jan. 13, 2023, and Indian Patent Application number 202341008712, filed Feb. 10, 2023, the disclosures of which are incorporated herein by reference in their entireties.
As described above, systems and methods in accordance with the present disclosure can use machine learning models, including LLMs and other generative AI models, to ingest data regarding building management systems and equipment in various unstructured and structured formats, and generate completions and other outputs targeted to provide useful information to users. Various systems and methods described herein can use machine learning models to support applications for presenting data with high accuracy and relevance. In some implementations, machine learning models can be used to process context information regarding where a device, such as an edge-connected device, is located (e.g., physically and/or conceptually or logically with respect to other devices of the building management system) with respect to the building management system, along with identification information regarding hardware/software/firmware configuration and/or capabilities of the device, to configure the device for operation with the building management system or components thereof, such as to retrieve and install targeted installation packages to enable the device to perform relevant functions relative to the building management system or components thereof. In some implementations, the machine learning models can generate the context information in various manners including but not limited to be retrieving a graph from the building management system representative of the components and/or items of equipment of the building management system as described further herein.
At 805, building knowledge graph data is obtained. The building knowledge graph can describe at least a portion of or an entire site with multiple buildings, a single building, and/or a sub-area within a building (e.g., a floor of a building). The building knowledge graph can be obtained from a building knowledge graph database (e.g., a data source 112) of a BMS (e.g., the system 100). In some instances, an entire building knowledge graph may be obtained at one time. In other instances, a subset of nodes and/or edges of a building knowledge graph can be obtained selectively in response to and based on a received user prompt, as will be described below. The building knowledge graph can include a graph data structure that includes data elements (e.g., nodes) representative of structures of buildings and/or of items of equipment, such as data elements that indicate features of items of equipment such as locations (e.g., in a building), functions, structures, or make or model information, including relational information amongst the items of equipment and/or between the items of equipment and the building. For example, the knowledge graph can include nodes arranged to indicate one or more first items of equipment in a first portion of a building and to indicate one or more second items of equipment in a second portion of a building, as well as connections (e.g., electronic, electrical, fluid, communicative, etc.) amongst respective first and/or second items of equipment as appropriate.
At 810, the building knowledge graph data can be enriched. The building knowledge graph data can be enriched using various information pertaining to nodes and/or edges of the building knowledge graph pulled from a variety of internal or external databases, knowledge bases, or other information sources (e.g., data sources 112). In some instances, the information can be pulled from a digital twin and/or other building data platform. The information can include additional contextual, spatial, alarm-related, causal, or other types of information not included within the building knowledge graph but otherwise pertinent to one or more of the nodes and/or edges of the building knowledge graph (e.g., pertinent to entities and/or relationships between entities within the building or site). The pulled information can be used to enrich or otherwise provide additional context pertaining to the nodes and/or edges of the building knowledge graph for use in training the GAI model, as will be discussed below. In some implementations, the building knowledge graph node and/or edge enrichment process may be similar to any of the enrichment processes described in U.S. patent application Ser. No. 17/134,659 filed Dec. 28, 2020, Ser. No. 17/134,691 filed Dec. 28, 2020, Ser. No. 17/853,352 filed Jun. 29, 2022, and International Patent Application No. PCT/US2022/034101 filed Jun. 17, 2022, the disclosures of which are incorporated herein by reference in their entireties.
At 815, the building knowledge graph data is translated to natural language prompts. For example, the building knowledge graph data is obtained in a raw format, which can be represented using a BRICK or any other suitable ontology-based metadata schema. In some implementations, the building knowledge graph data includes a plurality of graph nodes and edges that can be split out into individual nodes and edges or into logical or hierarchical groups of nodes or edges for translation. In some instances, the nodes and edges in the building knowledge graph can be sorted into a hierarchy of building-related assets from a top or broadest level down to a bottom or most detailed level. As an example, a top or broadest level can be an entire building or site entity. The next level can be spatial entities within the building or site entity (e.g., a particular floor, room, or zone within the building or site entity). The next level can be specific equipment and/or asset entities within the various spatial entities (e.g., a particular HVAC system entity, a thermostat entity). The bottom or most detailed level can be various point entities within the various equipment and/or asset entities (e.g., a subcomponent entity within a larger device entity). In other implementations, other types of logical or hierarchical groupings can be utilized.
Each entity within the building knowledge graph can be translated from its raw format to one or more natural language prompts based on the structure of its associated nodes and/or edges. For example, in some implementations, a given entity within a building knowledge graph can have a first node or edge specifying the entity and its type and one or more second nodes or edges specifying the entity and its properties and/or relationships to other entities within the building. Accordingly, the building knowledge graph can be queried (e.g., using SPARQL) for each entity to obtain the entity's type and its various properties and relationships to other entities within the building.
As an example, if a given entity within the building knowledge graph has a first node or edge that reads “b: V1 rdf:type brick:VAV” in its raw format and a second node or edge that reads “b:V1 brick:hasPoint b:ZNT1” in its raw format, a natural language prompt or sentence can be generated for the entity (e.g., V1) that pulls the entity type from the first node or edge (e.g., VAV) and pulls a relationship with another entity from the second node or edge (e.g., V1 has a point ZNT1) to form a natural language sentence in the form of “V1 is a VAV and has a point ZNT1.”
In some instances, nodes or edges can include various graph-related extras (e.g., URLs), which can be removed when the nodes or edges are translated into the natural language prompts or sentences. In some instances, an entity's type, property, or relationship within a node or edge can be formatted specifically for BRICK or another ontology schema, which can be changed into a corresponding natural language phrase. For example, “Zone_Temperature_Sensor” from a BRICK schema can be translated to “zone temperature sensor” and “X isPointOf Y” can be translated to “X is a point of Y.” Similarly, “Y hasPoint X” can be inversely translated to “X is a point of Y.”
In some implementations, the type, properties, and relationships associated with an entity can be combined into a single natural language prompt (e.g., a description in the form of a long sentence) describing the entity, its type, its relationships, and its various properties. If a single entity is related to a plurality of other entities in a similar way, the natural language sentence or paragraph generated can combine or otherwise simplify the relationships. For example, instead of repeating “X is a point of Y and X is a point of Z,” the generated sentence or paragraph can include “X is a point of Y and Z.” In some implementations, the generated natural language description can further ensure proper casing (e.g., representing the data from the knowledge graph with accurate uppercase and/or lowercase features) such that, for example, “X rdf:type brick:VAV” becomes “X is a VAV,” but “X rdf:type Temperature_Sensor” becomes “X is a temperature sensor.”
In some implementations, the nodes or edges in their raw format can be translated into the natural language prompts for the various entities manually by a user via a user interface, using a translation application or program specifically configured to translate a given ontology schema into natural language prompts, and/or using one or more artificial intelligence models (e.g., one or more of the artificial intelligence models described herein). For example, one or more contextual rules for translating the raw format nodes and edges into natural language prompts can be provided as inputs to train one or more artificial intelligence models to allow for the artificial intelligence models to be used to autonomously translate raw format (e.g., BRICK or other ontology schema) nodes and edges into natural language prompts, as discussed above. Accordingly, in some instances, the entire building knowledge graph may be translated into natural language text using one or more of the machine learning models described herein.
At 820, the machine learning model is trained or otherwise fine-tuned using the natural language prompts. In some implementations, the natural language prompts for an entire building knowledge graph can be provided as training inputs to the machine learning model. In some other instances, a subset of nodes and/or edges selectively chosen based on a received user prompt can be provided as training inputs. For example, in some instances, the machine learning model can be trained in real-time or near real-time in response to a user prompt, as will be described below.
In some implementations, prior to training the machine learning model, the natural language prompts can be converted into vectors to be indexed and stored within a vector storage and similarity search database. For example, in some instances, the natural language text may be provided to an embedding model to convert the natural language text into indexable vectors that can be easily utilized by the machine learning models described herein. The embedding model can receive the natural language prompts (and/or one or more tokens thereof as generated by a tokenizer, such as a byte pair encoding tokenizer, etc.), and apply the natural language prompts as input to the embedding model to cause the embedding model to generate respective vectors representing the natural language prompts in an n-dimensional space. The embedding model can include any of various functions, algorithms, rules, and/or machine learning models configured to generate vectors representative of text or semantic data, including but not limited to models such as CNNs, word2vec, or BERT.
Various devices (e.g., items of equipment) can be used in buildings and building management systems to perform functions for the building. Such devices can include, for example and without limitation, sensors, controllers, HVAC-R equipment, network communications equipment, security devices, access controllers, data platforms, automation systems, or various combinations thereof.
Such devices can rely on custom configurations in order to properly function, including to function with respect to other devices in the building. These configurations can be implemented by software and/or firmware packages installed on the devices. Upon manufacturing, a device can have an initial configuration installed, such as to provide a baseline of functionality, including functions for establishing initial connections with the building management system. However, discrepancies between the initial functions provided for the device and functions for which the device is to be used in the building can lead to errors in operation of the device, including but not limited to errors preventing the device from being useful in the building. In addition, it can be useful for devices to be configured in a manner to support specific performance metrics for the building, including but not limited to metrics relating to sustainability, comfort, efficiency, and/or energy usage. While repositories can be available to provide packages or other forms of configuration data to devices, it can be challenging for configuration tools to accurately identify the correct configuration data to use to configure the devices. Further, configuring devices using the building management system or other central system can require significant back-and-forth communications amongst several devices and systems, which can result in increased network communication demands and can result in a higher error rate for proper configuration of the devices.
Systems and methods in accordance with the present disclosure can allow devices, including edge-connected devices, to accurately retrieve configuration data (e.g., software or firmware packages or executables) targeted for configuring the devices for effective functioning with respect to a building management system and/or one or more remote devices of the building management system. For example, during and/or after manufacturing of the device (e.g., prior to the device being shipped or delivered to a building), the device can have a scan agent and a machine learning model installed.
In response to the device being connected with the building management system, the scan agent can perform a scan of the building management system to identify one or more components of the building management system or coupled with the building management system. The scan agent can determine, as part of the scan, a context characteristic of at least one of the device or of one or more remote devices. The context characteristic can include, for example, location data such as a physical position of devices, a network location of devices (e.g., which components of a network of the building management system that device(s) are connected with), or a hierarchical location of devices (e.g., where in a building graph, tree or other hierarchical structure a given device is arranged). The device can also determine, such as when operating the scan agent, one or more functionalities of itself, such as hardware and/or software configurations, capabilities, and/or functionalities.
The device can process the context characteristic and functionality information (e.g., using a machine learning model) to identify configuration data (e.g., software package, firmware package) to configure the device for useful operation with the building management system and/or other devices in the building. For example, the machine learning model can use the context characteristics, as well as identification information regarding the device, such as the device's hardware configuration and/or existing software or firmware, as inputs for determining one or more configuration data structures to use to install on (e.g., configure/re-configure) the device.
The machine learning model can be trained using training data representative of examples of configurations of devices and corresponding examples of configuration data of the devices. The model can be updated using such examples of training data to improve in accuracy and recency for identifying correct configuration data to retrieve for installation on the device.
The scan agent and machine learning model can be relatively lightweight with respect to computational/processing demand, such as compared with more complex functions that may operate on the building management system for top-down management of all functions of the building management system. This can allow the edge-connected device to efficiently configure itself without network communication or processing demands on the building management systems (e.g., without requiring the hardware configuration data to be transmitted to the building management system or the building management system to dedicate computational resources to performing the scan, configuration data evaluation, and providing of configuration data to the edge device).
Systems and methods in accordance with the present disclosure can incorporate technologies relating to automated commissioning, discovery, scanning, and/or configuration of devices and building management systems. For example, some such implementations can incorporate features described in any of U.S. Pat. Nos. 9,581,985, 11,487,259, 10,402,360, U.S. Provisional Patent Application No. 63/411,540, filed Sep. 29, 2022, and/or U.S. Provisional Patent Application No. 63/466,602, filed May 15, 2023, the disclosures of which are incorporated herein by reference in their entireties.
The building management system 904 can maintain a data structure 908 representative of one or more components 912 (e.g., items of equipment) coupled with the building management system 904. The data structure 908 can include any of a variety of structured and/or unstructured data, including but not limited to graph data, metadata, queryable databases, or various combinations thereof. The data structure 908 can indicate one or more relationships between components 912. The data structure 908 can indicate at least one of a position or a function of a given component 912. The position can indicate a physical location of the component 912, or a logical location (e.g., a network location or device based on where the component 912 is connected to the network 906 of the building management system 904). The function of the component 912 can include, for example, one or more operations that the component 912 is to perform, such as real-world actions, data processing operations, data sensing or measuring, or various combinations thereof. The function of the component 912 can indicate at least one of data to be used by the component 912 (e.g., to be received as input) or data to be outputted by the component 912. The building management system 904 can update the data structure 908 responsive to one or more components 912 being connected with the building management system 904 (e.g., via network 906).
The network 906 can include or be coupled with any of various nodes 910. The nodes 910 can represent devices in a building having network capabilities and/or that support network operations. For example, the nodes 910 can represent (e.g., in data structure 908) network platforms and/or computing platforms coupled with the building management system 904.
The components 912 can include any of various items of equipment described herein that can perform operations in a building. For example, the components 912 can include any of various sensors, controllers, HVAC-R equipment, network communications equipment, security devices, access controllers, data platforms, automation systems, or various combinations thereof. One or more components 912 can include network communications electronics to communicate with the building management system 904 via the network 906.
Referring further to
The devices 920 can include software and/or firmware components to implement, for example, control applications, analytics applications, machine learning models, artificial intelligence systems, user interface applications, etc. The components may have requirements, e.g., a requirement that another component be present or be in communication with the component, a particular level of processing resource availability, a particular level of storage availability, etc. In some implementations, the components (e.g., software and/or firmware components, such as services implemented by the software and/or firmware components) of the edge platform can be moved around the nodes 910 of the network based on available data, processing hardware, memory devices, etc. The various services can be dynamically relocated around the nodes of the network based on the requirements for each service. In some implementations, an orchestrator run in a cloud platform of the building management system 904, orchestrators distributed across the nodes 910, and/or the service itself can make determinations to dynamically relocate the service around the nodes 910 and/or the cloud platform.
The device 920 can include at least one scan agent 924. The scan agent 924 can include one or more rules, heuristics, policies, algorithms, functions, machine learning models, large language models, logic, code, or other operations to perform operations such as scanning for information represented by the data structure 908. For example, the scan agent 924 can perform one or more scans to retrieve data from at least one of the network 906 (e.g., from hardware of the network 906) or the data structure 908. The scan agent 924 can perform the scan to detect information such as identifiers and/or functions of any one or more of components 912, nodes 910, the network 906, and/or the building management system 904. In some implementations, the scan agent 924 can retrieve the data structure 908 or extract information from the data structure 908 (which can be representative of the components 912, such as to indicate locations and/or functions of the components 912). Responsive to performing the scan, the scan agent 924 can determine at least one of a location or a function of one or more components 912 of the system 900. Responsive to performing the scan, the scan agent 924 can determine a location of the device 920, such as a location corresponding to a node 910 of the network 906 with which the device 920 is connected, or a location relative to one or more components 912 in proximity to the device 920. The scan agent 924 can determine the location according to a knowledge graph or other representation of the components 912 corresponding to a structure of the data structure 908.
The scan agent 924 can perform the scan to identify one or more device functions for the device 920 to perform. For example, the scan agent 924 can identify information regarding inputs, data processing, and/or outputs of the components 912 to indicate device functions corresponding to the identified information. The scan agent 924 can determine a context characteristic of at least one of the device 920 or one or more remote devices (e.g., one or more components 912). The context characteristic can include, for example, location data such as a physical position of the device 920 and/or components 912, a network location of the device 920 and/or the components 912 (e.g., which nodes 910 to which the device 920 or components 912 are connected), or a hierarchical location of the device 920 and/or components 912 (e.g., where in a building graph, tree or other hierarchical structure a given device is arranged, which the scan agent can determine based on parsing the data structure 908).
The device 920, for example, using the scan agent 924, can identify identification data of itself. For example, the device 920 can identify (e.g., by parsing an identification or configuration data structure accessible by one or more processors of the device 920), identification data that includes a configuration of the device 920, such as at least one of a hardware configuration, a firmware configuration, or a software configuration. The configuration can indicate various characteristics of the device 920 such as hardware available, hardware capabilities, functions that the device 920 can perform, software, firmware, or other services, functions, or operations that the device 920 has, sensors or other components that the device 920 has, or various combinations thereof. The configuration can indicate version information regarding the configuration of the device 920, which the device 920 can use to determine a current capability of the device 920 (e.g., a current state of device configuration 932) relative to capabilities that may be achieved by installing new or updated configuration data (e.g., new software packages, etc.) on the device 920.
The device 920 can include a configuration selector 928. The configuration selector 928 can include one or more rules, heuristics, policies, algorithms, functions, machine learning models, large language models, logic, code, or other operations to perform operations such as determining configuration data to retrieve from an installation repository 940 according to the scan performed by the scan agent 924.
For example, the configuration selector 928 can include at least one machine learning model that can incorporate features of various machine learning models described herein, such as one or more neural networks and/or LLMs of the model system 260 described with reference to
In some implementations, the configuration selector 928 can determine the configuration data according to at least one of (1) a remote component 912 for the device 920 to control or (2) a command for the device 920 to receive from one or more remote components 912. Such information can be retrieved by the configuration selector 928 according to the scan performed by the scan agent 924. For example, the device 920 can be enabled to operate in a command and control environment, such as to deploy the device 920 and automatically configure the device 920 for appropriate functions for controlling and/or commanding (or receiving control signals and/or commands from) other components 912. The device 920 can thus be in an adaptive manner, such as to allow self-organizing and self-assembling based on the processing performed by the configuration selector 928. In some implementations, various devices 920 can operate in this manner, such as to configure/reconfigure multiple devices 920 into a command and control system.
In some implementations, the device 920 may be communicably coupled to the building management system 904 and a plurality of devices deployed across the network 906. The device 920 may be configured to receive one or more sets of information corresponding to the plurality of devices. For example, the device 920 may be configured to receive one or more sets of information relating to a type of software being installed on the plurality of devices. In some implementations, the software may correspond to software of the installation repository 940. The device 920 may identify, using the sets of information, a status of each device of the plurality of devices. The status may indicate a type of software being installed. The status may include an indication about progress of the software installation. The progress of the software installation may include an indication of the success of installation and/or any errors that may have occurred during the installation process. The device 920 may generate a report to indicate the status of each device. For example, the report may indicate that a first of device had a successful installation, and a second device had an unsuccessful installation.
In some implementations, the report may be displayed on a graphical user interface configured to allow the user to evaluate deployment of the plurality of devices across the network. In alternate implementations, the report may be processed by a machine learning model configured to determine whether installations or configurations of software for any devices are incorrect or unexpected (e.g., errors). The machine learning model may be configured to alert the user responsive to detection of errors. The machine learning model may be configured to provide an automated response to the user that addresses the errors. For example, the machine learning model may determine that an incorrect software has been installed on a device, determine a correct software to install, and automatically install the correct software on the device.
In some implementations, the configuration selector 928 presents the selected configuration data via a user interface for feedback, such as approval, disapproval, or editing, from a user. For example, the configuration selector 928 can cause presentation of the selected configuration data or the one or more functions for the device 920 to perform corresponding to the selected configuration data. The configuration selector 928 can receive feedback corresponding to the presented indication, such as feedback for approval, disapproval, or editing/modification of the selected configuration data. The configuration selector 928 can use the feedback to at least one of (1) modify the selected configuration data prior to generating a request for the selected configuration data or (2) update the machine learning model according to the feedback.
As depicted in
At 1005, an initialization condition of a device can be detected. The initialization condition can represent an event or action of the device corresponding to the device being deployed or installed at a building. For example, the initialization condition can correspond to a first time that the device is activated after receipt by a user or customer, a (first) connection or establishing of a communication link between the device and a building management system, a hard reset of the device, or receipt of a command to reconfigure the device for operation with the building management system.
At 1010, a scan agent can be operated to retrieve building data of the building. The building data can represent locations and functions of any of various devices and components of the building and/or coupled with the building management system. In some implementations, retrieving the building data includes parsing or otherwise scanning a building data structure, such as a knowledge graph, maintained by the building management system. In some implementations, retrieving the building data includes scanning network locations (e.g., connected nodes) of the devices/components of the building. The building data can indicate one or more relationships (e.g., spatial and/or network or logical) between the device and one or more remote components.
At 1015, a context of the device can be determined, such as by processing the building data. The context can include a context characteristic of the device, such as a location of the device, a location of one or more remote devices, or a function of the device to perform with respect to the one or more remote devices. Such functions can include, for example, operations for transmitting commands to or receiving commands from remote devices; sensing data regarding operation of remote devices; providing inputs to remote devices; processing outputs from remote devices; or various combinations thereof.
At 1020, a configuration for the device can be determined based on the context and information regarding the device. The information regarding the device can include an identifier of the device, a make, model, or application/software/hardware/firmware configuration or capability listing of the device, and/or an identifier of the building. The configuration can be determined by providing the context (e.g., context characteristic) and information regarding the device as input to a machine learning model to cause the machine learning model to output the determined configuration. The determined configuration can indicate at least one of (1) one or more functions for the device to perform (e.g., given the location and/or context of the device) or (2) one or more software/firmware packages to install on the device to enable the device to perform the one or more functions. The machine learning model can be trained using training data such as examples of configuration data associated with at least one of examples of context characteristics or examples of device identifiers. In some implementations, the determined configuration can be presented for feedback (e.g., via a user interface; to an editor model, etc.) and can be approved, validated, updated, etc. responsive to the feedback.
At 1025, the configuration can be requested from an installation repository. For example, a request can be generated that identifies at least one of (1) the one or more functions for the device to perform (e.g., given the location and/or context of the device) or (2) the one or more software/firmware packages to install on the device to enable the device to perform the one or more functions. At 1030, the configuration can be received and installed on the device.
The construction and arrangement of the systems and methods as shown in the various exemplary embodiments are illustrative only. Although only a few embodiments have been described in detail in this disclosure, many modifications are possible (e.g., variations in sizes, dimensions, structures, shapes and proportions of the various elements, values of parameters, mounting arrangements, use of materials, colors, orientations, etc.). For example, the position of elements may be reversed or otherwise varied and the nature or number of discrete elements or positions may be altered or varied. Accordingly, all such modifications are intended to be included within the scope of the present disclosure. The order or sequence of any process or method steps may be varied or re-sequenced according to alternative embodiments. Other substitutions, modifications, changes, and omissions may be made in the design, operating conditions and arrangement of the exemplary embodiments without departing from the scope of the present disclosure.
The present disclosure contemplates methods, systems and program products on any machine-readable media for accomplishing various operations. The embodiments of the present disclosure may be implemented using existing computer processors, or by a special purpose computer processor for an appropriate system, incorporated for this or another purpose, or by a hardwired system. Embodiments within the scope of the present disclosure include program products comprising machine-readable media for carrying or having machine-executable instructions or data structures stored thereon. Such machine-readable media can be any available media that can be accessed by a general purpose or special purpose computer or other machine with a processor. By way of example, such machine-readable media can comprise RAM, ROM, EPROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code in the form of machine-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer or other machine with a processor. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a machine, the machine properly views the connection as a machine-readable medium. Thus, any such connection is properly termed a machine-readable medium. Combinations of the above are also included within the scope of machine-readable media. Machine-executable instructions include, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing machines to perform a certain function or group of functions.
Although the figures show a specific order of method steps, the order of the steps may differ from what is depicted. Also two or more steps may be performed concurrently or with partial concurrence. Such variation will depend on the software and hardware systems chosen and on designer choice. All such variations are within the scope of the disclosure. Likewise, software implementations could be accomplished with standard programming techniques with rule based logic and other logic to accomplish the various connection steps, processing steps, comparison steps and decision steps.
In various implementations, the steps and operations described herein may be performed on one processor or in a combination of two or more processors. For example, in some implementations, the various operations could be performed in a central server or set of central servers configured to receive data from one or more devices (e.g., edge computing devices/controllers) and perform the operations. In some implementations, the operations may be performed by one or more local controllers or computing devices (e.g., edge devices), such as controllers dedicated to and/or located within a particular building or portion of a building. In some implementations, the operations may be performed by a combination of one or more central or offsite computing devices/servers and one or more local controllers/computing devices. All such implementations are contemplated within the scope of the present disclosure. Further, unless otherwise indicated, when the present disclosure refers to one or more computer-readable storage media and/or one or more controllers, such computer-readable storage media and/or one or more controllers may be implemented as one or more central servers, one or more local controllers or computing devices (e.g., edge devices), any combination thereof, or any other combination of storage media and/or controllers regardless of the location of such devices.
This application claims the benefit of and priority to U.S. Provisional Patent 63/541,162, filed on Sep. 28, 2023, the entirety of which is incorporated by reference herein.
| Number | Date | Country | |
|---|---|---|---|
| 63541162 | Sep 2023 | US |