# US 2023/0107221 A1 · Simplifying machine learning workload composition

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2023/0107221 A1
- Document ID: US20230107221A1
- Status: Published application
- Kind: A1
- Application number: 17/493,947
- Filed: 2021-10-05
- Published: 2023-04-06
- Earliest claimed: 2021-10-05
- Assignees: Cisco Technology, Inc.
- Applicants: Cisco Technology, Inc.
- Inventors: Myungjin Lee; Ramana Rao V. R. Kompella; Jayanth Srinivasa; Ali Payani
- Web page: https://patentgrep.com/patent/US20230107221A1

## CPC

- G06N 3/098: Distributed learning, e.g. federated learning
- G06N 20/10: using kernel methods, e.g. support vector machines [SVM]
- G06F 3/0665: {at area level, e.g. provisioning of virtual or logical volumes}
- G06N 5/01: Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
- G06N 7/01: Probabilistic graphical models, e.g. probabilistic networks
- G06N 20/00: Machine learning
- G06N 20/20: Ensemble learning
- G05B 2219/32418: Machine workload balance, same tools for pool of machines for same operations
- G05D 2101/22: {using off-board distributed computer resources for performing calculations, e.g. cloud-based}
- G06F 9/50: Allocation of resources, e.g. of the central processing unit [CPU]
- G06F 2209/5019: Workload prediction
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G05B: CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS (systems for controlling or regulating non-electric variables G05D; systems for regulating electric or magnetic variables G05F; control devices or systems insofar as characterised by mechanical features only G05G)
- G05D: SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES

## Abstract

In one embodiment, a device receives, via a user interface, definition data for a machine learning workload. The device identifies groups of training nodes in the network that store training datasets, to perform training roles for the machine learning workload by training machine learning models on their respective training datasets. The device selects a set of intermediate aggregator nodes for the groups of training nodes to aggregate their models. The device provisions the machine learning workload by configuring the groups of training nodes, the set of intermediate aggregator nodes, and a global aggregator node for the set of intermediate aggregator nodes and by configuring channels between training nodes in a group, between the groups of training nodes and the set of intermediate aggregator nodes, and between the set of intermediate aggregator nodes and the global aggregator node.

## Claims

### Claim 1

A method comprising:
receiving, at a device and via a user interface, definition data for a machine learning workload, wherein the user interface represents the machine learning workload as a set of roles and channels, each role representing a task to be performed by a node in a network and each channel representing a communication channel between roles;
identifying, by the device and based on the definition data, groups of training nodes in the network that store training datasets, to perform training roles for the machine learning workload by training machine learning models on their respective training datasets;
selecting, by the device, a set of intermediate aggregator nodes for the groups of training nodes, each intermediate aggregator node performing an aggregation role to aggregate those machine learning models trained by an assigned group of training nodes into intermediate models; and
provisioning, by the device, the machine learning workload by configuring the groups of training nodes, the set of intermediate aggregator nodes, and a global aggregator node for the set of intermediate aggregator nodes and by configuring channels between training nodes in a group, between the groups of training nodes and the set of intermediate aggregator nodes, and between the set of intermediate aggregator nodes and the global aggregator node.

### Claim 2 (depends on 1)

The method as in claim 1, wherein the device configures the channels by configuring application programming interfaces (APIs) on the groups of training nodes, the set of intermediate aggregator nodes, and the global aggregator node, to form communication channels in the network.

### Claim 3 (depends on 1)

The method as in claim 1, wherein the device selects the set of intermediate aggregator nodes for the groups of training nodes based in part on their distances to the groups of training nodes.

### Claim 4 (depends on 1)

The method as in claim 1, wherein the channels between the groups of training nodes and the set of intermediate aggregator nodes are parameter channels via which the groups of training nodes send parameters of the machine learning models that they train to their intermediate aggregator nodes.

### Claim 5 (depends on 1)

The method as in claim 1, wherein the definition data indicates a grouping parameter that specifies how the groups of training nodes should be formed.

### Claim 6 (depends on 5)

The method as in claim 5, wherein the grouping parameter specifies that training nodes should be grouped by geographic area.

