llm-course-hw2
Collection
VK LLM Course. Задание #2. Дообучение LLM методами DPO и PPO
•
3 items
•
Updated
Модель — дообученная 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