<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def make_update(model, docs, optimizer, drop=0.0, objective="L2"):
 """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. """

    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)