T5GemmaTokenizer

[源代码]

T5GemmaTokenizer

keras_hub.tokenizers.T5GemmaTokenizer(proto, **kwargs)

基于 SentencePiece 的 T5Gemma 分词器层。

这个分词器类会将原始字符串分词为整数序列,并且基于 keras_hub.tokenizers.SentencePieceTokenizer。与底层分词器不同的是,它会检查 T5Gemma 模型所需的所有特殊 token,并提供一个 from_preset() 方法来自动下载匹配的 T5Gemma 预设模型词汇表。

如果输入是一批字符串(秩 > 0),该层将输出一个 tf.RaggedTensor,其中输出的最后一个维度是不规则的。

如果输入是标量字符串(秩 == 0),该层将输出一个具有静态形状 [None] 的密集 tf.Tensor

参数

  • proto: SentencePiece proto 文件的 string 路径,或序列化 SentencePiece proto 的 bytes 对象。有关格式的更多详细信息,请参阅 SentencePiece 仓库

示例

import io
import tensorflow as tf
import sentencepiece

# Unbatched input.
tokenizer = keras_hub.models.T5GemmaTokenizer.from_preset(
    "t5gemma_b_b_prefixlm_it"
)
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=8,
    model_type="WORD",
    pad_id=0,
    bos_id=1,
    eos_id=2,
    unk_id=3,
    pad_piece="<pad>",
    bos_piece="<bos>",
    eos_piece="<eos>",
    unk_piece="<unk>",
)
tokenizer = keras_hub.models.T5GemmaTokenizer(
    proto=bytes_io.getvalue(),
)
tokenizer("The quick brown fox jumped.")

[源代码]

from_preset 方法

T5GemmaTokenizer.from_preset(preset, config_file="tokenizer.json", **kwargs)

从模型预设实例化一个 keras_hub.models.Tokenizer

预设是一个包含配置、权重和其他文件资产的目录,用于保存和加载预训练模型。preset 可以作为以下之一传递:

  1. 一个内置的预设标识符,如 'bert_base_en'
  2. 一个 Kaggle Models 句柄,如 'kaggle://user/bert/keras/bert_base_en'
  3. 一个 Hugging Face 句柄,如 'hf://user/bert_base_en'
  4. 一个本地预设目录的路径,如 './bert_base_en'

对于任何 Tokenizer 子类,您都可以运行 cls.presets.keys() 来列出该类上所有可用的内置预设。

此构造函数可以通过两种方式调用。一种是像 keras_hub.models.Tokenizer.from_preset() 那样从基类调用,另一种是像 keras_hub.models.GemmaTokenizer.from_preset() 那样从模型类调用。如果从基类调用,返回对象的子类将根据预设目录中的配置进行推断。

参数

  • preset:字符串。一个内置预设标识符、一个 Kaggle Models 句柄、一个 Hugging Face 句柄或一个本地目录的路径。
  • load_weights:布尔值。如果为 `True`,权重将被加载到模型架构中。如果为 `False`,权重将被随机初始化。

示例

# Load a preset tokenizer.
tokenizer = keras_hub.tokenizer.Tokenizer.from_preset("bert_base_en")

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

