EP4609322A1 - Distributed training of large neural networks - Google Patents
Distributed training of large neural networksInfo
- Publication number
- EP4609322A1 EP4609322A1 EP24805774.7A EP24805774A EP4609322A1 EP 4609322 A1 EP4609322 A1 EP 4609322A1 EP 24805774 A EP24805774 A EP 24805774A EP 4609322 A1 EP4609322 A1 EP 4609322A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- trainable
- worker
- parameter
- parameters
- values
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/098—Distributed learning, e.g. federated learning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Definitions
- This specification relates to training neural networks.
- Neural networks are machine learning models that employ one or more layers of nonlinear units to predict an output for a received input.
- the neural networks described herein include one or more hidden layers in addition to an output layer. The output of each hidden layer is used as input to the next layer in the network, i.e., the next hidden layer or the output layer.
- Each layer of the network generates an output from a received input in accordance with current values of a respective set of trainable parameters, e.g. weights.
- This specification generally describes systems and methods implemented as computer programs on one or more computers, generally in multiple locations, for using a distributed computing system to train a large neural network to perform a machine learning task.
- a computer-implemented method of training a neural network in particular a large neural network, e.g. one having at least 10 7 trainable parameters (such as weights), using a distributed computing system.
- the distributed computing system comprises a plurality of computing devices coupled by a computer network and operating in parallel.
- the method involves maintaining a shared set of values of the trainable parameters in a shared data store (coupled to the computer network).
- a set of workers typically a geographically distributed set of workers, is implemented on the plurality of computing devices, each worker implemented on one of the devices.
- Each worker is allocated one of a plurality of shards of a training dataset (stored in the memory of the computing device).
- a worker may comprise a computer, or a computer with one or more machine learning hardware accelerators (e.g. that perform matrix multiplication in hardware), or a cluster of computers.
- a worker obtains the updated set of trainable parameter values by training an instance of the large neural network using its shard of the training dataset. In general the training can involve backpropagating gradients of an objective function (for whatever machine learning task the neural network is being trained to perform) to adjust the values of the local copy of the trainable parameters to obtain the updated set of trainable parameter values for the worker.
- a cumulative gradient for some or all of the trainable parameters is determined for each worker, e.g. by each worker.
- the cumulative gradient for a parameter can be determined using the value of the trainable parameter in the local copy obtained by the worker, i.e. the updated trainable parameter value determined by the worker after the H inner optimization steps. More particularly this can involve determining a difference between the value of the trainable parameter in the local copy obtained by the worker from the shared data store, and the value of the parameter after the H inner optimization steps.
- the method also involves determining an aggregated cumulative gradient at an optimization computer system.
- the optimization computer system can be, e.g., one of the computing devices, or a shared server coupled to the computer network.
- the aggregated cumulative gradient is determined by, for each of some or all of the trainable parameters, aggregating the cumulative gradients for the trainable parameter determined for, e.g. by, the respective workers.
- the aggregated cumulative gradient for the trainable parameter can then be used to update the value of the trainable parameter in the shared data store.
- the values of the trainable parameters in the shared data store provide the trained parameters for the large neural network.
- the described techniques are suitable for implementation in an environment in which some or all of the computing devices are geographically distant from one another, e.g. where the computer network comprises a wide area network (WAN), and in which the communications bandwidth is relatively limited.
- the techniques can also be implemented on a single worker, e.g. for faster convergence and better generalization.
- the described techniques also facilitate a much more distributed approach - for example the workers can be physically spaced apart from one another and connected by a computer network such as a LAN (local area network) or WAN (wide area network). With the described techniques workers, or islands of locally connected workers, can even be located in different countries.
- a computer network such as a LAN (local area network) or WAN (wide area network).
- the workers there is no requirement for the workers to have the same computing capability or memory capacity, and the workers can have different computing and/or memory capabilities, and/or capabilities that vary over time. In implementations the workers can nonetheless be kept almost fully utilized.
- Implementations of the described techniques are also very robust to a range of different factors. For example they can cope with a worker stalling or failing and having to reboot and reload parameters from a point at which it stopped. They can also cope with varying numbers of workers over the course of training a neural network, and do not require different workers to have the same distribution of training data. The techniques are also robust to disruption of communications, e.g. resulting in lost packets.
- the techniques can be used to train a neural network from scratch, e.g. from random initialization, or to fine tune a previously trained neural network.
- the described techniques can also train a large neural network faster than conventional techniques in wall-clock time.
- a neural network trained using the described techniques can achieve better performance, e.g. lower perplexity or better generalization, than some synchronous training techniques. At inference time the resulting model can have the same size and speed as a model trained in fully synchronous mode.
- FIG. 1 shows an example distributed computing system for training a large neural network.
- FIG. 2 is a flow diagram of an example process for training a large neural network using a distributed computing system.
- FIG. 3 is a visualization of an example of the described training process.
- FIG. 4 compares results of an example of the described training process with conventional techniques.
- FIG. 5 illustrates a result of an example of the described training process using Nesterov momentum.
- FIG. 6 illustrates results of examples of the described training process with varying numbers of workers.
- FIG. 7 illustrates results of examples of the described training process with varying communications quality.
- FIG. 8 illustrates a result of an example of the described training process implemented on a single worker.
- Training includes fine tuning a pre-trained model.
- the large neural network can have at least 10 7 trainable parameters; in some implementations at least 10 8 or 10 9 trainable parameters.
- the neural network is configured to process a neural network input in accordance with the trainable parameters of the neural network, to generate a neural network output that defines a result of a machine learning task.
- the neural network may comprise a so-called foundation model such as a large language model (LLM) or vision language model (VLM).
- LLM large language model
- VLM vision language model
- a shared set of the trainable parameters is maintained in a shared data store, and each of a geographically distributed set of workers updates their trainable parameters using a shard training dataset.
- the workers can have different computing capabilities and can be geographically distant from one another; the communications bandwidth used by the system can be two or three orders of magnitude less than that of other systems.
- FIG. 1 shows an example of a distributed computing system 100 for training a large neural network.
- the distributed computing system 100 comprises a plurality of computing devices 110a..n each having associated (local) memory 114a..n.
- a computing device may comprise, as some examples, a general purpose computer system, or a computer equipped with one or more GPUs (Graphics Processing Units), or a computer equipped with one or more TPUs (Tensor Processing Units), or a combination of these.
- the computing devices 110 are coupled by a shared computer network 120 and can operate in parallel.
- the computer network 120 may include wired and/or wireless parts and may comprise, e.g. a local area network (LAN), a wide area network (WAN), or the Internet.
- LAN local area network
- WAN wide area network
- An advantage of the described techniques is that they are suitable for implementation in an environment in which some or all of the computing devices are geographically distant from one another.
- the computer network 120 may therefore include a wide area network (WAN).
- Each of the computing devices 110 is configured to implement one or more workers 112a.. n, e.g. one worker can be implemented on each computing device.
- a worker can comprise code for a software process that operates on one of the computing devices 110, e.g. using multiple GPUs or TPUs of the computing device.
- the distributed computing system 100 also includes a shared data store 130, accessible over the computer network 120, e.g. on a shared, e.g. central, server or on one of the computing devices 110.
- the shared data store 130 is used to maintain shared set of values of the trainable parameters of the large neural network, as described later.
- the distributed computing system 100 also includes an optimization computer system 150.
- the optimization computer system may comprise one of the computing devices 110 or it may comprise a shared server coupled to the computer network.
- FIG. 2 is a flow diagram of an example process for training a neural network, in particular a large neural network using a distributed computing system, such as the distributed computing system 100 of FIG. 1. For convenience the process will be described with reference to the distributed computing system 100.
- the neural network can be one that has been initialized at random, i.e. for which initial values of the trainable parameters have been chosen at random, or it can comprise a pre-trained model.
- the large neural network can be trained to optimize an objective function.
- the objective function can be any objective function appropriate to a task to be performed by the (trained) neural network.
- the process involves obtaining a training dataset (step 200).
- the training dataset comprises a plurality of shards, each stored in the memory 114 of one, e.g. a respective one, of the computing devices 110.
- Each shard is typically a disjoint partition of the training dataset, though in principle some overlap or duplication between data in different shards is possible.
- a sharded training dataset can be obtained by partitioning a training dataset into shards. For example the training dataset can be divided into portions, or shards, each of which holds a respective portion of the training dataset, and that together make up the complete training dataset.
- the process maintains a shared set of values of the trainable parameters of the large neural network in the shared data store 130.
- a set of workers 112 is implemented on the plurality of computing devices 110 (step 202).
- each worker is implemented on one of the computing devices, e.g. each worker can be implemented on a different respective one of the computing devices, and each worker is allocated a respective one of the plurality of shards.
- each worker may be allocated a respective one of the shards by the shared, e.g. central, server.
- each worker may obtain its shard without the shard being allocated by any form of central control, e.g. to avoid a central server having access to one or more of the shards, e.g. to assist in preserving privacy.
- one or more of the workers may obtain a portion of training data without exposing the portion of training data to any of the other workers or to a central server (if present); and this portion of training data may constitute a shard of the training dataset.
- consistent hashing a decentralized approach in which a worker can obtain a shard based on a hash function
- other hash-based techniques are known techniques for achieving this, such as consistent hashing (a decentralized approach in which a worker can obtain a shard based on a hash function), and other hash-based techniques.
- implementing a worker 110 on a computing device 112 may itself involve data and/or model parallelism.
- the method involves performing a plurality of outer optimization steps.
- each worker 112 performs a number of inner optimization steps, in general independently of each other worker, and in parallel with each other worker.
- Each outer optimization step can involve each worker 112 obtaining a local copy of the values of the trainable parameters from the shared data store 130 (step 204). More particularly the computing device 110 implementing the worker 112 can obtain the local copy of the values of the trainable parameters from the shared data store 130 and store it in the (local) memory 114 of the computing device.
- Each outer optimization step can also involve each worker 112 performing H inner optimization steps on the local copy of the values of the trainable parameters, to obtain an updated set of trainable parameter values for the worker after the H inner optimization steps (step 206).
- H is at least 50, 100, 500, 1000, or 2000.
- each inner optimization step involves backpropagating gradients of the objective function, evaluated using the shard allocated to the worker, to adjust the values of the local copy of the trainable parameters (step 208).
- the method also involves, for each of the plurality of outer optimization steps, and for each worker 112, determining a cumulative gradient (or “outer” gradient) for at least some of the trainable parameters (step 210).
- the cumulative gradient is determined by determining a difference between the (updated) value of the trainable parameter in the local copy obtained by the worker computing device and the value of the parameter after the H inner optimization steps. That is, the cumulative gradient for a trainable parameter is dependent upon a difference between a value of the parameter before and after the H inner optimization steps
- the cumulative gradient can be determined as denotes the updated set of trainable parameter values for the worker after the H inner optimization steps, and denotes the values of the trainable parameters obtained by the worker from the shared data store, i.e. before the H inner optimization steps.
- the cumulative gradient may be determined by the worker, i.e. locally, or (if the updated trainable parameter values are communicated elsewhere), the cumulative gradient may be determined by one of the other workers, or centrally (as used here “central” refers to function rather than particularly to geography).
- Each of the plurality of outer optimization steps also involves determining an aggregated cumulative gradient (step 212).
- the aggregated cumulative gradient can be an aggregate, e.g. an average, of the cumulative gradients determined by the workers.
- the aggregated cumulative gradient can be determined at the optimization computer system 150 which, as previously mentioned, may comprise one of the computing devices 110 or a shared server.
- Determining the aggregated cumulative gradient can involve, for each trainable parameter of at least some of the trainable parameters, aggregating, e.g. averaging, the cumulative gradients for the trainable parameter determined for or by the workers 112.
- the cumulative gradient of a trainable parameter may be determined at (by) a worker, or for a worker, e.g. by a central server.
- the aggregated cumulative (“outer”) gradient, A® can be an average cumulative gradient.
- Such an average cumulative gradient can, e.g., be determined by evaluating denotes the updated set of trainable parameter values for worker i of k workers after the H inner optimization steps, and denotes the values of the trainable parameters obtained from the shared data store, i.e. before the H inner optimization steps. That is, the aggregated, e.g. average, cumulative gradient (per parameter) can be determined from a difference between trainable parameter values for a current and previous outer loop optimization time step.
- the cumulative gradient for each worker can be weighted by a number of training data items, n k , in the shard for the worker.
- the average cumulative gradient can be a weighted average cumulative gradient, e.g. determined by evaluating a weighted sum — 0 f ) where w k denotes a weight, which may be determined as n k /n where n is a total number of training data items in the training dataset.
- determining the aggregated cumulative gradient for a parameter involves communicating from a worker 112 to an entity performing the averaging, e.g. the optimization computer system 150.
- The can involve communicating either the cumulative gradient for the parameter from the inner loop, or the updated parameter value from the inner loop (the original parameter value will typically still be available from the shared data store 130).
- the communication from a worker is pruned so that not all the cumulative gradients (or updated parameter values) are transmitted, e.g., to the optimization computer system.
- a threshold may be applied so that only cumulative gradients that have magnitudes greater than a threshold value are sent.
- Different workers may send cumulative gradients for different groups of trainable parameters.
- the aggregated cumulative gradient may only be determined for some of the trainable parameters. For (one of) these trainable parameters determining the aggregated cumulative gradient may only involve aggregating the cumulative gradients (for the trainable parameter) from some of the workers.
- Each of the plurality of outer optimization steps also involves updating the value of the trainable parameter in the shared data store (step 214), i.e. the value of the trainable parameter in the shared set of values of the trainable parameters.
- this involves using the aggregated cumulative gradient for the trainable parameter to determine the value of the trainable parameter.
- this can involve applying, to a value dependent on a current value of the trainable parameter, a parameter offset dependent on the aggregated, e.g. average, cumulative gradient for the trainable parameter.
- the shared set of values of the trainable parameters in the shared data store 130 provides the trained parameters for the large neural network (step 216).
- Implementations of the above described techniques can reduce communication between the workers and, e.g. a central server, by some orders of magnitude. Nonetheless, particularly when workers are synchronized, for large models and/or a large number of workers there can be a heavy load on the network e.g. when a set of H inner optimization steps is completed.
- this can be mitigated by reducing the communications bandwidth from the workers necessary at these points, in particular by pruning a number of data items (cumulative gradients or parameter values) sent from a worker to an entity, e.g. server, performing the cumulative gradient aggregating.
- the value of H may be different for different workers, e.g. to desynchronized the workers and mitigate spikes in the communications bandwidth, as the communication to/from the workers and/or to/from a central server, is then staggered.
- the value of H for a worker may be selected or modified dependent on a characteristic of the worker or on a characteristic of available communications bandwidth to or from the worker.
- the characteristic of the worker may, e.g., be a metric of its available computing capability or memory capacity or of its computing speed.
- the characteristic of the communications may, e.g., be a metric of average or peak bandwidth capacity of a network connection to or from the worker. In this way the distributed computing system can adapt to, e.g., changing network or worker capacity or conditions.
- each worker determines the cumulative gradient for each (all) of the trainable parameters.
- the worker can then communicate the cumulative gradient for some or all of the trainable parameters to the optimization computer system.
- the worker may select a subset, more particularly a proper subset (i.e. less than all) of the cumulative gradients to communicate to the optimization computer system.
- the selected subset may be different for different workers.
- a subset of cumulative gradients to communicate may be selected by a worker in many ways.
- the cumulative gradients to communicate may be selected by comparing each cumulative gradient with a threshold value, communicating only cumulative gradients that have a value greater than the threshold.
- the threshold may be chosen, e.g. to select a largest x% (0 ⁇ x ⁇ 100) of the cumulative gradients.
- cumulative gradients to communicate may be selected by their sign. More particularly a positive and a negative aggregated sign value may be determined for positive and for negative cumulative gradients, by summing the cumulative gradients with, respectively, a positive and a negative sign; and then only cumulative gradients having the sign of the aggregated sign value with the largest magnitude may be communicated.
- each worker may communicate some or all of the trainable parameters of the updated set of trainable parameter values for the worker, from the worker to optimization computer system over the computer network. Then the optimization computer system can determine the cumulative gradient for the communicated trainable parameters. This can also involve selecting, at a worker, a subset of trainable parameters from the updated set of trainable parameter values for the worker, and communicating only the selected subset of the trainable parameters. Again the trainable parameters may be selected in many ways, e.g. comparing each with a threshold value. Again the selected subset may be different for different workers.
- each inner optimization step involves a worker 112 using stochastic gradient descent to adjust (update) the values of the local copy of the trainable parameters, in particular stochastic gradient descent with momentum.
- This can involve maintaining a first momentum variable for each trainable parameter, locally at the worker.
- the first momentum variable comprises a (decaying) moving average, e.g. an exponential moving average, of a gradient used for adjusting the trainable parameter.
- the value of the trainable parameter can then be adjusted by an offset dependent on a value of the first momentum variable.
- the stochastic gradient descent with momentum can comprise the Adam optimization algorithm, or AdamW (Loshchilov et al., 2019).
- Adam and AdamW maintain both first and second momentum variables where the second momentum variable depends on the square of the gradient and is used to adapt the learning rate.
- aggregating the cumulative gradients at each outer optimization step, after H > 50 inner optimization steps also uses a momentum-based approach, but different to that used for the inner optimization step, for stability. This can involve maintaining a second momentum variable (different to the first momentum variable) for each trainable parameter in the shared data store 130, and using this to adjust the respective trainable parameter, in effect by adjusting a relative contribution of previously determined aggregated, e.g. average, cumulative gradients when updating the value of the trainable parameter.
- updating the value of the trainable parameter in the shared data store using the aggregated cumulative gradient for the trainable parameter can involve maintaining, in the shared data store 130, a second momentum variable for the trainable parameter.
- An updated value for the second momentum variable is determined from the aggregated, e.g. average, cumulative gradient for the trainable parameter.
- an updated value of the trainable parameter in the shared data store is determined from the updated value of the second momentum variable.
- the updated value of the second momentum variable is scaled by a factor, e.g. in the range [0,1], that weights an effect of the momentum.
- the updated value for the second momentum variable can be determined from a current value of the trainable parameter and the aggregated, e.g. average, cumulative gradient for the trainable parameter.
- the aggregated, e.g. average, cumulative gradient can be scaled by an outer optimization learning rate parameter, rj.
- the updated value for the second momentum variable can be determined by summing and, optionally scaled, j n some implementations the outer optimization learning rate parameter may be kept constant rather than decayed; i.e. just a learning rate of the inner optimization may be decayed.
- the updated value of the trainable parameter can be determined from a difference between the updated value for the second momentum variable, (optionally scaled), and a current value of the second momentum variable, Depending on how it is evaluated this may involve determining a momentum offset from a difference between a current value of the second momentum variable and the updated value for the second momentum variable.
- the large neural network can comprise a Transformer neural network.
- a Transformer neural network can be characterized by having a succession of attention, e.g. self-attention, neural network layers.
- Each attention neural network layer has an attention layer input for each element of the input and is configured to apply an attention mechanism over the attention layer input to generate an attention layer output for each element of the input.
- the attention mechanism computes a similarity between a query and a set of key-value pairs.
- one or both (in the case of self-attention) of the query and the set of key-value pairs are determined from the attention layer input.
- an input embedding may be used to determine a query vector and a set of key -value vector pairs, that are used to generate an updated embedding comprising a weighted sum of the values, weighted by a similarity function of the query to each respective key.
- the similarity function may comprise, e.g., a dot product, cosine similarity, or other similarity measure; the query, keys, and values may all be vectors.
- the attention mechanism may be configured to apply each of a query transformation e.g. defined by a matrix W Q , a key transformation e.g. defined by a matrix W K , and a value transformation e.g.
- the large neural network comprises a large language model (LLM), e.g. a transformer-based LLM or a large vision language model (VLM), e.g. a transformer-based VLM.
- LLM large language model
- VLM large vision language model
- adjusting the values of the local copy of the trainable parameters in the inner optimization steps can use the AdamW optimization algorithm and, in the outer optimization steps, updating the value of the trainable parameter in the shared data store using the aggregated cumulative gradient for the trainable parameter can use the Nesterov optimization algorithm (Sutskever et al., “On the importance of initialization and momentum in deep learning”, ICML, 2013).
- Use of the Nesterov optimization algorithm also referred to as Nesterov’s Accelerated Gradient (NAG) has been found to be particularly stable and effective, especially for larger values of H, e.g. H > 100, 200, 500, 1000 or 2000.
- the method (and corresponding system) are operated synchronously, i.e. waiting for all the workers to report the cumulative gradients for a trainable parameter before determining the aggregated cumulative gradient for the parameter.
- the method (and corresponding system) may also be operated asynchronously. That is, determining the aggregated cumulative gradient for a trainable parameter at the optimization computer system may be performed without waiting to obtain an updated trainable parameter value or cumulative gradient for the trainable parameter from all of the workers.
- the optimization computer system 150 comprises a shared server coupled to the computer network 120.
- FIG. 3 shows a visualization that outlines an example of a training process as described above.
- the replicas can be in different geographical locations, e.g. different countries; and as indicated by the various TPU and GPU designations, the workers can have different hardware capabilities.
- the model comprises an LLM or VLM
- the input data item can comprise a sequence of tokens
- the target output can comprise the input sequence shifted by one token.
- the training dataset is split across multiple shards, and the ith shard is denoted
- a training process that involves k workers, and that uses an inner optimizer InnerOpt and an outer optimizer OuterOpt, can then be as follows:
- the T-step outer optimization process involves lines 1, 12 and 14, and at each step t gradients from each worker are collected, averaged, and passed to the outer optimizer OuterOpt to update the shared copy of the parameters. Afterwards this shared copy of the parameters is re-dispatched to each local worker (line 3).
- each worker independently and in parallel performs its own inner optimization (lines 4-9) for H, e.g. several hundred, steps, using the inner optimizer InnerOpt.
- Each worker samples data from its own shard (line 5), and updates its own local copy of the trainable parameters (line 8).
- Adam or a variant of Adam, can be used for both the inner and the outer optimizer (in the outer optimizer stability is helped by increasing the numerical stability factor e to 0.1).
- Nesterov momentum in the outer optimizer is particularly helpful for stable learning, especially when H is large.
- an update using Nesterov momentum can involve updating the value of the trainable parameter with respective momentum values before determining a gradient-based update, where the momentum values accumulate previous parameter updates.
- a Nesterov optimizer can first update a momentum variable with a moving average, e.g. an exponential moving average, of its previous momentum and the cumulative or outer gradient.
- the Nesterov optimizer can then compute an update for a trainable parameter using another moving average, e.g. an exponential moving average, of the previously computed momentum and the cumulative or outer gradient.
- a moving average e.g. an exponential moving average
- an update 0 oid to 0 new using Nesterov momentum can be determined as (in the order below):
- a method and system as described above may be used to accelerate a single worker. Nonetheless such a worker can be implemented using, e.g., multiple processing threads, and can run on hardware comprising multiple hardware accelerators such as GPUs or TPUs.
- a computer-implemented method, and a corresponding system for training a large neural network, e.g. having at least 10 7 trainable parameters.
- This can involve maintaining a set of values of the trainable parameters and, at each of a plurality of outer optimization steps, obtaining a copy of the values of the trainable parameters and performing H inner optimization steps on the copy of the values of the trainable parameters, where H is at least 50, to obtain an updated set of trainable parameter values.
- Each inner optimization step can comprise backpropagating gradients of an objective function, evaluated using training data from a training dataset, to adjust the values of the trainable parameters.
- the process can also involve, for each of the plurality of outer optimization steps, determining a cumulative gradient for at least some of the trainable parameters by determining a difference between the value of the trainable parameter in the copy obtained and the value of the parameter after the H inner optimization steps, and updating the value of the trainable parameter in the set of values of the trainable parameters using the cumulative gradient for the trainable parameter.
- FIG. 4 illustrates a result of training a transformer-based large language model neural network (“Chinchilla”) with 150 million parameters on the C4 dataset, for 64,000 training steps, showing the number of training steps on the x-axis and perplexity on the y-axis.
- Curve 410 illustrates training the neural network from scratch, and curves 420, 430, and 440 illustrate fine tuning the neural network after pre-training for 24,000 steps.
- Curves 410, 420, and 430 illustrate training the neural network using conventional techniques, curve 430 using an 8 times larger batch size than curve 420; curve 430.
- the conventional techniques need to communicate gradients at each training step whereas the described technique communicates 500 times less (and is 8 times faster in wall clock time), and also finally reaches better generalization performance.
- FIGS. 5 to 8 relate to training the same transformer-based large language model neural network (“Chinchilla”) with 150 million parameters, on the C4 dataset.
- Chinchilla transformer-based large language model neural network
- FIG. 6 shows the number of training steps on the x-axis and perplexity on the y-axis, and illustrates that the described techniques are robust to varying the number of workers over time.
- curve 600 shows conventional, local model training
- curves 610 to 650 shows examples of the techniques described herein.
- curve 620 illustrates doubling the number of workers (from 4 to 8) halfway through the training;
- curve 630 illustrates halving the number of workers (from 8 to 4) halfway through the training;
- curve 640 illustrates ramping up the number of workers (from 1 to 8) during the training;
- curve 650 illustrates ramping down the number of workers (from 8 to 1) during the training.
- curves 620 and 630 result in final performance, as do curves 640 and 650, illustrating that while the performance depends on the total number of workers, it does not depend much on how the workers, i.e. available compute, is distributed over time.
- FIG. 7 shows the number of training steps on the x-axis and perplexity on the y-axis, and illustrates that the described techniques are robust to poor/asynchronous communications.
- the curves all show examples of the techniques described herein, with curves 700, 710, 720 and 730 showing training for, respectively 0%, 10%, 30%, and 50% communications dropout (randomly dropping outer gradients). Even with 50% dropout, i.e. a 50% probability of dropping an outer gradient, the degradation in perplexity is only 2.1% relative to no dropout.
- FIG. 8 shows the number of training steps on the x-axis and perplexity on the y-axis, and illustrates that the described techniques can provide some performance benefit, even with a single worker.
- curve 800 shows conventional, local model training
- curves 810 shows training as described herein with 8 workers
- a language model neural network is a neural network that has been trained so that, given a text prompt that includes a sequence of tokens in a natural language, the neural network can generate the next token in the sequence. This process can be repeated to extend the text prompt one token at a time to generate a natural language output, i.e., to generate the natural language output auto-regressively token by token.
- the language model neural network processes the current sequence to generate a probability distribution over a vocabulary of tokens. The next token can then be selected using the probability distribution, e.g., by sampling from the distribution using nucleus sampling or another sampling technique or by selecting the highest-probability token.
- the tokens in the vocabulary can include any of a variety of tokens, e.g., some combination of words, sub-words, characters, punctuation and other symbols, and numbers.
- the language model neural network is trained on a corpus of text made up of tokens from the vocabulary (and optionally other tokens that can be mapped to a designated out-of-vocabulary token), to predict the next token in a sequence of tokens from the training data.
- the language model neural network can be trained on greater than 10 billion, 100 billion or 1000 billion words or tokens representing words or other text tokens, e.g., sub-words (also known as “word pieces”).
- sub-words also known as “word pieces”.
- Some large language model neural networks comprise an autoregressive transformer neural network; a transformer-based language model can be an encoder-only model, a decoder- only model or an encoder-decoder model. Some large language model neural network may comprise, e.g. a diffusion model or a mixture-of-experts model.
- a language model neural network can be made to perform a particular task by providing a natural language description of the desired response as an input or “prompt”. Also or instead a language model neural network may be “fine-tuned” to perform a particular task, by obtaining a pre-trained language model neural network trained on a large corpus of examples and then further training part of all of the language model neural network on a relatively small number of examples particular to the type of task that is to be performed.
- VLMs vision language models
- a multimodal machine learning model has a multimodal input configured to receive a first multimodal input and a second multimodal input.
- a “modality” refers to a type of data, and thus a multimodal machine learning model is one that can process multiple different types of data.
- the multimodal input to the model may comprise a mix of inputs of (at least) the first and second modality.
- the first multimodal input may comprise a text input to receive a sequence of text and the second multimodal input may be configured to receive a different type of input data. As one example it may comprise a visual input to receive an image or video. As some other examples the second multimodal input may be configured to receive audio data representing values of an audio waveform, e.g. instantaneous amplitude data or time-frequency domain data; or data representing observations (not necessarily visual) of an environment with which an agent controlled by the multimodal machine learning model interacts.
- an audio waveform e.g. instantaneous amplitude data or time-frequency domain data
- observations not necessarily visual
- the multimodal machine learning model may be configured to jointly process an encoded version of the text and an encoded version of the second multimodal input, e.g. of the image or video, to generate a model output that defines a result of a machine learning task.
- an encoded version of the text e.g. of the image or video
- a model output that defines a result of a machine learning task.
- the text received may comprise text in one or more natural languages, or text in a computer language, or both.
- the computer language may be any formal language used to communicate with a computer, e.g. a markup language, or a command or configuration language, or a data exchange language such as JSON, or a programming language.
- the text may be received, e.g., as a series of encoded characters, e.g. UTF-8 encoded characters; such “characters” can include Chinese and other similar characters, as well as logograms, syllabograms and the like.
- the multimodal machine learning model can include a text encoder that processes the sequence of text to represent the text as a series of text tokens from a vocabulary of text tokens, e.g. that each represent words, wordpieces or characters in a natural or computer language.
- the second multimodal input comprises an image or video it may comprise image data defining color or intensity values for pixels of a still or moving image in one, two, or three dimensions.
- An image can include a LIDAR point cloud, and the image data can define the locations of points of a still or moving point cloud.
- an image or video received by the second multimodal input may comprise a neural 3D representation, e.g. that represents a 3D scene as a set of latent feature vectors, e.g. a neural radiance field representation.
- the multimodal machine learning model can include second multimodal input encoder that processes the second multimodal input, e.g.
- the second multimodal input comprises an image or video this may be encoded, e.g., as features for each of a set of patches that tile the image, or as a sequence of visual tokens selected from a vocabulary of visual tokens, or as a representation of distinct objects in the visual input.
- visual tokens may, but need not be, interleaved with text tokens processed by the model.
- the model output may comprise any form of output appropriate to the machine learning task performed by the multimodal machine learning model.
- the model output may comprises text in a natural or computer language that defines a result of the task, e.g. for tasks such as image captioning, visual question answering, or object detection or instance segmentation.
- the model output may comprise data defining an image, video, or audio object, e.g. in a generative task; or the model output may comprise non-textual action selection data for selecting an action to be performed by an agent controlled by the model.
- the model output may also or instead define an intermediate step to be performed during the task, e.g. a call to a software API for a software tool that is used when performing the task; the multimodal input may then receive an output from the software tool that is used to generate a final model output that performs the task.
- model output may also or instead define an intermediate step to be performed during the task, e.g. a call to a software API for a software tool that is used when performing the task; the multi
- Such a multimodal model can be trained using very large (but possibly noisy) datasets in which text is paired with an image and/or with one or more other types of data, e.g. audio data, or data relating to the operation of an agent acting in an environment to perform a variety of tasks.
- Such a model is can be trained, e.g., using self-supervised learning.
- the pairing can often be imperfect, and the training dataset can, but may not, include any actual examples of a particular task to be performed, but nonetheless an ability to perform a particular task can emerge.
- suitable, publicly available training datasets There are many examples of suitable, publicly available training datasets.
- Some example multimodal machine learning models with which the techniques described herein may be used include: Flamingo (Alayrac et al. arXiv:2204.14198); ALIGN (Jia et al., arXiv:2102.05918); PaLI (Chen et al. arXiv:2209.06794); and PaLLX (Chen et al. arXiv:2305.18565).
- the second multimodal input can include an observation characterizing an environment of an agent performing a task, e.g. a mechanical agent or software agent.
- the observation may characterize the environment at a particular time step and the model output may define one or more actions to be performed by the agent at the time step.
- each action may be expressed as a sequence of text, e.g. as one or more characters such as letters and numbers, that represents the action, or as text that defines a low- level “skill” from a set of skills; or the model output may, e.g., define parameters of a probability distribution from which an action is selected.
- the text received by a text input may include text describing the task to be performed.
- the text input may include a description of one or more actions performed at a preceding time step.
- the agent is a software agent
- the model output may comprise a text output for calling a software API at a time step
- the model input at a subsequent time step e.g. the text input
- multimodal machine learning models controlling an agent are described in: PaLM-E (Driess et al. arXiv:2303.03378); RT-1 (Brohan et al. arXiv:2212.06817); and RT-2 (Brohan et al. arXiv:2307.15818).
- Such a multimodal machine learning model can have an audio input, or an agent action input to receive agent action data representing an action of an agent performing a task in an environment. Data received in this way may be jointly processed with data from a text input and from a second multimodal input to generate the model output.
- Such a multimodal machine learning model has a multimodal input and can, in implementations, perform a range of different tasks. However in implementations not every task that the model performs requires a multimodal input, e.g. a task to generate an image from a text description of the image, or an image captioning task.
- the text input can be used to specify a particular task that is to be performed by the multimodal machine learning model, e.g. by providing a “prompt” to the model describing the task to be performed or giving an example of the task as a prompt to the model. Such prompts may optionally be included in the training data.
- the multimodal machine learning model is configured to process the multimodal input in accordance with the trainable parameters of the multimodal machine learning model, to generate a model output that defines a result of one or more machine learning tasks.
- each training data item comprises multimodal data for use in training the multimodal machine learning model, e.g. using a self-supervised training objective.
- a multimodal machine learning model can also or instead be trained using a reinforcement learning objective, e.g. when the model is used to control an agent to perform a task.
- the model may be trained using a softmax cross entropy loss, e.g. using language model style teacher forcing with a softmax cross entropy loss.
- NLL autoregressive negative log likelihood
- the model may be trained with a masking loss, e.g. a loss that requires the model to predict masked-out data such as masked out text tokens.
- a masking loss e.g. a loss that requires the model to predict masked-out data such as masked out text tokens.
- the multimodal machine learning model can be trained using a self-supervised objective function that comprises a contrastive loss function (one that is dependent upon a positive example and one or more negative examples).
- a contrastive loss function one that is dependent upon a positive example and one or more negative examples.
- Each training data item may comprise, e.g., an example sequence of text and an example of the second modality input, e.g. an example image or video; in general these are semantically related to one another (but not always, as the training dataset may be noisy).
- matched, text and image or video data and may be obtained from web pages, e.g. from images or videos and their corresponding alt-text (text from the HTML or XHTML alt attribute); or from web pages where images or video and text are interleaved with one another.
- One example of such a dataset is WebLI (Web Language Image, Chen et al. arXiv:2305.18565vl). Training datasets for other types of second modality input can similarly be obtained from web pages.
- Such training datasets can be large, e.g. > 10 7 , 10 8 or 10 9 items.
- smaller but more specialized training datasets can be used, e.g. to fine tune a model for a particular task or tasks.
- Visual Genome dataset for Visual Question Answering (Krishna et al., arXiv: 1602.07332); Objects365 (Shao et al., “Objects365: A large-scale, high-quality dataset for object detection”, IEEE/CVF international conference on computer vision, pages 8430-8439); Open Images V4 (Kuznetsova et al., arXiv: 1811.00982); the SBU dataset (Ordonez et al. “Im2Text: Describing Images Using 1 Million Captioned Photographs”, NeurlPS 2011); the Conceptual Captions datasets, e.g.
- a multimodal machine learning model can be trained to perform any sort of machine learning task or tasks. After the multimodal machine learning model has been trained it can be deployed for use in performing the machine learning task(s). For instance, the machine learning model can be deployed in an environment that enables users to provide requests for the machine learning model to process specified multimodal inputs to generate corresponding model outputs. Users can provide the requests, e.g., by way of a user interface or through an application programming interface (API). The requests can be transmitted from a user device (e.g., over a data communication network, e.g., the internet) to one or more computers implementing the machine learning model, e.g., in a data center. The machine learning model can process multimodal inputs specified by user requests to generate corresponding model outputs, and then transmit the model outputs to user devices (e.g., over a data communication network).
- a data communication network e.g., the internet
- a particular task that is to be performed by the multimodal machine learning model can be described by part or all of the sequence of text in the multimodal input to the model.
- a prompt might specify “Generate a caption”, “Generate a description”, “Answer the following question: [about the image, video, or audio item]”, or “Detect a person”.
- a prompt may define “Take the knife out of the drawer”, or “Q: What action should the robot take to take the knife out of the drawer?”.
- such a prompt may give one or more examples of a task to be performed.
- a multimodal machine learning model can be trained on multiple natural and/or computer languages and the prompt may then specify a language to use.
- the second modality input represents an image or video as previously described, e.g. from a camera or other imaging device that captures the image or video from a real-world environment, and/or audio, e.g. audio data such as speech or other sounds captured from a real-world environment.
- the tasks described below may be tasks that require spatial awareness or other context from the image, video, or audio item. For example, a prompt may ask “What is the object in the top left corner?”, or “What was the answer to the spoken question?”.
- the task may comprise an object or action detection task.
- a taskspecific training data item may comprise an image, video, or audio item containing one or more objects or actions, and a sequence of text.
- the sequence of text may describe or otherwise label the object(s) or action(s) and (for an image or video) may include text giving bounding box coordinates for the object(s) or action(s).
- the model output 122 may comprise or represent text that describes or otherwise labels detected object(s) or action(s) in the second modality input, and may (for an image or video) include bounding-box coordinates for the detected object(s) or action(s), e.g. " 10 20 90 100 cat 20 30 100 100 dog”.
- the task may comprise a classification task, e.g. an object or action classification task.
- a task-specific training data item may comprise an image, video, or audio item containing one or more objects or actions and a sequence of text. The sequence of text may describe or otherwise classify the object(s) or action(s).
- the model output may comprise data, e.g. text, that classifies the object(s) or action(s) in the second modality input into one of a plurality of classes.
- the task may comprise an image, video, or audio item describing task, e.g. a captioning task (which, as used here, includes an audio description task to explain what is happening in a video).
- a task-specific training data item may comprise an image, video, or audio item and a sequence of text describing the image, video, or audio item.
- the model output may comprise data, e.g. text, describing an image, video, or audio item in the second modality input.
- the model output may provide a caption or description for a second modality input item, or it may count objects in the second modality input item, or it may provide some other form of description of the second modality input item.
- the task may comprise an image, video, or audio questionanswering task.
- a task-specific training data item may comprise an image, video, or audio item and a sequence of text that describes the image, video, or audio item.
- the model output may comprise data, e.g. text, that answers a question about the second modality input specified in a prompt sequence of text, e.g. as described above. This may be used, e.g., to answer questions about visual plots and charts or about sounds.
- the task may comprise a character or word recognition task, e.g. an OCR (optical character recognition) task.
- a task-specific training data item may comprise an image, video, or audio item and a sequence of text that includes text that is depicted in the image or video, or that is represented as speech in the audio item.
- the model output may comprise text that represents characters or words in the second modality input, e.g. in a natural language.
- the task may comprise a still or moving image or audio generation task.
- a task-specific training data item may comprise an image, video, or audio item and a sequence of text that describes the image, video, or audio item.
- the model output may comprise data for an image, video, or audio item, e.g. image data defining values for pixels of a still or moving image or audio data representing values of an audio waveform, and the sequence of text in the multimodal input to the model may describe or characterize the image, video, or audio item to be generated.
- the task may comprise a computer language text generation task.
- a task-specific training data item may comprise an image, video, or audio item and a sequence of text in a computer language for generating the image, video, or audio item.
- the model output may comprise text in the or another computer language for generating or rendering an image, video, or audio item in the second modality input, e.g. a web page, plot, or chart.
- a task-specific training data item may comprise an image, video, or audio item and a sequence of text in a computer language for performing a task in relation to the image, video, or audio item, e.g. a data processing task that involves analyzing the content of the image, video, or audio item to provide a result of the analysis or, e.g., a search to search for information relating to the content of the image, video, or audio item.
- the computer language in the model output may comprise computer language for invoking a function or calling one or more external APIs.
- such an output may be formatted as a JSON object.
- the sequence of text in the multimodal input may define the task to be performed and the second modality input may comprise, e.g. an image, video, or audio item in relation to which the task is to be performed, e.g. a task that involves manipulation of particular types of data that may benefit from access to an API such as mathematical data, date/time related data, scientific data, recent data that may post-date training of the model (that may be accessed by a search function or API), and so forth.
- the model output may comprise text in the or another computer language for performing a task, e.g. as described above, in relation to an image, video, or audio item in the second modality input.
- the method may then include using the text in the computer language to perform the task.
- model output comprises text this may be provided as speech representing the text.
- the machine learning task comprises an agent control task in which the agent interacts with an environment to perform the agent control task.
- the multimodal input includes an observation characterizing the environment.
- the multimodal input can include a sequence of text that defines the task to be performed by the agent and the second modality input can represents an image, video, audio, or other observation of the environment, e.g. captured by a camera or other imaging device, or by a microphone, from a real-world environment.
- a task-specific training data item may comprise a sequence of text representing one or more actions of the agent, and a second modality input representing an observation of the environment.
- the model output comprises an action selection output, e.g.
- action selection output may also or instead define one or more low-level skills, e.g. from a vocabulary of previously learnt skills.
- the sequence of text in the multimodal input to the model may describe the task to be performed, e.g. “What action should the robot take to [perform task]”.
- the environment is a real-world environment and the agent is a mechanical agent interacting with the real-world environment, e.g., a robot or an autonomous or semi-autonomous land, air, or sea vehicle operating in or navigating through the environment, and the actions are actions taken by the mechanical agent in the real- world environment to perform the task.
- the agent may be a robot or other mechanical agent interacting with the environment to accomplish a specific task, e.g., to locate or manipulate an object of interest in the environment or to move an object of interest to a specified location in the environment or to navigate to a specified destination in the environment.
- the observations may include, e.g., one or more of: images, object position data, and sensor data to capture observations as the agent interacts with the environment.
- the actions may define control signals to control the robot or other mechanical agent, e.g., positions, torques, or other control signals for the parts of the mechanical agent, or higher-level control commands.
- the agent can be a software agent, i.e. a computer program, configured to perform a task.
- a software agent i.e. a computer program
- the environment may be an integrated circuit design and the task may be a routing task for routing interconnection lines of the integrated circuit.
- the observations may be of component positions and/or interconnections, and the actions may comprise component placing or interconnect routing actions.
- An integrated circuit with interconnection lines routed as determined may then be fabricated.
- the environment may be a real-world computing environment and the task may be to manage the distribution of jobs or tasks across computing resources e.g. on a mobile device and/or in a data center.
- the observations may include observations of computing resources such as compute or memory capacity, or Internet-accessible resources, or that relate to the operation of the computing resources in processing the jobs or tasks; and the actions may include assigning jobs or tasks to particular computing resources.
- the environment may be a real-world computing environment and the task is to manage the processing, e.g. by one or more real-world servers, of a queue of continuously arriving jobs.
- the observations may comprise observations of the times of departures of successive jobs, or the time intervals between the departures of successive jobs, or the time a server takes to process each job, or the arrival times, or time intervals between the arrivals, of successive jobs, or data characterizing the type of job(s).
- the actions may comprise actions that allocate particular jobs to particular computing resources.
- the environment may comprise a real-world computer system or network and the task may be to maintain security of the computer system or network.
- the observations may comprise any observations characterizing operation of the computer system or network, and the actions may comprise actions to control the operation e.g. to limit or correct abnormal or undesired operation e.g. because of the presence of a virus or other security breach.
- the environment may comprise a data packet communications network environment, and the task may be to route packets of data over the communications network.
- the actions may comprise data packet routing actions and the observations may comprise, e.g., observations of a routing table which includes routing metrics such as a metric of routing path length, bandwidth, load, hop count, path cost, delay, maximum transmission unit (MTU), and reliability.
- MTU maximum transmission unit
- the agent may be a human agent and the environment may be a real -world environment.
- the agent can be a human user of a digital assistant such as a smart speaker, smart display, or some other device that is used to instruct the user to perform actions.
- the task may be any real-world task that the user wishes to perform.
- the observations may be obtained from an observation capture subsystem, e.g. a monitoring system such as a video camera or sound capture system, to capture visual and/or audio observations of the user performing the task.
- the actions may comprise instructions in the form of, e.g., text, image, video, or audio data such as speech, that guide the user in performing the task.
- the term “configured” is used in relation to computing systems and environments, as well as computer program components.
- a computing system or environment is considered “configured” to perform specific operations or actions when it possesses the necessary software, firmware, hardware, or a combination thereof, enabling it to carry out those operations or actions during operation.
- configuring a system might involve installing a software library with specific algorithms, updating firmware with new instructions for handling data, or adding a hardware component for enhanced processing capabilities.
- one or more computer programs are “configured” to perform particular operations or actions when they contain instructions that, upon execution by a computing device or hardware, cause the device to perform those intended operations or actions.
- the embodiments and functional operations described in this specification can be implemented in various forms, including digital electronic circuitry, software, firmware, computer hardware (encompassing the disclosed structures and their structural equivalents), or any combination thereof.
- the subject matter can be realized as one or more computer programs, essentially modules of computer program instructions encoded on a tangible non-transitory storage medium for execution by or to control the operation of a computing device or hardware.
- the storage medium can be a storage device such as a hard drive or solid-state drive (SSD), a storage medium, a random or serial access memory device, or a combination of these.
- the program instructions can be encoded on a transmitted signal, such as a machine-generated electrical, optical, or electromagnetic signal, designed to carry information for transmission to a receiving device or system for execution by a computing device or hardware.
- a transmitted signal such as a machine-generated electrical, optical, or electromagnetic signal
- implementations may leverage emerging technologies like quantum computing or neuromorphic computing for specific applications, and may be deployed in distributed or cloud-based environments where components reside on different machines or within a cloud infrastructure.
- computing device or hardware refers to the physical components involved in data processing and encompasses all types of devices and machines used for this purpose. Examples include processors or processing units, computers, multiple processors or computers working together, graphics processing units (GPUs), tensor processing units (TPUs), and specialized processing hardware such as field-programmable gate arrays (FPGAs) or application-specific integrated circuits (ASICs).
- a computing device or hardware may also include code that creates an execution environment for computer programs. This code can take the form of processor firmware, a protocol stack, a database management system, an operating system, or a combination of these elements.
- Embodiments may particularly benefit from utilizing the parallel processing capabilities of GPUs, in a General-Purpose computing on Graphics Processing Units (GPGPU) context, where code specifically designed for GPU execution, often called kernels or shaders, is employed.
- GPGPU Graphics Processing Unit
- TPUs excel at running optimized tensor operations crucial for many machine learning algorithms.
- the system can achieve significant speedups and efficiency gains for tasks involving artificial intelligence and machine learning, particularly in areas such as computer vision, natural language processing, and robotics.
- a computer program also referred to as software, an application, a module, a script, code, or simply a program
- a program may or may not correspond to a single file in a file system and can be stored in various ways. This includes being embedded within a file containing other programs or data (e.g., scripts within a markup language document), residing in a dedicated file, or distributed across multiple coordinated files (e.g., files storing modules, subprograms, or code segments).
- a computer program can be executed on a single computer or across multiple computers, whether located at a single site or distributed across multiple sites and interconnected through a data communication network.
- the specific implementation of the computer programs may involve a combination of traditional programming languages and specialized languages or libraries designed for GPGPU programming or TPU utilization, depending on the chosen hardware platform and desired performance characteristics.
- engine broadly refers to a software-based system, subsystem, or process designed to perform one or more specific functions.
- An engine is typically implemented as one or more software modules or components installed on one or more computers, which can be located at a single site or distributed across multiple locations. In some instances, one or more dedicated computers may be used for a particular engine, while in other cases, multiple engines may operate concurrently on the same one or more computers. Examples of engine functions within the context of Al and machine learning could include data pre-processing and cleaning, feature engineering and extraction, model training and optimization, inference and prediction generation, and post-processing of results. The specific design and implementation of engines will depend on the overall architecture and the distribution of computational tasks across various hardware components, including CPUs, GPUs, TPUs, and other specialized processors.
- GPUs graphics processing units
- TPUs tensor processing units
- This approach offers significant advantages for computationally intensive tasks often found in Al and machine learning applications, such as matrix multiplications, convolutions, and other operations that exhibit a high degree of parallelism.
- FPGAs field-programmable gate arrays
- ASICs application-specific integrated circuits
- Computers capable of executing a computer program can be based on general-purpose microprocessors, special-purpose microprocessors, or a combination of both. They can also utilize any other type of central processing unit (CPU). Additionally, graphics processing units (GPUs), tensor processing units (TPUs), and other machine learning accelerators can be employed to enhance performance, particularly for tasks involving artificial intelligence and machine learning. These accelerators often work in conjunction with CPUs, handling specialized computations while the CPU manages overall system operations and other tasks. Typically, a CPU receives instructions and data from read-only memory (ROM), random access memory (RAM), or both.
- the essential elements of a computer include a CPU for executing instructions and one or more memory devices for storing instructions and data.
- processing units and memory will depend on factors like the complexity of the Al model, the volume of data being processed, and the desired performance and latency requirements.
- Embodiments can be implemented on a wide range of computing platforms, from small embedded devices with limited resources to large-scale data center systems with high-performance computing capabilities.
- the system may include storage devices like hard drives, SSDs, or flash memory for persistent data storage.
- Computer-readable media suitable for storing computer program instructions and data encompass all forms of non-volatile memory, media, and memory devices. Examples include semiconductor memory devices such as read-only memory (ROM), solid-state drives (SSDs), and flash memory devices; hard disk drives (HDDs); optical media; and optical discs such as CDs, DVDs, and Blu-ray discs.
- semiconductor memory devices such as read-only memory (ROM), solid-state drives (SSDs), and flash memory devices
- HDDs hard disk drives
- optical media such as CDs, DVDs, and Blu-ray discs.
- the specific type of computer-readable media used will depend on factors such as the size of the data, access speed requirements, cost considerations, and the desired level of portability or permanence.
- embodiments of the subject matter described in this specification can be implemented on a computing device equipped with a display device, such as a liquid crystal display (LCD) or an organic light-emitting diode (OLED) display, for presenting information to the user.
- a display device such as a liquid crystal display (LCD) or an organic light-emitting diode (OLED) display
- Input can be provided by the user through various means, including a keyboard), touchscreens, voice commands, gesture recognition, or other input modalities depending on the specific device and application.
- Additional input methods can include acoustic, speech, or tactile input, while feedback to the user can take the form of visual, auditory, or tactile feedback.
- computers can interact with users by exchanging documents with a user's device or application. This can involve sending web content or data in response to requests or sending and receiving text messages or other forms of messages through mobile devices or messaging platforms. The selection of input and output modalities will depend on the specific application and the desired form of user interaction.
- Machine learning models can be implemented and deployed using machine learning frameworks, such as TensorFlow or JAX. These frameworks offer comprehensive tools and libraries that facilitate the development, training, and deployment of machine learning models.
- Embodiments of the subject matter described in this specification can be implemented within a computing system comprising one or more components, depending on the specific application and requirements. These may include a back-end component, such as a back-end server or cloud-based infrastructure; an optional middleware component, such as a middleware server or application programming interface (API), to facilitate communication and data exchange; and a front-end component, such as a client device with a user interface, a web browser, or an app, through which a user can interact with the implemented subject matter.
- a back-end component such as a back-end server or cloud-based infrastructure
- middleware component such as a middleware server or application programming interface (API)
- API application programming interface
- a front-end component such as a client device with a user interface, a web browser, or an app,
- the described functionality could be implemented solely on a client device (e.g., for on-device machine learning) or deployed as a combination of front-end and back-end components for more complex applications.
- client device e.g., for on-device machine learning
- back-end components for more complex applications.
- These components when present, can be interconnected using any form or medium of digital data communication, such as a communication network like a local area network (LAN) or a wide area network (WAN) including the Internet.
- LAN local area network
- WAN wide area network
- the specific system architecture and choice of components will depend on factors such as the scale of the application, the need for real-time processing, data security requirements, and the desired user experience.
- the computing system can include clients and servers that may be geographically separated and interact through a communication network.
- the specific type of network such as a local area network (LAN), a wide area network (WAN), or the Internet, will depend on the reach and scale of the application.
- the client-server relationship is established through computer programs running on the respective computers and designed to communicate with each other using appropriate protocols. These protocols may include HTTP, TCP/IP, or other specialized protocols depending on the nature of the data being exchanged and the security requirements of the system.
- a server transmits data or instructions to a user's device, such as a computer, smartphone, or tablet, acting as a client.
- the client device can then process the received information, display results to the user, and potentially send data or feedback back to the server for further processing or storage. This allows for dynamic interactions between the user and the system, enabling a wide range of applications and functionalities.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202363598463P | 2023-11-13 | 2023-11-13 | |
| PCT/EP2024/081768 WO2025103909A1 (en) | 2023-11-13 | 2024-11-08 | Distributed training of large neural networks |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP4609322A1 true EP4609322A1 (en) | 2025-09-03 |
Family
ID=93521710
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP24805774.7A Pending EP4609322A1 (en) | 2023-11-13 | 2024-11-08 | Distributed training of large neural networks |
Country Status (2)
| Country | Link |
|---|---|
| EP (1) | EP4609322A1 (en) |
| WO (1) | WO2025103909A1 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN121459079B (en) * | 2026-01-05 | 2026-03-13 | 之江实验室 | Control method, device, equipment and medium for training image classification model |
-
2024
- 2024-11-08 WO PCT/EP2024/081768 patent/WO2025103909A1/en active Pending
- 2024-11-08 EP EP24805774.7A patent/EP4609322A1/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| WO2025103909A1 (en) | 2025-05-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Le | A tutorial on deep learning part 1: Nonlinear classifiers and the backpropagation algorithm | |
| CN111368993A (en) | Data processing method and related equipment | |
| WO2020160252A1 (en) | Task-aware neural network architecture search | |
| WO2025104314A1 (en) | Training image processing neural networks using cross-modal alignment | |
| WO2020104499A1 (en) | Action classification in video clips using attention-based neural networks | |
| US20230196128A1 (en) | Information processing method, apparatus, electronic device, storage medium and program product | |
| JP2022534890A (en) | Image processing method and apparatus, electronic equipment and storage medium | |
| CN111639186A (en) | Multi-class multi-label text classification model and device dynamically embedded with projection gate | |
| KR20230141828A (en) | Neural networks using adaptive gradient clipping | |
| WO2025166256A1 (en) | Generation of an output token sequence from an input token sequence using two language model neural networks | |
| WO2025099201A1 (en) | Training multimodal machine learning models to perform a task using noisy training datasets | |
| EP4609322A1 (en) | Distributed training of large neural networks | |
| WO2024124133A1 (en) | Video-text modeling with zero-shot transfer from contrastive captioners | |
| WO2025166361A1 (en) | Mutual alignment vector quantization | |
| CN111373416A (en) | Enhancing security of neural networks through discrete neural network inputs | |
| WO2025166364A1 (en) | Generating outputs using a trained model and a task-specific model | |
| WO2025068601A1 (en) | Evolving prompts for neural networks | |
| CN116868203A (en) | Neural network using adaptive gradient clipping | |
| EP4726574A1 (en) | Location-aware machine-learning models | |
| US20250371850A1 (en) | Training image representation neural networks using cross-modal interfaces | |
| US20260093990A1 (en) | Alignment of neural networks using architectural modifications and training examples | |
| US12469186B2 (en) | Systems and methods for generating multimodal data using a single-tower architecture with a data generation subsystem | |
| KR102954900B1 (en) | System and method for generating multimodal data using a single tower architecture having a data generation subsystem | |
| US20250348980A1 (en) | Processing multi-modal inputs using denoising neural networks | |
| US20260093982A1 (en) | Efficient decoding of output sequences using parameter sharing |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20250527 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC ME MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: GDM HOLDING LLC |