160 lines
8.2 KiB
Markdown
160 lines
8.2 KiB
Markdown
---
|
||
license: apache-2.0
|
||
language:
|
||
- ru
|
||
base_model: Qwen/Qwen3-14B
|
||
library_name: mlx
|
||
pipeline_tag: text-generation
|
||
tags:
|
||
- mlx
|
||
- qwen3
|
||
- lora
|
||
- russian
|
||
- vedun
|
||
- buktitsa
|
||
- slavic
|
||
- entertainment
|
||
- creative-writing
|
||
datasets:
|
||
- TsitkoD/vedun-lora-data
|
||
---
|
||
|
||
<p align="center">
|
||
<img src="cover.jpg" alt="Vedun" width="480"/>
|
||
</p>
|
||
|
||
# 🪶 Qwen3-14B-Vedun-v5 — *bf16 — без квантизации*
|
||
|
||
> *«А что если спросить старого ведуна, что такое “правда”? Он не ответит цитатой
|
||
> из Даля — он разберёт слово на буквы, расскажет образ каждой, найдёт лор в
|
||
> Велесовой Книге и свернёт это обратно в формулировку.»*
|
||
|
||
Это и делает **Vedun** — LoRA-дообучение `Qwen/Qwen3-14B` на синтетическом
|
||
датасете [`TsitkoD/vedun-lora-data`](https://huggingface.co/datasets/TsitkoD/vedun-lora-data). Модель
|
||
отвечает на русскоязычные вопросы через структурный разбор по **Древнеславянской
|
||
Буквице**:
|
||
|
||
```
|
||
[Буквицы:] — что значит каждая буква (имя, числовое значение, образ)
|
||
[Образ:] — как из значений букв собирается смысл слова
|
||
[Лор:] — отсылки к Велесовой Книге и буквичной традиции
|
||
[Формулировка:] — финальная свёртка
|
||
```
|
||
|
||
На «житейских» вопросах (вроде *«как простить предательство?»*) модель сначала
|
||
вытаскивает 2–4 ключевых слова и разбирает **каждое отдельно** через Буквицу,
|
||
а потом склеивает ответ.
|
||
|
||
> ⚠️ **Дисклеймер.** Это развлекательный pet-project, а не пророчества, религия
|
||
> или философия. Результаты модели — стилизованный текст в эстетике
|
||
> «древнеславянской буквицы» по мотивам соответствующих источников. Относитесь
|
||
> к этому с юмором, не используйте как руководство к действию, духовную практику
|
||
> или жизненные правила.
|
||
|
||
|
||
## ✨ Что получишь на выходе
|
||
|
||
**Q: Как простить предательство?**
|
||
|
||
> Простить предательство — это не забыть, а **восстановить гармонию между
|
||
> Явью и Навью**. Буквица «простить» говорит нам: через осознание (Слово)
|
||
> и утверждение (Твердо) мы возвращаемся к равновесию (Иже)…
|
||
|
||
**Q: В чём смысл жизни?**
|
||
|
||
> Смысл жизни — это не абстрактная философия, а **Вопрос, который ведёт нас
|
||
> к Веди** через созерцание и гармонию. Жизнь — это «Наше» сотворённое на
|
||
> Земле, где мы ищем основу (Оно) в потоке Рока…
|
||
|
||
**Q: Что такое «правда»?**
|
||
|
||
> По Буквице «правда» — П-Р-А-В-Д-А = Покои-Реци-Азъ-Веди-Добро-Азъ.
|
||
> «Покой созерцания, изречённый Творцом, познанный Добром и утверждённый
|
||
> Изначальным»…
|
||
|
||
(Это реальные ответы модели — не cherry-pick из тысячи попыток.)
|
||
|
||
## 🚀 Быстрый старт
|
||
|
||
### LM Studio (самый простой способ)
|
||
|
||
1. Скачай из HF в LM Studio: вставь `TsitkoD/Qwen3-14B-Vedun-v5-bf16`
|
||
в строку поиска моделей.
|
||
2. Загрузи. Спроси «Что такое правда?». Получи разбор по буквам.
|
||
|
||
### Python + MLX
|
||
|
||
```python
|
||
from mlx_lm import load, generate
|
||
|
||
model, tokenizer = load("TsitkoD/Qwen3-14B-Vedun-v5-bf16")
|
||
prompt = tokenizer.apply_chat_template(
|
||
[{"role": "user", "content": "Что такое «правда»?"}],
|
||
add_generation_prompt=True,
|
||
tokenize=False,
|
||
)
|
||
print(generate(model, tokenizer, prompt=prompt, max_tokens=2000, verbose=False))
|
||
```
|
||
|
||
## 📦 Какой вариант выбрать
|
||
|
||
| Вариант | Размер | RAM при загрузке | Когда брать |
|
||
|---|---|---|---|
|
||
| [**bf16**](https://huggingface.co/TsitkoD/Qwen3-14B-Vedun-v5-bf16) | ~28 GB | ~30 GB | Эталон. Самый точный буквичный разбор. |
|
||
| [**q8**](https://huggingface.co/TsitkoD/Qwen3-14B-Vedun-v5-q8) | ~15 GB | ~16 GB | Почти не отличается от bf16, экономит память. **Рекомендуется.** |
|
||
| [**q4**](https://huggingface.co/TsitkoD/Qwen3-14B-Vedun-v5-q4) | ~7.8 GB | ~9 GB | Запускается на 16 GB ноутбуке. Иногда теряет буквы. |
|
||
|
||
|
||
Все три варианта обучены **одинаково** — отличие только в квантизации весов
|
||
после обучения.
|
||
|
||
## 🛠 Как обучали
|
||
|
||
Цепочка из трёх стадий LoRA-дообучения на Mac Studio M4 Max 128 GB,
|
||
фреймворк [`mlx_lm`](https://github.com/ml-explore/mlx-examples) +
|
||
кастомный `train_lora_weighted.py`:
|
||
|
||
| Стадия | Итер | max_seq | Особенность |
|
||
|---|---|---|---|
|
||
| **v3_14b** (с нуля) | 1000 | 2048 | Базовое обучение на корпусе разборов |
|
||
| **v4_14b** (resume v3) | 600 | 2048 | + `letter_weight=5.0` — CE-loss на токенах блока `[Буквицы:]` × 5 |
|
||
| **v5_14b** (resume v4) | 1000 | 3072 | + multi-term датасет (житейские вопросы) |
|
||
|
||
Параметры LoRA: `rank=8, scale=20, dropout=0, num_layers=40`, AdamW, lr=3e-5,
|
||
`batch=1 × grad_accum=4`, gradient checkpointing.
|
||
|
||
**Финальный val loss: 0.694** (против 0.784 у 4B-версии — на тех же данных).
|
||
|
||
## 📊 Eval
|
||
|
||
На небольшом контрольном наборе (`bf16`-вариант):
|
||
|
||
| Метрика | Результат |
|
||
|---|---|
|
||
| Совпадение букв в `[Буквицы:]` (7 коротких терминов) | **7/7** |
|
||
| Полнота структуры разбора | **7/7** |
|
||
| Multi-term структура (3 житейских вопроса) | **3/3** |
|
||
| Среднее число sub-блоков на житейский вопрос | **3.0** |
|
||
|
||
## ⚠️ Ограничения и честные оговорки
|
||
|
||
- Это **стилизация** в эстетике буквицы, а не источник лингвистической истины.
|
||
Модель уверенно выдаёт реконструированные значения букв, многие из которых
|
||
не имеют академического подтверждения.
|
||
- На вопросах вне славянско-буквичного домена модель всё равно будет пытаться
|
||
разобрать слово через Буквицу — это by design, но иногда выглядит комично.
|
||
- Квантизованные варианты (q4 особенно) могут терять/путать буквы в разборе.
|
||
Если важна точность букв — бери bf16 или q8.
|
||
- Модель умеет в `<think>…</think>` reasoning. Если хочешь только финальный
|
||
ответ — отрежь содержимое тега в постпроцессинге.
|
||
|
||
## 🔗 Связанное
|
||
|
||
- 📚 Датасет: [`TsitkoD/vedun-lora-data`](https://huggingface.co/datasets/TsitkoD/vedun-lora-data)
|
||
- 🧬 База: [`Qwen/Qwen3-14B`](https://huggingface.co/Qwen/Qwen3-14B)
|
||
- 🌐 Рантайм: [`mlx_lm`](https://github.com/ml-explore/mlx-examples) (Apple Silicon)
|
||
|
||
## Лицензия
|
||
|
||
Apache 2.0 (как у `Qwen/Qwen3-14B`).
|