TRL 文件
訓練後使用模型
加入 Hugging Face 社群
並獲得增強的文件體驗
開始使用
訓練後使用模型
一旦您使用 SFTTrainer、PPOTrainer 或 DPOTrainer 訓練了模型,您將得到一個可用於文字生成的微調模型。在本節中,我們將介紹載入微調模型並生成文字的過程。如果您需要使用訓練好的模型執行推理伺服器,可以探索 text-generation-inference
等庫。
載入和生成
如果您是完全微調模型(即未使用 PEFT),您可以像載入 transformers 中的任何其他語言模型一樣載入它。例如,在 PPO 訓練期間訓練的價值頭(value head)不再需要,如果您使用原始的 transformer 類載入模型,它將被忽略。
from transformers import AutoTokenizer, AutoModelForCausalLM
model_name_or_path = "kashif/stack-llama-2" #path/to/your/model/or/name/on/hub
device = "cpu" # or "cuda" if you have a GPU
model = AutoModelForCausalLM.from_pretrained(model_name_or_path).to(device)
tokenizer = AutoTokenizer.from_pretrained(model_name_or_path)
inputs = tokenizer.encode("This movie was really", return_tensors="pt").to(device)
outputs = model.generate(inputs)
print(tokenizer.decode(outputs[0]))
或者,您也可以使用 pipeline。
from transformers import pipeline
model_name_or_path = "kashif/stack-llama-2" #path/to/your/model/or/name/on/hub
pipe = pipeline("text-generation", model=model_name_or_path)
print(pipe("This movie was really")[0]["generated_text"])
使用介面卡 PEFT
from peft import PeftConfig, PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
base_model_name = "kashif/stack-llama-2" #path/to/your/model/or/name/on/hub"
adapter_model_name = "path/to/my/adapter"
model = AutoModelForCausalLM.from_pretrained(base_model_name)
model = PeftModel.from_pretrained(model, adapter_model_name)
tokenizer = AutoTokenizer.from_pretrained(base_model_name)
您也可以將介面卡合併到基礎模型中,這樣您就可以像使用普通的 transformers 模型一樣使用它,但檢查點會大很多。
model = AutoModelForCausalLM.from_pretrained(base_model_name)
model = PeftModel.from_pretrained(model, adapter_model_name)
model = model.merge_and_unload()
model.save_pretrained("merged_adapters")
一旦您載入了模型,並將介面卡合併或保持分離,您就可以像上面概述的普通模型一樣執行生成。
< > 在 GitHub 上更新