Языковые моделиyas1988
smol-math-dpo-merged
маленькая математическая LLM после DPO
1 мин чтения
Это causal language model на базе SmolLM2-1.7B (архитектура Llama) от автора yas1988. Модель сначала прошла SFT на MetaMathQA, затем DPO с LoRA, а адаптер слит с базовыми весами. Язык — английский, лицензия Apache 2.0; это часть учебного курса smol, Unit 2.
🔥 Ключевые особенности
- 🤖 База — SmolLM2-1.7B, около 1.71 млрд параметров.
- 🔥 DPO с LoRA: r=16, alpha=32, dropout 0.05, target modules all-linear; адаптер merged.
- 👀 Preference data — первые 3 000 примеров trl-lib/ultrafeedback_binarized (chosen/rejected).
- 🚀 Обучение на одной Colab T4 около 42 минут: fp16, gradient checkpointing, max length 512.
- 💯 EOS-токен <|im_end|> — генерация останавливается после ответа.
- 🤔 Маленькая модель может ошибаться в фактах и арифметике.
👌 Пример
from transformers import pipeline
pipe = pipeline("text-generation", model="yas1988/smol-math-dpo-merged", device_map="auto")
msgs = [{"role": "user", "content": "Tom has 5 apples and buys 3 more. How many does he have?"}]
print(pipe(msgs, max_new_tokens=200, return_full_text=False)[0]["generated_text"])
Подробнее
GSM8K 0-shot: extractive_match 0.4375 ± 0.0137 против 0.4268 ± 0.0136 у SFT-модели — в пределах шума.ARC-Challenge 0-shot: acc 0.3567 ± 0.0140; TruthfulQA 0-shot: mc1/mc2 0.2644/0.3950.
DPO: 3 000 примеров, 1 эпоха, 172 шага; loss 0.692 -> около 0.64, reward accuracy 0.54, margin 0.015.
Ограничение: небольшой объём DPO и общие chat-данные, поэтому прирост скромный, а модель не стоит использовать там, где важна безошибочность.
Комментарии
Без регистрации: достаточно имени.