Phi3CausalLM
類別keras_nlp.models.Phi3CausalLM(backbone, preprocessor=None, **kwargs)
用於因果語言建模的端到端 Phi3 模型。
因果語言模型 (LM) 會根據先前的詞彙預測下一個詞彙。此任務設定可用於在純文字輸入上對模型進行無監督訓練,或自動遞迴地生成類似於用於訓練的數據的純文字。只需調用 fit()
即可將此任務用於預訓練或微調 Phi-3 模型。
此模型有一個 generate()
方法,可以根據提示生成文字。使用的生成策略由 compile()
上的額外 sampler
參數控制。您可以使用不同的 keras_nlp.samplers
物件重新編譯模型以控制生成。預設情況下,將使用 "top_k"
取樣。
參數
keras_nlp.models.Phi3Backbone
实例。keras_nlp.models.Phi3CausalLMPreprocessor
或 None
。如果為 None
,則此模型將不應用預處理,並且應在調用模型之前對輸入進行預處理。from_preset
方法Phi3CausalLM.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,
)
預設名稱 | 參數 | 說明 |
---|---|---|
phi3_mini_4k_instruct_en | 38.2 億 | 38 億個參數、32 層、4k 上下文長度、Phi-3 模型。此模型使用 Phi-3 資料集進行訓練。此資料集包含合成資料和過濾後的公開網站資料,重點放在高品質和推理密集型屬性。 |
phi3_mini_128k_instruct_en | 38.2 億 | 38 億個參數、32 層、128k 上下文長度、Phi-3 模型。此模型使用 Phi-3 資料集進行訓練。此資料集包含合成資料和過濾後的公開網站資料,重點放在高品質和推理密集型屬性。 |
generate
方法Phi3CausalLM.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
、「自動」或權杖 ID 的元組。預設為「自動」,它使用 preprocessor.tokenizer.end_token_id
。未指定處理器將會產生錯誤。無會在產生 max_length
個權杖後停止產生。您也可以指定模型應該停止的權杖 ID 清單。請注意,權杖序列將各自被解釋為停止權杖,不支援多權杖停止序列。backbone
屬性keras_nlp.models.Phi3CausalLM.backbone
具有核心架構的 keras_nlp.models.Backbone
模型。
preprocessor
屬性keras_nlp.models.Phi3CausalLM.preprocessor
用於預處理輸入的 keras_nlp.models.Preprocessor
層。