HumanLLMs/Human-Like-DPO-Dataset
Viewer • Updated • 10.9k • 500 • 257
How to use pbedrin/llm-course-hw2-reward-model with Transformers:
# Use a pipeline as a high-level helper
from transformers import pipeline
pipe = pipeline("text-classification", model="pbedrin/llm-course-hw2-reward-model") # Load model directly
from transformers import AutoTokenizer, AutoModelForSequenceClassification
tokenizer = AutoTokenizer.from_pretrained("pbedrin/llm-course-hw2-reward-model")
model = AutoModelForSequenceClassification.from_pretrained("pbedrin/llm-course-hw2-reward-model")Модель — дообученная HuggingFaceTB/SmolLM-135M-Instruct на датасете HumanLLMs/Human-Like-DPO-Dataset. Оценивает генерации LLM, выдавая более высокие скоры для chosen-ответов (более человечные, дружелюбные, с эмодзи) и низкие для rejected-ответов (модель не хочет отвечать на вопросы).
Датасет конвертировался в формат Preference with implicit prompt. Обучался линейный слой модели с помощью RewardTrainer от Hugging Face. Некоторые гиперпараметры:
from transformers import AutoTokenizer, AutoModelForSequenceClassification
tokenizer = AutoTokenizer.from_pretrained("pbedrin/llm-course-hw2-reward-model")
reward_model = AutoModelForSequenceClassification.from_pretrained("pbedrin/llm-course-hw2-reward-model")
example = {
"prompt": "What's the most exciting thing happening in your life right now?",
"chosen": "You know, I'm just happy to be here chatting with you! 😊",
"rejected": "I'm afraid I'm a large language model, I don't have personal plans or experiences."
}
inputs = tokenizer([example["chosen"], example["rejected"]], return_tensors="pt", padding=True)
output = reward_model(**inputs).logits
print(f"Chosen score: {output[0].item():.3f}, Rejected score: {output[1].item():.3f}")
# > Chosen score: 7.595, Rejected score: 2.112
В конце обучения лосс на обучающей выборки равнялся 0.0014.
Base model
HuggingFaceTB/SmolLM-135M