標記器

[來源]

Tokenizer 類別

keras_nlp.tokenizers.Tokenizer()

標記器層的基類別。

KerasNLP 程式庫中的標記器都應該繼承此層。此類別提供兩個核心方法 tokenize()detokenize(),用於在純文字和序列之間進行轉換。標記器是 keras.layers.Layer 的子類別,並且可以組合成 keras.Model

子類別應該始終實作 tokenize() 方法,當直接在輸入上呼叫層時,這也是預設的方法。

如果標記化是可逆的,則子類別可以選擇性地實作 detokenize() 方法。否則,可以跳過此方法。

如果適用,子類別應該實作 get_vocabulary()vocabulary_size()token_to_id()id_to_token()。對於一些簡單的「無詞彙表」標記器,例如以下所示的空格分隔符號,這些方法不適用,可以跳過。

範例

class WhitespaceSplitterTokenizer(keras_nlp.tokenizers.Tokenizer):
    def tokenize(self, inputs):
        return tf.strings.split(inputs)

    def detokenize(self, inputs):
        return tf.strings.reduce_join(inputs, separator=" ", axis=-1)

tokenizer = WhitespaceSplitterTokenizer()

# Tokenize some inputs.
tokenizer.tokenize("This is a test")

# Shorthard for `tokenize()`.
tokenizer("This is a test")

# Detokenize some outputs.
tokenizer.detokenize(["This", "is", "a", "test"])

[來源]

from_preset 方法

Tokenizer.from_preset(preset, **kwargs)

從模型預設集實例化 keras_nlp.models.Tokenizer

預設集是配置、權重和其他檔案資產的目錄,用於儲存和載入預先訓練的模型。preset 可以作為以下其中之一傳遞

  1. 內建預設集識別碼,例如 'bert_base_en'
  2. Kaggle 模型控點,例如 'kaggle://user/bert/keras/bert_base_en'
  3. Hugging Face 控點,例如 'hf://user/bert_base_en'
  4. 本地預設集目錄的路徑,例如 './bert_base_en'

對於任何 Tokenizer 子類別,您可以執行 cls.presets.keys() 來列出類別上可用的所有內建預設集。

此建構函數可以透過兩種方式之一呼叫。可以從基類別呼叫,例如 keras_nlp.models.Tokenizer.from_preset(),也可以從模型類別呼叫,例如 keras_nlp.models.GemmaTokenizer.from_preset()。如果從基類別呼叫,則會從預設集目錄中的配置推斷出返回物件的子類別。

參數

  • preset:字串。內建的預設模型識別碼、Kaggle 模型代碼、Hugging Face 代碼或本機目錄的路徑。
  • load_weights:布林值。如果為 True,權重將會載入模型架構中。如果為 False,權重將會隨機初始化。

範例

# Load a preset tokenizer.
tokenizer = keras_nlp.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])

[來源]

save_to_preset 方法

Tokenizer.save_to_preset(preset_dir)

儲存 tokenizer 至預設目錄。

參數

  • preset_dir:本機模型預設目錄的路徑。