TRL documentation
Использование модели после обучения
Использование модели после обучения
После обучения модели с помощью SFTTrainer или DPOTrainer вы получите дообученную модель, которую можно использовать для генерации текста. В этом разделе мы рассмотрим процесс загрузки дообученной модели и генерации текста. Если вам нужно запустить сервер инференса с обученной моделью, вы можете изучить библиотеки, такие как text-generation-inference.
Загрузка и генерация
Если вы полностью дообучили модель, то есть без использования PEFT, вы можете просто загрузить её как любую другую языковую модель в 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]))В качестве альтернативы можно также использовать конвейер:
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"])Используйте адаптеры 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)Вы также можете объединить адаптеры с базовой моделью, чтобы использовать модель как обычную модель 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")После загрузки модели и объединения адаптеров или их сохранения отдельно поверх неё вы можете выполнять генерацию так же, как для обычной модели, описанной выше.
Update on GitHub