TRL documentation

Использование модели после обучения

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v1.17.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Использование модели после обучения

После обучения модели с помощью 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