Keras 3 API documentation / KerasNLP / Models / Albert / AlbertTokenizer

AlbertTokenizer

[source]

AlbertTokenizer class

keras_nlp.models.AlbertTokenizer(proto, **kwargs)

ALBERT tokenizer layer based on SentencePiece.

This tokenizer class will tokenize raw strings into integer sequences and is based on keras_nlp.tokenizers.SentencePieceTokenizer. Unlike the underlying tokenizer, it will check for all special tokens needed by ALBERT models and provides a from_preset() method to automatically download a matching vocabulary for a ALBERT preset.

This tokenizer does not provide truncation or padding of inputs. It can be combined with a keras_nlp.models.AlbertPreprocessor layer for input packing.

If input is a batch of strings (rank > 0), the layer will output a tf.RaggedTensor where the last dimension of the output is ragged.

If input is a scalar string (rank == 0), the layer will output a dense tf.Tensor with static shape [None].

Arguments

  • proto: Either a string path to a SentencePiece proto file, or a bytes object with a serialized SentencePiece proto. See the SentencePiece repository for more details on the format.

Examples

# Unbatched input.
tokenizer = keras_nlp.models.AlbertTokenizer.from_preset(
    "albert_base_en_uncased",
)
tokenizer("The quick brown fox jumped.")

# Batched input.
tokenizer(["The quick brown fox jumped.", "The fox slept."])

# Detokenization.
tokenizer.detokenize(tokenizer("The quick brown fox jumped."))

# Custom vocabulary.
bytes_io = io.BytesIO()
ds = tf.data.Dataset.from_tensor_slices(["The quick brown fox jumped."])
sentencepiece.SentencePieceTrainer.train(
    sentence_iterator=ds.as_numpy_iterator(),
    model_writer=bytes_io,
    vocab_size=10,
    model_type="WORD",
    pad_id=0,
    unk_id=1,
    bos_id=2,
    eos_id=3,
    pad_piece="<pad>",
    unk_piece="<unk>",
    bos_piece="[CLS]",
    eos_piece="[SEP]",
    user_defined_symbols="[MASK]",
)
tokenizer = keras_nlp.models.AlbertTokenizer(
    proto=bytes_io.getvalue(),
)
tokenizer("The quick brown fox jumped.")

[source]

from_preset method

AlbertTokenizer.from_preset()

Instantiate AlbertTokenizer tokenizer from preset vocabulary.

Arguments

  • preset: string. Must be one of "albert_base_en_uncased", "albert_large_en_uncased", "albert_extra_large_en_uncased", "albert_extra_extra_large_en_uncased".

Examples

# Load a preset tokenizer.
tokenizer = AlbertTokenizer.from_preset("albert_base_en_uncased")

# Tokenize some input.
tokenizer("The quick brown fox tripped.")

# Detokenize some input.
tokenizer.detokenize([5, 6, 7, 8, 9])
Preset name Parameters Description
albert_base_en_uncased 11.68M 12-layer ALBERT model where all input is lowercased. Trained on English Wikipedia + BooksCorpus.
albert_large_en_uncased 17.68M 24-layer ALBERT model where all input is lowercased. Trained on English Wikipedia + BooksCorpus.
albert_extra_large_en_uncased 58.72M 24-layer ALBERT model where all input is lowercased. Trained on English Wikipedia + BooksCorpus.
albert_extra_extra_large_en_uncased 222.60M 12-layer ALBERT model where all input is lowercased. Trained on English Wikipedia + BooksCorpus.