### Claim 7 (depends on 1)

The method as in claim 1, wherein the global aggregator node performs a global aggregation of the intermediate models into a global machine learning model.

### Claim 8 (depends on 1)

The method as in claim 1, wherein the training datasets comprise private data not shared externally by the training nodes.

### Claim 9 (depends on 1)

The method as in claim 1, wherein the definition data specifies a type of training data and does not specify locations of the training datasets.

### Claim 10 (depends on 1)

The method as in claim 1, wherein at least one of the set of intermediate aggregator nodes is cloud-based.

### Claim 11

An apparatus, comprising:
one or more network interfaces;
a processor coupled to the one or more network interfaces and configured to execute one or more processes; and
a memory configured to store a process that is executable by the processor, the process when executed configured to:
receive, via a user interface, definition data for a machine learning workload, wherein the user interface represents the machine learning workload as a set of roles and channels, each role representing a task to be performed by a node in a network and each channel representing a communication channel between roles;
identify, based on the definition data, groups of training nodes in the network that store training datasets, to perform training roles for the machine learning workload by training machine learning models on their respective training datasets;
select a set of intermediate aggregator nodes for the groups of training nodes, each intermediate aggregator node performing an aggregation role to aggregate those machine learning models trained by an assigned group of training nodes into intermediate models; and
provision the machine learning workload by configuring the groups of training nodes, the set of intermediate aggregator nodes, and a global aggregator node for the set of intermediate aggregator nodes and by configuring channels between training nodes in a group, between the groups of training nodes and the set of intermediate aggregator nodes, and between the set of intermediate aggregator nodes and the global aggregator node.

### Claim 12 (depends on 11)

The apparatus as in claim 11, wherein the apparatus configures the channels by configuring application programming interfaces (APIs) on the groups of training nodes, the set of intermediate aggregator nodes, and the global aggregator node, to form communication channels in the network.

### Claim 13 (depends on 11)

The apparatus as in claim 11, wherein the apparatus selects the set of intermediate aggregator nodes for the groups of training nodes based in part on their distances to the groups of training nodes.

### Claim 14 (depends on 11)

The apparatus as in claim 11, wherein the channels between the groups of training nodes and the set of intermediate aggregator nodes are parameter channels via which the groups of training nodes send parameters of the machine learning models that they train to their intermediate aggregator nodes.

### Claim 15 (depends on 11)

The apparatus as in claim 11, wherein the definition data indicates a grouping parameter that specifies how the groups of training nodes should be formed.

### Claim 16 (depends on 15)

The apparatus as in claim 15, wherein the grouping parameter specifies that training nodes should be grouped by geographic area.

### Claim 17 (depends on 11)

The apparatus as in claim 11, wherein the global aggregator node performs a global aggregation of the intermediate models into a global machine learning model.

### Claim 18 (depends on 11)

The apparatus as in claim 11, wherein the training datasets comprise private data not shared externally by the training nodes.

### Claim 19 (depends on 11)

The apparatus as in claim 11, wherein the definition data specifies a type of training data and does not specify locations of the training datasets.

### Claim 20

A tangible, non-transitory, computer-readable medium storing program instructions that cause a device to execute a process comprising:
receiving, at the device and via a user interface, definition data for a machine learning workload, wherein the user interface represents the machine learning workload as a set of roles and channels, each role representing a task to be performed by a node in a network and each channel representing a communication channel between roles;
identifying, by the device and based on the definition data, groups of training nodes in the network that store training datasets, to perform training roles for the machine learning workload by training machine learning models on their respective training datasets;
selecting, by the device, a set of intermediate aggregator nodes for the groups of training nodes, each intermediate aggregator node performing an aggregation role to aggregate those machine learning models trained by an assigned group of training nodes into intermediate models; and
provisioning, by the device, the machine learning workload by configuring the groups of training nodes, the set of intermediate aggregator nodes, and a global aggregator node for the set of intermediate aggregator nodes and by configuring channels between training nodes in a group, between the groups of training nodes and the set of intermediate aggregator nodes, and between the set of intermediate aggregator nodes and the global aggregator node.
