CoolFace
Modelpublic

kaufkino/LFM2.5-1.2B-Instruct-T-Wix-ru

sourceHugging Faceotherupdated 2mo agoView on Hugging Face
5likes177downloads
Model Card

LFM2.5-1.2B-Instruct-T-Wix-ru

⚠️ Экспериментальная версия. Учебный/исследовательский прогон без формальной оценки на бенчмарках (снимался только training loss + смоук-квизы). Не для продакшена.

Русифицированная версия LiquidAI/LFM2.5-1.2B-Instruct: LoRA SFT на русскоязычном датасете t-tech/T-Wix (~463 тыс. диалогов, english_corpus исключён; в этом прогоне использован случайный сабсэмпл 200 тыс.). Базовая модель официально поддерживает en/ar/zh/fr/de/ja/ko, но не русский — этот тюнинг адаптирует её к русскому языку.

Что улучшилось, а что нет

✅ Улучшилось:

  • —Русский стал беглым и структурным — базовая модель на русском выдавала грамматически сломанный текст с выдуманными словами, после тюнинга ответы связные и оформленные.
  • —Математические/рассуждающие ответы теперь на русском (база часто сваливалась в английский с иноязычными вставками).
  • —Формат вызова инструментов (<|tool_call_start|>[func(args)]<|tool_call_end|>) в основном сохранён (9/10 на многофункциональном смоуке против 10/10 у базы).

⚠️ Известные ограничения (ожидаемы для класса 1.2B):

  • —Фактология на русском галлюцинирует. Причём знания в модели есть, но плохо переносятся из английского в русскоязычную генерацию: на английский тот же фактический вопрос модель отвечает корректно, а по-русски выдумывает. Для фактов на русском нужен RAG. Подробный разбор эффекта — см. issue-заметку в исходном репозитории проекта.
  • —Перевод EN→RU остаётся слабым (осмысленный, но с ошибками).
  • —Арифметика ненадёжна (может ошибаться в простых умножениях/дробях).

Структура репозитория

ПутьСодержимое
/ (корень)merged-модель, bf16 safetensors — для transformers / vLLM
/loraLoRA-адаптер (r=32) отдельно — для подключения к базе через PEFT
/ggufGGUF для llama.cpp / Ollama: F16, Q8_0

Запуск

transformers

python
from transformers import AutoModelForCausalLM, AutoTokenizer

repo = "kaufkino/LFM2.5-1.2B-Instruct-T-Wix-ru"
model = AutoModelForCausalLM.from_pretrained(repo, torch_dtype="bfloat16", device_map="auto")
tokenizer = AutoTokenizer.from_pretrained(repo)

messages = [{"role": "user", "content": "Расскажи о Санкт-Петербурге"}]
inputs = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to(model.device)
out = model.generate(inputs, max_new_tokens=512, temperature=0.5, top_p=0.95,
                     do_sample=True, repetition_penalty=1.1)
print(tokenizer.decode(out[0][inputs.shape[1]:], skip_special_tokens=True))
Рекомендации по инференсу (из смоук-тестов): temperature=0.5, top_p=0.95, repetition_penalty=1.1 — так меньше зацикливаний и иноязычных вставок.

llama.cpp

bash
llama-cli -m lfm25-1.2b-twix-ru-q8_0.gguf -cnv -p "Ты полезный ассистент."

Детали обучения

ПараметрЗначение
МетодLoRA SFT (Unsloth 2026.7.3 + TRL SFTTrainer)
LoRAr=32, alpha=64, dropout=0
target_modulesq/k/v/outproj (attention), w1/w2/w3 (MLP), inproj (conv-блоки LFM2)
Эпохи1
Контекст8192 токенов, packing
Батч4 × grad_accum 8 = 32
LR1e-4, cosine, warmup 3%
Оптимизаторadamw_8bit, weight decay 0.01
Точностьbf16
ДанныеT-Wix без english_corpus, сабсэмпл 200k диалогов
Финальный train loss~1.15

Инфраструктура

Обучение проводилось на облачном GPU-сервере Selectel (реферальная ссылка) — 1× NVIDIA RTX 4090 24 ГБ, ~14 часов.


EN: Experimental Russian-language adaptation of LFM2.5-1.2B-Instruct via LoRA SFT (r=32, 1 epoch, 8192 ctx, packing) on the T-Wix dataset (200k-example subsample, english_corpus excluded). The base model does not officially support Russian. Russian fluency improves markedly; however factual knowledge transfers poorly from English into Russian generation (the model answers factual questions correctly in English but hallucinates in Russian) — use RAG for Russian facts. Translation and arithmetic remain weak. Repo contains merged bf16 safetensors (root), the LoRA adapter (/lora), and GGUF F16/Q8_0 (/gguf). Research artifact, not for production.