Llama3CausalLM
類別keras_nlp.models.Llama3CausalLM(backbone, preprocessor=None, **kwargs)
一個用於因果語言建模的端到端 Llama 3 模型。
因果語言模型 (LM) 會根據先前的標記預測下一個標記。此任務設定可用於在純文字輸入上以無監督方式訓練模型,或以自迴歸方式生成類似於用於訓練的資料的純文字。只需呼叫 fit()
即可使用此任務來預先訓練或微調 LLaMA 3 模型。
此模型具有 generate()
方法,可以根據提示生成文字。所使用的生成策略由 compile()
上的額外 sampler
參數控制。您可以使用不同的 keras_nlp.samplers
物件重新編譯模型以控制生成。預設情況下,將使用 "top_k"
取樣。
參數
keras_nlp.models.Llama3Backbone
實例。keras_nlp.models.Llama3CausalLMPreprocessor
或 None
。如果為 None
,則此模型將不應用預處理,並且應在呼叫模型之前對輸入進行預處理。from_preset
方法Llama3CausalLM.from_preset(preset, load_weights=True, **kwargs)
從模型預設集實例化 keras_nlp.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_nlp.models.CausalLM.from_preset()
)呼叫,也可以從模型類別(例如 keras_nlp.models.BertTextClassifier.from_preset()
)呼叫。如果從基底類別呼叫,則傳回物件的子類別將從預設目錄中的設定推斷。
參數
True
,則會將儲存的權重載入模型架構中。如果為 False
,則會隨機初始化所有權重。範例
# Load a Gemma generative task.
causal_lm = keras_nlp.models.CausalLM.from_preset(
"gemma_2b_en",
)
# Load a Bert classification task.
model = keras_nlp.models.TextClassifier.from_preset(
"bert_base_en",
num_classes=2,
)
預設名稱 | 參數 | 說明 |
---|---|---|
llama3_8b_en | 8.03B | 80 億個參數、32 層、基本 LLaMA 3 模型。 |
llama3_8b_en_int8 | 8.03B | 80 億個參數、32 層、基本 LLaMA 3 模型,其激活和權重量化為 int8。 |
llama3_instruct_8b_en | 8.03B | 80 億個參數、32 層、指令微調的 LLaMA 3 模型。 |
llama3_instruct_8b_en_int8 | 8.03B | 80 億個參數、32 層、指令微調的 LLaMA 3 模型,其激活和權重量化為 int8。 |
generate
方法Llama3CausalLM.generate(inputs, max_length=None, stop_token_ids="auto")
根據提示 inputs
生成文字。
此方法根據給定的 inputs
生成文字。用於生成的採樣方法可以透過 compile()
方法設定。
如果 inputs
是 tf.data.Dataset
,則會「逐批」生成輸出並進行串聯。否則,所有輸入都將作為單一批次處理。
如果模型附加了 preprocessor
,則會在 generate()
函式內部對 inputs
進行預處理,並且應該與 preprocessor
層預期的結構相符(通常是原始字串)。如果未附加 preprocessor
,則輸入應與 backbone
預期的結構相符。請參閱上面的範例用法以進行演示。
參數
tf.data.Dataset
。如果模型附加了 preprocessor
,則 inputs
應與 preprocessor
層預期的結構相符。如果未附加 preprocessor
,則 inputs
應與 backbone
模型預期的結構相符。preprocessor
設定的最大 sequence_length
。如果 preprocessor
為 None
,則應將 inputs
填充到所需的最大長度,並且將忽略此參數。None
、「auto」或標記 ID 的元組。預設為「auto」,它使用 preprocessor.tokenizer.end_token_id
。未指定處理器將產生錯誤。None 會在生成 max_length
個標記後停止生成。您也可以指定模型應停止的標記 ID 列表。請注意,標記序列將各自被解釋為停止標記,不支持多標記停止序列。backbone
屬性keras_nlp.models.Llama3CausalLM.backbone
具有核心架構的 keras_nlp.models.Backbone
模型。
preprocessor
屬性keras_nlp.models.Llama3CausalLM.preprocessor
用於預處理輸入的 keras_nlp.models.Preprocessor
層。