# Detokenize some input.
tokenizer.detokenize([5, 6, 7, 8, 9])
预设 参数 描述
t5gemma_s_s_ul2 312.52M T5Gemma S/S 模型,具有小型编码器和小型解码器,被适配为 UL2 模型。
t5gemma_s_s_prefixlm 312.52M T5Gemma S/S 模型,具有小型编码器和小型解码器,被适配为前缀语言模型。
t5gemma_s_s_ul2_it 312.52M T5Gemma S/S 模型,具有小型编码器和小型解码器,被适配为 UL2 模型,并进行了指令遵循微调。
t5gemma_s_s_prefixlm_it 312.52M T5Gemma S/S 模型,具有小型编码器和小型解码器,被适配为前缀语言模型,并进行了指令遵循微调。
t5gemma_b_b_ul2 591.49M T5Gemma B/B 模型,具有基础编码器和基础解码器,被适配为 UL2 模型。
t5gemma_b_b_prefixlm 591.49M T5Gemma B/B 模型,具有基础编码器和基础解码器,被适配为前缀语言模型。
t5gemma_b_b_ul2_it 591.49M T5Gemma B/B 模型,具有基础编码器和基础解码器,被适配为 UL2 模型,并进行了指令遵循微调。
t5gemma_b_b_prefixlm_it 591.49M T5Gemma B/B 模型,具有基础编码器和基础解码器,被适配为前缀语言模型,并进行了指令遵循微调。
t5gemma_l_l_ul2 1.24B T5Gemma L/L 模型,具有大型编码器和大型解码器,被适配为 UL2 模型。
t5gemma_l_l_prefixlm 1.24B T5Gemma L/L 模型,具有大型编码器和大型解码器,被适配为前缀语言模型。
t5gemma_l_l_ul2_it 1.24B T5Gemma L/L 模型,具有大型编码器和大型解码器,被适配为 UL2 模型,并进行了指令遵循微调。
t5gemma_l_l_prefixlm_it 1.24B T5Gemma L/L 模型,具有大型编码器和大型解码器,被适配为前缀语言模型,并进行了指令遵循微调。
t5gemma_ml_ml_ul2 2.20B T5Gemma ML/ML 模型,具有中大型编码器和中大型解码器,被适配为 UL2 模型。
t5gemma_ml_ml_prefixlm 2.20B T5Gemma ML/ML 模型,具有中大型编码器和中大型解码器,被适配为前缀语言模型。
t5gemma_ml_ml_ul2_it 2.20B T5Gemma ML/ML 模型,具有中大型编码器和中大型解码器,被适配为 UL2 模型,并进行了指令遵循微调。
t5gemma_ml_ml_prefixlm_it 2.20B T5Gemma ML/ML 模型,具有中大型编码器和中大型解码器,被适配为前缀语言模型,并进行了指令遵循微调。
t5gemma_xl_xl_ul2 3.77B T5Gemma XL/XL 模型,具有超大型编码器和超大型解码器,被适配为 UL2 模型。
t5gemma_xl_xl_prefixlm 3.77B T5Gemma XL/XL 模型,具有超大型编码器和超大型解码器,被适配为前缀语言模型。
t5gemma_xl_xl_ul2_it 3.77B T5Gemma XL/XL 模型,具有超大型编码器和超大型解码器,被适配为 UL2 模型,并进行了指令遵循微调。
t5gemma_xl_xl_prefixlm_it 3.77B T5Gemma XL/XL 模型,具有超大型编码器和超大型解码器,被适配为前缀语言模型,并进行了指令遵循微调。
t5gemma_2b_2b_ul2 5.60B T5Gemma 2B/2B 模型,具有 20 亿参数的编码器和 20 亿参数的解码器,被适配为 UL2 模型。
t5gemma_2b_2b_prefixlm 5.60B T5Gemma 2B/2B 模型,具有 20 亿参数的编码器和 20 亿参数的解码器,被适配为前缀语言模型。
t5gemma_2b_2b_ul2_it 5.60B T5Gemma 2B/2B 模型,具有 20 亿参数的编码器和 20 亿参数的解码器,被适配为 UL2 模型,并进行了指令遵循微调。
t5gemma_2b_2b_prefixlm_it 5.60B T5Gemma 2B/2B 模型,具有 20 亿参数的编码器和 20 亿参数的解码器,被适配为前缀语言模型,并进行了指令遵循微调。
t5gemma_9b_2b_ul2 12.29B T5Gemma 9B/2B 模型,具有 90 亿参数的编码器和 20 亿参数的解码器,被适配为 UL2 模型。
t5gemma_9b_2b_prefixlm 12.29B T5Gemma 9B/2B 模型,具有 90 亿参数的编码器和 20 亿参数的解码器,被适配为前缀语言模型。
t5gemma_9b_2b_ul2_it 12.29B T5Gemma 9B/2B 模型,具有 90 亿参数的编码器和 20 亿参数的解码器,被适配为 UL2 模型,并进行了指令遵循微调。
t5gemma_9b_2b_prefixlm_it 12.29B T5Gemma 9B/2B 模型,具有 90 亿参数的编码器和 20 亿参数的解码器,被适配为前缀语言模型,并进行了指令遵循微调。
t5gemma_9b_9b_ul2 20.33B T5Gemma 9B/9B 模型,具有 90 亿参数的编码器和 90 亿参数的解码器,被适配为 UL2 模型。
t5gemma_9b_9b_prefixlm 20.33B T5Gemma 9B/9B 模型,具有 90 亿参数的编码器和 90 亿参数的解码器,被适配为前缀语言模型。
t5gemma_9b_9b_ul2_it 20.33B T5Gemma 9B/9B 模型,具有 90 亿参数的编码器和 90 亿参数的解码器,被适配为 UL2 模型,并进行了指令遵循微调。
t5gemma_9b_9b_prefixlm_it 20.33B T5Gemma 9B/9B 模型,具有 90 亿参数的编码器和 90 亿参数的解码器,被适配为前缀语言模型,并进行了指令遵循微调。

