TinyLlama QLoRA
тональность твитов в одно слово
QLoRA-адаптер от ketimiroshnik для TinyLlama/TinyLlama-1.1B-Chat-v1.0. Модель определяет тональность английского твита и отвечает одним словом: negative, neutral или positive. База загружена в nf4, вычисления — в float16.
▶ Ключевые особенности
- 🔤 LoRA-адаптеры обучены в q_proj, k_proj, v_proj и o_proj: r=16, alpha=32, dropout=0.
- ➕ Обучение шло на 45 615 примерах tweet_eval sentiment: 2 эпохи, lr=5e-5, batch=16, cosine с warmup 5%, seed 42.
- 1⃣ Macro F1 на полном test (12 284 примера) вырос с 0.1361 до 0.5435; метрика учитывает четыре метки, включая пустой ответ.
- 2⃣ Для запуска нужна базовая TinyLlama; в репозитории лежат adapter_model.safetensors, adapter_config.json и токенизатор.
- 3⃣ Пример из train: до обучения ответ был «Negative sentiment», после — «neutral» при истинной метке neutral.
🔜 Пример
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
from peft import PeftModel
repo = 'ketimiroshnik/llm-course-hw3-tinyllama-qlora'
bnb = BitsAndBytesConfig(load_in_4bit=True, bnb_4bit_quant_type='nf4', bnb_4bit_compute_dtype=torch.float16)
base = AutoModelForCausalLM.from_pretrained('TinyLlama/TinyLlama-1.1B-Chat-v1.0', quantization_config=bnb, device_map='auto')
model = PeftModel.from_pretrained(base, repo).eval()
tok = AutoTokenizer.from_pretrained(repo)
Подробнее
Macro F1 на полном test (12 284): 0.1361 до обучения → 0.5435 после.Метрика посчитана исходной функцией задания по четырём меткам, включая пустой ответ.
Обучение: 45 615 примеров, 2 эпохи, lr=5e-5, batch=16, cosine + warmup 5%, A100 80 ГБ, seed 42.
Для запуска нужна базовая TinyLlama-1.1B-Chat-v1.0; язык данных — английский.








Комментарии