LlamaCausalLM
類別keras_hub.models.LlamaCausalLM(backbone, preprocessor=None, **kwargs)
用於因果語言建模的端到端 Llama 模型。
因果語言模型 (LM) 根據先前的 tokens 預測下一個 token。此任務設定可用於在純文字輸入上以非監督方式訓練模型,或自迴歸地生成類似用於訓練的資料之純文字。此任務可用於預訓練或微調 LLaMA 模型,只需呼叫 fit()
即可。
此模型具有 generate()
方法,可根據提示生成文字。使用的生成策略由 compile()
上的額外 sampler
參數控制。您可以重新編譯具有不同 keras_hub.samplers
物件的模型來控制生成。預設情況下,將使用 "top_k"
取樣。
參數
keras_hub.models.LlamaBackbone
實例。keras_hub.models.LlamaCausalLMPreprocessor
或 None
。如果為 None
,則此模型將不應用預處理,且輸入應在呼叫模型之前預先處理。from_preset
方法LlamaCausalLM.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,
)
預設 | 參數 | 描述 |
---|---|---|
llama2_7b_en | 6.74B | 70 億參數、32 層、基礎 LLaMA 2 模型。 |
llama2_instruct_7b_en | 6.74B | 70 億參數、32 層、指令調整 LLaMA 2 模型。 |
vicuna_1.5_7b_en | 6.74B | 70 億參數、32 層、指令調整 Vicuna v1.5 模型。 |
llama2_7b_en_int8 | 6.74B | 70 億參數、32 層、具有量化為 int8 的 activation 和權重之基礎 LLaMA 2 模型。 |
llama2_instruct_7b_en_int8 | 6.74B | 70 億參數、32 層、具有量化為 int8 的 activation 和權重之指令調整 LLaMA 2 模型。 |
llama3_8b_en | 8.03B | 80 億參數、32 層、基礎 LLaMA 3 模型。 |
llama3_instruct_8b_en | 8.03B | 80 億參數、32 層、指令調整 LLaMA 3 模型。 |
llama3_8b_en_int8 | 8.03B | 80 億參數、32 層、具有量化為 int8 的 activation 和權重之基礎 LLaMA 3 模型。 |
llama3_instruct_8b_en_int8 | 8.03B | 80 億參數、32 層、具有量化為 int8 的 activation 和權重之指令調整 LLaMA 3 模型。 |
generate
方法LlamaCausalLM.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 的 tuple。預設為「auto」,它使用 preprocessor.tokenizer.end_token_id
。未指定處理器將產生錯誤。None 會在生成 max_length
個 tokens 後停止生成。您也可以指定模型應停止的 token ID 列表。請注意,tokens 序列將各自被解釋為停止 token,不支援多 token 停止序列。backbone
屬性keras_hub.models.LlamaCausalLM.backbone
具有核心架構的 keras_hub.models.Backbone
模型。
preprocessor
屬性keras_hub.models.LlamaCausalLM.preprocessor
用於預處理輸入的 keras_hub.models.Preprocessor
層。