[源代码]

T5GemmaTokenizer

keras_hub.models.T5GemmaTokenizer(proto, **kwargs)

基于 SentencePiece 的 T5Gemma 分词器层。

这个分词器类会将原始字符串分词为整数序列,并且基于 keras_hub.tokenizers.SentencePieceTokenizer。与底层分词器不同的是,它会检查 T5Gemma 模型所需的所有特殊 token,并提供一个 from_preset() 方法来自动下载匹配的 T5Gemma 预设模型词汇表。

如果输入是一批字符串(秩 > 0),该层将输出一个 tf.RaggedTensor,其中输出的最后一个维度是不规则的。

如果输入是标量字符串(秩 == 0),该层将输出一个具有静态形状 [None] 的密集 tf.Tensor

参数

  • proto: SentencePiece proto 文件的 string 路径,或序列化 SentencePiece proto 的 bytes 对象。有关格式的更多详细信息,请参阅 SentencePiece 仓库

示例

import io
import tensorflow as tf
import sentencepiece

# Unbatched input.
tokenizer = keras_hub.models.T5GemmaTokenizer.from_preset(
    "t5gemma_b_b_prefixlm_it"
)
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=8,
    model_type="WORD",
    pad_id=0,
    bos_id=1,
    eos_id=2,
    unk_id=3,
    pad_piece="<pad>",
    bos_piece="<bos>",
    eos_piece="<eos>",
    unk_piece="<unk>",
)
tokenizer = keras_hub.models.T5GemmaTokenizer(
    proto=bytes_io.getvalue(),
)
tokenizer("The quick brown fox jumped.")

[源代码]

from_preset 方法

T5GemmaTokenizer.from_preset(preset, config_file="tokenizer.json", **kwargs)

从模型预设实例化一个 keras_hub.models.Tokenizer

预设是一个包含配置、权重和其他文件资产的目录,用于保存和加载预训练模型。preset 可以作为以下之一传递:

  1. 一个内置的预设标识符,如 'bert_base_en'
  2. 一个 Kaggle Models 句柄,如 'kaggle://user/bert/keras/bert_base_en'
  3. 一个 Hugging Face 句柄,如 'hf://user/bert_base_en'
  4. 一个本地预设目录的路径,如 './bert_base_en'

对于任何 Tokenizer 子类,您都可以运行 cls.presets.keys() 来列出该类上所有可用的内置预设。

此构造函数可以通过两种方式调用。一种是像 keras_hub.models.Tokenizer.from_preset() 那样从基类调用,另一种是像 keras_hub.models.GemmaTokenizer.from_preset() 那样从模型类调用。如果从基类调用,返回对象的子类将根据预设目录中的配置进行推断。

参数

  • preset:字符串。一个内置预设标识符、一个 Kaggle Models 句柄、一个 Hugging Face 句柄或一个本地目录的路径。
  • load_weights:布尔值。如果为 `True`,权重将被加载到模型架构中。如果为 `False`,权重将被随机初始化。

示例

# Load a preset tokenizer.
tokenizer = keras_hub.tokenizer.Tokenizer.from_preset("bert_base_en")

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

