kaufkino/LFM2.5-1.2B-Instruct-T-Wix-ru
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 остаётся слабым (осмысленный, но с ошибками).
- Арифметика ненадёжна (может ошибаться в простых умножениях/дробях).
Структура репозитория
Запуск
transformers
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
llama-cli -m lfm25-1.2b-twix-ru-q8_0.gguf -cnv -p "Ты полезный ассистент."Детали обучения
Инфраструктура
Обучение проводилось на облачном 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.
