A computer-implemented method, comprising: at a server holding a copy of a machine learning model: receiving, from at least one worker (104, 106) of a plurality of workers (104, 106) each having its own training data and arranged to locally compute feedback data generated by training the machine learning model based on its own training data and at previous values of a set of parameters of the machine learning model which it received from the server, feedback data associated with the previous values of the set of parameters; determining differences between the previous values and current values of the set of parameters; and updating the current values based on the feedback data and the differences to obtain updated values of the set of the parameters, wherein the updating comprises performing asynchronous stochastic gradient descent updates, each asynchronous update being triggered by receiving the feedback data from one of the plurality of workers, wherein the feedback data indicates significant trends of change of an optimization objective of the machine learning model with respect to the previous values of the set of parameters, wherein the significant trends of change are represented by a gradient of the optimization objective with respect to the previous values of the set of parameters, and wherein updating the current values based on the feedback data and the differences to obtain the updated values of the set of the parameters comprises updating the parameters by update amounts which are determined by the gradient of the optimization objective, the differences between the previous values and the current values, a learning rate and a compensating term for any delay of the gradient, wherein the compensating term is determined from a vector formed by the square of the absolute value for each element in the gradient and the product of the learning rate and a controlling parameter. at a server holding a copy of a machine learning model: receiving, from at least one worker (104, 106) of a plurality of workers (104, 106) each having its own training data and arranged to locally compute feedback data generated by training the machine learning model based on its own training data and at previous values of a set of parameters of the machine learning model which it received from the server, feedback data associated with the previous values of the set of parameters; determining differences between the previous values and current values of the set of parameters; and updating the current values based on the feedback data and the differences to obtain updated values of the set of the parameters, receiving, from at least one worker (104, 106) of a plurality of workers (104, 106) each having its own training data and arranged to locally compute feedback data generated by training the machine learning model based on its own training data and at previous values of a set of parameters of the machine learning model which it received from the server, feedback data associated with the previous values of the set of parameters; determining differences between the previous values and current values of the set of parameters; and updating the current values based on the feedback data and the differences to obtain updated values of the set of the parameters, wherein the updating comprises performing asynchronous stochastic gradient descent updates, each asynchronous update being triggered by receiving the feedback data from one of the plurality of workers, wherein the feedback data indicates significant trends of change of an optimization objective of the machine learning model with respect to the previous values of the set of parameters, wherein the significant trends of change are represented by a gradient of the optimization objective with respect to the previous values of the set of parameters, and wherein updating the current values based on the feedback data and the differences to obtain the updated values of the set of the parameters comprises updating the parameters by update amounts which are determined by the gradient of the optimization objective, the differences between the previous values and the current values, a learning rate and a compensating term for any delay of the gradient, wherein the compensating term is determined from a vector formed by the square of the absolute value for each element in the gradient and the product of the learning rate and a controlling parameter.