# Detokenize some input.
tokenizer.detokenize([5, 6, 7, 8, 9])
预设 参数 描述
t5gemma_s_s_ul2 312.52M T5Gemma S/S 模型,具有小型编码器和小型解码器,被适配为 UL2 模型。
t5gemma_s_s_prefixlm 312.52M T5Gemma S/S 模型,具有小型编码器和小型解码器,被适配为前缀语言模型。
t5gemma_s_s_ul2_it 312.52M T5Gemma S/S 模型,具有小型编码器和小型解码器,被适配为 UL2 模型,并进行了指令遵循微调。
t5gemma_s_s_prefixlm_it 312.52M T5Gemma S/S 模型,具有小型编码器和小型解码器,被适配为前缀语言模型,并进行了指令遵循微调。
t5gemma_b_b_ul2 591.49M T5Gemma B/B 模型,具有基础编码器和基础解码器,被适配为 UL2 模型。
t5gemma_b_b_prefixlm 591.49M T5Gemma B/B 模型,具有基础编码器和基础解码器,被适配为前缀语言模型。
t5gemma_b_b_ul2_it 591.49M T5Gemma B/B 模型,具有基础编码器和基础解码器,被适配为 UL2 模型,并进行了指令遵循微调。
t5gemma_b_b_prefixlm_it 591.49M T5Gemma B/B 模型,具有基础编码器和基础解码器,被适配为前缀语言模型,并进行了指令遵循微调。
t5gemma_l_l_ul2 1.24B T5Gemma L/L 模型,具有大型编码器和大型解码器,被适配为 UL2 模型。
t5gemma_l_l_prefixlm 1.24B T5Gemma L/L 模型,具有大型编码器和大型解码器,被适配为前缀语言模型。
t5gemma_l_l_ul2_it 1.24B T5Gemma L/L 模型,具有大型编码器和大型解码器,被适配为 UL2 模型,并进行了指令遵循微调。
t5gemma_l_l_prefixlm_it 1.24B T5Gemma L/L 模型,具有大型编码器和大型解码器,被适配为前缀语言模型,并进行了指令遵循微调。
t5gemma_ml_ml_ul2 2.20B T5Gemma ML/ML 模型,具有中大型编码器和中大型解码器,被适配为 UL2 模型。
t5gemma_ml_ml_prefixlm 2.20B T5Gemma ML/ML 模型,具有中大型编码器和中大型解码器,被适配为前缀语言模型。
t5gemma_ml_ml_ul2_it 2.20B T5Gemma ML/ML 模型,具有中大型编码器和中大型解码器,被适配为 UL2 模型,并进行了指令遵循微调。
t5gemma_ml_ml_prefixlm_it 2.20B T5Gemma ML/ML 模型,具有中大型编码器和中大型解码器,被适配为前缀语言模型,并进行了指令遵循微调。
t5gemma_xl_xl_ul2 3.77B T5Gemma XL/XL 模型,具有超大型编码器和超大型解码器,被适配为 UL2 模型。
t5gemma_xl_xl_prefixlm 3.77B T5Gemma XL/XL 模型,具有超大型编码器和超大型解码器,被适配为前缀语言模型。
t5gemma_xl_xl_ul2_it 3.77B T5Gemma XL/XL 模型,具有超大型编码器和超大型解码器,被适配为 UL2 模型,并进行了指令遵循微调。
t5gemma_xl_xl_prefixlm_it 3.77B T5Gemma XL/XL 模型,具有超大型编码器和超大型解码器,被适配为前缀语言模型,并进行了指令遵循微调。
t5gemma_2b_2b_ul2 5.60B T5Gemma 2B/2B 模型,具有 20 亿参数的编码器和 20 亿参数的解码器,被适配为 UL2 模型。
t5gemma_2b_2b_prefixlm 5.60B T5Gemma 2B/2B 模型,具有 20 亿参数的编码器和 20 亿参数的解码器,被适配为前缀语言模型。
t5gemma_2b_2b_ul2_it 5.60B T5Gemma 2B/2B 模型,具有 20 亿参数的编码器和 20 亿参数的解码器,被适配为 UL2 模型,并进行了指令遵循微调。
t5gemma_2b_2b_prefixlm_it 5.60B T5Gemma 2B/2B 模型,具有 20 亿参数的编码器和 20 亿参数的解码器,被适配为前缀语言模型,并进行了指令遵循微调。
t5gemma_9b_2b_ul2 12.29B T5Gemma 9B/2B 模型,具有 90 亿参数的编码器和 20 亿参数的解码器,被适配为 UL2 模型。
t5gemma_9b_2b_prefixlm 12.29B T5Gemma 9B/2B 模型,具有 90 亿参数的编码器和 20 亿参数的解码器,被适配为前缀语言模型。
t5gemma_9b_2b_ul2_it 12.29B T5Gemma 9B/2B 模型,具有 90 亿参数的编码器和 20 亿参数的解码器,被适配为 UL2 模型,并进行了指令遵循微调。
t5gemma_9b_2b_prefixlm_it 12.29B T5Gemma 9B/2B 模型,具有 90 亿参数的编码器和 20 亿参数的解码器,被适配为前缀语言模型,并进行了指令遵循微调。
t5gemma_9b_9b_ul2 20.33B T5Gemma 9B/9B 模型,具有 90 亿参数的编码器和 90 亿参数的解码器,被适配为 UL2 模型。
t5gemma_9b_9b_prefixlm 20.33B T5Gemma 9B/9B 模型,具有 90 亿参数的编码器和 90 亿参数的解码器,被适配为前缀语言模型。
t5gemma_9b_9b_ul2_it 20.33B T5Gemma 9B/9B 模型,具有 90 亿参数的编码器和 90 亿参数的解码器,被适配为 UL2 模型,并进行了指令遵循微调。
t5gemma_9b_9b_prefixlm_it 20.33B T5Gemma 9B/9B 模型,具有 90 亿参数的编码器和 90 亿参数的解码器,被适配为前缀语言模型,并进行了指令遵循微调。