code: def forward_backward(self, x):
          
          with mx.autograd.record():
              (ls, next_sentence_label, classified, masked_id, decoded, \
               masked_weight, ls1, ls2, valid_length) = forward(x, self._model, self._mlm_loss,
                                                                self._nsp_loss, self._vocab_size,
                                                                args.dtype)
              ls = ls / self._rescale_factor
          if args.dtype == 'float16':
              self._trainer.backward(ls)
          else:
              ls.backward()
          return ls, next_sentence_label, classified, masked_id, decoded, \
                 masked_weight, ls1, ls2, valid_length
docs: forward backward implementation