five

parlorsky/legal-rag-benchmark-ru

收藏
Hugging Face2026-04-08 更新2026-04-12 收录
下载链接:
https://hf-mirror.com/datasets/parlorsky/legal-rag-benchmark-ru
下载链接
链接失效反馈
官方服务:
资源简介:
--- language: - ru tags: - legal - rag - benchmark - knowledge-graph - russian - nlp license: mit pretty_name: "Legal RAG Benchmark (Russian)" size_categories: - 1K<n<10K --- # Legal RAG Benchmark — Russian Legal Documents Сравнительный бенчмарк 5 подходов к вопросно-ответным системам (QA) на корпусе российских правовых документов. ## 📊 Результаты | Система | Точность (F) | Релевантность (R) | Полнота (C) | Overall | Латенция | |---------|:---:|:---:|:---:|:---:|:---:| | **Improved RAG (наш)** | **5.00** | **5.00** | **4.72** | **4.93** | 12.1s | | Baseline RAG | 5.00 | 4.88 | 4.40 | 4.81 | 7.5s | | Pure LLM | 4.44 | 4.84 | 3.92 | 4.45 | 34.7s | | Wikontic AIRI | 3.40 | 3.04 | 2.04 | 2.83 | 6.3s | | GraphRAG Microsoft | 3.56 | 1.92 | 1.20 | 2.23 | 35.3s | > Подробный отчёт с графиками: [benchmark_report.pdf](benchmark_report.pdf) ## 🏗️ Структура репозитория ``` ├── README.md # Документация ├── benchmark_report.pdf # PDF отчёт с графиками ├── test_dataset.json # 25 тестовых вопросов с эталонными ответами ├── sample_docs/ # 12 исходных правовых документов (txt) │ ├── improved_rag/ # Артефакты нашего Improved RAG │ ├── vector_store/ │ │ ├── index.faiss # FAISS индекс (dense retrieval) │ │ ├── embeddings.npy # Матрица эмбеддингов │ │ ├── documents.json # Метаданные документов │ │ └── config.json # Конфиг vector store │ ├── bm25_index/ │ │ └── bm25_index.json # BM25 индекс (sparse retrieval) │ ├── chunks.json # 9162 текстовых фрагмента │ ├── chunks_with_entities.json # Фрагменты с извлечёнными сущностями │ ├── ontology.json # Онтология предметной области │ └── system_config.json # Конфигурация системы │ ├── graphrag/ # Артефакты GraphRAG Microsoft │ ├── settings.yaml # Конфигурация GraphRAG │ └── output/ │ ├── entities.parquet # 1507 извлечённых сущностей │ ├── relationships.parquet # Связи между сущностями │ ├── communities.parquet # 216 сообществ (Leiden clustering) │ ├── community_reports.parquet # Отчёты по сообществам │ ├── text_units.parquet # 2413 текстовых единиц │ ├── documents.parquet # Метаданные документов │ └── lancedb/ # LanceDB векторное хранилище │ ├── default-entity-description.lance/ │ ├── default-community-full_content.lance/ │ └── default-text_unit-text.lance/ │ ├── wikontic/ # Артефакты Wikontic AIRI │ ├── triplets.json # 594 извлечённых триплета (KG) │ ├── initial_triplets.json # 597 исходных триплетов (до фильтрации) │ ├── entity_aliases.json # 807 сущностей (без эмбеддингов) │ ├── entity_aliases_full.json # 807 сущностей (с Contriever эмбеддингами) │ ├── property_aliases.json # 257 свойств (без эмбеддингов) │ ├── property_aliases_full.json # 257 свойств (с эмбеддингами) │ └── filtered_triplets.json # Отфильтрованные триплеты │ └── benchmark_results/ # Результаты бенчмарка ├── comparison.json # Baseline RAG + Improved RAG + Pure LLM (25 вопросов) ├── wikontic_results.json # Wikontic результаты (25 вопросов) └── graphrag_results.json # GraphRAG результаты (25 вопросов) ``` ## 🔧 Тестируемые системы ### 1. Improved RAG (наше решение) — Overall: 4.93 - **Retrieval**: гибридный BM25 + dense (FAISS) с 9162 фрагментами - **Reranking**: Qwen3-Reranker-4B — нейросетевой реранкер - **Generation**: Gemma-4-31B-it-abliterated через vLLM - **Индексация**: ~30 минут ### 2. Baseline RAG — Overall: 4.81 - **Retrieval**: только dense (FAISS), без BM25 и реранкера - **Generation**: та же Gemma-4-31B - Показывает вклад гибридного поиска и реранкера: +2.5% к Overall ### 3. Pure LLM — Overall: 4.45 - Gemma-4-31B без контекста из документов - Контрольная группа: показывает вклад RAG (+8% к Overall) ### 4. Wikontic AIRI — Overall: 2.83 - **Knowledge Graph**: извлечение триплетов через LLM - **Storage**: MongoDB (entity/property aliases с Contriever эмбеддингами) - **Проблемы**: транслитерация русского в латиницу, неполнота KG (594 триплета) ### 5. GraphRAG Microsoft — Overall: 2.23 - **Graph**: 1507 entities, связи, 216 community clusters - **Search**: local search через LanceDB embeddings (Jina v3) - **Проблемы**: community reports дают обобщённые ответы, Completeness=1.20 ## 📋 Тестовый набор 25 вопросов по 5 категориям: - **def** (13) — определения юридических понятий - **factual** (4) — фактические вопросы о правовых нормах - **legal** (4) — юридические тонкости и ограничения - **cross** (3) — кросс-документные вопросы - **process** (1) — процедурные вопросы Документы: 12 федеральных законов и нормативных актов РФ (банковское право, долевое строительство, промышленная политика, ГЧП, рынок ценных бумаг). ## 🚀 Как использовать ### Восстановить Improved RAG ```python import faiss, json, numpy as np # Загрузить FAISS индекс index = faiss.read_index("improved_rag/vector_store/index.faiss") embeddings = np.load("improved_rag/vector_store/embeddings.npy") with open("improved_rag/vector_store/documents.json") as f: documents = json.load(f) with open("improved_rag/chunks.json") as f: chunks = json.load(f) print(f"FAISS: {index.ntotal} vectors, {len(chunks)} chunks") ``` ### Восстановить Wikontic KG ```python import json from pymongo import MongoClient client = MongoClient("mongodb://localhost:27017") db = client["triplets_db"] for collection in ["triplets", "entity_aliases_full", "property_aliases_full", "initial_triplets"]: with open(f"wikontic/{collection}.json") as f: docs = json.load(f) if docs: db[collection.replace("_full", "")].insert_many(docs) print(f"{collection}: {len(docs)} docs restored") ``` ### Восстановить GraphRAG ```python # GraphRAG output можно использовать напрямую — скопируйте содержимое # graphrag/output/ в папку output/ вашего GraphRAG проекта # pip install graphrag # graphrag query --root ./graphrag --method local -q "Ваш вопрос" ``` ### Загрузить результаты бенчмарка ```python import json with open("benchmark_results/comparison.json") as f: results = json.load(f) for system in results: data = results[system] avg_overall = sum(q["overall"] for q in data) / len(data) print(f"{system}: Overall={avg_overall:.2f}") ``` ## ⚙️ Инфраструктура - **GPU**: NVIDIA RTX PRO 6000 Blackwell (96GB VRAM) - **LLM**: Gemma-4-31B-it-abliterated (vLLM, bfloat16) - **Reranker**: Qwen3-Reranker-4B (vLLM) - **Embeddings**: Jina-embeddings-v3 (для GraphRAG), Contriever (для Wikontic) - **OS**: Ubuntu 22.04, Python 3.10 ## 📝 Методология оценки Каждый ответ оценивается LLM-судьёй (Gemma-4-31B) по 3 критериям (1-5): - **Factual Accuracy (F)** — фактическая точность - **Relevance (R)** — релевантность вопросу - **Completeness (C)** — полнота покрытия ключевых аспектов - **Overall** = (F + R + C) / 3 Все системы используют одну и ту же LLM для генерации, что обеспечивает справедливое сравнение retrieval-компонентов. ## 📄 Лицензия MIT ## 🔗 Ссылки - [Wikontic AIRI](https://github.com/AIRI-Institute/Wikontic) — исходный репозиторий Wikontic - [GraphRAG Microsoft](https://github.com/microsoft/graphrag) — исходный репозиторий GraphRAG
提供机构:
parlorsky
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作