Языковые моделиttttim3
SmolLM3-3B SFT
инструктивный файнтюн для smol-course
2 мин чтения
Это supervised fine-tune базовой HuggingFaceTB/SmolLM3-3B-Base, сделанный для Unit 1 (Instruction Tuning) курса Hugging Face smol-course. Модель на 3,08 млрд параметров, библиотека transformers, язык — английский. LoRA-адаптеры после SFT влиты в базовые веса, поэтому запускается как обычная causal LM.
⚙ Ключевые особенности
- ⚙ LoRA SFT через TRL
SFTTrainer: r=8, alpha=16, dropout=0.05, все linear-слои; адаптеры merged в базовые веса. - 📌 1 000 примеров из
HuggingFaceTB/smoltalk2, SFT-сплитsmoltalk_everyday_convs_reasoning_Qwen3_32B_think. - ⚡ 500 шагов, effective batch 4, 2 эпохи, LR 5e-5, 50 warmup-шагов, linear decay, AdamW, weight decay 0.01.
- 💻 bf16 + gradient checkpointing; одна NVIDIA L4 (24 GB), ~50 минут, пик 8,3 GB.
- 🎯 Chat template SmolLM3 instruct: поддерживает
/thinkи/no_think;<|im_end|>— eos-токен.
💻 Пример
from transformers import AutoModelForCausalLM, AutoTokenizer
m = 'ttttim3/SmolLM3-3B-sft-smol-course'
tok = AutoTokenizer.from_pretrained(m)
model = AutoModelForCausalLM.from_pretrained(m, dtype='bfloat16', device_map='auto')
msgs = [{'role': 'user', 'content': 'Give me three tips for sleeping better.'}]
ids = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors='pt').to(model.device)
print(tok.decode(model.generate(ids, max_new_tokens=400)[0][ids.shape[1]:], skip_special_tokens=True))
Подробнее
GSM8K zero-shot:extractive_match 0,353 у этой модели, 0,104 у SmolLM3-3B-Base и 0,211 у официальной SmolLM3-3B instruct.Оценка: lighteval 0.13 + vLLM, 256 сгенерированных токенов — настройка лидерборда smol-course; у официальной instruct reasoning длиннее и обрезается лимитом.
Обучение: финальный train loss 0,60 (стартовал с 1,50), ~50 минут на одной L4, пик 8,3 GB.
Язык — английский; перед использованием нужен SmolLM3 instruct chat template.
Комментарии
Без регистрации: достаточно имени.