code: def big_rnn_lm_2048_512(dataset_name=None, vocab=None, pretrained=False, ctx=cpu(),
                          root=os.path.join(get_home_dir(), 'models'), **kwargs):
      r
      predefined_args = {'embed_size': 512,
                         'hidden_size': 2048,
                         'projection_size': 512,
                         'num_layers': 1,
                         'embed_dropout': 0.1,
                         'encode_dropout': 0.1}
      mutable_args = ['embed_dropout', 'encode_dropout']
      assert all((k not in kwargs or k in mutable_args) for k in predefined_args), \
             'Cannot override predefined model settings.'
      predefined_args.update(kwargs)
      return _get_rnn_model(BigRNN, 'big_rnn_lm_2048_512', dataset_name, vocab, pretrained,
                            ctx, root, **predefined_args)
docs: r"""Big 1-layer LSTMP language model.
  
      Both embedding and projection size are 512. Hidden size is 2048.
  
      Parameters
      ----------
      dataset_name : str or None, default None
          The dataset name on which the pre-trained model is trained.
          Options are 'gbw'. If specified, then the returned vocabulary is extracted from
          the training set of the dataset.
          If None, then vocab is required, for specifying embedding weight size, and is directly
          returned.
          The pre-trained model achieves 44.05 ppl on Test of GBW dataset.
      vocab : gluonnlp.Vocab or None, default None
          Vocabulary object to be used with the language model.
          Required when dataset_name is not specified.
      pretrained : bool, default False
          Whether to load the pre-trained weights for model.
      ctx : Context, default CPU
          The context in which to load the pre-trained weights.
      root : str, default '$MXNET_HOME/models'
          Location for keeping the model parameters.
          MXNET_HOME defaults to '~/.mxnet'.
  
      Returns
      -------
      gluon.Block, gluonnlp.Vocab