Static BERT BASE model.

    The number of layers (L) is 12, number of units (H) is 768, and the
    number of self-attention heads (A) is 12.

    Parameters
    ----------
    dataset_name : str or None, default None
        Options include 'book_corpus_wiki_en_cased', 'book_corpus_wiki_en_uncased',
        'wiki_cn_cased', 'wiki_multilingual_uncased' and 'wiki_multilingual_cased'.
    vocab : gluonnlp.vocab.BERTVocab or None, default None
        Vocabulary for the dataset. Must be provided if dataset is not specified.
    pretrained : bool, default True
        Whether to load the pretrained weights for model.
    ctx : Context, default CPU
        The context in which to load the pretrained weights.
    root : str, default '$MXNET_HOME/models'
        Location for keeping the model parameters.
        MXNET_HOME defaults to '~/.mxnet'.
    use_pooler : bool, default True
        Whether to include the pooler which converts the encoded sequence tensor of shape
        (batch_size, seq_length, units) to a tensor of shape (batch_size, units)
        for for segment level classification task.
    use_decoder : bool, default True
        Whether to include the decoder for masked language model prediction.
    use_classifier : bool, default True
        Whether to include the classifier for next sentence classification.
    input_size : int, default None
        Represents the embedding size of the input.
    seq_length : int, default None
        Stands for the sequence length of the input.

    Returns
    -------
    StaticBERTModel, gluonnlp.vocab.BERTVocab

def bert_12_768_12(dataset_name=None, vocab=None, pretrained=True, ctx=mx.cpu(),
                   root=os.path.join(get_home_dir(), 'models'), use_pooler=True,
                   use_decoder=True, use_classifier=True, input_size=None, seq_length=None,
                   **kwargs):
    """Static BERT BASE model.

    The number of layers (L) is 12, number of units (H) is 768, and the
    number of self-attention heads (A) is 12.

    Parameters
    ----------
    dataset_name : str or None, default None
        Options include 'book_corpus_wiki_en_cased', 'book_corpus_wiki_en_uncased',
        'wiki_cn_cased', 'wiki_multilingual_uncased' and 'wiki_multilingual_cased'.
    vocab : gluonnlp.vocab.BERTVocab or None, default None
        Vocabulary for the dataset. Must be provided if dataset is not specified.
    pretrained : bool, default True
        Whether to load the pretrained weights for model.
    ctx : Context, default CPU
        The context in which to load the pretrained weights.
    root : str, default '$MXNET_HOME/models'
        Location for keeping the model parameters.
        MXNET_HOME defaults to '~/.mxnet'.
    use_pooler : bool, default True
        Whether to include the pooler which converts the encoded sequence tensor of shape
        (batch_size, seq_length, units) to a tensor of shape (batch_size, units)
        for for segment level classification task.
    use_decoder : bool, default True
        Whether to include the decoder for masked language model prediction.
    use_classifier : bool, default True
        Whether to include the classifier for next sentence classification.
    input_size : int, default None
        Represents the embedding size of the input.
    seq_length : int, default None
        Stands for the sequence length of the input.

    Returns
    -------
    StaticBERTModel, gluonnlp.vocab.BERTVocab
    """
    return get_static_bert_model(model_name='bert_12_768_12', vocab=vocab,
                                 dataset_name=dataset_name, pretrained=pretrained, ctx=ctx,
                                 use_pooler=use_pooler, use_decoder=use_decoder,
                                 use_classifier=use_classifier, root=root, input_size=input_size,
                                 seq_length=seq_length, **kwargs)