code: def make_update(model, docs, optimizer, drop=0.0, objective="L2"):
      
      predictions, backprop = model.begin_update(docs, drop=drop)
      loss, gradients = get_vectors_loss(model.ops, docs, predictions, objective)
      backprop(gradients, sgd=optimizer)
      # Don't want to return a cupy object here
      # The gradients are modified in-place by the BERT MLM,
      # so we get an accurate loss
      return float(loss)
docs: Perform an update over a single batch of documents.
  
      docs (iterable): A batch of `Doc` objects.
      drop (float): The droput rate.
      optimizer (callable): An optimizer.
      RETURNS loss: A float for the loss.