78 lines
4.5 KiB
Markdown
78 lines
4.5 KiB
Markdown
|
|
---
|
|||
|
|
license: apache-2.0
|
|||
|
|
base_model: GnLOLot/MiniCPM5-1B-Claude-Opus-Fable5-V2-Thinking
|
|||
|
|
datasets:
|
|||
|
|
- t-tech/T-Wix
|
|||
|
|
language:
|
|||
|
|
- ru
|
|||
|
|
library_name: transformers
|
|||
|
|
pipeline_tag: text-generation
|
|||
|
|
tags:
|
|||
|
|
- merge
|
|||
|
|
- lora
|
|||
|
|
- russian
|
|||
|
|
- thinking
|
|||
|
|
- tool-calling
|
|||
|
|
- gguf
|
|||
|
|
- experimental
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# MiniCPM5-1B-Fable5-Thinking-T-Wix-ru
|
|||
|
|
|
|||
|
|
> ⚠️ **Экспериментальная модель.** Метрики не снимались (только ручной смоук-квиз). Не для продакшена.
|
|||
|
|
|
|||
|
|
Русскоязычная 1B-модель с работающим `<think>`-режимом. Получена в два этапа:
|
|||
|
|
|
|||
|
|
1. **Merge**: T-Wix LoRA (r=32, обучена на базовой `openbmb/MiniCPM5-1B` на ~461k русских диалогов [t-tech/T-Wix](https://huggingface.co/datasets/t-tech/T-Wix)) применена к дистилляту [GnLOLot/MiniCPM5-1B-Claude-Opus-Fable5-V2-Thinking](https://huggingface.co/GnLOLot/MiniCPM5-1B-Claude-Opus-Fable5-V2-Thinking) через `PeftModel` + `merge_and_unload()`.
|
|||
|
|
2. **Reasoning-SFT (v2, текущая версия)**: merge дообучен LoRA (r=16, LR 2e-5, 1 эпоха) на reasoning-сабсете T-Wix — 31k примеров с русскими `<think>`-трейсами; управляющие суффиксы ` /think` из данных убраны, чтобы thinking стал поведением по умолчанию.
|
|||
|
|
|
|||
|
|
## Наблюдаемое поведение (ручной смоук-тест, не бенчмарк)
|
|||
|
|
|
|||
|
|
**Что работает:**
|
|||
|
|
- `<think>` включается сам на задачах, где уместен (математика, рассуждения), думает на языке вопроса (RU-вопрос → русский трейс, EN → английский), закрывает блок и даёт ответ
|
|||
|
|
- Пошаговая математика с самопроверкой внутри think
|
|||
|
|
- Tool calling: корректно выбирает функцию и аргументы
|
|||
|
|
- Беглый русский с хорошей структурой
|
|||
|
|
|
|||
|
|
**Известные дефекты:**
|
|||
|
|
- На длинных выкладках think может не уложиться в маленький `max_new_tokens` — ставьте ≥1000–2000
|
|||
|
|
- Фактология на русском слабая (модель 1B): для фактов используйте RAG
|
|||
|
|
- Перевод EN→RU нестабилен
|
|||
|
|
- Рекомендуется `repetition_penalty=1.1` (без него возможны циклы)
|
|||
|
|
|
|||
|
|
## Структура репозитория
|
|||
|
|
|
|||
|
|
| Путь | Содержимое |
|
|||
|
|
|---|---|
|
|||
|
|
| `/` | модель после reasoning-SFT, bf16 safetensors |
|
|||
|
|
| `/gguf` | GGUF: F16, Q8_0 |
|
|||
|
|
| `/lora` | reasoning-LoRA (r=16) отдельно — применима к merge-версии из истории коммитов |
|
|||
|
|
|
|||
|
|
## Запуск
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
from transformers import AutoModelForCausalLM, AutoTokenizer
|
|||
|
|
|
|||
|
|
repo = "kaufkino/MiniCPM5-1B-Fable5-Thinking-T-Wix-ru"
|
|||
|
|
model = AutoModelForCausalLM.from_pretrained(repo, dtype="bfloat16", device_map="auto")
|
|||
|
|
tokenizer = AutoTokenizer.from_pretrained(repo)
|
|||
|
|
|
|||
|
|
messages = [{"role": "user", "content": "Реши: 17 * 23 = ?"}]
|
|||
|
|
inputs = tokenizer.apply_chat_template(messages, add_generation_prompt=True,
|
|||
|
|
return_tensors="pt", return_dict=True).to(model.device)
|
|||
|
|
out = model.generate(**inputs, max_new_tokens=1500, temperature=0.5, top_p=0.95,
|
|||
|
|
do_sample=True, repetition_penalty=1.1)
|
|||
|
|
print(tokenizer.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Chat template (включая tools-формат и `enable_thinking`) унаследован от дистиллята.
|
|||
|
|
Принудительно выключить размышления: `enable_thinking=False` в `apply_chat_template`.
|
|||
|
|
|
|||
|
|
## Инфраструктура
|
|||
|
|
|
|||
|
|
Собрано на облачном GPU-сервере [Selectel](https://selectel.ru/?ref_code=d71285bdb8) *(реферальная ссылка)*.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**EN:** Russian 1B model with working think-mode: T-Wix Russian LoRA merged onto a Claude Opus/Fable5 distill, then SFT'd on the T-Wix reasoning subset (31k Russian think-traces, r=16, 1 epoch). Think auto-triggers on reasoning tasks in the question's language and closes properly; tool calling preserved. Known issues: weak Russian factual recall (use RAG), unstable EN→RU translation, use repetition_penalty=1.1 and max_new_tokens≥1000. Research artifact, no formal evals.
|