PaliGemmaCausalLM
類別keras_hub.models.PaliGemmaCausalLM(preprocessor, backbone, **kwargs)
用於因果語言建模的端對端多模 PaliGemma 模型。
因果語言模型 (LM) 根據先前的 tokens 預測下一個 token。此任務設定可用於對圖像和純文字輸入進行無監督模型訓練,或自動迴歸產生類似於用於訓練資料的純文字。
此模型具有 generate()
方法,可根據提示產生文字。使用的生成策略由 compile()
上的額外 sampler
引數控制。您可以使用不同的 keras_hub.samplers
物件重新編譯模型以控制生成。預設情況下,將使用 "greedy"
採樣。
此模型可以選擇性地配置 preprocessor
層,在這種情況下,它會在 fit()
、predict()
、evaluate()
和 generate()
期間自動將預處理應用於字串輸入。當使用 from_preset()
建立模型時,預設會執行此操作。
引數
keras_hub.models.PaliGemmaBackbone
實例。keras_hub.models.PaliGemmaCausalLMPreprocessor
或 None
。如果為 None
,則此模型將不套用預處理,且輸入應在呼叫模型之前進行預處理。範例
使用 generate()
進行文字生成。
image = np.random.rand(224, 224, 3)
pali_gemma_lm = keras_hub.models.PaliGemmaCausalLM.from_preset(
"pali_gemma_3b_mix_224"
)
pali_gemma_lm.generate(
{
"images": image,
"text": ["answer en where is the cow standing?\n"]
}
)
# Generate with batched prompts.
pali_gemma_lm.generate(
{
"images": [image, image],
"text": ["answer en where is the cow standing?\n", "caption en\n"]
}
)
在不進行預處理的情況下使用 generate()
。
image = np.random.rand(224, 224, 3)
inputs = {
"images": [image, image],
# Token ids for "<bos> Keras is".
"token_ids": np.array([[2, 214064, 603, 0, 0, 0, 0]] * 2),
# Use `"padding_mask"` to indicate values that should not be overridden.
"padding_mask": np.array([[1, 1, 1, 0, 0, 0, 0]] * 2),
}
pali_gemma_lm = keras_hub.models.PaliGemmaCausalLM.from_preset(
"pali_gemma_3b_mix_224",
preprocessor=None,
)
pali_gemma_lm.generate(inputs)
自訂 backbone 和詞彙表。
tokenizer = keras_hub.models.PaliGemmaTokenizer(
proto="proto.spm",
)
preprocessor = keras_hub.models.PaliGemmaCausalLMPreprocessor(
tokenizer=tokenizer,
sequence_length=128,
)
backbone = keras_hub.models.PaliGemmaBackbone()
pali_gemma_lm = keras_hub.models.PaliGemmaCausalLM(
backbone=backbone,
preprocessor=preprocessor,
)
from_preset
方法PaliGemmaCausalLM.from_preset(preset, load_weights=True, **kwargs)
從模型預設值實例化 keras_hub.models.Task
。
預設值是一個目錄,其中包含用於儲存和載入預訓練模型的組態、權重和其他檔案資產。preset
可以作為以下其中一項傳遞
'bert_base_en'
'kaggle://user/bert/keras/bert_base_en'
'hf://user/bert_base_en'
'./bert_base_en'
對於任何 Task
子類別,您可以執行 cls.presets.keys()
以列出類別上可用的所有內建預設值。
此建構函式可以透過兩種方式之一呼叫。從任務特定的基底類別(例如 keras_hub.models.CausalLM.from_preset()
)呼叫,或從模型類別(例如 keras_hub.models.BertTextClassifier.from_preset()
)呼叫。如果從基底類別呼叫,則傳回物件的子類別將從預設值目錄中的組態推斷。
引數
True
,則儲存的權重將載入到模型架構中。如果為 False
,則所有權重都將隨機初始化。範例
# Load a Gemma generative task.
causal_lm = keras_hub.models.CausalLM.from_preset(
"gemma_2b_en",
)
# Load a Bert classification task.
model = keras_hub.models.TextClassifier.from_preset(
"bert_base_en",
num_classes=2,
)
預設值 | 參數 | 說明 |
---|---|---|
pali_gemma_3b_mix_224 | 2.92B | 影像大小 224,混合微調,文字序列長度為 256 |
pali_gemma_3b_224 | 2.92B | 影像大小 224,預訓練,文字序列長度為 128 |
pali_gemma_3b_mix_448 | 2.92B | 影像大小 448,混合微調,文字序列長度為 512 |
pali_gemma_3b_448 | 2.92B | 影像大小 448,預訓練,文字序列長度為 512 |
pali_gemma_3b_896 | 2.93B | 影像大小 896,預訓練,文字序列長度為 512 |
pali_gemma2_mix_3b_224 | 3.03B | 30 億參數,影像大小 224,適用於 SigLIP-So400m 視覺編碼器的 27 層和 Gemma2 2B 語言模型的 26 層。此模型已在各種視覺語言任務和領域上進行微調。 |
pali_gemma2_pt_3b_224 | 3.03B | 30 億參數,影像大小 224,適用於 SigLIP-So400m 視覺編碼器的 27 層和 Gemma2 2B 語言模型的 26 層。此模型已在資料集混合上進行預訓練。 |
pali_gemma_2_ft_docci_3b_448 | 3.03B | 30 億參數,影像大小 448,適用於 SigLIP-So400m 視覺編碼器的 27 層和 Gemma2 2B 語言模型的 26 層。此模型已在 DOCCI 資料集上進行微調,以改善具有精細細節的描述。 |
pali_gemma2_mix_3b_448 | 3.03B | 30 億參數,影像大小 448,適用於 SigLIP-So400m 視覺編碼器的 27 層和 Gemma2 2B 語言模型的 26 層。此模型已在各種視覺語言任務和領域上進行微調。 |
pali_gemma2_pt_3b_448 | 3.03B | 30 億參數,影像大小 448,適用於 SigLIP-So400m 視覺編碼器的 27 層和 Gemma2 2B 語言模型的 26 層。此模型已在資料集混合上進行預訓練。 |
pali_gemma2_pt_3b_896 | 3.04B | 30 億參數,影像大小 896,適用於 SigLIP-So400m 視覺編碼器的 27 層和 Gemma2 2B 語言模型的 26 層。此模型已在資料集混合上進行預訓練。 |
pali_gemma2_mix_10b_224 | 9.66B | 100 億參數,影像大小 224,適用於 SigLIP-So400m 視覺編碼器的 27 層和 Gemma2 9B 語言模型的 42 層。此模型已在各種視覺語言任務和領域上進行微調。 |
pali_gemma2_pt_10b_224 | 9.66B | 100 億參數,影像大小 224,適用於 SigLIP-So400m 視覺編碼器的 27 層和 Gemma2 9B 語言模型的 42 層。此模型已在資料集混合上進行預訓練。 |
pali_gemma2_ft_docci_10b_448 | 9.66B | 100 億參數,適用於 SigLIP-So400m 視覺編碼器的 27 層和 Gemma2 9B 語言模型的 42 層。此模型已在 DOCCI 資料集上進行微調,以改善具有精細細節的描述。 |
pali_gemma2_mix_10b_448 | 9.66B | 100 億參數,影像大小 448,適用於 SigLIP-So400m 視覺編碼器的 27 層和 Gemma2 9B 語言模型的 42 層。此模型已在各種視覺語言任務和領域上進行微調。 |
pali_gemma2_pt_10b_448 | 9.66B | 100 億參數,影像大小 448,適用於 SigLIP-So400m 視覺編碼器的 27 層和 Gemma2 9B 語言模型的 42 層。此模型已在資料集混合上進行預訓練。 |
pali_gemma2_pt_10b_896 | 9.67B | 100 億參數,影像大小 896,適用於 SigLIP-So400m 視覺編碼器的 27 層和 Gemma2 9B 語言模型的 42 層。此模型已在資料集混合上進行預訓練。 |
pali_gemma2_mix_28b_224 | 27.65B | 280 億參數,影像大小 224,適用於 SigLIP-So400m 視覺編碼器的 27 層和 Gemma2 27B 語言模型的 46 層。此模型已在各種視覺語言任務和領域上進行微調。 |
pali_gemma2_mix_28b_448 | 27.65B | 280 億參數,影像大小 448,適用於 SigLIP-So400m 視覺編碼器的 27 層和 Gemma2 27B 語言模型的 46 層。此模型已在各種視覺語言任務和領域上進行微調。 |
pali_gemma2_pt_28b_224 | 27.65B | 280 億參數,影像大小 224,適用於 SigLIP-So400m 視覺編碼器的 27 層和 Gemma2 27B 語言模型的 46 層。此模型已在資料集混合上進行預訓練。 |
pali_gemma2_pt_28b_448 | 27.65B | 280 億參數,影像大小 448,適用於 SigLIP-So400m 視覺編碼器的 27 層和 Gemma2 27B 語言模型的 46 層。此模型已在資料集混合上進行預訓練。 |
pali_gemma2_pt_28b_896 | 27.65B | 280 億參數,影像大小 896,適用於 SigLIP-So400m 視覺編碼器的 27 層和 Gemma2 27B 語言模型的 46 層。此模型已在資料集混合上進行預訓練。 |
generate
方法PaliGemmaCausalLM.generate(
inputs, max_length=None, stop_token_ids="auto", strip_prompt=False
)
產生給定提示 inputs
的文字。
此方法根據給定的 inputs
產生文字。用於生成的採樣方法可以透過 compile()
方法設定。
如果 inputs
是 tf.data.Dataset
,則輸出將「逐批次」生成並串聯。否則,所有輸入都將作為單一批次處理。
如果模型附加了 preprocessor
,則 inputs
將在 generate()
函數內部進行預處理,並且應符合 preprocessor
層預期的結構(通常為原始字串)。如果未附加 preprocessor
,則輸入應符合 backbone
預期的結構。請參閱上面的範例用法,以示範每個用法。
引數
tf.data.Dataset
。如果模型附加了 preprocessor
,則 inputs
應符合 preprocessor
層預期的結構。如果未附加 preprocessor
,則 inputs
應符合 backbone
模型預期的結構。preprocessor
的最大配置 sequence_length
。如果 preprocessor
為 None
,則 inputs
應填充到所需的最大長度,並且此引數將被忽略。None
、「auto」或 token id 元組。預設為「auto」,它使用 preprocessor.tokenizer.end_token_id
。未指定處理器將產生錯誤。None 會在產生 max_length
個 tokens 後停止生成。您也可以指定模型應停止的 token id 列表。請注意,tokens 序列將各自被解譯為停止 token,不支援多 token 停止序列。backbone
屬性keras_hub.models.PaliGemmaCausalLM.backbone
具有核心架構的 keras_hub.models.Backbone
模型。
preprocessor
屬性keras_hub.models.PaliGemmaCausalLM.preprocessor
用於預處理輸入的 keras_hub.models.Preprocessor
層。