CoolFace
Modelpublic

AGmind/agmind-rag-splitter-ru

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
1likes279downloads
Model Card

RU Context-Aware Document Splitter (T-lite-it-2.1 LoRA)

Дообучение `t-tech/T-lite-it-2.1` (Qwen3-8B), которое режет русские документы на самодостаточные смысловые чанки для RAG, держа таблицы/код целыми. На вход — текст, заранее разбитый на нумерованные юниты; на выход — индексы границ + topic в JSON.

Текущая версия — v2 (main). v1 доступна тегом `v1.0`. Что нового в v2: (1) метки учителя — self-consistency голосование 3 сэмплов + few-shot промпт «не рви единую мысль» (по фидбеку сообщества); (2) датасет 17k→28k, источников 3→6 (+финансовые новости, учебно-официальные документы, юридические НПА); (3) впервые — честный эталон: 140 out-of-domain юр.документов, размеченных консенсусом двух независимых моделей с арбитражем (не teacher-agreement).

Использование

Это completion-модель, обученная на raw-Alpaca промпте (без чат-шаблона). Сначала разбей документ на нумерованные юниты; чанки собери на хосте по возвращённым индексам.

Промпт:

### Instruction:
Раздели документ на смысловые части для системы поиска (RAG). Каждая часть читается независимо, не разрывая предложений, таблиц и кода. Верни ТОЛЬКО номера единиц, после которых проходит граница, в формате JSON.

### Input:
[1] Первое предложение. [2] Второе. [3] | таблица |...|
### Response:

Вывод: {"splits": [2], "topic": "..."} — splits = индексы юнитов, после которых граница (1-индексные). Режь оригинал по этим точкам.

Полный пре-/пост-процессинг + рецепт сервинга на llama.cpp — в GitHub-репозитории.

Результаты v2 — эталон (главные цифры)

Эталон — 140 out-of-domain документов (90 НПА из RusLawOD + 50 судебных решений, 8 отраслей права), размечены консенсусом двух независимых моделей (DeepSeek × Claude) с арбитражем спорных — это не teacher-agreement, границы верифицированы чтением документов.

модельJSONboundary-F1@0boundary-F1@±1
v1 (GGUF Q5)99.3%0.3520.595
v2 (bf16)100%0.415 (+18%)0.609
v2 (GGUF Q5, AMD Vulkan)100%0.4050.606

По жанрам (v1 → v2, @±1): судебные решения 0.825 → 0.867; НПА 0.473 → 0.465 (паритет при выросшей точной позиции). Точность на судах @0: 0.361 → 0.495 (+37%).

<details><summary>История v1: согласие с метками учителя (teacher-agreement, не gold)</summary>

Snapshot N=300 из holdout-1500: JSON 100% / F1@0 0.656 / F1@±1 0.821 / exact 29%.

Перепроверка на полном holdout-1500 (2026-06-26): HF bf16 — 99.9% / 0.665 / 0.825 / 30.0%; GGUF Q5KM (AMD Vulkan) — 100% / 0.661 / 0.826 / 29.9%. </details>

Данные

v2: 28 095 train + 1 500 holdout, 6 источников (cultura 30% / habr 23% / синтетика 19% / юр. НПА 12% / финансовые новости 8% / учебные документы 8%). Метки — DeepSeek-V4-Flash, self-consistency голосование 3 сэмплов (n=3 из одного префилла) + few-shot промпт против крошения мысли. Датасет: `AGmind/agmind-rag-splitter-ru-data`.

Обучение

bf16 LoRA (r32, rsLoRA, all-linear, response-only) на RTX 5090, 2 эпохи (3 512 шагов, ~8ч). См. docs/methodology.md в репо.

Файлы

  • —LoRA-адаптер / merged FP16-веса
  • —*-Q5_K_M.gguf (llama.cpp, Vulkan/CPU)

Ограничения

Метрики — согласие с учителем, не human-ground-truth. Лёгкая пере-сегментация. Для очень больших таблиц нужна отдельная табличная стратегия, а не эта боундари-модель.

Лицензия

Apache-2.0 (наследует лицензию базы T-lite-it-2.1).