WO2025234985A1 - Node management based on computational cost - Google Patents
Node management based on computational costInfo
- Publication number
- WO2025234985A1 WO2025234985A1 PCT/US2024/028189 US2024028189W WO2025234985A1 WO 2025234985 A1 WO2025234985 A1 WO 2025234985A1 US 2024028189 W US2024028189 W US 2024028189W WO 2025234985 A1 WO2025234985 A1 WO 2025234985A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- node
- learning model
- machine learning
- nodal
- timestep
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Definitions
- the subject matter disclosed herein generally relates to the technical field of special-purpose machines that facilitate artificial intelligence (Al), including software-configured computerized variants of such special-purpose machines and improvements to such variants, and to the technologies by which such specialpurpose machines become improved compared to other special-purpose machines that facilitate Al.
- Al artificial intelligence
- the present disclosure addresses systems and methods to facilitate nodal self-determination, node management, or both, based on computational cost.
- machine learning models implement one or more algorithms or other techniques for performance on computer hardware and are configured to learn from experiences processing data and make decisions (e g., predictions, inferences, or categorizations) without explicit programming.
- Machine learning models may utilize one or more statistical methods, mathematical optimization, pattern recognition techniques, or any suitable combination thereof, to identify patterns or other relationships within data.
- Machine learning models are now widely used across various domains, such as image recognition, speech recognition, natural language processing, classifiers, recommendation generators, and anomaly detectors.
- the model is trained using historical information that is labeled with one or more features, and after training, the trained machine learning model is provided with new unlabeled input data to generate inferences about the new data.
- FIG. 1 is a network diagram illustrating a network environment suitable for nodal self-determination, node management, or both, based on computational cost, according to some example embodiments.
- FIG. 2 is a block diagram illustrating components of an Al machine suitable for nodal self-determination, node management, or both, based on computational cost, according to some example embodiments.
- FIGS. 3-5 are flowcharts illustrating operations of a node, within a machine learning model, in that node performing a method of nodal self- determination based on computational cost, according to some example embodiments.
- FIG. 9 is a block diagram illustrating components of a machine, according to some example embodiments, able to read instructions from a machine- readable medium and perform any one or more of the methodologies discussed herein.
- Example methods facilitate nodal self-determination, node management, or both, based on computational cost
- example systems e.g., special-purpose machines configured by special-purpose software
- example systems are configured to facilitate nodal self-determination, node management, or both, based on computational cost. Examples merely typify possible variations.
- structures e.g., structural components, such as modules
- operations e.g., in a procedure, algorithm, or other function
- the generative model of a node may be, include, or otherwise be defined by a set of numerical weights, biases, or both (e.g., stored as a tensor), and the generative model of the node may accordingly determine how the node processes inputs received by the node into outputs produced by that same node.
- a node may be configured to receive directed input (e.g., specifically targeted for processing by the node as part of performing a function of the node, such as an outputting function, which function may be shared in common by a group of nodes that include the node), and the directed input may be received by the node from one or more sources (e.g., one or more nodes inside or outside the group of nodes).
- directed input e.g., specifically targeted for processing by the node as part of performing a function of the node, such as an outputting function, which function may be shared in common by a group of nodes that include the node
- that same node may be configured to receive incidental or observational input (e.g., contextual information, environmental information, or other information not specifically targeted for processing as part of performing the function of the node) from one or more other nodes in its group (e.g., peer nodes, child nodes, or any suitable combination thereof) regarding the outputs of those one or more other nodes in the group.
- incidental or observational input e.g., contextual information, environmental information, or other information not specifically targeted for processing as part of performing the function of the node
- group e.g., peer nodes, child nodes, or any suitable combination thereof
- a node may be configured (e.g., by suitable internal software) to self-determine its own upcoming (e.g., next) action (e.g., nodal action), for example, in an upcoming (e.g., next) timestep of the machine-learning model.
- upcoming e.g., next
- action e.g., nodal action
- a machine-learning model with multiple nodes may include a node manager (e.g., a node management thread or other process) that is configured (e.g., by suitable internal software) to control one or more nodes by selecting, for a given node, an upcoming command (e.g., nodal command) that will be performed on that node by the node manager, for example, in an upcoming (e.g., next) timestep of the machine-learning model.
- a node manager e.g., a node management thread or other process
- suitable internal software e.g., a command that will be performed on that node by the node manager, for example, in an upcoming (e.g., next) timestep of the machine-learning model.
- a node may be configured to act as its own (e.g., internal) node manager and thus self-determine its own upcoming action, and also be configured to act as a node manager (e.g., external) for another node and manage that other node by selecting an upcoming command for that other node, in accordance with the present subject matter.
- a node manager e.g., external
- the node may be configured (e.g., by suitable internal software) to perform the following operations.
- the node first calculates predicted computational costs for all nodal actions in a predetermined plurality of nodal actions that are performable by the node (e.g., that same exact node) within the machine learning model during an upcoming timestep of the executing machine learning model.
- the node selects a nodal action to be performed by the node (e.g., by that same exact node) during the upcoming timestep of the executing machine learning model, where the nodal action is selected from the predetermined plurality of nodal actions based on one or more comparisons among the predicted computational costs of the predetermined plurality of nodal actions during the upcoming timestep of the executing machine learning model.
- the node then performs the nodal action that was selected based on the one or more comparisons of the predicted computational costs among the predetermined plurality of nodal actions during the upcoming timestep of the executing machine learning model.
- the node manager may be configured (e.g., by suitable internal software) to perform the following operations.
- the node manager first calculates predicted computational costs for all nodal commands in a predetermined plurality of nodal commands that are performable on a node within the machine learning model during an upcoming timestep of the executing machine learning model.
- the node manager selects a nodal command to be performed on the node during the upcoming timestep of the executing machine learning model, where the nodal command is selected from the predetermined plurality of nodal commands based on one or more comparisons among the predicted computational costs of the predetermined plurality of nodal commands during the upcoming timestep of the executing machine learning model.
- the node manager then causes performance of the selected nodal command on the node (e.g., by the node manager or otherwise commanded by the node manager) during the upcoming timestep of the executing machine learning model.
- FIG. l is a network diagram illustrating a network environment suitable for nodal self-determination, node management, or both, based on computational cost, according to some example embodiments.
- the network environment 100 includes an Al machine 110, a database 115, and devices 130 and 150, all communicatively coupled to each other via a network 190.
- the Al machine 110 with or without the database 115, may form all or part of a cloud 118 (e.g., a geographically distributed set of multiple machines configured to function as a single server), which may form all or part of a network-based system 105 (e.g., a cloud-based server system configured to provide one or more network-based services to the devices 130 and 150).
- the Al machine 110, the database 115, and the devices 130 and 150 may each be implemented in a special-purpose (e.g., specialized) computer system, in whole or in part, as described below with respect to FIG. 9.
- users 132 and 152 are users 132 and 152.
- One or both of the users 132 and 152 may be a human user (e.g., a human being), a machine user (e.g., a computer configured by a software program to interact with the device 130 or 150), or any suitable combination thereof (e.g., a human assisted by a machine or a machine supervised by a human).
- the user 132 is associated with the device 130 and may be a user of the device 130.
- the device 130 may be a desktop computer, a vehicle computer, a home media system (e.g., a home theater system or other home entertainment system), a tablet computer, a navigational device, a portable media device, a smart phone, or a wearable device (e.g., a smart watch, smart glasses, smart clothing, or smart jewelry) belonging to the user 132.
- a home media system e.g., a home theater system or other home entertainment system
- a tablet computer e.g., a navigational device, a portable media device, a smart phone, or a wearable device (e.g., a smart watch, smart glasses, smart clothing, or smart jewelry) belonging to the user 132.
- a wearable device e.g., a smart watch, smart glasses, smart clothing, or smart jewelry
- the user 152 is associated with the device 150 and may be a user of the device 150.
- the device 150 may be a desktop computer, a vehicle computer, a home media system (e.g., a home theater system or other home entertainment system), a tablet computer, a navigational device, a portable media device, a smart phone, or a wearable device (e.g., a smart watch, smart glasses, smart clothing, or smart jewelry) belonging to the user 152.
- a home media system e.g., a home theater system or other home entertainment system
- a tablet computer e.g., a navigational device, a portable media device, a smart phone, or a wearable device (e.g., a smart watch, smart glasses, smart clothing, or smart jewelry) belonging to the user 152.
- a wearable device e.g., a smart watch, smart glasses, smart clothing, or smart jewelry
- any of the systems or machines (e.g., databases and devices) shown in FIG. 1 may be, include, or otherwise be implemented in a special-purpose (e.g., specialized or otherwise non-conventional and non-generic) computer that has been modified to perform one or more of the functions described herein for that system or machine (e.g., configured or programmed by special -purpose software, such as one or more software modules of a special-purpose application, operating system, firmware, middleware, or other software program).
- special-purpose computer system able to implement any one or more of the methodologies described herein is discussed below with respect to FIG. 9, and such a special-purpose computer may accordingly be a means for performing any one or more of the methodologies discussed herein.
- a special-purpose computer that has been specially modified (e.g., configured by special-purpose software) by the structures discussed herein to perform the functions discussed herein is technically improved compared to other special-purpose computers that lack the structures discussed herein or are otherwise unable to perform the functions discussed herein. Accordingly, a special-purpose machine configured according to the systems and methods discussed herein provides an improvement to the technology of similar special-purpose machines.
- a “database” is a data storage resource and may store data structured in any of various ways, for example, as a text file, a table, a spreadsheet, a relational database (e.g., an object-relational database), a triple store, a hierarchical data store, a document database, a graph database, key -value pairs, or any suitable combination thereof Moreover, any two or more of the systems or machines illustrated in FIG. 1 may be combined into a single system or machine, and the functions described herein for any single system or machine may be subdivided among multiple systems or machines.
- a relational database e.g., an object-relational database
- the network 190 may be any network that enables communication between or among systems, machines, databases, and devices (e.g., between the Al machine 110 and the device 130). Accordingly, the network 190 may be a wired network, a wireless network (e.g., a mobile or cellular network), or any suitable combination thereof. The network 190 may include one or more portions that constitute a private network, a public network (e.g., the Internet), or any suitable combination thereof.
- the network 190 may include one or more portions that incorporate a local area network (LAN), a wide area network (WAN), the Internet, a mobile telephone network (e.g., a cellular network), a wired telephone network (e.g., a plain old telephone service (POTS) network), a wireless data network (e.g., a WiFi network or WiMax network), or any suitable combination thereof. Any one or more portions of the network 190 may communicate information via a transmission medium.
- LAN local area network
- WAN wide area network
- the Internet a mobile telephone network
- POTS plain old telephone service
- POTS plain old telephone service
- WiFi Wireless Fidelity
- transmission medium refers to any intangible (e.g., transitory) medium that is capable of communicating (e.g., transmitting) instructions for execution by a machine (e.g., by one or more processors of such a machine), and includes digital or analog communication signals or other intangible media to facilitate communication of such software.
- FIG. 2 is a block diagram illustrating some components of the Al machine 110, as configured for nodal self-determination, node management, or both, based on computational cost, according to some example embodiments.
- the Al machine 110 is shown as including a machine learning model 210.
- the machine learning model 210 includes a group 212 of nodes (e.g., each configured to perform a respectively corresponding task, such as to produce future outputs of that node from future inputs to that node based on a generative model of that node, and also to update its generative model based on past feedback received by that node in response to past outputs of that node produced from past inputs to that node).
- the group 212 of nodes includes multiple nodes (e.g., a plurality of nodes), such as a node 221 (e.g., a first node) and a node 222 (e.g., a second node), which may be a peer of the node 221 (e.g., the first node), a parent of the node 221 (e.g., the first node), a child of the node 221 (e.g., the first node), or a node of some other relationship with the node 221 (e.g., the first node) within the group 212 of nodes.
- a node 221 e.g., a first node
- a node 222 e.g., a second node
- a peer of the node 221 e.g., the first node
- a parent of the node 221 e.g., the first node
- a child of the node 221
- each group of nodes may have its own corresponding task (e.g., a task that is shared in common with its internal nodes, but not shared with other groups of nodes or their internal nodes).
- FIG. 2 shows the machine learning model 210 including another group 213 of nodes (e.g., each configured to perform a respectively corresponding task, such as to produce future outputs of that node from future inputs to that node based on a generative model of that node, and also to update its generative model based on past feedback received by that node in response to past outputs of that node produced from past inputs to that node).
- the group 213 of nodes includes multiple nodes (e.g., a plurality of nodes), such as nodes 231 and 232, where the node 232 may be a peer of the node 231, a parent of the node 231, a child of the node 231, or a node having some other relationship with the node 231 within the group 213 of nodes.
- nodes e.g., a plurality of nodes
- the node 232 may be a peer of the node 231, a parent of the node 231, a child of the node 231, or a node having some other relationship with the node 231 within the group 213 of nodes.
- the machine learning model 210 may include a node manager 220 (e.g., a node management thread or other process) that is configured (e.g., by suitable internal software) to control one or more nodes.
- the node manager 220 may be part of the machine learning model 210 or separate from the machine learning model 210.
- the machine learning model 210, the node manager 220, or both may form all or part of an app 200 (e.g., a mobile app, a server app, or other computer program) that is stored (e.g., installed) on the Al machine 110 (e.g., responsive to or otherwise as a result of data being received via the network 190, such as from the database 115 or from the device 130).
- an app 200 e.g., a mobile app, a server app, or other computer program
- the Al machine 110 e.g., responsive to or otherwise as a result of data being received via the network 190, such as from the database 115 or from the device 130.
- processors 299 e.g., hardware processors, digital processors, or any suitable combination thereof
- processors 299 may be included (e.g., temporarily or permanently) in the app 200, the machine learning model 210, the node manager 220, or any suitable combination thereof.
- any one or more of the components (e.g., modules) described herein may be implemented using hardware alone (e.g., one or more of the processors 299) or a combination of hardware and software.
- any component described herein may physically include an arrangement of one or more of the processors 299 (e.g., a subset of or among the processors 299) configured to perform the operations described herein for that component.
- any component described herein may include software, hardware, or both, that configure an arrangement of one or more of the processors 299 to perform the operations described herein for that component.
- different components described herein may include and configure different arrangements of the processors 299 at different points in time or a single arrangement of the processors 299 at different points in time.
- Each component (e.g., module) described herein is an example of a means for performing the operations described herein for that component.
- any two or more components described herein may be combined into a single component, and the functions described herein for a single component may be subdivided among multiple components.
- components described herein as being implemented within a single system or machine e.g., a single device
- may be distributed across multiple systems or machines e.g., multiple devices).
- FIGS. 3-5 are flowcharts illustrating operations of a node (e.g., node 221), within the machine learning model 210 while the machine learning model 210 is executing on the Al machine 110, as that node (e.g., node 221) performs a method 300 of nodal self-determination based on computational cost (e.g., of nodal actions performable by that node itself), according to some example embodiments.
- a node e.g., node 221
- computational cost e.g., of nodal actions performable by that node itself
- Operations in the method 300 may be performed by a node (e.g., node 221) within an executing machine learning model (e.g., machine learning model 210), and using components (e.g., modules) described above with respect to FIG. 2, using one or more processors (e.g., microprocessors or other hardware processors), or using any suitable combination thereof.
- a node e.g., node 221 within an executing machine learning model (e.g., machine learning model 210), and using components (e.g., modules) described above with respect to FIG. 2, using one or more processors (e.g., microprocessors or other hardware processors), or using any suitable combination thereof.
- the method 300 includes operations 310, 320, and 330.
- the node calculates predicted computational costs for all nodal actions in a group (e.g., a predetermined plurality) of nodal actions that are performable by the node within the machine learning model (e.g., machine learning model 210) during an upcoming (e.g., next) timestep of the executing machine learning model.
- the group includes at least two available nodal actions that are each performable by the node in the upcoming timestep.
- the node selects a (e.g., one and only one) nodal action to be performed by the node during the upcoming timestep of the executing machine learning model (e.g., machine learning model 210).
- the node performs one or more comparisons among the predicted computational costs that were calculated in operation 310.
- the nodal action selected in operation 320 is selected from the group of nodal actions based on these one or more comparisons between or among the predicted computational costs of the group of nodal actions that are performable by the node during the upcoming timestep of the executing machine learning model.
- the node e.g., node 221 performs the (e.g., only one) nodal action that was selected in operation 320. That is, the node performs the nodal action that was selected based on the one or more comparisons of the predicted computational costs among the group of nodal actions, and this selected nodal action is performed by the node during the upcoming (e.g., next) timestep of the executing machine learning model (e.g., machine learning model 210).
- the executing machine learning model e.g., machine learning model 210
- the method 300 may include one or more of operations 411, 412, 413, 414, 415, 416, 431, 432, 433, 434, 435, and 436.
- One or more of operations 411-416 may be performed as part (e.g., a precursor task, a subroutine, or a portion) of operation 310, in which the node (e g., node 221) calculates the predicted computational cost for each one of the nodal actions in the group of nodal actions.
- the node calculates a predicted computational cost of the node replicating itself within the executing machine learning model. For example, the node may determine the computational budget that would be consumed if the node were to make a copy of itself and add the copy to the machine learning model while the machine learning model is executing.
- the node calculates a predicted computational cost of the node deleting itself from the executing machine learning model. For example, the node may determine the computational budget that would be consumed if the node were to remove itself from the machine learning model (e.g., by disconnecting from all communications with any other nodes in the machine learning model, or by freeing or clearing its occupied memory locations).
- the node calculates a predicted computational cost of the node suspending itself for the upcoming timestep of the executing machine learning model. For example, the node may determine the computational budget that would be consumed if the node were to enter a sleep mode, produce no output, or both, for the duration of the next timestep.
- the node calculates a predicted computational cost of the node initiating reception of data from a further node (e.g., node 222 or node 232) within the executing machine learning model. For example, the node may determine the computational budget that would be consumed if the node were to request a new flow of data from another node in the machine learning model (e.g., within the same group of nodes or from a different group of nodes).
- the node calculates a predicted computational cost of the node terminating reception of data from a further node (e.g., node 222 or node 232) within the executing machine learning model. For example, the node may determine the computational budget that would be consumed if the node were to suspend or cancel a preexisting flow of data from another node in the machine learning model (e.g., within the same group of nodes or from a different group of nodes).
- the node calculates a predicted computational cost of the node operating itself normally for the upcoming (e.g., next) timestep of the executing machine learning model. For example, the node may determine the computational budget that would be consumed if the node were to process its currently configured one or more inputs and produce its currently configured one or more outputs with no change in its currently configured behavior.
- One or more of operations 431-436 may be performed as part (e.g., a precursor task, a subroutine, or a portion) of operation 330, in which the node (e.g., node 221) performs the nodal action that it selected in operation 320.
- the node e.g., node 221
- the node (e.g., node 221) replicates itself within the executing machine learning model.
- the node may make a copy of itself and add the copy to the machine learning model while the machine learning model is executing.
- the node deletes itself from the executing machine learning model. For example, the node may remove itself from the machine learning model (e g., by disconnecting from all communications with any other nodes in the machine learning model, or by freeing or clearing its occupied memory locations).
- the node e.g., node 221) suspends itself for the upcoming timestep of the executing machine learning model. For example, the node may enter a sleep mode, produce no output, or both, for the duration of the next timestep.
- the node e.g., node 221 initiates reception of data from a further node (e.g., node 221) within the executing machine learning model.
- the node may request a new flow of data from another node (e.g., node 222 or node 232) in the machine learning model (e.g., within the same group of nodes or from a different group of nodes).
- the node terminates reception of data from a further node (e.g., node 222 or node 232) within the executing machine learning model.
- the node may suspend or cancel a preexisting flow of data from another node in the machine learning model (e.g., within the same group of nodes or from a different group of nodes).
- the node (e.g., node 221) operates itself normally for the upcoming (e.g., next) timestep of the executing machine learning model.
- the node may process its currently configured one or more inputs and produce its currently configured one or more outputs with no change in its currently configured behavior.
- the method 300 may include one or more of operations 521, 522, 523, 524, and 525.
- One or more of operations 521-525 may be performed as part (e.g., a precursor task, a subroutine, or a portion) of operation 320, in which the node (e.g., node 221) selects a nodal action to be performed by the node during the upcoming timestep of the executing machine learning model (e.g., machine learning model 210).
- the node selects the nodal action with a lowest predicted computational cost among the predicted computational costs of the group of nodal actions for the upcoming timestep of the executing machine learning model (e.g., machine learning model 210).
- the node selects the nodal action with a lowest current computational cost among current computational costs of the group of nodal actions for a current timestep of the executing machine learning model (e.g., machine learning model 210).
- the node selects the nodal action based on a computational budget that is allocated to only the node itself for each timestep of the executing machine learning model (e g., for the upcoming timestep of the executing machine learning model 210).
- the node selects the nodal action based on a computational budget that is allocated to the whole machine learning model (e.g., the machine learning model 210 in its entirety) for each timestep of the executing machine learning model (e.g., for the upcoming timestep of the executing machine learning model 210).
- the node selects the nodal action based on a computational budget that is allocated to only a portion of the machine learning model (e.g., to only the group 212 of nodes), of which portion the node is a member, for each timestep of the executing machine learning model (e.g., for the upcoming timestep of the executing machine learning model 210).
- FIGS. 6-8 are flowcharts illustrating operations of a node manager (e.g., node manager 220), within the machine learning model 210 while the machine learning model 210 is executing on the Al machine 110, as that node manager (e.g., node manager 220) performs a method 600 of node management (e.g., upon a managed or otherwise controlled node, such as node 221) based on computational cost (e.g., of nodal commands performable on that node or otherwise caused to befall that node), according to some example embodiments.
- a node manager e.g., node manager 220
- a method 600 of node management e.g., upon a managed or otherwise controlled node, such as node 221
- computational cost e.g., of nodal commands performable on that node or otherwise caused to befall that node
- Operations in the method 600 may be performed by a node manager (e.g., node manager 220) within or otherwise corresponding to an executing machine learning model (e.g., machine learning model 210), and using components (e.g., modules) described above with respect to FIG. 2, using one or more processors (e.g., microprocessors or other hardware processors), or using any suitable combination thereof.
- a node manager e.g., node manager 220
- components e.g., modules
- processors e.g., microprocessors or other hardware processors
- the node manager calculates predicted computational costs for all nodal commands in a group (e.g.,. a predetermined plurality) of nodal commands that are performable on a node (e.g., node 221) within the machine learning model (e.g., machine learning model 210) during an upcoming (e.g., next) timestep of the executing machine learning model.
- the group includes at least two available nodal commands that are each performable on the node in the upcoming timestep.
- the node manager selects a (e.g., one and only one) nodal command to be performed on the node (e.g., node 221) during the upcoming timestep of the executing machine learning model (e.g., machine learning model 210).
- the node manager performs one or more comparisons among the predicted computational costs that were calculated in operation 610.
- the nodal command selected in operation 620 is selected from the group of nodal commands based on these one or more comparisons between or among the predicted computational costs of the group of nodal commands that are performable on the node during the upcoming timestep of the executing machine learning model.
- the node manager (e.g., node manager 220) performs or otherwise causes performance of the (e.g., only one) selected nodal command on the node (e.g., node 221) during the upcoming timestep of the executing machine learning model. That is, the node manager manages or otherwise controls the node by causing the nodal command that was selected in operation 620 to be performed on the node, and this selected nodal command is performed on the node during the upcoming (e.g., next) timestep of the executing machine learning model (e.g., machine learning model 210).
- the node manager e.g., node manager 220 performs or otherwise causes performance of the (e.g., only one) selected nodal command on the node (e.g., node 221) during the upcoming timestep of the executing machine learning model.
- the method 600 may include one or more of operations 711, 712, 713, 714, 715, 716, 731, 732, 733, 734, 735, and 736.
- One or more of operations 711-716 may be performed as part (e.g., a precursor task, a subroutine, or a portion) of operation 610, in which the node manager (e.g., node manager 220) calculates the predicted computational cost for each one of the nodal commands in the group of nodal commands.
- the node manager calculates a predicted computational cost of replicating the node (e.g., node 221) within the executing machine learning model (e.g., machine learning model 210). For example, the node manager may determine the computational budget that would be consumed if the node manager were to make a copy of the node (e.g., node 21) and add the copy to the machine learning model while the machine learning model is executing.
- the node manager calculates a predicted computational cost of deleting the node (e.g., node 221) from the executing machine learning model (e.g., machine learning model 210). For example, the node manager may determine the computational budget that would be consumed if the node manager were to remove the node from the machine learning model (e.g., by disconnecting the node from all communications with any other nodes in the machine learning model, or by freeing or clearing the node’s occupied memory locations).
- the node manager calculates a predicted computational cost of suspending operation of the node (e.g., node 221) for the upcoming timestep of the executing machine learning model (e.g., machine learning model 210). For example, the node manager may determine the computational budget that would be consumed if the node manager were to cause (e.g., trigger, force, or command) the node enter a sleep mode, produce no output, or both, for the duration of the next timestep.
- the node manager may determine the computational budget that would be consumed if the node manager were to cause (e.g., trigger, force, or command) the node enter a sleep mode, produce no output, or both, for the duration of the next timestep.
- the node manager calculates a predicted computational cost of initiating provision of data to the node (e.g., node 221) from a further node (e.g., node 222 or node 232) within the executing machine learning model (e.g., machine learning model 210).
- the node manager may determine the computational budget that would be consumed if the node manager were to cause (e.g., trigger, force, or command) a new flow of data to the node from another node in the machine learning model (e.g., within the same group of nodes or from a different group of nodes).
- the node manager calculates a predicted computational cost of terminating provision of data to the node (e.g., node 221) from a further node (e.g., node 222 or node 232) within the executing machine learning model (e.g., machine learning model 210).
- the node manager may determine the computational budget that would be consumed if the node manager were to cause (e.g., trigger, force, or command) a suspension or cancelation of a preexisting flow of data to the node from another node in the machine learning model (e.g., within the same group of nodes or from a different group of nodes).
- cause e.g., trigger, force, or command
- a suspension or cancelation of a preexisting flow of data to the node from another node in the machine learning model e.g., within the same group of nodes or from a different group of nodes.
- the node manager calculates a predicted computational cost of operating the node (e.g., node 221) normally for the upcoming (e.g., next) timestep of the executing machine learning model (e.g., machine learning model 210). For example, the node manager may determine the computational budget that would be consumed if the node manager were to cause (e.g., trigger, force, or command) the node to process its currently configured one or more inputs and produce its currently configured one or more outputs with no change in its currently configured behavior.
- a predicted computational cost of operating the node e.g., node 221
- the node manager may determine the computational budget that would be consumed if the node manager were to cause (e.g., trigger, force, or command) the node to process its currently configured one or more inputs and produce its currently configured one or more outputs with no change in its currently configured behavior.
- One or more of operations 731-736 may be performed as part (e.g., a precursor task, a subroutine, or a portion) of operation 630, in which the node manager (e.g., node manager 220) causes performance of the nodal command that it selected in operation 620.
- the node manager e.g., node manager 220
- the node manager (e.g., node manager 220) replicates the node (e.g., node 221) within the executing machine learning model (e.g., machine learning model 210).
- the node manager may make a copy of the node (e.g., node 21) and add the copy to the machine learning model while the machine learning model is executing.
- the node manager deletes the node (e.g., node 221) from the executing machine learning model (e.g., machine learning model 210).
- the node manager may remove the node from the machine learning model (e.g., by disconnecting the node from all communications with any other nodes in the machine learning model, or by freeing or clearing the node’s occupied memory locations).
- the node manager suspends operation of the node (e.g., node 221) for the upcoming timestep of the executing machine learning model (e.g., machine learning model 210).
- the node manager may cause (e.g., trigger, force, or command) the node enter a sleep mode, produce no output, or both, for the duration of the next timestep.
- the node manager (e.g., node manager 220) initiates provision of data to the node (e.g., node 221) from a further node (e.g., node 222 or node 232) within the executing machine learning model (e.g., machine learning model 210).
- the node manager may cause (e.g., trigger, force, or command) a new flow of data to the node from another node in the machine learning model (e.g., within the same group of nodes or from a different group of nodes).
- the node manager terminates provision of data to the node (e.g., node 221) from a further node (e.g., node 222 or node 232) within the executing machine learning model (e.g., machine learning model 210).
- the node manager may cause (e.g., trigger, force, or command) a suspension or cancelation of a preexisting flow of data to the node from another node in the machine learning model (e.g., within the same group of nodes or from a different group of nodes).
- the node manager (e.g., node manager 220) operate the node (e.g., node 221) normally for the upcoming (e.g., next) timestep of the executing machine learning model (e.g., machine learning model 210).
- the node manager may cause (e.g., trigger, force, or command) the node to process its currently configured one or more inputs and produce its currently configured one or more outputs with no change in its currently configured behavior.
- the method 600 may include one or more of operations 821, 822, 823, 824, and 825.
- One or more of operations 821-825 may be performed as part (e.g., a precursor task, a subroutine, or a portion) of operation 620, in which the node manager (e.g., node manager 220) selects a nodal command to be performed on the node (e.g., node 221) during the upcoming timestep of the executing machine learning model (e.g., machine learning model 210).
- the node manager e.g., node manager 220
- the node manager selects the nodal command with a lowest predicted computational cost among the predicted computational costs of the group of nodal commands for the upcoming timestep of the executing machine learning model (e.g., machine learning model 210).
- the node manager selects the nodal command with a lowest current computational cost among current computational costs of the group of nodal commands for a current timestep of the executing machine learning model (e.g., machine learning model 210).
- the node manager selects the nodal command based on a computational budget that is allocated to only the node itself for each timestep of the executing machine learning model (e.g., for the upcoming timestep of the executing machine learning model 210).
- the node manager selects the nodal command based on a computational budget that is allocated to the whole machine learning model (e.g., the machine learning model 210 in its entirety) for each timestep of the executing machine learning model (e.g., for the upcoming timestep of the executing machine learning model 210).
- the node manager selects the nodal command based on a computational budget that is allocated to only a portion of the machine learning model (e.g., to only the group 212 of nodes), of which portion the node is a member, for each timestep of the executing machine learning model (e.g., for the upcoming timestep of the executing machine learning model 210).
- one or more of the methodologies described herein may facilitate nodal self-determination based on computational cost, node management based on computational cost, or both. Moreover, one or more of the methodologies described herein may facilitate managing a machine learning model, including training the machine learning model, re-training the machine learning model, evolving the machine learning model, growing the machine learning model, pruning the machine learning model, operating the machine learning model, or any suitable combination thereof. Hence, one or more of the methodologies described herein may facilitate optimizing the size of the machine learning model, as well as optimizing its computational costs, compared to capabilities of pre-existing systems and methods.
- one or more of the methodologies described herein may obviate a need for certain efforts or resources that otherwise would be involved in nodal self-determination based on computational cost, node management based on computational cost, or both. Efforts expended by a user in obtaining any one or more of the beneficial effect discussed herein may be reduced by use of (e.g., reliance upon) a special -purpose machine that implements one or more of the methodologies described herein. Computing resources used by one or more systems or machines (e.g., within the network environment 100) may similarly be reduced (e.g., compared to systems or machines that lack the structures discussed herein or are otherwise unable to perform the functions discussed herein). Examples of such computing resources include processor cycles, network traffic, computational capacity, main memory usage, graphics rendering capacity, graphics memory usage, data storage capacity, power consumption, and cooling capacity.
- FIG. 9 is a block diagram illustrating components of a machine 900, according to some example embodiments, able to read instructions 924 from a machine-readable medium 922 (e.g., a non-transitory machine-readable medium, a machine-readable storage medium, a computer-readable storage medium, or any suitable combination thereof) and perform any one or more of the methodologies discussed herein, in whole or in part.
- a machine-readable medium 922 e.g., a non-transitory machine-readable medium, a machine-readable storage medium, a computer-readable storage medium, or any suitable combination thereof
- FIG. 9 e.g., a non-transitory machine-readable medium, a machine-readable storage medium, a computer-readable storage medium, or any suitable combination thereof
- FIG. 9 shows the machine 900 in the example form of a computer system (e.g., a computer) within which the instructions 924 (e.g., software, a program, an application, an applet, an app, or other executable code) for causing the machine 900 to perform any one or more of the methodologies discussed herein may be executed, in whole or in part.
- the instructions 924 e.g., software, a program, an application, an applet, an app, or other executable code
- the machine 900 operates as a standalone device or may be communicatively coupled (e.g., networked) to other machines.
- the machine 900 may operate in the capacity of a server machine or a client machine in a server-client network environment, or as a peer machine in a distributed (e g., peer-to-peer) network environment.
- the machine 900 may be a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a cellular telephone, a smart phone, a set- top box (STB), a personal digital assistant (PDA), a web appliance, a network router, a network switch, a network bridge, or any machine capable of executing the instructions 924, sequentially or otherwise, that specify actions to be taken by that machine.
- PC personal computer
- PDA personal digital assistant
- STB set- top box
- web appliance a network router, a network switch, a network bridge, or any machine capable of executing the instructions 924, sequentially or otherwise, that specify actions to be taken by that machine.
- STB set- top box
- PDA personal digital assistant
- a web appliance a network router, a network switch, a network bridge, or any machine capable of executing the instructions 924, sequentially or otherwise, that specify actions to be taken by that machine.
- machine shall also be taken to include any
- the machine 900 includes a processor 902 (e.g., one or more central processing units (CPUs), one or more graphics processing units (GPUs), one or more digital signal processors (DSPs), one or more application specific integrated circuits (ASICs), one or more radio-frequency integrated circuits (RFICs), one or more tensor processing units (TPUs), one or more neural processing units (NPUs), one or more vision processing units (VPUs), one or more machine-learning accelerators, one or more artificial-intelligence accelerators, one or more neuromorphic processors, one or more quantum processors, or any suitable combination thereof), a main memory 904, and a static memory 906, which are configured to communicate with each other via a bus 908.
- a processor 902 e.g., one or more central processing units (CPUs), one or more graphics processing units (GPUs), one or more digital signal processors (DSPs), one or more application specific integrated circuits (ASICs), one or more radio-frequency integrated circuits (RFICs),
- the processor 902 contains solid-state digital microcircuits (e.g., electronic, optical, biological, or any suitable combination thereof) that are configurable, temporarily or permanently, by some or all of the instructions 924 such that the processor 902 is configurable to perform any one or more of the methodologies described herein, in whole or in part.
- solid-state digital microcircuits e.g., electronic, optical, biological, or any suitable combination thereof
- a set of one or more microcircuits of the processor 902 may be configurable to execute one or more modules (e.g., software modules) described herein.
- the processor 902 is a multicore CPU (e.g., a dual -core CPU, a quad-core CPU, an 8-core CPU, or a 128-core CPU) within which each of multiple cores behaves as a separate processor that is able to perform any one or more of the methodologies discussed herein, in whole or in part.
- Parallel processing on one or more multicore processors may be implemented via one or more suitable architectures, such as superscalar, very long instruction word (VLIW), vector processing, or single-instruction/multiple-data (SIMD), which allow each core to run separate instruction streams concurrently.
- a processor may be emulated in software, running on a physical processor, as a virtual processor or virtual circuit.
- the virtual processor may behave like an independent processor but is implemented in software rather than hardware.
- beneficial effects described herein may be provided by the machine 900 with at least the processor 902, these same beneficial effects may be provided by a different kind of machine that contains no processors (e.g., a purely mechanical system, a purely hydraulic system, or a hybrid mechanical-hydraulic system), if such a processor-less machine is configured to perform one or more of the methodologies described herein.
- the machine 900 may further include a graphics display 910 (e.g., a plasma display panel (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, a cathode ray tube (CRT), or any other display capable of displaying graphics or video).
- a graphics display 910 e.g., a plasma display panel (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, a cathode ray tube (CRT), or any other display capable of displaying graphics or video).
- PDP plasma display panel
- LED light emitting diode
- LCD liquid crystal display
- CRT cathode ray tube
- the machine 900 may also include an alphanumeric input device 912 (e.g., a keyboard or keypad), a pointer input device 914 (e.g., a mouse, a touchpad, a touchscreen, a trackball, a joystick, a stylus, a motion sensor, an eye tracking device, a data glove, or other pointing instrument), a data storage 916, an audio generation device 918 (e.g., a sound card, an amplifier, a speaker, a headphone jack, or any suitable combination thereof), and a network interface device 920.
- an alphanumeric input device 912 e.g., a keyboard or keypad
- a pointer input device 914 e.g., a mouse, a touchpad, a touchscreen, a trackball, a joystick, a stylus, a motion sensor, an eye tracking device, a data glove, or other pointing instrument
- a data storage 916 e.g., an audio generation device 918 (e
- the data storage 916 (e.g., a data storage device) includes the machine- readable medium 922 (e.g., a tangible and non-transitory machine-readable storage medium) on which are stored the instructions 924 embodying any one or more of the methodologies or functions described herein.
- the instructions 924 may also reside, completely or at least partially, within the main memory 904, within the static memory 906, within the processor 902 (e.g., within the processor’s cache memory), or any suitable combination thereof, before or during execution thereof by the machine 900. Accordingly, the main memory 904, the static memory 906, and the processor 902 may be considered machine-readable media (e.g., tangible and non-transitory machine-readable media).
- the instructions 924 may be transmitted or received over the network 190 via the network interface device 920.
- the network interface device 920 may communicate the instructions 924 using any one or more transfer protocols (e g., hypertext transfer protocol (HTTP)).
- HTTP hypertext transfer protocol
- the machine 900 may be a portable computing device (e.g., a smart phone, a tablet computer, or a wearable device) and may have one or more additional input components 930 (e.g., sensors or gauges).
- a portable computing device e.g., a smart phone, a tablet computer, or a wearable device
- additional input components 930 e.g., sensors or gauges
- Examples of such input components 930 include an image input component (e.g., one or more cameras), an audio input component (e.g., one or more microphones), a direction input component (e.g., a compass), a location input component (e.g., a global positioning system (GPS) receiver), an orientation component (e.g., a gyroscope), a motion detection component (e.g., one or more accelerometers), an altitude detection component (e.g., an altimeter), a temperature input component (e.g., a thermometer), and a gas detection component (e.g., a gas sensor).
- an image input component e.g., one or more cameras
- an audio input component e.g., one or more microphones
- a direction input component e.g., a compass
- a location input component e.g., a global positioning system (GPS) receiver
- GPS global positioning system
- an orientation component e.g.,
- Input data gathered by any one or more of these input components 930 may be accessible and available for use by any of the modules described herein (e.g., with suitable privacy notifications and protections, such as opt-in consent or opt-out consent, implemented in accordance with user preference, applicable regulations, or any suitable combination thereof).
- the term “memory” refers to a machine-readable medium able to store data temporarily or permanently and may be taken to include, but not be limited to, random-access memory (RAM), read-only memory (ROM), buffer memory, flash memory, and cache memory. While the machine-readable medium 922 is shown in an example embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) able to store instructions.
- machine-readable medium shall also be taken to include any medium, or combination of multiple media, that is capable of carrying (e.g., storing or communicating) the instructions 924 for execution by the machine 900, such that the instructions 924, when executed by one or more processors of the machine 900 (e.g., processor 902), cause the machine 900 to perform any one or more of the methodologies described herein, in whole or in part.
- a “machine-readable medium” refers to a single storage apparatus or device, as well as cloud-based storage systems or storage networks that include multiple storage apparatus or devices.
- machine-readable medium shall accordingly be taken to include, but not be limited to, one or more tangible and non- transitory data repositories (e.g., data volumes) in the example form of a solid-state memory chip, an optical disc, a magnetic disc, or any suitable combination thereof.
- tangible and non- transitory data repositories e.g., data volumes
- a “non-transitory” machine-readable medium specifically excludes propagating signals per se.
- the instructions 924 for execution by the machine 900 can be communicated via a carrier medium (e.g., a machine-readable carrier medium).
- a carrier medium include a non-transient carrier medium (e.g., a non-transitory machine-readable storage medium, such as a solid-state memory that is physically movable from one place to another place) and a transient carrier medium (e.g., a carrier wave or other propagating signal that communicates the instructions 924).
- Modules may constitute software modules (e.g., code stored or otherwise embodied in a machine-readable medium or in a transmission medium), hardware modules, or any suitable combination thereof.
- a “hardware module” is a tangible (e.g., non-transitory) physical component (e.g., a set of one or more processors) capable of performing certain operations and may be configured or arranged in a certain physical manner.
- one or more computer systems or one or more hardware modules thereof may be configured by software (e.g., an application or portion thereof) as a hardware module that operates to perform operations described herein for that module.
- a hardware module may be implemented mechanically, electronically, hydraulically, or any suitable combination thereof.
- a hardware module may include dedicated circuitry or logic that is permanently configured to perform certain operations.
- a hardware module may be or include a special-purpose processor, such as a field programmable gate array (FPGA) or an ASIC.
- FPGA field programmable gate array
- a hardware module may also include programmable logic or circuitry that is temporarily configured by software to perform certain operations.
- a hardware module may include software encompassed within a CPU or other programmable processor. It will be appreciated that the decision to implement a hardware module mechanically, hydraulically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
- the phrase “hardware module” should be understood to encompass a tangible entity that may be physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or to perform certain operations described herein.
- the phrase “hardware-implemented module” refers to a hardware module.
- hardware modules are temporarily configured (e.g., programmed)
- each of the hardware modules need not be configured or instantiated at any one instance in time.
- a hardware module includes a CPU configured by software to become a specialpurpose processor
- the CPU may be configured as respectively different specialpurpose processors (e.g., each included in a different hardware module) at different times.
- Software e.g., a software module
- Hardware modules can provide information to, and receive information from, other hardware modules. Accordingly, the described hardware modules may be regarded as being communicatively coupled. Where multiple hardware modules exist contemporaneously, communications may be achieved through signal transmission (e.g., over circuits and buses) between or among two or more of the hardware modules. In embodiments in which multiple hardware modules are configured or instantiated at different times, communications between such hardware modules may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware modules have access. For example, one hardware module may perform an operation and store the output of that operation in a memory (e.g., a memory device) to which it is communicatively coupled. A further hardware module may then, at a later time, access the memory to retrieve and process the stored output. Hardware modules may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information from a computing resource).
- a resource e.g., a collection of information from a computing resource
- processors may be temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions described herein.
- processor-implemented module refers to a hardware module in which the hardware includes one or more processors.
- the operations described herein may be at least partially processor-implemented, hardware-implemented, or both, since a processor is an example of hardware, and at least some operations within any one or more of the methods discussed herein may be performed by one or more processor-implemented modules, hardware-implemented modules, or any suitable combination thereof.
- processors may perform operations in a “cloud computing” environment or as a service (e.g., within a “software as a service” (SaaS) implementation). For example, at least some operations within any one or more of the methods discussed herein may be performed by a group of computers (e.g., as examples of machines that include processors), with these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., an application program interface (API)). The performance of certain operations may be distributed among the one or more processors, whether residing only within a single machine or deployed across a number of machines.
- SaaS software as a service
- the one or more processors or hardware modules may be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other example embodiments, the one or more processors or hardware modules may be distributed across a number of geographic locations.
- a first example provides a method comprising: calculating, by a node within a machine learning model that is executing on one or more processors of a machine, predicted computational costs for all nodal actions in a predetermined plurality of nodal actions that are performable by the node within the machine learning model during an upcoming timestep of the executing machine learning model; selecting, by the node within the machine learning model that is executing on the one or more processors of the machine, a nodal action to be performed by the node during the upcoming timestep of the executing machine learning model, the nodal action being selected from the predetermined plurality of nodal actions based on one or more comparisons among the predicted computational costs of the predetermined plurality of nodal actions during the upcoming timestep of the executing machine learning model; and performing, by the node within the machine learning model that is executing on the one or more processors of the machine, the nodal action selected based on the one or more comparisons of the predicted computational costs among the predetermined plurality of no
- a second example provides a method according to the first example, wherein: the predetermined plurality of nodal actions includes at least one of: the node replicating itself within the executing machine learning model, the node deleting itself from the executing machine learning model, the node suspending itself for the upcoming timestep of the executing machine learning model, the node initiating reception of data from a further node within the executing machine learning model, or the node terminating reception of data from a further node within the executing machine learning model.
- a third example provides a method according to the first example or the second example, wherein: the calculating of the predicted computational costs includes at least one of: calculating first predicted computational costs of the node replicating itself within the machine learning model, calculating second predicted computational costs of the node deleting itself from the machine learning model, calculating third predicted computational costs of the node suspending itself for at least one timestep of the executing machine learning model, calculating fourth predicted computational costs of the node initiating reception of data from a further node within the executing machine learning model, calculating fifth predicted computational costs of the node terminating reception of data from a further node within the executing machine learning model, or calculating sixth predicted computational costs of the node operating normally for the upcoming timestep of the executing machine learning model.
- a fourth example provides a method according to any of the first through third examples, wherein: the selecting of the nodal action to be performed by the node selects the nodal action with a lowest predicted computational cost among the predicted computational costs of the predetermined plurality of nodal actions for the upcoming timestep of the executing machine learning model.
- a fifth example provides a method according to any of the first through fourth examples, wherein: the selecting of the nodal action to be performed by the node selects the nodal action with a lowest current computational cost among current computational costs of the predetermined plurality of nodal actions for a current timestep of the executing machine learning model.
- a sixth example provides a method according to any of the first through fifth examples, wherein: the selecting of the nodal action to be performed by the node is based on a computational budget allocated to only the node for the upcoming timestep of the executing machine learning model.
- a seventh example provides a method according to any of the first through fifth examples, wherein: the selecting of the nodal action to be performed by the node is based on a computational budget allocated to the machine learning model (e g., in its entirety) for the upcoming timestep of the executing machine learning model.
- An eighth example provides a method according to any of the first through fifth examples, wherein: the node to perform the nodal action is included in a first portion of the machine learning model and absent from a second portion of the machine learning model; and the selecting of the nodal action to be performed by the node is based on a computational budget allocated to only the first portion (e.g., and not to the second portion) of the machine learning model for the upcoming timestep of the executing machine learning model.
- a ninth example provides a machine-readable medium (e.g., a non- transitory machine-readable medium, such as a non-transitory machine-readable storage medium) comprising instructions that, when executed by one or more processors of a machine, cause the machine to perform first operations comprising: executing a machine learning model that includes multiple nodes, a node among the multiple nodes being configured to perform second operations comprising: calculating, by the node within the machine learning model that is being executed by the machine, predicted computational costs for all nodal actions in a predetermined plurality of nodal actions that are performable by the node within the machine learning model during an upcoming timestep of the executing machine learning model; selecting, by the node within the machine learning model that is being executed by the machine, a nodal action to be performed by the node during the upcoming timestep of the executing machine learning model, the nodal action being selected from the predetermined plurality of nodal actions based on one or more comparisons among the predicted computational costs of the predetermined
- a tenth example provides a machine-readable medium according to the ninth example, wherein: the predetermined plurality of nodal actions includes at least one of: the node replicating itself within the executing machine learning model, the node deleting itself from the executing machine learning model, the node suspending itself for the upcoming timestep of the executing machine learning model, the node initiating reception of data from a further node within the executing machine learning model, or the node terminating reception of data from a further node within the executing machine learning model.
- An eleventh example provides a machine-readable medium according to the ninth example or the tenth example, wherein: the calculating of the predicted computational costs includes at least one of: calculating first predicted computational costs of the node replicating itself within the machine learning model, calculating second predicted computational costs of the node deleting itself from the machine learning model, calculating third predicted computational costs of the node suspending itself for at least one timestep of the executing machine learning model, calculating fourth predicted computational costs of the node initiating reception of data from a further node within the executing machine learning model, calculating fifth predicted computational costs of the node terminating reception of data from a further node within the executing machine learning model, or calculating sixth predicted computational costs of the node operating normally for the upcoming timestep of the executing machine learning model.
- a twelfth example provides a machine-readable medium according to any of the ninth through eleventh examples, wherein: the selecting of the nodal action to be performed by the node selects the nodal action with a lowest predicted computational cost among the predicted computational costs of the predetermined plurality of nodal actions for the upcoming timestep of the executing machine learning model.
- a thirteenth example provides a machine-readable medium according to any of the ninth through twelfth examples, wherein: the selecting of the nodal action to be performed by the node selects the nodal action with a lowest current computational cost among current computational costs of the predetermined plurality of nodal actions for a current timestep of the executing machine learning model.
- a fourteenth example provides a machine-readable medium according to any of the ninth through thirteenth examples, wherein: the selecting of the nodal action to be performed by the node is based on a computational budget allocated to only the node for the upcoming timestep of the executing machine learning model.
- a fifteenth example provides a machine-readable medium according to any of the ninth through thirteenth examples, wherein: the selecting of the nodal action to be performed by the node is based on a computational budget allocated to the machine learning model (e g., in its entirety) for the upcoming timestep of the executing machine learning model.
- a sixteenth example provides a system (e.g., a computer system that includes one or more computers, devices, or other machines) comprising: one or more processors; and a memory storing instructions that, when executed by at least one processor among the one or more processors, cause the system to perform first operations comprising: executing a machine learning model that includes multiple nodes, a node among the multiple nodes being configured to perform second operations comprising: calculating, by the node within the machine learning model that is being executed by the system, predicted computational costs for all nodal actions in a predetermined plurality of nodal actions that are performable by the node within the machine learning model during an upcoming timestep of the executing machine learning model; selecting, by the node within the machine learning model that is being executed by the system, a nodal action to be performed by the node during the upcoming timestep of the executing machine learning model, the nodal action being selected from the predetermined plurality of nodal actions based on one or more comparisons among the predicted computational costs of
- a seventeenth example provides a system according to the sixteenth example, wherein: the predetermined plurality of nodal actions includes at least one of: the node replicating itself within the executing machine learning model, the node deleting itself from the executing machine learning model, the node suspending itself for the upcoming timestep of the executing machine learning model, the node initiating reception of data from a further node within the executing machine learning model, or the node terminating reception of data from a further node within the executing machine learning model.
- An eighteenth example provides a system according to the sixteenth example or the seventeenth example, wherein: the calculating of the predicted computational costs includes at least one of: calculating first predicted computational costs of the node replicating itself within the machine learning model, calculating second predicted computational costs of the node deleting itself from the machine learning model, calculating third predicted computational costs of the node suspending itself for at least one timestep of the executing machine learning model, calculating fourth predicted computational costs of the node initiating reception of data from a further node within the executing machine learning model, calculating fifth predicted computational costs of the node terminating reception of data from a further node within the executing machine learning model, or calculating sixth predicted computational costs of the node operating normally for the upcoming timestep of the executing machine learning model.
- a nineteenth example provides a system according to any of the sixteenth through eighteenth examples, wherein: the selecting of the nodal action to be performed by the node selects the nodal action with a lowest current computational cost among current computational costs of the predetermined plurality of nodal actions for a current timestep of the executing machine learning model.
- a twentieth example provides a system according to any of the sixteenth through nineteenth examples, wherein: the selecting of the nodal action to be performed by the node is based on a computational budget allocated to only the node for the upcoming timestep of the executing machine learning model.
- a twenty -first example provides a method comprising: calculating, by a node manager within a machine learning model that is executing on one or more processors of a machine, predicted computational costs for all nodal commands in a predetermined plurality of nodal commands that are performable on a node within the machine learning model during an upcoming timestep of the executing machine learning model; selecting, by the node manager within the machine learning model that is executing on the one or more processors of the machine, a nodal command to be performed on the node during the upcoming timestep of the executing machine learning model, the nodal command being selected from the predetermined plurality of nodal commands based on one or more comparisons among the predicted computational costs of the predetermined plurality of nodal commands during the upcoming timestep of the executing machine learning model; and causing, by the node manager within the machine learning model that is executing on the one or more processors of the machine, performance of the selected nodal command on the node during the upcoming timestep of the executing machine
- a twenty-second example provides a method according to the twenty- first example, wherein: the predetermined plurality of nodal commands includes at least one of: replicating the node within the executing machine learning model, deleting the node from the executing machine learning model, suspending operation of the node for the upcoming timestep of the executing machine learning model, initiating provision of data to the node from a further node within the executing machine learning model, or terminating provision of data to the node from a further node within the executing machine learning model.
- a twenty -third example provides a method according to the twenty- first example or the twenty-second example, wherein: the calculating of the predicted computational costs includes at least one of calculating first predicted computational costs of replicating the node within the executing machine learning model, calculating second predicted computational costs of deleting the node from the executing machine learning model, calculating third predicted computational costs of suspending operation of the node for the upcoming timestep of the executing machine learning model, calculating fourth predicted computational costs of initiating provision of data to the node from a further node within the executing machine learning model, calculating fifth predicted computational costs of terminating provision of data to the node from a further node within the executing machine learning model, or calculating sixth predicted computational costs of operating the node normally for the upcoming timestep of the executing machine learning model.
- a twenty -fourth example provides a method according to any of the twenty-first through twenty -third examples, wherein: the selecting of the nodal command to be performed on the node selects the nodal command with a lowest predicted computational cost among the predicted computational costs of the predetermined plurality of nodal commands for the upcoming timestep of the executing machine learning model.
- a twenty -fifth example provides a method according to any of the twenty-first through twenty-fourth examples, wherein: the selecting of the nodal command to be performed on the node selects the nodal command with a lowest current computational cost among current computational costs of the predetermined plurality of nodal commands for a current timestep of the executing machine learning model.
- a twenty-sixth example provides a method according to any of the twenty-first through twenty-fourth examples, wherein: the selecting of the nodal command to be performed on the node is based on a computational budget allocated to only the node for the upcoming timestep of the executing machine learning model.
- a twenty-seventh example provides a method according to any of the twenty-first through twenty-fourth examples, wherein: the selecting of the nodal command to be performed on the node is based on a computational budget allocated to the machine learning model (e.g., in its entirety) for the upcoming timestep of the executing machine learning model.
- a twenty -eighth example provides a method according to any of the twenty-first through twenty-seventh examples, wherein: the node on which to perform the nodal command is included in a first portion of the machine learning model and absent from a second portion of the machine learning mode; and the selecting of the nodal command to be performed on the node is based on a computational budget allocated to only the first portion (e.g., and not to the second portion) of the machine learning model for the upcoming timestep of the executing machine learning model.
- a twenty -ninth example provides a machine-readable medium (e.g., a non-transitory machine-readable medium, such as a non-transitory machine- readable storage medium) comprising instructions that, when executed by one or more processors of a machine, cause the machine to perform first operations comprising: executing a machine learning model that includes a node manager managing multiple nodes within the machine learning model, the node manager being configured to perform second operations comprising: calculating, by the node manager within the machine learning model that is being executed by the machine, predicted computational costs for all nodal commands in a predetermined plurality of nodal commands that are performable on a node within the machine learning model during an upcoming timestep of the executing machine learning model; selecting, by the node manager within the machine learning model that is being executed by the machine, a nodal command to be performed on the node during the upcoming timestep of the executing machine learning model, the nodal command being selected from the predetermined plurality of nodal commands based
- a thirtieth example provides a machine-readable medium according to the twenty-ninth example, wherein: the predetermined plurality of nodal commands includes at least one of: replicating the node within the executing machine learning model, deleting the node from the executing machine learning model, suspending operation of the node for the upcoming timestep of the executing machine learning model, initiating provision of data to the node from a further node within the executing machine learning model, or terminating provision of data to the node from a further node within the executing machine learning model.
- a thirty-first example provides a machine-readable medium according to the twenty-ninth example or the thirtieth example, wherein: the calculating of the predicted computational costs includes at least one of: calculating first predicted computational costs of replicating the node within the executing machine learning model, calculating second predicted computational costs of deleting the node from the executing machine learning model, calculating third predicted computational costs of suspending operation of the node for the upcoming timestep of the executing machine learning model, calculating fourth predicted computational costs of initiating provision of data to the node from a further node within the executing machine learning model, calculating fifth predicted computational costs of terminating provision of data to the node from a further node within the executing machine learning model, or calculating sixth predicted computational costs of operating the node normally for the upcoming timestep of the executing machine learning model.
- a thirty-second example provides a machine-readable medium according to any of the twenty -ninth through thirty-first examples, wherein: the selecting of the nodal command to be performed on the node selects the nodal command with a lowest predicted computational cost among the predicted computational costs of the predetermined plurality of nodal commands for the upcoming timestep of the executing machine learning model.
- a thirty-third example provides a machine-readable medium according to any of the twenty -ninth through thirty-second examples, wherein: the selecting of the nodal command to be performed on the node selects the nodal command with a lowest current computational cost among current computational costs of the predetermined plurality of nodal commands for a current timestep of the executing machine learning model.
- a thirty-fourth example provides a machine-readable medium according to any of the twenty -ninth through thirty-third examples, wherein: the selecting of the nodal command to be performed on the node is based on a computational budget allocated to only the node for the upcoming timestep of the executing machine learning model.
- a thirty-fifth example provides a machine-readable medium according to any of the twenty -ninth through thirty -third examples, wherein: the selecting of the nodal command to be performed on the node is based on a computational budget allocated to the machine learning model (e g., in its entirety) for the upcoming timestep of the executing machine learning model.
- a thirty-sixth example provides a system (e.g., a computer system that includes one or more computers, devices, or other machines) comprising: one or more processors; and a memory storing instructions that, when executed by at least one processor among the one or more processors, cause the system to perform first operations comprising: executing a machine learning model that includes a node manager managing multiple nodes within the machine learning model, the node manager being configured to perform second operations comprising: calculating, by the node manager within the machine learning model that is being executed by the system, predicted computational costs for all nodal commands in a predetermined plurality of nodal commands that are performable on a node within the machine learning model during an upcoming timestep of the executing machine learning model; selecting, by the node manager within the machine learning model that is being executed by the system, a nodal command to be performed on the node during the upcoming timestep of the executing machine learning model, the nodal command being selected from the predetermined plurality of nodal commands based
- a thirty-seventh example provides a system according to the thirtysixth example, wherein: the predetermined plurality of nodal commands includes at least one of: replicating the node within the executing machine learning model, deleting the node from the executing machine learning model, suspending operation of the node for the upcoming timestep of the executing machine learning model, initiating provision of data to the node from a further node within the executing machine learning model, or terminating provision of data to the node from a further node within the executing machine learning model.
- a thirty-eighth example provides a system according to the thirty-sixth example or the thirty-seventh example, wherein: the calculating of the predicted computational costs includes at least one of: calculating first predicted computational costs of replicating the node within the executing machine learning model, calculating second predicted computational costs of deleting the node from the executing machine learning model, calculating third predicted computational costs of suspending operation of the node for the upcoming timestep of the executing machine learning model, calculating fourth predicted computational costs of initiating provision of data to the node from a further node within the executing machine learning model, calculating fifth predicted computational costs of terminating provision of data to the node from a further node within the executing machine learning model, or calculating sixth predicted computational costs of operating the node normally for the upcoming timestep of the executing machine learning model.
- a thirty-ninth example provides a system according to any of the thirty-sixth through thirty-eighth examples, wherein: the selecting of the nodal command to be performed on the node selects the nodal command with a lowest current computational cost among current computational costs of the predetermined plurality of nodal commands for a current timestep of the executing machine learning model.
- a fortieth example provides a system according to any of the thirtysixth through thirty-ninth examples, wherein: the selecting of the nodal command to be performed on the node is based on a computational budget allocated to only the node for the upcoming timestep of the executing machine learning model.
- a forty -first example provides a carrier medium carrying machine- readable instructions for controlling a machine to carry out the operations (e.g., method operations) performed in any one of the previously described examples.
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
A node within a machine learning model may self-determine its own nodal actions by calculating predicted computational costs for nodal actions in a group of nodal actions performable by the node. The node selects a nodal action from the group based on one or more comparisons among the predicted computational costs. The node then performs the nodal action that was selected based on the one or more comparisons of the predicted computational costs. A node manager within a machine learning model may manage a node within the machine learning model by calculating predicted computational costs for nodal commands in a group of nodal commands performable on the node. The node manager selects a nodal command to be performed on the node from the group based on one or more comparisons among the predicted computational costs. The node manager then causes performance of the selected nodal command on the node.
Description
NODE MANAGEMENT BASED ON COMPUTATIONAL COST
TECHNICAL FIELD
[0001] The subject matter disclosed herein generally relates to the technical field of special-purpose machines that facilitate artificial intelligence (Al), including software-configured computerized variants of such special-purpose machines and improvements to such variants, and to the technologies by which such specialpurpose machines become improved compared to other special-purpose machines that facilitate Al. Specifically, the present disclosure addresses systems and methods to facilitate nodal self-determination, node management, or both, based on computational cost.
BACKGROUND
[0002] Within the field of Al, machine learning models implement one or more algorithms or other techniques for performance on computer hardware and are configured to learn from experiences processing data and make decisions (e g., predictions, inferences, or categorizations) without explicit programming. Machine learning models may utilize one or more statistical methods, mathematical optimization, pattern recognition techniques, or any suitable combination thereof, to identify patterns or other relationships within data. Machine learning models are now widely used across various domains, such as image recognition, speech recognition, natural language processing, classifiers, recommendation generators, and anomaly detectors. In traditional machine learning models, the model is trained using historical information that is labeled with one or more features, and after training, the trained machine learning model is provided with new unlabeled input data to generate inferences about the new data.
BRIEF DESCRIPTION OF THE DRAWINGS
[0003] Some embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings.
[0004] FIG. 1 is a network diagram illustrating a network environment suitable for nodal self-determination, node management, or both, based on computational cost, according to some example embodiments.
[0005] FIG. 2 is a block diagram illustrating components of an Al machine suitable for nodal self-determination, node management, or both, based on computational cost, according to some example embodiments.
[0006] FIGS. 3-5 are flowcharts illustrating operations of a node, within a machine learning model, in that node performing a method of nodal self- determination based on computational cost, according to some example embodiments.
[0007] FIGS. 6-8 are flowcharts illustrating operations of a node manager, within a machine learning model, in that node manager performing a method of node management based on computational cost, according to some example embodiments.
[0008] FIG. 9 is a block diagram illustrating components of a machine, according to some example embodiments, able to read instructions from a machine- readable medium and perform any one or more of the methodologies discussed herein.
DETAILED DESCRIPTION
[0009] Example methods (e.g., algorithms) facilitate nodal self-determination, node management, or both, based on computational cost, and example systems (e.g., special-purpose machines configured by special-purpose software) are configured to facilitate nodal self-determination, node management, or both, based on computational cost. Examples merely typify possible variations. Unless explicitly stated otherwise, structures (e.g., structural components, such as modules) are
optional and may be combined or subdivided, and operations (e.g., in a procedure, algorithm, or other function) may vary in sequence or be combined or subdivided. In the following description, for purposes of explanation, numerous specific details are set forth to provide a thorough understanding of various example embodiments. It will be evident to one skilled in the art, however, that the present subject matter may be practiced without these specific details.
[0010] Certain types of Al models (e.g., a machine learning model, which may form all or part of an Al engine) include multiple nodes (e.g., a plurality of nodes, which may be arranged, grouped, or otherwise structured into one or more groups, such as layers). In such Al models, one or more of such nodes may be configured (e.g., as its own separate set of one or more threads or other running processes) to each produce outputs (e.g., future outputs) based on (e.g., from) inputs (e.g., future inputs) provided to that node. The production of outputs from inputs by a node may be performed using or otherwise based on a generative model of that node. The generative model of a node may be, include, or otherwise be defined by a set of numerical weights, biases, or both (e.g., stored as a tensor), and the generative model of the node may accordingly determine how the node processes inputs received by the node into outputs produced by that same node.
[0011] Regarding types of inputs to a node, for example, a node may be configured to receive directed input (e.g., specifically targeted for processing by the node as part of performing a function of the node, such as an outputting function, which function may be shared in common by a group of nodes that include the node), and the directed input may be received by the node from one or more sources (e.g., one or more nodes inside or outside the group of nodes). Additionally, that same node may be configured to receive incidental or observational input (e.g., contextual information, environmental information, or other information not specifically targeted for processing as part of performing the function of the node) from one or more other nodes in its group (e.g., peer nodes, child nodes, or any suitable combination thereof) regarding the outputs of those one or more other nodes in the group.
[0012] Within a machine-learning model that includes multiple nodes (e.g., multiple layers, clusters, or other groups of nodes), a node may be configured (e.g., by suitable internal software) to self-determine its own upcoming (e.g., next) action (e.g., nodal action), for example, in an upcoming (e.g., next) timestep of the machine-learning model. Alternatively, a machine-learning model with multiple nodes may include a node manager (e.g., a node management thread or other process) that is configured (e.g., by suitable internal software) to control one or more nodes by selecting, for a given node, an upcoming command (e.g., nodal command) that will be performed on that node by the node manager, for example, in an upcoming (e.g., next) timestep of the machine-learning model. In hybrid implementations, a node may be configured to act as its own (e.g., internal) node manager and thus self-determine its own upcoming action, and also be configured to act as a node manager (e.g., external) for another node and manage that other node by selecting an upcoming command for that other node, in accordance with the present subject matter.
[0013] For a node within a machine learning model (e.g., that is executing live on one or more processors of a machine) to self-determine its own nodal actions, the node may be configured (e.g., by suitable internal software) to perform the following operations. The node first calculates predicted computational costs for all nodal actions in a predetermined plurality of nodal actions that are performable by the node (e.g., that same exact node) within the machine learning model during an upcoming timestep of the executing machine learning model. The node then selects a nodal action to be performed by the node (e.g., by that same exact node) during the upcoming timestep of the executing machine learning model, where the nodal action is selected from the predetermined plurality of nodal actions based on one or more comparisons among the predicted computational costs of the predetermined plurality of nodal actions during the upcoming timestep of the executing machine learning model. The node then performs the nodal action that was selected based on the one or more comparisons of the predicted computational costs among the predetermined plurality of nodal actions during the upcoming timestep of the executing machine learning model.
[0014] For a node manager within a machine learning model (e.g., that is executing live on one or more processors of a machine) to manage a node within the machine learning model (e.g., within that same exact machine learning model), the node manager may be configured (e.g., by suitable internal software) to perform the following operations. The node manager first calculates predicted computational costs for all nodal commands in a predetermined plurality of nodal commands that are performable on a node within the machine learning model during an upcoming timestep of the executing machine learning model. The node manager then selects a nodal command to be performed on the node during the upcoming timestep of the executing machine learning model, where the nodal command is selected from the predetermined plurality of nodal commands based on one or more comparisons among the predicted computational costs of the predetermined plurality of nodal commands during the upcoming timestep of the executing machine learning model. The node manager then causes performance of the selected nodal command on the node (e.g., by the node manager or otherwise commanded by the node manager) during the upcoming timestep of the executing machine learning model.
[0015] FIG. l is a network diagram illustrating a network environment suitable for nodal self-determination, node management, or both, based on computational cost, according to some example embodiments. The network environment 100 includes an Al machine 110, a database 115, and devices 130 and 150, all communicatively coupled to each other via a network 190. The Al machine 110, with or without the database 115, may form all or part of a cloud 118 (e.g., a geographically distributed set of multiple machines configured to function as a single server), which may form all or part of a network-based system 105 (e.g., a cloud-based server system configured to provide one or more network-based services to the devices 130 and 150). The Al machine 110, the database 115, and the devices 130 and 150 may each be implemented in a special-purpose (e.g., specialized) computer system, in whole or in part, as described below with respect to FIG. 9.
[0016] Also shown in FIG. 1 are users 132 and 152. One or both of the users 132 and 152 may be a human user (e.g., a human being), a machine user (e.g., a
computer configured by a software program to interact with the device 130 or 150), or any suitable combination thereof (e.g., a human assisted by a machine or a machine supervised by a human). The user 132 is associated with the device 130 and may be a user of the device 130. For example, the device 130 may be a desktop computer, a vehicle computer, a home media system (e.g., a home theater system or other home entertainment system), a tablet computer, a navigational device, a portable media device, a smart phone, or a wearable device (e.g., a smart watch, smart glasses, smart clothing, or smart jewelry) belonging to the user 132.
Likewise, the user 152 is associated with the device 150 and may be a user of the device 150. As an example, the device 150 may be a desktop computer, a vehicle computer, a home media system (e.g., a home theater system or other home entertainment system), a tablet computer, a navigational device, a portable media device, a smart phone, or a wearable device (e.g., a smart watch, smart glasses, smart clothing, or smart jewelry) belonging to the user 152.
[0017] Any of the systems or machines (e.g., databases and devices) shown in FIG. 1 may be, include, or otherwise be implemented in a special-purpose (e.g., specialized or otherwise non-conventional and non-generic) computer that has been modified to perform one or more of the functions described herein for that system or machine (e.g., configured or programmed by special -purpose software, such as one or more software modules of a special-purpose application, operating system, firmware, middleware, or other software program). For example, a special-purpose computer system able to implement any one or more of the methodologies described herein is discussed below with respect to FIG. 9, and such a special-purpose computer may accordingly be a means for performing any one or more of the methodologies discussed herein. Within the technical field of such special-purpose computers, a special-purpose computer that has been specially modified (e.g., configured by special-purpose software) by the structures discussed herein to perform the functions discussed herein is technically improved compared to other special-purpose computers that lack the structures discussed herein or are otherwise unable to perform the functions discussed herein. Accordingly, a special-purpose
machine configured according to the systems and methods discussed herein provides an improvement to the technology of similar special-purpose machines.
[0018] As used herein, a “database” is a data storage resource and may store data structured in any of various ways, for example, as a text file, a table, a spreadsheet, a relational database (e.g., an object-relational database), a triple store, a hierarchical data store, a document database, a graph database, key -value pairs, or any suitable combination thereof Moreover, any two or more of the systems or machines illustrated in FIG. 1 may be combined into a single system or machine, and the functions described herein for any single system or machine may be subdivided among multiple systems or machines.
[0019] The network 190 may be any network that enables communication between or among systems, machines, databases, and devices (e.g., between the Al machine 110 and the device 130). Accordingly, the network 190 may be a wired network, a wireless network (e.g., a mobile or cellular network), or any suitable combination thereof. The network 190 may include one or more portions that constitute a private network, a public network (e.g., the Internet), or any suitable combination thereof. Accordingly, the network 190 may include one or more portions that incorporate a local area network (LAN), a wide area network (WAN), the Internet, a mobile telephone network (e.g., a cellular network), a wired telephone network (e.g., a plain old telephone service (POTS) network), a wireless data network (e.g., a WiFi network or WiMax network), or any suitable combination thereof. Any one or more portions of the network 190 may communicate information via a transmission medium. As used herein, “transmission medium” refers to any intangible (e.g., transitory) medium that is capable of communicating (e.g., transmitting) instructions for execution by a machine (e.g., by one or more processors of such a machine), and includes digital or analog communication signals or other intangible media to facilitate communication of such software.
[0020] FIG. 2 is a block diagram illustrating some components of the Al machine 110, as configured for nodal self-determination, node management, or both, based on computational cost, according to some example embodiments. The
Al machine 110 is shown as including a machine learning model 210. The machine learning model 210 includes a group 212 of nodes (e.g., each configured to perform a respectively corresponding task, such as to produce future outputs of that node from future inputs to that node based on a generative model of that node, and also to update its generative model based on past feedback received by that node in response to past outputs of that node produced from past inputs to that node). The group 212 of nodes includes multiple nodes (e.g., a plurality of nodes), such as a node 221 (e.g., a first node) and a node 222 (e.g., a second node), which may be a peer of the node 221 (e.g., the first node), a parent of the node 221 (e.g., the first node), a child of the node 221 (e.g., the first node), or a node of some other relationship with the node 221 (e.g., the first node) within the group 212 of nodes.
[0021] Within the machine learning model 210, there may be multiple groups of nodes (e.g., group 212 of nodes), and each group of nodes may have its own corresponding task (e.g., a task that is shared in common with its internal nodes, but not shared with other groups of nodes or their internal nodes). For example, FIG. 2 shows the machine learning model 210 including another group 213 of nodes (e.g., each configured to perform a respectively corresponding task, such as to produce future outputs of that node from future inputs to that node based on a generative model of that node, and also to update its generative model based on past feedback received by that node in response to past outputs of that node produced from past inputs to that node). The group 213 of nodes includes multiple nodes (e.g., a plurality of nodes), such as nodes 231 and 232, where the node 232 may be a peer of the node 231, a parent of the node 231, a child of the node 231, or a node having some other relationship with the node 231 within the group 213 of nodes.
[0022] As depicted in FIG. 2, the machine learning model 210 may include a node manager 220 (e.g., a node management thread or other process) that is configured (e.g., by suitable internal software) to control one or more nodes. In various example embodiments, the node manager 220 may be part of the machine learning model 210 or separate from the machine learning model 210.
[0023] As shown in FIG. 2, the machine learning model 210, the node manager 220, or both, may form all or part of an app 200 (e.g., a mobile app, a server app, or other computer program) that is stored (e.g., installed) on the Al machine 110 (e.g., responsive to or otherwise as a result of data being received via the network 190, such as from the database 115 or from the device 130). Furthermore, one or more processors 299 (e.g., hardware processors, digital processors, or any suitable combination thereof) may be included (e.g., temporarily or permanently) in the app 200, the machine learning model 210, the node manager 220, or any suitable combination thereof.
[0024] Any one or more of the components (e.g., modules) described herein may be implemented using hardware alone (e.g., one or more of the processors 299) or a combination of hardware and software. For example, any component described herein may physically include an arrangement of one or more of the processors 299 (e.g., a subset of or among the processors 299) configured to perform the operations described herein for that component. As another example, any component described herein may include software, hardware, or both, that configure an arrangement of one or more of the processors 299 to perform the operations described herein for that component. Accordingly, different components described herein may include and configure different arrangements of the processors 299 at different points in time or a single arrangement of the processors 299 at different points in time. Each component (e.g., module) described herein is an example of a means for performing the operations described herein for that component.
Moreover, any two or more components described herein may be combined into a single component, and the functions described herein for a single component may be subdivided among multiple components. Furthermore, according to various example embodiments, components described herein as being implemented within a single system or machine (e.g., a single device) may be distributed across multiple systems or machines (e.g., multiple devices).
[0025] FIGS. 3-5 are flowcharts illustrating operations of a node (e.g., node 221), within the machine learning model 210 while the machine learning model 210 is executing on the Al machine 110, as that node (e.g., node 221) performs a method
300 of nodal self-determination based on computational cost (e.g., of nodal actions performable by that node itself), according to some example embodiments.
Operations in the method 300 may be performed by a node (e.g., node 221) within an executing machine learning model (e.g., machine learning model 210), and using components (e.g., modules) described above with respect to FIG. 2, using one or more processors (e.g., microprocessors or other hardware processors), or using any suitable combination thereof. As shown in FIG. 3, the method 300 includes operations 310, 320, and 330.
[0026] In operation 310, the node (e.g., node 221) calculates predicted computational costs for all nodal actions in a group (e.g., a predetermined plurality) of nodal actions that are performable by the node within the machine learning model (e.g., machine learning model 210) during an upcoming (e.g., next) timestep of the executing machine learning model. In various example embodiments, the group includes at least two available nodal actions that are each performable by the node in the upcoming timestep.
[0027] In operation 320, the node (e.g., node 221) selects a (e.g., one and only one) nodal action to be performed by the node during the upcoming timestep of the executing machine learning model (e.g., machine learning model 210). The node performs one or more comparisons among the predicted computational costs that were calculated in operation 310. Accordingly, the nodal action selected in operation 320 is selected from the group of nodal actions based on these one or more comparisons between or among the predicted computational costs of the group of nodal actions that are performable by the node during the upcoming timestep of the executing machine learning model.
[0028] In operation 330, the node (e.g., node 221) performs the (e.g., only one) nodal action that was selected in operation 320. That is, the node performs the nodal action that was selected based on the one or more comparisons of the predicted computational costs among the group of nodal actions, and this selected nodal action is performed by the node during the upcoming (e.g., next) timestep of the executing machine learning model (e.g., machine learning model 210).
[0029] As shown in FIG. 4, in addition to any one or more of the operations previously described for the method 300, the method 300 may include one or more of operations 411, 412, 413, 414, 415, 416, 431, 432, 433, 434, 435, and 436. One or more of operations 411-416 may be performed as part (e.g., a precursor task, a subroutine, or a portion) of operation 310, in which the node (e g., node 221) calculates the predicted computational cost for each one of the nodal actions in the group of nodal actions.
[0030] In operation 411, as part of calculating the predicted computational costs for the group of nodal actions, the node (e.g., node 221) calculates a predicted computational cost of the node replicating itself within the executing machine learning model. For example, the node may determine the computational budget that would be consumed if the node were to make a copy of itself and add the copy to the machine learning model while the machine learning model is executing.
[0031] In operation 412, as part of calculating the predicted computational costs for the group of nodal actions, the node (e.g., node 221) calculates a predicted computational cost of the node deleting itself from the executing machine learning model. For example, the node may determine the computational budget that would be consumed if the node were to remove itself from the machine learning model (e.g., by disconnecting from all communications with any other nodes in the machine learning model, or by freeing or clearing its occupied memory locations).
[0032] In operation 413, as part of calculating the predicted computational costs for the group of nodal actions, the node (e.g., node 221) calculates a predicted computational cost of the node suspending itself for the upcoming timestep of the executing machine learning model. For example, the node may determine the computational budget that would be consumed if the node were to enter a sleep mode, produce no output, or both, for the duration of the next timestep.
[0033] In operation 414, as part of calculating the predicted computational costs for the group of nodal actions, the node (e.g., node 221) calculates a predicted computational cost of the node initiating reception of data from a further node (e.g., node 222 or node 232) within the executing machine learning model. For example,
the node may determine the computational budget that would be consumed if the node were to request a new flow of data from another node in the machine learning model (e.g., within the same group of nodes or from a different group of nodes).
[0034] In operation 415, as part of calculating the predicted computational costs for the group of nodal actions, the node (e.g., node 221) calculates a predicted computational cost of the node terminating reception of data from a further node (e.g., node 222 or node 232) within the executing machine learning model. For example, the node may determine the computational budget that would be consumed if the node were to suspend or cancel a preexisting flow of data from another node in the machine learning model (e.g., within the same group of nodes or from a different group of nodes).
[0035] In operation 416, as part of calculating the predicted computational costs for the group of nodal actions, the node (e.g., node 221) calculates a predicted computational cost of the node operating itself normally for the upcoming (e.g., next) timestep of the executing machine learning model. For example, the node may determine the computational budget that would be consumed if the node were to process its currently configured one or more inputs and produce its currently configured one or more outputs with no change in its currently configured behavior.
[0036] One or more of operations 431-436 may be performed as part (e.g., a precursor task, a subroutine, or a portion) of operation 330, in which the node (e.g., node 221) performs the nodal action that it selected in operation 320.
[0037] In operation 431, the node (e.g., node 221) replicates itself within the executing machine learning model. For example, the node may make a copy of itself and add the copy to the machine learning model while the machine learning model is executing.
[0038] In operation 432, the node (e.g., node 221) deletes itself from the executing machine learning model. For example, the node may remove itself from the machine learning model (e g., by disconnecting from all communications with any other nodes in the machine learning model, or by freeing or clearing its occupied memory locations).
[0039] In operation 433, the node (e.g., node 221) suspends itself for the upcoming timestep of the executing machine learning model. For example, the node may enter a sleep mode, produce no output, or both, for the duration of the next timestep.
[0040] In operation 434, the node (e.g., node 221) initiates reception of data from a further node (e.g., node 221) within the executing machine learning model. For example, the node may request a new flow of data from another node (e.g., node 222 or node 232) in the machine learning model (e.g., within the same group of nodes or from a different group of nodes).
[0041] In operation 435, the node (e.g., node 221) terminates reception of data from a further node (e.g., node 222 or node 232) within the executing machine learning model. For example, the node may suspend or cancel a preexisting flow of data from another node in the machine learning model (e.g., within the same group of nodes or from a different group of nodes).
[0042] In operation 436, the node (e.g., node 221) operates itself normally for the upcoming (e.g., next) timestep of the executing machine learning model. For example, the node may process its currently configured one or more inputs and produce its currently configured one or more outputs with no change in its currently configured behavior.
[0043] As shown in FIG. 5, in addition to any one or more of the operations previously described for the method 300, the method 300 may include one or more of operations 521, 522, 523, 524, and 525. One or more of operations 521-525 may be performed as part (e.g., a precursor task, a subroutine, or a portion) of operation 320, in which the node (e.g., node 221) selects a nodal action to be performed by the node during the upcoming timestep of the executing machine learning model (e.g., machine learning model 210).
[0044] In operation 521, as part of selecting its upcoming nodal action, the node (e.g., node 221) selects the nodal action with a lowest predicted computational cost among the predicted computational costs of the group of nodal actions for the
upcoming timestep of the executing machine learning model (e.g., machine learning model 210).
[0045] In operation 522, as part of selecting its upcoming nodal action, the node (e.g., node 221) selects the nodal action with a lowest current computational cost among current computational costs of the group of nodal actions for a current timestep of the executing machine learning model (e.g., machine learning model 210).
[0046] In operation 523, as part of selecting its upcoming nodal action, the node (e.g., node 221) selects the nodal action based on a computational budget that is allocated to only the node itself for each timestep of the executing machine learning model (e g., for the upcoming timestep of the executing machine learning model 210).
[0047] In operation 524, as part of selecting its upcoming nodal action, the node (e.g., node 221) selects the nodal action based on a computational budget that is allocated to the whole machine learning model (e.g., the machine learning model 210 in its entirety) for each timestep of the executing machine learning model (e.g., for the upcoming timestep of the executing machine learning model 210).
[0048] In operation 525, as part of selecting its upcoming nodal action, the node (e.g., node 221) selects the nodal action based on a computational budget that is allocated to only a portion of the machine learning model (e.g., to only the group 212 of nodes), of which portion the node is a member, for each timestep of the executing machine learning model (e.g., for the upcoming timestep of the executing machine learning model 210).
[0049] FIGS. 6-8 are flowcharts illustrating operations of a node manager (e.g., node manager 220), within the machine learning model 210 while the machine learning model 210 is executing on the Al machine 110, as that node manager (e.g., node manager 220) performs a method 600 of node management (e.g., upon a managed or otherwise controlled node, such as node 221) based on computational cost (e.g., of nodal commands performable on that node or otherwise caused to befall that node), according to some example embodiments. Operations in the
method 600 may be performed by a node manager (e.g., node manager 220) within or otherwise corresponding to an executing machine learning model (e.g., machine learning model 210), and using components (e.g., modules) described above with respect to FIG. 2, using one or more processors (e.g., microprocessors or other hardware processors), or using any suitable combination thereof. As shown in FIG. 6, the method 600 includes operations 610, 620, and 630.
[0050] In operation 610, the node manager (e.g., node manager 220) calculates predicted computational costs for all nodal commands in a group (e.g.,. a predetermined plurality) of nodal commands that are performable on a node (e.g., node 221) within the machine learning model (e.g., machine learning model 210) during an upcoming (e.g., next) timestep of the executing machine learning model. In various example embodiments, the group includes at least two available nodal commands that are each performable on the node in the upcoming timestep.
[0051] In operation 620, the node manager (e.g., node manager 220) selects a (e.g., one and only one) nodal command to be performed on the node (e.g., node 221) during the upcoming timestep of the executing machine learning model (e.g., machine learning model 210). The node manager performs one or more comparisons among the predicted computational costs that were calculated in operation 610. Accordingly, the nodal command selected in operation 620 is selected from the group of nodal commands based on these one or more comparisons between or among the predicted computational costs of the group of nodal commands that are performable on the node during the upcoming timestep of the executing machine learning model.
[0052] In operation 630, the node manager (e.g., node manager 220) performs or otherwise causes performance of the (e.g., only one) selected nodal command on the node (e.g., node 221) during the upcoming timestep of the executing machine learning model. That is, the node manager manages or otherwise controls the node by causing the nodal command that was selected in operation 620 to be performed on the node, and this selected nodal command is performed on the node during the
upcoming (e.g., next) timestep of the executing machine learning model (e.g., machine learning model 210).
[0053] As shown in FIG. 7, in addition to any one or more of the operations previously described for the method 600, the method 600 may include one or more of operations 711, 712, 713, 714, 715, 716, 731, 732, 733, 734, 735, and 736. One or more of operations 711-716 may be performed as part (e.g., a precursor task, a subroutine, or a portion) of operation 610, in which the node manager (e.g., node manager 220) calculates the predicted computational cost for each one of the nodal commands in the group of nodal commands.
[0054] In operation 711, as part of calculating the predicted computational costs for the group of nodal commands, the node manager (e.g., node manager 220) calculates a predicted computational cost of replicating the node (e.g., node 221) within the executing machine learning model (e.g., machine learning model 210). For example, the node manager may determine the computational budget that would be consumed if the node manager were to make a copy of the node (e.g., node 21) and add the copy to the machine learning model while the machine learning model is executing.
[0055] In operation 712, as part of calculating the predicted computational costs for the group of nodal commands, the node manager (e.g., node manager 220) calculates a predicted computational cost of deleting the node (e.g., node 221) from the executing machine learning model (e.g., machine learning model 210). For example, the node manager may determine the computational budget that would be consumed if the node manager were to remove the node from the machine learning model (e.g., by disconnecting the node from all communications with any other nodes in the machine learning model, or by freeing or clearing the node’s occupied memory locations).
[0056] In operation 713, as part of calculating the predicted computational costs for the group of nodal commands, the node manager (e.g., node manager 220) calculates a predicted computational cost of suspending operation of the node (e.g., node 221) for the upcoming timestep of the executing machine learning model (e.g.,
machine learning model 210). For example, the node manager may determine the computational budget that would be consumed if the node manager were to cause (e.g., trigger, force, or command) the node enter a sleep mode, produce no output, or both, for the duration of the next timestep.
[0057] In operation 714, as part of calculating the predicted computational costs for the group of nodal commands, the node manager (e.g., node manager 220) calculates a predicted computational cost of initiating provision of data to the node (e.g., node 221) from a further node (e.g., node 222 or node 232) within the executing machine learning model (e.g., machine learning model 210). For example, the node manager may determine the computational budget that would be consumed if the node manager were to cause (e.g., trigger, force, or command) a new flow of data to the node from another node in the machine learning model (e.g., within the same group of nodes or from a different group of nodes).
[0058] In operation 715, as part of calculating the predicted computational costs for the group of nodal commands, the node manager (e.g., node manager 220) calculates a predicted computational cost of terminating provision of data to the node (e.g., node 221) from a further node (e.g., node 222 or node 232) within the executing machine learning model (e.g., machine learning model 210). For example, the node manager may determine the computational budget that would be consumed if the node manager were to cause (e.g., trigger, force, or command) a suspension or cancelation of a preexisting flow of data to the node from another node in the machine learning model (e.g., within the same group of nodes or from a different group of nodes).
[0059] In operation 716, as part of calculating the predicted computational costs for the group of nodal commands, the node manager (e.g., node manager 220) calculates a predicted computational cost of operating the node (e.g., node 221) normally for the upcoming (e.g., next) timestep of the executing machine learning model (e.g., machine learning model 210). For example, the node manager may determine the computational budget that would be consumed if the node manager were to cause (e.g., trigger, force, or command) the node to process its currently
configured one or more inputs and produce its currently configured one or more outputs with no change in its currently configured behavior.
[0060] One or more of operations 731-736 may be performed as part (e.g., a precursor task, a subroutine, or a portion) of operation 630, in which the node manager (e.g., node manager 220) causes performance of the nodal command that it selected in operation 620.
[0061] In operation 731, the node manager (e.g., node manager 220) replicates the node (e.g., node 221) within the executing machine learning model (e.g., machine learning model 210). For example, the node manager may make a copy of the node (e.g., node 21) and add the copy to the machine learning model while the machine learning model is executing.
[0062] In operation 732, the node manager (e.g., node manager 220) deletes the node (e.g., node 221) from the executing machine learning model (e.g., machine learning model 210). For example, the node manager may remove the node from the machine learning model (e.g., by disconnecting the node from all communications with any other nodes in the machine learning model, or by freeing or clearing the node’s occupied memory locations).
[0063] In operation 733, the node manager (e.g., node manager 220) suspends operation of the node (e.g., node 221) for the upcoming timestep of the executing machine learning model (e.g., machine learning model 210). For example, the node manager may cause (e.g., trigger, force, or command) the node enter a sleep mode, produce no output, or both, for the duration of the next timestep.
[0064] In operation 734, the node manager (e.g., node manager 220) initiates provision of data to the node (e.g., node 221) from a further node (e.g., node 222 or node 232) within the executing machine learning model (e.g., machine learning model 210). For example, the node manager may cause (e.g., trigger, force, or command) a new flow of data to the node from another node in the machine learning model (e.g., within the same group of nodes or from a different group of nodes).
[0065] In operation 735, the node manager (e.g., node manager 220) terminates provision of data to the node (e.g., node 221) from a further node (e.g., node 222 or node 232) within the executing machine learning model (e.g., machine learning model 210). For example, the node manager may cause (e.g., trigger, force, or command) a suspension or cancelation of a preexisting flow of data to the node from another node in the machine learning model (e.g., within the same group of nodes or from a different group of nodes).
[0066] In operation 736, the node manager (e.g., node manager 220) operate the node (e.g., node 221) normally for the upcoming (e.g., next) timestep of the executing machine learning model (e.g., machine learning model 210). For example, the node manager may cause (e.g., trigger, force, or command) the node to process its currently configured one or more inputs and produce its currently configured one or more outputs with no change in its currently configured behavior.
[0067] As shown in FIG. 8, in addition to any one or more of the operations previously described for the method 600, the method 600 may include one or more of operations 821, 822, 823, 824, and 825. One or more of operations 821-825 may be performed as part (e.g., a precursor task, a subroutine, or a portion) of operation 620, in which the node manager (e.g., node manager 220) selects a nodal command to be performed on the node (e.g., node 221) during the upcoming timestep of the executing machine learning model (e.g., machine learning model 210).
[0068] In operation 821, as part of selecting the upcoming nodal command for the node (e.g., node 221), the node manager (e.g., node manager 220) selects the nodal command with a lowest predicted computational cost among the predicted computational costs of the group of nodal commands for the upcoming timestep of the executing machine learning model (e.g., machine learning model 210).
[0069] In operation 822, as part of selecting the upcoming nodal command for the node (e.g., node 221), the node manager (e.g., node manager 220) selects the nodal command with a lowest current computational cost among current computational costs of the group of nodal commands for a current timestep of the executing machine learning model (e.g., machine learning model 210).
[0070] In operation 823, as part of selecting the upcoming nodal command for the node (e.g., node 221), the node manager (e.g., node manager 220) selects the nodal command based on a computational budget that is allocated to only the node itself for each timestep of the executing machine learning model (e.g., for the upcoming timestep of the executing machine learning model 210).
[0071] In operation 824, as part of selecting the upcoming nodal command for the node (e.g., node 221), the node manager (e.g., node manager 220) selects the nodal command based on a computational budget that is allocated to the whole machine learning model (e.g., the machine learning model 210 in its entirety) for each timestep of the executing machine learning model (e.g., for the upcoming timestep of the executing machine learning model 210).
[0072] In operation 825, as part of selecting the upcoming nodal command for the node (e.g., node 221), the node manager (e.g., node manager 220) selects the nodal command based on a computational budget that is allocated to only a portion of the machine learning model (e.g., to only the group 212 of nodes), of which portion the node is a member, for each timestep of the executing machine learning model (e.g., for the upcoming timestep of the executing machine learning model 210).
[0073] According to various example embodiments, one or more of the methodologies described herein may facilitate nodal self-determination based on computational cost, node management based on computational cost, or both. Moreover, one or more of the methodologies described herein may facilitate managing a machine learning model, including training the machine learning model, re-training the machine learning model, evolving the machine learning model, growing the machine learning model, pruning the machine learning model, operating the machine learning model, or any suitable combination thereof. Hence, one or more of the methodologies described herein may facilitate optimizing the size of the machine learning model, as well as optimizing its computational costs, compared to capabilities of pre-existing systems and methods.
[0074] When these effects are considered in aggregate, one or more of the methodologies described herein may obviate a need for certain efforts or resources that otherwise would be involved in nodal self-determination based on computational cost, node management based on computational cost, or both. Efforts expended by a user in obtaining any one or more of the beneficial effect discussed herein may be reduced by use of (e.g., reliance upon) a special -purpose machine that implements one or more of the methodologies described herein. Computing resources used by one or more systems or machines (e.g., within the network environment 100) may similarly be reduced (e.g., compared to systems or machines that lack the structures discussed herein or are otherwise unable to perform the functions discussed herein). Examples of such computing resources include processor cycles, network traffic, computational capacity, main memory usage, graphics rendering capacity, graphics memory usage, data storage capacity, power consumption, and cooling capacity.
[0075] FIG. 9 is a block diagram illustrating components of a machine 900, according to some example embodiments, able to read instructions 924 from a machine-readable medium 922 (e.g., a non-transitory machine-readable medium, a machine-readable storage medium, a computer-readable storage medium, or any suitable combination thereof) and perform any one or more of the methodologies discussed herein, in whole or in part. Specifically, FIG. 9 shows the machine 900 in the example form of a computer system (e.g., a computer) within which the instructions 924 (e.g., software, a program, an application, an applet, an app, or other executable code) for causing the machine 900 to perform any one or more of the methodologies discussed herein may be executed, in whole or in part.
[0076] In alternative embodiments, the machine 900 operates as a standalone device or may be communicatively coupled (e.g., networked) to other machines. In a networked deployment, the machine 900 may operate in the capacity of a server machine or a client machine in a server-client network environment, or as a peer machine in a distributed (e g., peer-to-peer) network environment. The machine 900 may be a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a cellular telephone, a smart phone, a set-
top box (STB), a personal digital assistant (PDA), a web appliance, a network router, a network switch, a network bridge, or any machine capable of executing the instructions 924, sequentially or otherwise, that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute the instructions 924 to perform all or part of any one or more of the methodologies discussed herein.
[0077] The machine 900 includes a processor 902 (e.g., one or more central processing units (CPUs), one or more graphics processing units (GPUs), one or more digital signal processors (DSPs), one or more application specific integrated circuits (ASICs), one or more radio-frequency integrated circuits (RFICs), one or more tensor processing units (TPUs), one or more neural processing units (NPUs), one or more vision processing units (VPUs), one or more machine-learning accelerators, one or more artificial-intelligence accelerators, one or more neuromorphic processors, one or more quantum processors, or any suitable combination thereof), a main memory 904, and a static memory 906, which are configured to communicate with each other via a bus 908. The processor 902 contains solid-state digital microcircuits (e.g., electronic, optical, biological, or any suitable combination thereof) that are configurable, temporarily or permanently, by some or all of the instructions 924 such that the processor 902 is configurable to perform any one or more of the methodologies described herein, in whole or in part. For example, a set of one or more microcircuits of the processor 902 may be configurable to execute one or more modules (e.g., software modules) described herein.
[0078] In some example embodiments, the processor 902 is a multicore CPU (e.g., a dual -core CPU, a quad-core CPU, an 8-core CPU, or a 128-core CPU) within which each of multiple cores behaves as a separate processor that is able to perform any one or more of the methodologies discussed herein, in whole or in part. Parallel processing on one or more multicore processors may be implemented via one or more suitable architectures, such as superscalar, very long instruction word (VLIW), vector processing, or single-instruction/multiple-data (SIMD), which allow
each core to run separate instruction streams concurrently. A processor may be emulated in software, running on a physical processor, as a virtual processor or virtual circuit. The virtual processor may behave like an independent processor but is implemented in software rather than hardware. Although the beneficial effects described herein may be provided by the machine 900 with at least the processor 902, these same beneficial effects may be provided by a different kind of machine that contains no processors (e.g., a purely mechanical system, a purely hydraulic system, or a hybrid mechanical-hydraulic system), if such a processor-less machine is configured to perform one or more of the methodologies described herein.
[0079] The machine 900 may further include a graphics display 910 (e.g., a plasma display panel (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, a cathode ray tube (CRT), or any other display capable of displaying graphics or video). The machine 900 may also include an alphanumeric input device 912 (e.g., a keyboard or keypad), a pointer input device 914 (e.g., a mouse, a touchpad, a touchscreen, a trackball, a joystick, a stylus, a motion sensor, an eye tracking device, a data glove, or other pointing instrument), a data storage 916, an audio generation device 918 (e.g., a sound card, an amplifier, a speaker, a headphone jack, or any suitable combination thereof), and a network interface device 920.
[0080] The data storage 916 (e.g., a data storage device) includes the machine- readable medium 922 (e.g., a tangible and non-transitory machine-readable storage medium) on which are stored the instructions 924 embodying any one or more of the methodologies or functions described herein. The instructions 924 may also reside, completely or at least partially, within the main memory 904, within the static memory 906, within the processor 902 (e.g., within the processor’s cache memory), or any suitable combination thereof, before or during execution thereof by the machine 900. Accordingly, the main memory 904, the static memory 906, and the processor 902 may be considered machine-readable media (e.g., tangible and non-transitory machine-readable media). The instructions 924 may be transmitted or received over the network 190 via the network interface device 920. For
example, the network interface device 920 may communicate the instructions 924 using any one or more transfer protocols (e g., hypertext transfer protocol (HTTP)).
[0081] In some example embodiments, the machine 900 may be a portable computing device (e.g., a smart phone, a tablet computer, or a wearable device) and may have one or more additional input components 930 (e.g., sensors or gauges). Examples of such input components 930 include an image input component (e.g., one or more cameras), an audio input component (e.g., one or more microphones), a direction input component (e.g., a compass), a location input component (e.g., a global positioning system (GPS) receiver), an orientation component (e.g., a gyroscope), a motion detection component (e.g., one or more accelerometers), an altitude detection component (e.g., an altimeter), a temperature input component (e.g., a thermometer), and a gas detection component (e.g., a gas sensor). Input data gathered by any one or more of these input components 930 may be accessible and available for use by any of the modules described herein (e.g., with suitable privacy notifications and protections, such as opt-in consent or opt-out consent, implemented in accordance with user preference, applicable regulations, or any suitable combination thereof).
[0082] As used herein, the term “memory” refers to a machine-readable medium able to store data temporarily or permanently and may be taken to include, but not be limited to, random-access memory (RAM), read-only memory (ROM), buffer memory, flash memory, and cache memory. While the machine-readable medium 922 is shown in an example embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) able to store instructions. The term “machine-readable medium” shall also be taken to include any medium, or combination of multiple media, that is capable of carrying (e.g., storing or communicating) the instructions 924 for execution by the machine 900, such that the instructions 924, when executed by one or more processors of the machine 900 (e.g., processor 902), cause the machine 900 to perform any one or more of the methodologies described herein, in whole or in part. Accordingly, a “machine-readable medium” refers to a single storage apparatus or
device, as well as cloud-based storage systems or storage networks that include multiple storage apparatus or devices. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, one or more tangible and non- transitory data repositories (e.g., data volumes) in the example form of a solid-state memory chip, an optical disc, a magnetic disc, or any suitable combination thereof.
[0083] A “non-transitory” machine-readable medium, as used herein, specifically excludes propagating signals per se. According to various example embodiments, the instructions 924 for execution by the machine 900 can be communicated via a carrier medium (e.g., a machine-readable carrier medium). Examples of such a carrier medium include a non-transient carrier medium (e.g., a non-transitory machine-readable storage medium, such as a solid-state memory that is physically movable from one place to another place) and a transient carrier medium (e.g., a carrier wave or other propagating signal that communicates the instructions 924).
[0084] Certain example embodiments are described herein as including modules. Modules may constitute software modules (e.g., code stored or otherwise embodied in a machine-readable medium or in a transmission medium), hardware modules, or any suitable combination thereof. A “hardware module” is a tangible (e.g., non-transitory) physical component (e.g., a set of one or more processors) capable of performing certain operations and may be configured or arranged in a certain physical manner. In various example embodiments, one or more computer systems or one or more hardware modules thereof may be configured by software (e.g., an application or portion thereof) as a hardware module that operates to perform operations described herein for that module.
[0085] In some example embodiments, a hardware module may be implemented mechanically, electronically, hydraulically, or any suitable combination thereof. For example, a hardware module may include dedicated circuitry or logic that is permanently configured to perform certain operations. A hardware module may be or include a special-purpose processor, such as a field programmable gate array (FPGA) or an ASIC. A hardware module may also
include programmable logic or circuitry that is temporarily configured by software to perform certain operations. As an example, a hardware module may include software encompassed within a CPU or other programmable processor. It will be appreciated that the decision to implement a hardware module mechanically, hydraulically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
[0086] Accordingly, the phrase “hardware module” should be understood to encompass a tangible entity that may be physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or to perform certain operations described herein.
Furthermore, as used herein, the phrase “hardware-implemented module” refers to a hardware module. Considering example embodiments in which hardware modules are temporarily configured (e.g., programmed), each of the hardware modules need not be configured or instantiated at any one instance in time. For example, where a hardware module includes a CPU configured by software to become a specialpurpose processor, the CPU may be configured as respectively different specialpurpose processors (e.g., each included in a different hardware module) at different times. Software (e.g., a software module) may accordingly configure one or more processors, for example, to become or otherwise constitute a particular hardware module at one instance of time and to become or otherwise constitute a different hardware module at a different instance of time.
[0087] Hardware modules can provide information to, and receive information from, other hardware modules. Accordingly, the described hardware modules may be regarded as being communicatively coupled. Where multiple hardware modules exist contemporaneously, communications may be achieved through signal transmission (e.g., over circuits and buses) between or among two or more of the hardware modules. In embodiments in which multiple hardware modules are configured or instantiated at different times, communications between such hardware modules may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware modules have
access. For example, one hardware module may perform an operation and store the output of that operation in a memory (e.g., a memory device) to which it is communicatively coupled. A further hardware module may then, at a later time, access the memory to retrieve and process the stored output. Hardware modules may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information from a computing resource).
[0088] The various operations of example methods described herein may be performed, at least partially, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions described herein. As used herein, “processor-implemented module” refers to a hardware module in which the hardware includes one or more processors. Accordingly, the operations described herein may be at least partially processor-implemented, hardware-implemented, or both, since a processor is an example of hardware, and at least some operations within any one or more of the methods discussed herein may be performed by one or more processor-implemented modules, hardware-implemented modules, or any suitable combination thereof.
[0089] Moreover, such one or more processors may perform operations in a “cloud computing” environment or as a service (e.g., within a “software as a service” (SaaS) implementation). For example, at least some operations within any one or more of the methods discussed herein may be performed by a group of computers (e.g., as examples of machines that include processors), with these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., an application program interface (API)). The performance of certain operations may be distributed among the one or more processors, whether residing only within a single machine or deployed across a number of machines. In some example embodiments, the one or more processors or hardware modules (e.g., processor-implemented modules) may be located in a single geographic location (e.g., within a home environment, an office environment,
or a server farm). In other example embodiments, the one or more processors or hardware modules may be distributed across a number of geographic locations.
[0090] Throughout this specification, plural instances may implement components, operations, or structures described as a single instance. Although individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations may be performed concurrently, and nothing requires that the operations be performed in the order illustrated. Structures and their functionality presented as separate components and functions in example configurations may be implemented as a combined structure or component with combined functions. Similarly, structures and functionality presented as a single component may be implemented as separate components and functions. These and other variations, modifications, additions, and improvements fall within the scope of the subject matter herein.
[0091] Some portions of the subject matter discussed herein may be presented in terms of algorithms or symbolic representations of operations on data stored as bits or binary digital signals within a memory (e.g., a computer memory or other machine memory). Such algorithms or symbolic representations are examples of techniques used by those of ordinary skill in the data processing arts to convey the substance of their work to others skilled in the art. As used herein, an “algorithm” is a self-consistent sequence of operations or similar processing leading to a desired result. In this context, algorithms and operations involve physical manipulation of physical quantities. Typically, but not necessarily, such quantities may take the form of electrical, magnetic, or optical signals capable of being stored, accessed, transferred, combined, compared, or otherwise manipulated by a machine. It is convenient at times, principally for reasons of common usage, to refer to such signals using words such as “data,” “content,” “bits,” “values,” “elements,” “symbols,” “characters,” “terms,” “numbers,” “numerals,” or the like. These words, however, are merely convenient labels and are to be associated with appropriate physical quantities.
[0092] Unless specifically stated otherwise, discussions herein using words such as “accessing,” “processing,” “detecting,” “computing,” “calculating,” “determining,” “generating,” “presenting,” “displaying,” or the like refer to actions or processes performable by a machine (e.g., a computer) that manipulates or transforms data represented as physical (e.g., electronic, magnetic, or optical) quantities within one or more memories (e.g., volatile memory, non-volatile memory, or any suitable combination thereof), registers, or other machine components that receive, store, transmit, or display information. Furthermore, unless specifically stated otherwise, the terms “a” or “an” are herein used, as is common in patent documents, to include one or more than one instance. Finally, as used herein, the conjunction “or” refers to a non-exclusive “or,” unless specifically stated otherwise.
[0093] The following enumerated descriptions describe various examples of methods, machine-readable media, and systems (e.g., machines, devices, or other apparatus) discussed herein. Any one or more features of an example, taken in isolation or combination, should be considered as being within the disclosure of this application.
[0094] A first example provides a method comprising: calculating, by a node within a machine learning model that is executing on one or more processors of a machine, predicted computational costs for all nodal actions in a predetermined plurality of nodal actions that are performable by the node within the machine learning model during an upcoming timestep of the executing machine learning model; selecting, by the node within the machine learning model that is executing on the one or more processors of the machine, a nodal action to be performed by the node during the upcoming timestep of the executing machine learning model, the nodal action being selected from the predetermined plurality of nodal actions based on one or more comparisons among the predicted computational costs of the predetermined plurality of nodal actions during the upcoming timestep of the executing machine learning model; and
performing, by the node within the machine learning model that is executing on the one or more processors of the machine, the nodal action selected based on the one or more comparisons of the predicted computational costs among the predetermined plurality of nodal actions during the upcoming timestep of the executing machine learning model.
[0095] A second example provides a method according to the first example, wherein: the predetermined plurality of nodal actions includes at least one of: the node replicating itself within the executing machine learning model, the node deleting itself from the executing machine learning model, the node suspending itself for the upcoming timestep of the executing machine learning model, the node initiating reception of data from a further node within the executing machine learning model, or the node terminating reception of data from a further node within the executing machine learning model.
[0096] A third example provides a method according to the first example or the second example, wherein: the calculating of the predicted computational costs includes at least one of: calculating first predicted computational costs of the node replicating itself within the machine learning model, calculating second predicted computational costs of the node deleting itself from the machine learning model, calculating third predicted computational costs of the node suspending itself for at least one timestep of the executing machine learning model, calculating fourth predicted computational costs of the node initiating reception of data from a further node within the executing machine learning model,
calculating fifth predicted computational costs of the node terminating reception of data from a further node within the executing machine learning model, or calculating sixth predicted computational costs of the node operating normally for the upcoming timestep of the executing machine learning model.
[0097] A fourth example provides a method according to any of the first through third examples, wherein: the selecting of the nodal action to be performed by the node selects the nodal action with a lowest predicted computational cost among the predicted computational costs of the predetermined plurality of nodal actions for the upcoming timestep of the executing machine learning model.
[0098] A fifth example provides a method according to any of the first through fourth examples, wherein: the selecting of the nodal action to be performed by the node selects the nodal action with a lowest current computational cost among current computational costs of the predetermined plurality of nodal actions for a current timestep of the executing machine learning model.
[0099] A sixth example provides a method according to any of the first through fifth examples, wherein: the selecting of the nodal action to be performed by the node is based on a computational budget allocated to only the node for the upcoming timestep of the executing machine learning model.
[0100] A seventh example provides a method according to any of the first through fifth examples, wherein: the selecting of the nodal action to be performed by the node is based on a computational budget allocated to the machine learning model (e g., in its entirety) for the upcoming timestep of the executing machine learning model.
[0101] An eighth example provides a method according to any of the first through fifth examples, wherein:
the node to perform the nodal action is included in a first portion of the machine learning model and absent from a second portion of the machine learning model; and the selecting of the nodal action to be performed by the node is based on a computational budget allocated to only the first portion (e.g., and not to the second portion) of the machine learning model for the upcoming timestep of the executing machine learning model.
[0102] A ninth example provides a machine-readable medium (e.g., a non- transitory machine-readable medium, such as a non-transitory machine-readable storage medium) comprising instructions that, when executed by one or more processors of a machine, cause the machine to perform first operations comprising: executing a machine learning model that includes multiple nodes, a node among the multiple nodes being configured to perform second operations comprising: calculating, by the node within the machine learning model that is being executed by the machine, predicted computational costs for all nodal actions in a predetermined plurality of nodal actions that are performable by the node within the machine learning model during an upcoming timestep of the executing machine learning model; selecting, by the node within the machine learning model that is being executed by the machine, a nodal action to be performed by the node during the upcoming timestep of the executing machine learning model, the nodal action being selected from the predetermined plurality of nodal actions based on one or more comparisons among the predicted computational costs of the predetermined plurality of nodal actions during the upcoming timestep of the executing machine learning model; and performing, by the node within the machine learning model that is being executed by the machine, the nodal action selected based on the one or more comparisons of the predicted computational costs among the predetermined plurality of nodal actions during the upcoming timestep of the executing machine learning model.
[0103] A tenth example provides a machine-readable medium according to the ninth example, wherein: the predetermined plurality of nodal actions includes at least one of: the node replicating itself within the executing machine learning model, the node deleting itself from the executing machine learning model, the node suspending itself for the upcoming timestep of the executing machine learning model, the node initiating reception of data from a further node within the executing machine learning model, or the node terminating reception of data from a further node within the executing machine learning model.
[0104] An eleventh example provides a machine-readable medium according to the ninth example or the tenth example, wherein: the calculating of the predicted computational costs includes at least one of: calculating first predicted computational costs of the node replicating itself within the machine learning model, calculating second predicted computational costs of the node deleting itself from the machine learning model, calculating third predicted computational costs of the node suspending itself for at least one timestep of the executing machine learning model, calculating fourth predicted computational costs of the node initiating reception of data from a further node within the executing machine learning model, calculating fifth predicted computational costs of the node terminating reception of data from a further node within the executing machine learning model, or calculating sixth predicted computational costs of the node operating normally for the upcoming timestep of the executing machine learning model.
[0105] A twelfth example provides a machine-readable medium according to any of the ninth through eleventh examples, wherein: the selecting of the nodal action to be performed by the node selects the nodal action with a lowest predicted computational cost among the predicted computational costs of the predetermined plurality of nodal actions for the upcoming timestep of the executing machine learning model.
[0106] A thirteenth example provides a machine-readable medium according to any of the ninth through twelfth examples, wherein: the selecting of the nodal action to be performed by the node selects the nodal action with a lowest current computational cost among current computational costs of the predetermined plurality of nodal actions for a current timestep of the executing machine learning model.
[0107] A fourteenth example provides a machine-readable medium according to any of the ninth through thirteenth examples, wherein: the selecting of the nodal action to be performed by the node is based on a computational budget allocated to only the node for the upcoming timestep of the executing machine learning model.
[0108] A fifteenth example provides a machine-readable medium according to any of the ninth through thirteenth examples, wherein: the selecting of the nodal action to be performed by the node is based on a computational budget allocated to the machine learning model (e g., in its entirety) for the upcoming timestep of the executing machine learning model.
[0109] A sixteenth example provides a system (e.g., a computer system that includes one or more computers, devices, or other machines) comprising: one or more processors; and a memory storing instructions that, when executed by at least one processor among the one or more processors, cause the system to perform first operations comprising:
executing a machine learning model that includes multiple nodes, a node among the multiple nodes being configured to perform second operations comprising: calculating, by the node within the machine learning model that is being executed by the system, predicted computational costs for all nodal actions in a predetermined plurality of nodal actions that are performable by the node within the machine learning model during an upcoming timestep of the executing machine learning model; selecting, by the node within the machine learning model that is being executed by the system, a nodal action to be performed by the node during the upcoming timestep of the executing machine learning model, the nodal action being selected from the predetermined plurality of nodal actions based on one or more comparisons among the predicted computational costs of the predetermined plurality of nodal actions during the upcoming timestep of the executing machine learning model; and performing, by the node within the machine learning model that is being executed by the system, the nodal action selected based on the one or more comparisons of the predicted computational costs among the predetermined plurality of nodal actions during the upcoming timestep of the executing machine learning model.
[0110] A seventeenth example provides a system according to the sixteenth example, wherein: the predetermined plurality of nodal actions includes at least one of: the node replicating itself within the executing machine learning model, the node deleting itself from the executing machine learning model, the node suspending itself for the upcoming timestep of the executing machine learning model, the node initiating reception of data from a further node within the executing machine learning model, or the node terminating reception of data from a further node within the executing machine learning model.
[oni] An eighteenth example provides a system according to the sixteenth example or the seventeenth example, wherein: the calculating of the predicted computational costs includes at least one of: calculating first predicted computational costs of the node replicating itself within the machine learning model, calculating second predicted computational costs of the node deleting itself from the machine learning model, calculating third predicted computational costs of the node suspending itself for at least one timestep of the executing machine learning model, calculating fourth predicted computational costs of the node initiating reception of data from a further node within the executing machine learning model, calculating fifth predicted computational costs of the node terminating reception of data from a further node within the executing machine learning model, or calculating sixth predicted computational costs of the node operating normally for the upcoming timestep of the executing machine learning model.
[0112] A nineteenth example provides a system according to any of the sixteenth through eighteenth examples, wherein: the selecting of the nodal action to be performed by the node selects the nodal action with a lowest current computational cost among current computational costs of the predetermined plurality of nodal actions for a current timestep of the executing machine learning model.
[0113] A twentieth example provides a system according to any of the sixteenth through nineteenth examples, wherein: the selecting of the nodal action to be performed by the node is based on a computational budget allocated to only the node for the upcoming timestep of the executing machine learning model.
[0114] A twenty -first example provides a method comprising:
calculating, by a node manager within a machine learning model that is executing on one or more processors of a machine, predicted computational costs for all nodal commands in a predetermined plurality of nodal commands that are performable on a node within the machine learning model during an upcoming timestep of the executing machine learning model; selecting, by the node manager within the machine learning model that is executing on the one or more processors of the machine, a nodal command to be performed on the node during the upcoming timestep of the executing machine learning model, the nodal command being selected from the predetermined plurality of nodal commands based on one or more comparisons among the predicted computational costs of the predetermined plurality of nodal commands during the upcoming timestep of the executing machine learning model; and causing, by the node manager within the machine learning model that is executing on the one or more processors of the machine, performance of the selected nodal command on the node during the upcoming timestep of the executing machine learning model.
[0115] A twenty-second example provides a method according to the twenty- first example, wherein: the predetermined plurality of nodal commands includes at least one of: replicating the node within the executing machine learning model, deleting the node from the executing machine learning model, suspending operation of the node for the upcoming timestep of the executing machine learning model, initiating provision of data to the node from a further node within the executing machine learning model, or terminating provision of data to the node from a further node within the executing machine learning model.
[0116] A twenty -third example provides a method according to the twenty- first example or the twenty-second example, wherein: the calculating of the predicted computational costs includes at least one of calculating first predicted computational costs of replicating the node within the executing machine learning model, calculating second predicted computational costs of deleting the node from the executing machine learning model, calculating third predicted computational costs of suspending operation of the node for the upcoming timestep of the executing machine learning model, calculating fourth predicted computational costs of initiating provision of data to the node from a further node within the executing machine learning model, calculating fifth predicted computational costs of terminating provision of data to the node from a further node within the executing machine learning model, or calculating sixth predicted computational costs of operating the node normally for the upcoming timestep of the executing machine learning model.
[0117] A twenty -fourth example provides a method according to any of the twenty-first through twenty -third examples, wherein: the selecting of the nodal command to be performed on the node selects the nodal command with a lowest predicted computational cost among the predicted computational costs of the predetermined plurality of nodal commands for the upcoming timestep of the executing machine learning model.
[0118] A twenty -fifth example provides a method according to any of the twenty-first through twenty-fourth examples, wherein: the selecting of the nodal command to be performed on the node selects the nodal command with a lowest current computational cost among current computational costs of the predetermined plurality of nodal commands for a current timestep of the executing machine learning model.
[0119] A twenty-sixth example provides a method according to any of the twenty-first through twenty-fourth examples, wherein: the selecting of the nodal command to be performed on the node is based on a computational budget allocated to only the node for the upcoming timestep of the executing machine learning model.
[0120] A twenty-seventh example provides a method according to any of the twenty-first through twenty-fourth examples, wherein: the selecting of the nodal command to be performed on the node is based on a computational budget allocated to the machine learning model (e.g., in its entirety) for the upcoming timestep of the executing machine learning model.
[0121] A twenty -eighth example provides a method according to any of the twenty-first through twenty-seventh examples, wherein: the node on which to perform the nodal command is included in a first portion of the machine learning model and absent from a second portion of the machine learning mode; and the selecting of the nodal command to be performed on the node is based on a computational budget allocated to only the first portion (e.g., and not to the second portion) of the machine learning model for the upcoming timestep of the executing machine learning model.
[0122] A twenty -ninth example provides a machine-readable medium (e.g., a non-transitory machine-readable medium, such as a non-transitory machine- readable storage medium) comprising instructions that, when executed by one or more processors of a machine, cause the machine to perform first operations comprising: executing a machine learning model that includes a node manager managing multiple nodes within the machine learning model, the node manager being configured to perform second operations comprising: calculating, by the node manager within the machine learning model that is being executed by the machine, predicted computational costs for all nodal commands in a
predetermined plurality of nodal commands that are performable on a node within the machine learning model during an upcoming timestep of the executing machine learning model; selecting, by the node manager within the machine learning model that is being executed by the machine, a nodal command to be performed on the node during the upcoming timestep of the executing machine learning model, the nodal command being selected from the predetermined plurality of nodal commands based on one or more comparisons among the predicted computational costs of the predetermined plurality of nodal commands during the upcoming timestep of the executing machine learning model; and causing, by the node manager within the machine learning model that is being executed by the machine, performance of the selected nodal command on the node during the upcoming timestep of the executing machine learning model.
[0123] A thirtieth example provides a machine-readable medium according to the twenty-ninth example, wherein: the predetermined plurality of nodal commands includes at least one of: replicating the node within the executing machine learning model, deleting the node from the executing machine learning model, suspending operation of the node for the upcoming timestep of the executing machine learning model, initiating provision of data to the node from a further node within the executing machine learning model, or terminating provision of data to the node from a further node within the executing machine learning model.
[0124] A thirty-first example provides a machine-readable medium according to the twenty-ninth example or the thirtieth example, wherein: the calculating of the predicted computational costs includes at least one of:
calculating first predicted computational costs of replicating the node within the executing machine learning model, calculating second predicted computational costs of deleting the node from the executing machine learning model, calculating third predicted computational costs of suspending operation of the node for the upcoming timestep of the executing machine learning model, calculating fourth predicted computational costs of initiating provision of data to the node from a further node within the executing machine learning model, calculating fifth predicted computational costs of terminating provision of data to the node from a further node within the executing machine learning model, or calculating sixth predicted computational costs of operating the node normally for the upcoming timestep of the executing machine learning model.
[0125] A thirty-second example provides a machine-readable medium according to any of the twenty -ninth through thirty-first examples, wherein: the selecting of the nodal command to be performed on the node selects the nodal command with a lowest predicted computational cost among the predicted computational costs of the predetermined plurality of nodal commands for the upcoming timestep of the executing machine learning model.
[0126] A thirty-third example provides a machine-readable medium according to any of the twenty -ninth through thirty-second examples, wherein: the selecting of the nodal command to be performed on the node selects the nodal command with a lowest current computational cost among current computational costs of the predetermined plurality of nodal commands for a current timestep of the executing machine learning model.
[0127] A thirty-fourth example provides a machine-readable medium according to any of the twenty -ninth through thirty-third examples, wherein:
the selecting of the nodal command to be performed on the node is based on a computational budget allocated to only the node for the upcoming timestep of the executing machine learning model.
[0128] A thirty-fifth example provides a machine-readable medium according to any of the twenty -ninth through thirty -third examples, wherein: the selecting of the nodal command to be performed on the node is based on a computational budget allocated to the machine learning model (e g., in its entirety) for the upcoming timestep of the executing machine learning model.
[0129] A thirty-sixth example provides a system (e.g., a computer system that includes one or more computers, devices, or other machines) comprising: one or more processors; and a memory storing instructions that, when executed by at least one processor among the one or more processors, cause the system to perform first operations comprising: executing a machine learning model that includes a node manager managing multiple nodes within the machine learning model, the node manager being configured to perform second operations comprising: calculating, by the node manager within the machine learning model that is being executed by the system, predicted computational costs for all nodal commands in a predetermined plurality of nodal commands that are performable on a node within the machine learning model during an upcoming timestep of the executing machine learning model; selecting, by the node manager within the machine learning model that is being executed by the system, a nodal command to be performed on the node during the upcoming timestep of the executing machine learning model, the nodal command being selected from the predetermined plurality of nodal commands based on one or more comparisons among the predicted computational costs of the predetermined plurality of nodal commands during the upcoming timestep of the executing machine learning model; and
causing, by the node manager within the machine learning model that is being executed by the system, performance of the selected nodal command on the node during the upcoming timestep of the executing machine learning model.
[0130] A thirty-seventh example provides a system according to the thirtysixth example, wherein: the predetermined plurality of nodal commands includes at least one of: replicating the node within the executing machine learning model, deleting the node from the executing machine learning model, suspending operation of the node for the upcoming timestep of the executing machine learning model, initiating provision of data to the node from a further node within the executing machine learning model, or terminating provision of data to the node from a further node within the executing machine learning model.
[0131] A thirty-eighth example provides a system according to the thirty-sixth example or the thirty-seventh example, wherein: the calculating of the predicted computational costs includes at least one of: calculating first predicted computational costs of replicating the node within the executing machine learning model, calculating second predicted computational costs of deleting the node from the executing machine learning model, calculating third predicted computational costs of suspending operation of the node for the upcoming timestep of the executing machine learning model, calculating fourth predicted computational costs of initiating provision of data to the node from a further node within the executing machine learning model, calculating fifth predicted computational costs of terminating provision of data to the node from a further node within the executing machine learning model, or
calculating sixth predicted computational costs of operating the node normally for the upcoming timestep of the executing machine learning model.
[0132] A thirty-ninth example provides a system according to any of the thirty-sixth through thirty-eighth examples, wherein: the selecting of the nodal command to be performed on the node selects the nodal command with a lowest current computational cost among current computational costs of the predetermined plurality of nodal commands for a current timestep of the executing machine learning model.
[0133] A fortieth example provides a system according to any of the thirtysixth through thirty-ninth examples, wherein: the selecting of the nodal command to be performed on the node is based on a computational budget allocated to only the node for the upcoming timestep of the executing machine learning model.
[0134] A forty -first example provides a carrier medium carrying machine- readable instructions for controlling a machine to carry out the operations (e.g., method operations) performed in any one of the previously described examples.
Claims
1. A method comprising: calculating, by a node manager within a machine learning model that is executing on one or more processors of a machine, predicted computational costs for all nodal commands in a predetermined plurality of nodal commands that are performable on a node within the machine learning model during an upcoming timestep of the executing machine learning model; selecting, by the node manager within the machine learning model that is executing on the one or more processors of the machine, a nodal command to be performed on the node during the upcoming timestep of the executing machine learning model, the nodal command being selected from the predetermined plurality of nodal commands based on one or more comparisons among the predicted computational costs of the predetermined plurality of nodal commands during the upcoming timestep of the executing machine learning model; and causing, by the node manager within the machine learning model that is executing on the one or more processors of the machine, performance of the selected nodal command on the node during the upcoming timestep of the executing machine learning model.
2. The method of claim 1, wherein: the predetermined plurality of nodal commands includes at least one of: replicating the node within the executing machine learning model, deleting the node from the executing machine learning model, suspending operation of the node for the upcoming timestep of the executing machine learning model,
initiating provision of data to the node from a further node within the executing machine learning model, or terminating provision of data to the node from a further node within the executing machine learning model.
3. The method of claim 1, wherein: the calculating of the predicted computational costs includes at least one of: calculating first predicted computational costs of replicating the node within the executing machine learning model, calculating second predicted computational costs of deleting the node from the executing machine learning model, calculating third predicted computational costs of suspending operation of the node for the upcoming timestep of the executing machine learning model, calculating fourth predicted computational costs of initiating provision of data to the node from a further node within the executing machine learning model, calculating fifth predicted computational costs of terminating provision of data to the node from a further node within the executing machine learning model, or calculating sixth predicted computational costs of operating the node normally for the upcoming timestep of the executing machine learning model.
4. The method of claim 1, wherein: the selecting of the nodal command to be performed on the node selects the nodal command with a lowest predicted computational cost among the predicted computational costs of the predetermined plurality of nodal commands for the upcoming timestep of the executing machine learning model.
5. The method of claim 1, wherein: the selecting of the nodal command to be performed on the node selects the nodal command with a lowest current computational cost among current computational costs of the predetermined plurality of nodal commands for a current timestep of the executing machine learning model.
6. The method of claim 1, wherein: the selecting of the nodal command to be performed on the node is based on a computational budget allocated to only the node for the upcoming timestep of the executing machine learning model.
7. The method of claim 1, wherein: the selecting of the nodal command to be performed on the node is based on a computational budget allocated to the machine learning model for the upcoming timestep of the executing machine learning model.
8. The method of claim 1, wherein: the node on which to perform the nodal command is included in a first portion of the machine learning model and absent from a second portion of the machine learning model; and the selecting of the nodal command to be performed on the node is based on a computational budget allocated to only the first portion of the machine learning model for the upcoming timestep of the executing machine learning model.
9. A machine-readable medium comprising instructions that, when executed by one or more processors of a machine, cause the machine to perform first operations comprising: executing a machine learning model that includes a node manager managing multiple nodes within the machine learning model, the node manager being configured to perform second operations comprising: calculating, by the node manager within the machine learning model, predicted computational costs for all nodal commands in a predetermined plurality of nodal commands that are performable on a node within the machine learning model during an upcoming timestep of the executing machine learning model; selecting, by the node manager within the machine learning model, a nodal command to be performed on the node during the upcoming timestep of the executing machine learning model, the nodal command being selected from the predetermined plurality of nodal commands based on one or more comparisons among the predicted computational costs of the predetermined plurality of nodal commands during the upcoming timestep of the executing machine learning model; and causing, by the node manager within the machine learning model, performance of the selected nodal command on the node during the upcoming timestep of the executing machine learning model.
10. The machine-readable medium of claim 9, wherein: the predetermined plurality of nodal commands includes at least one of: replicating the node within the executing machine learning model, deleting the node from the executing machine learning model, suspending operation of the node for the upcoming timestep of the executing machine learning model, initiating provision of data to the node from a further node within the executing machine learning model, or
terminating provision of data to the node from a further node within the executing machine learning model.
11. The machine-readable medium of claim 9, wherein: the calculating of the predicted computational costs includes at least one of: calculating first predicted computational costs of replicating the node within the executing machine learning model, calculating second predicted computational costs of deleting the node from the executing machine learning model, calculating third predicted computational costs of suspending operation of the node for the upcoming timestep of the executing machine learning model, calculating fourth predicted computational costs of initiating provision of data to the node from a further node within the executing machine learning model, calculating fifth predicted computational costs of terminating provision of data to the node from a further node within the executing machine learning model, or calculating sixth predicted computational costs of operating the node normally for the upcoming timestep of the executing machine learning model.
12. The machine-readable medium of claim 9, wherein: the selecting of the nodal command to be performed on the node selects the nodal command with a lowest predicted computational cost among the predicted computational costs of the predetermined plurality of nodal commands for the upcoming timestep of the executing machine learning model.
13. The machine-readable medium of claim 9, wherein: the selecting of the nodal command to be performed on the node selects the nodal command with a lowest current computational cost among current computational costs of the predetermined plurality of nodal commands for a current timestep of the executing machine learning model.
14. The machine-readable medium of claim 9, wherein: the selecting of the nodal command to be performed on the node is based on a computational budget allocated to only the node for the upcoming timestep of the executing machine learning model.
15. The machine-readable medium of claim 9, wherein: the selecting of the nodal command to be performed on the node is based on a computational budget allocated to the machine learning model for the upcoming timestep of the executing machine learning model.
16. A system comprising: one or more processors; and a memory storing instructions that, when executed by at least one processor among the one or more processors, cause the system to perform first operations comprising: executing a machine learning model that includes a node manager managing multiple nodes within the machine learning model, the node manager being configured to perform second operations comprising: calculating, by the node manager within the machine learning model, predicted computational costs for all nodal commands in a predetermined plurality of nodal commands that are performable on a node within the machine learning model during an upcoming timestep of the executing machine learning model;
selecting, by the node manager within the machine learning model, a nodal command to be performed on the node during the upcoming timestep of the executing machine learning model, the nodal command being selected from the predetermined plurality of nodal commands based on one or more comparisons among the predicted computational costs of the predetermined plurality of nodal commands during the upcoming timestep of the executing machine learning model; and causing, by the node manager within the machine learning model, performance of the selected nodal command on the node during the upcoming timestep of the executing machine learning model.
17. The system of claim 16, wherein: the predetermined plurality of nodal commands includes at least one of: replicating the node within the executing machine learning model, deleting the node from the executing machine learning model, suspending operation of the node for the upcoming timestep of the executing machine learning model, initiating provision of data to the node from a further node within the executing machine learning model, or terminating provision of data to the node from a further node within the executing machine learning model.
18. The system of claim 16, wherein: the calculating of the predicted computational costs includes at least one of: calculating first predicted computational costs of replicating the node within the executing machine learning model, calculating second predicted computational costs of deleting the node from the executing machine learning model, calculating third predicted computational costs of suspending operation of the node for the upcoming timestep of the executing machine learning model,
calculating fourth predicted computational costs of initiating provision of data to the node from a further node within the executing machine learning model, calculating fifth predicted computational costs of terminating provision of data to the node from a further node within the executing machine learning model, or calculating sixth predicted computational costs of operating the node normally for the upcoming timestep of the executing machine learning model.
19. The system of claim 16, wherein: the selecting of the nodal command to be performed on the node selects the nodal command with a lowest current computational cost among current computational costs of the predetermined plurality of nodal commands for a current timestep of the executing machine learning model.
20. The system of claim 16, wherein: the selecting of the nodal command to be performed on the node is based on a computational budget allocated to only the node for the upcoming timestep of the executing machine learning model.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/US2024/028189 WO2025234985A1 (en) | 2024-05-07 | 2024-05-07 | Node management based on computational cost |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/US2024/028189 WO2025234985A1 (en) | 2024-05-07 | 2024-05-07 | Node management based on computational cost |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025234985A1 true WO2025234985A1 (en) | 2025-11-13 |
Family
ID=97675441
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2024/028189 Pending WO2025234985A1 (en) | 2024-05-07 | 2024-05-07 | Node management based on computational cost |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2025234985A1 (en) |
-
2024
- 2024-05-07 WO PCT/US2024/028189 patent/WO2025234985A1/en active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11544573B2 (en) | Projection neural networks | |
| US20200293838A1 (en) | Scheduling computation graphs using neural networks | |
| US20220036123A1 (en) | Machine learning model scaling system with energy efficient network data transfer for power aware hardware | |
| US12277406B2 (en) | Automatic dataset creation using software tags | |
| US10878314B2 (en) | System and method for training artificial intelligence systems using a SIMA based processor | |
| CN116011509A (en) | Hardware-aware machine learning model search mechanism | |
| US11657289B2 (en) | Computational graph optimization | |
| CN112559007A (en) | Parameter updating method and device of multitask model and electronic equipment | |
| CN111431996B (en) | Method, apparatus, device and medium for resource configuration | |
| Sun et al. | Gradientflow: Optimizing network performance for large-scale distributed dnn training | |
| GB2567147A (en) | Machine learning query handling system | |
| US20240177028A1 (en) | System and method for executing multiple inference models using inference model prioritization | |
| CN111986490A (en) | Road condition prediction method and device, electronic equipment and storage medium | |
| EP2980701B1 (en) | Stream processing with context data affinity | |
| Wu et al. | Diverse top-k service composition for consumer electronics with digital twin in MEC | |
| WO2025234985A1 (en) | Node management based on computational cost | |
| WO2025234984A1 (en) | Nodal self-determination based on computational cost | |
| US12411710B2 (en) | System and method for inference generation through dynamic reassignment of inference model portions | |
| US20240177179A1 (en) | System and method for management of inference models of varying complexity | |
| WO2025116903A1 (en) | Inter-nodal sharing of generative models | |
| WO2025075613A1 (en) | Modifying self-efficacy in artificial intelligence nodes | |
| US12222947B1 (en) | Partial database update based on lightweight join | |
| Wang et al. | A Lightweight Cloud-Edge Collaborative Intelligence Inference Framework with Runtime Dynamic Optimization for Resource-Constrained Consumer Electronics | |
| US20250363424A1 (en) | Dynamic reprovisioning of machine learning model layers | |
| CN104536829A (en) | Performance prediction method and system for virtual machines in cloud computing system |