ruSpam_LLM
LoRA-адаптер для классификации сообщений на spam / ham
на базе google/gemma-2-2b-it.
Модель обучена для детекции спама в русскоязычных чатах и группах.
📌 Описание
Это LoRA-адаптер, а не полная модель.
Он подключается поверх базовой Gemma и позволяет классифицировать сообщения,
генерируя одно слово: spam или ham.
Задача решается через instruction tuning.
🧠 Базовая модель
- Base model:
google/gemma-2-2b-it - Архитектура: Causal LM
- Способ обучения: LoRA (PEFT)
📊 Данные для обучения
Модель обучена на ~9 000 примеров из датасета:
👉 darkQibit/russian-spam-detection
🚀 Использование
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
BASE_MODEL = "google/gemma-2-2b-it"
LORA_REPO = "ruSpamModels/ruSpam_LLM"
HF_TOKEN = "hf_xxxxxxxxxxxxxxxxxxxxx"
tokenizer = AutoTokenizer.from_pretrained(
BASE_MODEL,
token=HF_TOKEN
)
base_model = AutoModelForCausalLM.from_pretrained(
BASE_MODEL,
device_map="auto",
torch_dtype=torch.float16,
token=HF_TOKEN
)
model = PeftModel.from_pretrained(base_model, LORA_REPO)
model.eval()
Пример классификации:
def classify(msg: str):
prompt = (
"<start_of_turn>user\n"
"You are a spam classifier. Determine whether the message is spam or not.\n"
"Answer with only one word: spam or ham.\n\n"
f"Message:\n{msg}\n"
"<end_of_turn>\n"
"<start_of_turn>model\n"
)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.no_grad():
output = model.generate(
**inputs,
max_new_tokens=2,
do_sample=False,
pad_token_id=tokenizer.eos_token_id,
eos_token_id=tokenizer.eos_token_id,
)
gen = output[0][inputs["input_ids"].shape[-1]:]
return tokenizer.decode(gen, skip_special_tokens=True).strip().lower()
⚠️ Ограничения
- Это генеративная классификация, не
SequenceClassification - Возможны ошибки на пограничных сообщениях
- Для high-load рекомендуется logits-классификация
📄 Лицензия
Лицензия соответствует лицензии базовой модели Gemma и лицензии датасета обучения.
💖 Поддержка проекта
Если проект оказался полезен, вы можете поддержать его развитие:
TON:
UQAvc2APxFcmNg0-K8TJ8ykdkl2GjwveuVfFd8-NOwHGEeqvРубли (Telegram):
Перейдите по старт-ссылке бота
👉 @ModProtectorBot
Спасибо за поддержку ❤️
- Downloads last month
- 32