TRL documentation
Utiliser le modèle après l’entraînement
Utiliser le modèle après l’entraînement
Une fois que vous avez entraîné un modèle à l’aide de SFTTrainer ou de DPOTrainer, vous disposez d’un modèle affiné qui peut être utilisé pour la génération de texte. Dans cette section, nous détaillons le processus de chargement du modèle affiné et de génération de texte. Si vous devez exécuter un serveur d’inférence avec le modèle entraîné, vous pouvez explorer des bibliothèques telles que text-generation-inference.
Charger et générer
Si vous avez effectué un fine-tuning complet d’un modèle, c’est-à-dire sans utiliser PEFT, vous pouvez simplement le charger comme n’importe quel autre modèle de langage dans transformers :
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model_name_or_path = "Qwen/Qwen3-0.6B" #path/to/your/model/or/name/on/hub
device = torch.accelerator.current_accelerator() if torch.accelerator.is_available() else "cpu"
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]))Vous pouvez également utiliser le pipeline :
from transformers import pipeline
model_name_or_path = "Qwen/Qwen3-0.6B" #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"])Utiliser les adaptateurs PEFT
from peft import PeftConfig, PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
base_model_name = "Qwen/Qwen3-0.6B" #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)Vous pouvez également fusionner les adaptateurs dans le modèle de base afin d’utiliser le modèle comme un modèle transformers classique, mais le point de contrôle sera alors nettement plus volumineux :
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")Une fois le modèle chargé et les adaptateurs fusionnés ou conservés séparément par-dessus, vous pouvez exécuter la génération comme pour un modèle normal, comme décrit ci-dessus.
Update on GitHub