wwewtech/russian-it-community-corpus

Russian IT Community Conversational Corpus (2017-2026) · Zero-PII Curation Platform, Multi-turn SFT, DPO, RAG Knowledge Base, Streamlit Studio & RTX 3060 LoRA benchmark

1

stars

107

commits

Python

primary language

Sep 8, 2026

updated

data-engineering
dataset
dpo
llm
lora
machine-learning
rag
russian-nlp
sft
streamlit
zero-pii

README

RICC RICC

High-throughput data engineering and Zero-PII curation platform for language models

2,816,434 discussions · 2017–2026 history · SFT dialogues · DPO pairs · RAG knowledge base · LoRA on RTX 3060


Hugging Face Dataset Hugging Face Models Python PyTorch PEFT Parquet Streamlit Docker Zero-PII

[!TIP] 🤗 Official Hugging Face Hub Integration:

  • 📦 Dataset: wwewtech/russian-it-community-corpus — 2,816,434 clean messages, 171.5k multi-turn SFT dialogues, and 325.7k RAG knowledge base chunks in Apache Parquet.
  • 🦁 LoRA Model Zoo: wwewtech/russian-it-community-lora — 58 adapters on Hugging Face Hub (55 domain adapters + 3 flagship 7B–8B QLoRA; 56 adapters cloned locally in lora_adapters/).
from datasets import load_dataset
dataset = load_dataset("wwewtech/russian-it-community-corpus", "sft_dialogues", split="train")

Overview

RICC (Russian IT Community Corpus) is an open data engineering and curation stack that ingests, cleans, deduplicates, and structures 2,816,434 engineering, infrastructure, business, and software development messages from 11 community nodes spanning 2017–2026.

The platform produces datasets for instruction fine-tuning, direct preference optimization, and vector knowledge retrieval.

MetricPropertyFactual Value
Privacy & AnonymizationMulti-pass Regex + Natasha NER + case declension11 community nodes anonymized (community_node_01..11)
DeduplicationMinHash LSH (128 permutations, 0.80 Jaccard threshold)95,300+ duplicate / spam messages removed
SFT dialogue qualityMulti-turn dialogues extracted from reconstructed thread DAGs171,520 curated dialogues
Local LoRA executionPEFT QLoRA adaptation on consumer hardware~4.35 GB VRAM on RTX 3060 (12GB)

Architecture

                       ┌──────────────────────────────┐
   11 Community Nodes ──►   Multi-Source Ingestion      │
    2,816,434 raw records   └──────────────┬───────────────┘
                                      │
                       ┌──────────────▼───────────────┐
                       │   Deep Case-Aware Zero-PII   │ ──► Declension across 6 Russian cases
                       │   RegEx + Natasha Neural NER │     Tech terminology protection whitelist
                       └──────────────┬───────────────┘
                                      │
                       ┌──────────────▼───────────────┐
                       │   Deduplication & Taxonomy   │ ──► MinHash LSH with 128 permutations
                       │   8 Domain Classifiers       │     Exact hash deduplication
                       └──────────────┬───────────────┘
                                      │
                       ┌──────────────▼───────────────┐
                       │   Thread DAG Reconstruction  │ ──► Reply tree traversal
                       │   SFT, DPO, RAG Extraction   │     Temporal cluster resolution
                       └──────────────┬───────────────┘
                                      │
         ┌────────────────────────────┼────────────────────────────┐
         ▼                            ▼                            ▼
┌──────────────────┐        ┌──────────────────┐        ┌──────────────────┐
│  Apache Parquet  │        │   JSONL Datasets │        │  Local LoRA, RAG │
│  zstd compressed │        │  ShareGPT, ChatML│        │  RTX 3060 Runner │
│   full, sft, rag │        │  Alpaca, Qdrant  │        │  Streamlit Studio│
└──────────────────┘        └──────────────────┘        └──────────────────┘
Pipeline StageImplementationPurpose
Ingestionsrc/ingestion/Normalizes and chronologically merges multi-chat raw exports (11 sources)
Anonymizationsrc/pii/Redacts names across 6 cases, phone numbers, crypto wallets, API tokens, database URLs
Deduplicationsrc/deduplication/Filters near-duplicate and exact spam messages via MinHash LSH
Taxonomysrc/taxonomy/Categorizes content into 8 technical domains and extracts keyword tags
Thread DAGsrc/graph/Reconstructs conversational trees and extracts multi-turn dialogues
Multi-Exportsrc/exporter/Serializes outputs into Apache Parquet with zstd compression and JSONL formats
Analyticssrc/analytics/Computes Shannon entropy, temporal patterns, social graphs, and vocabulary stats
Local LoRA and RAGsrc/lora/, src/rag/Provides PEFT training for RTX 3060 and semantic retrieval for 325k chunks

The corpus and trained adapters are available both remotely on Hugging Face Hub and locally in dataset_output/:

🤗 Hugging Face Hub Repositories:


📂 Local Datasets and Formats

All datasets are automatically generated and saved in dataset_output/:

File PathFormatVolumeDescriptionDirect Link
dataset_output/parquet/full_clean_messages.parquetParquet (zstd)2,816,434 rows (189 MB)Full cleaned corpus with metadataHF Mirror
dataset_output/parquet/sft_dialogues.parquetParquet (zstd)171,520 dialogues (132 MB)Multi-turn dialogues for SFTHF Mirror
dataset_output/parquet/rag_knowledge_base.parquetParquet (zstd)325,690 chunks (159 MB)Vector knowledge baseHF Mirror
dataset_output/jsonl/sft_openai_messages.jsonlChatML JSONL171,520 dialoguesOpenAI format for Unsloth / TRLLocal / HF
dataset_output/jsonl/sft_sharegpt_format.jsonlShareGPT JSONL171,520 dialoguesAxolotl & LLaMA-Factory formatLocal / HF
dataset_output/jsonl/sft_alpaca_format.jsonlAlpaca JSONL933,313 pairsSingle-turn instruction-response pairsLocal / HF
dataset_output/jsonl/rag_chunks_kb.jsonlRAG JSONL325,690 chunksSegmented technical documentsLocal / HF
dataset_output/jsonl/dpo_preference_pairs.jsonlDPO JSONL60,899 pairsChosen / Rejected alignment pairsLocal / HF

Comparative Architectural Evaluation (Base vs RAG vs LoRA vs Hybrid)

[!WARNING] Benchmark section withdrawn from README. Earlier numbers in this section were officially retracted in reports/DATASET_AND_ANALYTICS.md, section "Empirical Evaluation — Honest Status". A code audit of the benchmark harness (src/evaluation/official_academic_benchmarks.py) found three defects (substring-based MCQ scoring, PPL on empty placeholders, silent copy of Base results into LoRA/Hybrid columns when the adapter failed to load). The numbers will be republished only after a fresh GPU re-run; meanwhile we ship the dataset and adapters without any accuracy claim on this README page. The 100-question non-executing benchmark suite remains available in reports/domain_benchmark_100.json as a corpus, not as a leaderboard.


Quick start

Requirements

  • Python 3.11, 3.12, or 3.13
  • NVIDIA GPU with 8 GB or more VRAM for training, or CPU for data processing
  • Docker with Docker Compose for containerized runs

Direct Loading from Hugging Face

Load pre-built dataset splits in Python with a single line:

from datasets import load_dataset

# 1. Load SFT Multi-Turn Dialogues (171.5k dialogues)
sft_ds = load_dataset("wwewtech/russian-it-community-corpus", "sft_dialogues", split="train")

# 2. Load RAG Knowledge Base Chunks (325.7k chunks)
rag_ds = load_dataset("wwewtech/russian-it-community-corpus", "rag_knowledge_base", split="train")

# 3. Load Full Clean Messages (2.81M records)
full_ds = load_dataset("wwewtech/russian-it-community-corpus", "full_corpus", split="train")

LoRA Model Zoo (56 Local Adapters / 58 Adapters on Hugging Face Hub)

Pre-trained adapters fine-tuned in pilot domain-adaptation runs on RICC dataset are available locally in lora_adapters/ (56 adapters) and on Hugging Face: wwewtech/russian-it-community-lora (58 adapters, including codegen_350m_multi and sber_mgpt). The local lora_adapters/registry.json is the single source of truth for on-disk adapters, generated by scripts/generate_lora_registry.py. To mirror the registry to the Hub, see docs/adr/0001-hf-token-handling.md and scripts/sync_to_hub.py. Full hand-maintained catalog lives in reports/LORA_MODEL_ZOO.md.

Base ModelFamilyParametersLoRA SizeLocal Path
Qwen/Qwen2.5-0.5B-InstructQwen 2.50.5B8.27 MBlora_adapters/qwen2.5_0.5b_instruct/
Qwen/Qwen2.5-1.5B-InstructQwen 2.51.5B16.65 MBlora_adapters/qwen2.5_1.5b_instruct/
Qwen/Qwen2.5-3B-InstructQwen 2.53.0B28.16 MBlora_adapters/qwen2.5_3b_instruct/
Qwen/Qwen2.5-Coder-1.5B-InstructQwen 2.5 Coder1.5B16.65 MBlora_adapters/qwen2.5_coder_1.5b_instruct/
deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5BDeepSeek R11.5B16.65 MBlora_adapters/deepseek_r1_distill_qwen_1.5b/
unsloth/Llama-3.2-1B-InstructLlama 3.21.0B13.02 MBlora_adapters/llama_3.2_1b_instruct/
unsloth/Llama-3.2-3B-InstructLlama 3.23.0B35.03 MBlora_adapters/llama_3.2_3b_instruct/
Vikhrmodels/Vikhr-Qwen-2.5-1.5B-InstructVikhr NLP1.5B16.65 MBlora_adapters/vikhr_qwen_2.5_1.5b/
HuggingFaceTB/SmolLM2-1.7B-InstructSmolLM21.7B24.02 MBlora_adapters/smollm2_1.7b_instruct/
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer

base = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-1.5B-Instruct", device_map="auto", torch_dtype="auto")
tokenizer = AutoTokenizer.from_pretrained(
    "lora_adapters/qwen2.5_1.5b_instruct"
)  # or "wwewtech/russian-it-community-lora"
model = PeftModel.from_pretrained(base, "lora_adapters/qwen2.5_1.5b_instruct")

1. Install

git clone https://github.com/wwewtech/russian-it-community-corpus.git
cd russian-it-community-corpus
pip install -r requirements.txt

2. Run Data Pipeline

python main.py

3. Launch Web Data Studio

streamlit run app.py
# or:
make ui

4. Fine-Tune LoRA

python src/lora/train_lora.py --model Qwen/Qwen2.5-0.5B-Instruct --steps 100

5. Run LoRA Inference

python src/lora/generate_demo.py --prompt "Как настроить прием платежей для SaaS из РФ?"

Command Reference

CommandAction
python main.pyRun complete pipeline on all available chat exports
python cli.py analyzeGenerate analytical reports and metrics
python cli.py validateValidate dataset schema and check for PII leaks
python cli.py benchmarkExport and inspect 100 domain test cases
python demo_walkthrough.pyRun interactive terminal walkthrough
python -m unittest discover -s testsRun automated test suite
make auditRun red-team adversarial penetration test
make docker-upStart Web Data Studio in Docker container

Project Structure

├── assets/                     # Theme-aware vector graphics
├── src/
│   ├── ingestion/              # Multi-chat JSON export parser
│   ├── pii/                    # Case-aware PII anonymizer and neural NER
│   ├── graph/                  # Thread DAG builder and dialogue extractor
│   ├── deduplication/          # MinHash LSH and exact text hashing
│   ├── taxonomy/               # Domain classifiers and keyword taggers
│   ├── exporter/               # Apache Parquet and JSONL serializers
│   ├── analytics/              # DeepChatAnalyzer statistical engine
│   ├── rag/                    # Vector search and prompt augmentation pipeline
│   ├── lora/                   # PEFT training and inference scripts
│   ├── evaluation/             # Benchmark comparator
│   └── validation/             # PII auditor and domain benchmarks
├── dataset_output/             # Parquet datasets and preview samples
├── reports/                    # Canonical dataset & model cards and benchmark suites
│   ├── DATASET_AND_ANALYTICS.md   # Dataset Card and Zero-PII Protocol
│   ├── HF_MODEL_CARD.md           # Hugging Face Model Card
│   ├── LORA_MODEL_ZOO.md          # Catalog of 58 LoRA Adapters on Hub (56 local)
│   ├── heuristic_benchmark_eval.json # 50-Scenario Heuristic Benchmark Matrix
│   └── domain_benchmark_100.json  # 100-Scenario Domain Benchmark Suite
├── tests/                      # Automated unit tests
├── app.py                      # Streamlit Web Data Studio
├── demo_walkthrough.py         # Terminal demonstration script
├── cli.py                      # CLI entrypoint
├── main.py                     # Pipeline master runner
├── Dockerfile                  # Production container definition
├── docker-compose.yml          # Container composition
├── Makefile                    # Task shortcuts
└── requirements.txt            # Python dependencies

Privacy and Anonymization Protocol

  1. Morphological Name Redaction: Detects author display names and inflects them across 6 Russian grammatical cases to eliminate conversational mentions.
  2. Deterministic Pattern Scrubbing: Removes phone numbers in international formats, email addresses, cryptocurrency wallet addresses, API keys, tokens, and database connection strings.
  3. Source Community Anonymization: Replaces all source channel titles with surrogate identifiers (community_node_01..11) and re-indexes technical IDs.
  4. Terminology Protection: Whitelists common technical terms, programming languages, libraries, and hosting providers to prevent false positives.
  5. Automated Sanity Suite: Regression tests against synthetic adversarial vectors verify regex pattern coverage in reports/pii_validation_report.json.

License and Ethical Use

  • Academic and Research Use: Provided for educational, non-commercial, and machine learning research purposes.
  • Privacy Policy: All data has undergone heuristic multi-pass PII scrubbing and anonymization.
  • Notice and Takedown: If you identify any inadvertent personal identifier or content that should be excluded, please open a takedown issue or submit a removal request. Requests are processed within 48 hours.

RICC RICC

RICC · Russian IT Community Corpus

Contributors

wwewtech

107 commits

wwewtech/russian-it-community-corpus

Russian IT Community Conversational Corpus (2017-2026) · Zero-PII Curation Platform, Multi-turn SFT, DPO, RAG Knowledge Base, Streamlit Studio & RTX 3060 LoRA benchmark

1

stars

107

commits

Python

primary language

Sep 8, 2026

updated

data-engineering
dataset
dpo
llm
lora
machine-learning
rag
russian-nlp
sft
streamlit
zero-pii

README

RICC RICC

High-throughput data engineering and Zero-PII curation platform for language models

2,816,434 discussions · 2017–2026 history · SFT dialogues · DPO pairs · RAG knowledge base · LoRA on RTX 3060


Hugging Face Dataset Hugging Face Models Python PyTorch PEFT Parquet Streamlit Docker Zero-PII

[!TIP] 🤗 Official Hugging Face Hub Integration:

  • 📦 Dataset: wwewtech/russian-it-community-corpus — 2,816,434 clean messages, 171.5k multi-turn SFT dialogues, and 325.7k RAG knowledge base chunks in Apache Parquet.
  • 🦁 LoRA Model Zoo: wwewtech/russian-it-community-lora — 58 adapters on Hugging Face Hub (55 domain adapters + 3 flagship 7B–8B QLoRA; 56 adapters cloned locally in lora_adapters/).
from datasets import load_dataset
dataset = load_dataset("wwewtech/russian-it-community-corpus", "sft_dialogues", split="train")

Overview

RICC (Russian IT Community Corpus) is an open data engineering and curation stack that ingests, cleans, deduplicates, and structures 2,816,434 engineering, infrastructure, business, and software development messages from 11 community nodes spanning 2017–2026.

The platform produces datasets for instruction fine-tuning, direct preference optimization, and vector knowledge retrieval.

MetricPropertyFactual Value
Privacy & AnonymizationMulti-pass Regex + Natasha NER + case declension11 community nodes anonymized (community_node_01..11)
DeduplicationMinHash LSH (128 permutations, 0.80 Jaccard threshold)95,300+ duplicate / spam messages removed
SFT dialogue qualityMulti-turn dialogues extracted from reconstructed thread DAGs171,520 curated dialogues
Local LoRA executionPEFT QLoRA adaptation on consumer hardware~4.35 GB VRAM on RTX 3060 (12GB)

Architecture

                       ┌──────────────────────────────┐
   11 Community Nodes ──►   Multi-Source Ingestion      │
    2,816,434 raw records   └──────────────┬───────────────┘
                                      │
                       ┌──────────────▼───────────────┐
                       │   Deep Case-Aware Zero-PII   │ ──► Declension across 6 Russian cases
                       │   RegEx + Natasha Neural NER │     Tech terminology protection whitelist
                       └──────────────┬───────────────┘
                                      │
                       ┌──────────────▼───────────────┐
                       │   Deduplication & Taxonomy   │ ──► MinHash LSH with 128 permutations
                       │   8 Domain Classifiers       │     Exact hash deduplication
                       └──────────────┬───────────────┘
                                      │
                       ┌──────────────▼───────────────┐
                       │   Thread DAG Reconstruction  │ ──► Reply tree traversal
                       │   SFT, DPO, RAG Extraction   │     Temporal cluster resolution
                       └──────────────┬───────────────┘
                                      │
         ┌────────────────────────────┼────────────────────────────┐
         ▼                            ▼                            ▼
┌──────────────────┐        ┌──────────────────┐        ┌──────────────────┐
│  Apache Parquet  │        │   JSONL Datasets │        │  Local LoRA, RAG │
│  zstd compressed │        │  ShareGPT, ChatML│        │  RTX 3060 Runner │
│   full, sft, rag │        │  Alpaca, Qdrant  │        │  Streamlit Studio│
└──────────────────┘        └──────────────────┘        └──────────────────┘
Pipeline StageImplementationPurpose
Ingestionsrc/ingestion/Normalizes and chronologically merges multi-chat raw exports (11 sources)
Anonymizationsrc/pii/Redacts names across 6 cases, phone numbers, crypto wallets, API tokens, database URLs
Deduplicationsrc/deduplication/Filters near-duplicate and exact spam messages via MinHash LSH
Taxonomysrc/taxonomy/Categorizes content into 8 technical domains and extracts keyword tags
Thread DAGsrc/graph/Reconstructs conversational trees and extracts multi-turn dialogues
Multi-Exportsrc/exporter/Serializes outputs into Apache Parquet with zstd compression and JSONL formats
Analyticssrc/analytics/Computes Shannon entropy, temporal patterns, social graphs, and vocabulary stats
Local LoRA and RAGsrc/lora/, src/rag/Provides PEFT training for RTX 3060 and semantic retrieval for 325k chunks

The corpus and trained adapters are available both remotely on Hugging Face Hub and locally in dataset_output/:

🤗 Hugging Face Hub Repositories:


📂 Local Datasets and Formats

All datasets are automatically generated and saved in dataset_output/:

File PathFormatVolumeDescriptionDirect Link
dataset_output/parquet/full_clean_messages.parquetParquet (zstd)2,816,434 rows (189 MB)Full cleaned corpus with metadataHF Mirror
dataset_output/parquet/sft_dialogues.parquetParquet (zstd)171,520 dialogues (132 MB)Multi-turn dialogues for SFTHF Mirror
dataset_output/parquet/rag_knowledge_base.parquetParquet (zstd)325,690 chunks (159 MB)Vector knowledge baseHF Mirror
dataset_output/jsonl/sft_openai_messages.jsonlChatML JSONL171,520 dialoguesOpenAI format for Unsloth / TRLLocal / HF
dataset_output/jsonl/sft_sharegpt_format.jsonlShareGPT JSONL171,520 dialoguesAxolotl & LLaMA-Factory formatLocal / HF
dataset_output/jsonl/sft_alpaca_format.jsonlAlpaca JSONL933,313 pairsSingle-turn instruction-response pairsLocal / HF
dataset_output/jsonl/rag_chunks_kb.jsonlRAG JSONL325,690 chunksSegmented technical documentsLocal / HF
dataset_output/jsonl/dpo_preference_pairs.jsonlDPO JSONL60,899 pairsChosen / Rejected alignment pairsLocal / HF

Comparative Architectural Evaluation (Base vs RAG vs LoRA vs Hybrid)

[!WARNING] Benchmark section withdrawn from README. Earlier numbers in this section were officially retracted in reports/DATASET_AND_ANALYTICS.md, section "Empirical Evaluation — Honest Status". A code audit of the benchmark harness (src/evaluation/official_academic_benchmarks.py) found three defects (substring-based MCQ scoring, PPL on empty placeholders, silent copy of Base results into LoRA/Hybrid columns when the adapter failed to load). The numbers will be republished only after a fresh GPU re-run; meanwhile we ship the dataset and adapters without any accuracy claim on this README page. The 100-question non-executing benchmark suite remains available in reports/domain_benchmark_100.json as a corpus, not as a leaderboard.


Quick start

Requirements

  • Python 3.11, 3.12, or 3.13
  • NVIDIA GPU with 8 GB or more VRAM for training, or CPU for data processing
  • Docker with Docker Compose for containerized runs

Direct Loading from Hugging Face

Load pre-built dataset splits in Python with a single line:

from datasets import load_dataset

# 1. Load SFT Multi-Turn Dialogues (171.5k dialogues)
sft_ds = load_dataset("wwewtech/russian-it-community-corpus", "sft_dialogues", split="train")

# 2. Load RAG Knowledge Base Chunks (325.7k chunks)
rag_ds = load_dataset("wwewtech/russian-it-community-corpus", "rag_knowledge_base", split="train")

# 3. Load Full Clean Messages (2.81M records)
full_ds = load_dataset("wwewtech/russian-it-community-corpus", "full_corpus", split="train")

LoRA Model Zoo (56 Local Adapters / 58 Adapters on Hugging Face Hub)

Pre-trained adapters fine-tuned in pilot domain-adaptation runs on RICC dataset are available locally in lora_adapters/ (56 adapters) and on Hugging Face: wwewtech/russian-it-community-lora (58 adapters, including codegen_350m_multi and sber_mgpt). The local lora_adapters/registry.json is the single source of truth for on-disk adapters, generated by scripts/generate_lora_registry.py. To mirror the registry to the Hub, see docs/adr/0001-hf-token-handling.md and scripts/sync_to_hub.py. Full hand-maintained catalog lives in reports/LORA_MODEL_ZOO.md.

Base ModelFamilyParametersLoRA SizeLocal Path
Qwen/Qwen2.5-0.5B-InstructQwen 2.50.5B8.27 MBlora_adapters/qwen2.5_0.5b_instruct/
Qwen/Qwen2.5-1.5B-InstructQwen 2.51.5B16.65 MBlora_adapters/qwen2.5_1.5b_instruct/
Qwen/Qwen2.5-3B-InstructQwen 2.53.0B28.16 MBlora_adapters/qwen2.5_3b_instruct/
Qwen/Qwen2.5-Coder-1.5B-InstructQwen 2.5 Coder1.5B16.65 MBlora_adapters/qwen2.5_coder_1.5b_instruct/
deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5BDeepSeek R11.5B16.65 MBlora_adapters/deepseek_r1_distill_qwen_1.5b/
unsloth/Llama-3.2-1B-InstructLlama 3.21.0B13.02 MBlora_adapters/llama_3.2_1b_instruct/
unsloth/Llama-3.2-3B-InstructLlama 3.23.0B35.03 MBlora_adapters/llama_3.2_3b_instruct/
Vikhrmodels/Vikhr-Qwen-2.5-1.5B-InstructVikhr NLP1.5B16.65 MBlora_adapters/vikhr_qwen_2.5_1.5b/
HuggingFaceTB/SmolLM2-1.7B-InstructSmolLM21.7B24.02 MBlora_adapters/smollm2_1.7b_instruct/
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer

base = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-1.5B-Instruct", device_map="auto", torch_dtype="auto")
tokenizer = AutoTokenizer.from_pretrained(
    "lora_adapters/qwen2.5_1.5b_instruct"
)  # or "wwewtech/russian-it-community-lora"
model = PeftModel.from_pretrained(base, "lora_adapters/qwen2.5_1.5b_instruct")

1. Install

git clone https://github.com/wwewtech/russian-it-community-corpus.git
cd russian-it-community-corpus
pip install -r requirements.txt

2. Run Data Pipeline

python main.py

3. Launch Web Data Studio

streamlit run app.py
# or:
make ui

4. Fine-Tune LoRA

python src/lora/train_lora.py --model Qwen/Qwen2.5-0.5B-Instruct --steps 100

5. Run LoRA Inference

python src/lora/generate_demo.py --prompt "Как настроить прием платежей для SaaS из РФ?"

Command Reference

CommandAction
python main.pyRun complete pipeline on all available chat exports
python cli.py analyzeGenerate analytical reports and metrics
python cli.py validateValidate dataset schema and check for PII leaks
python cli.py benchmarkExport and inspect 100 domain test cases
python demo_walkthrough.pyRun interactive terminal walkthrough
python -m unittest discover -s testsRun automated test suite
make auditRun red-team adversarial penetration test
make docker-upStart Web Data Studio in Docker container

Project Structure

├── assets/                     # Theme-aware vector graphics
├── src/
│   ├── ingestion/              # Multi-chat JSON export parser
│   ├── pii/                    # Case-aware PII anonymizer and neural NER
│   ├── graph/                  # Thread DAG builder and dialogue extractor
│   ├── deduplication/          # MinHash LSH and exact text hashing
│   ├── taxonomy/               # Domain classifiers and keyword taggers
│   ├── exporter/               # Apache Parquet and JSONL serializers
│   ├── analytics/              # DeepChatAnalyzer statistical engine
│   ├── rag/                    # Vector search and prompt augmentation pipeline
│   ├── lora/                   # PEFT training and inference scripts
│   ├── evaluation/             # Benchmark comparator
│   └── validation/             # PII auditor and domain benchmarks
├── dataset_output/             # Parquet datasets and preview samples
├── reports/                    # Canonical dataset & model cards and benchmark suites
│   ├── DATASET_AND_ANALYTICS.md   # Dataset Card and Zero-PII Protocol
│   ├── HF_MODEL_CARD.md           # Hugging Face Model Card
│   ├── LORA_MODEL_ZOO.md          # Catalog of 58 LoRA Adapters on Hub (56 local)
│   ├── heuristic_benchmark_eval.json # 50-Scenario Heuristic Benchmark Matrix
│   └── domain_benchmark_100.json  # 100-Scenario Domain Benchmark Suite
├── tests/                      # Automated unit tests
├── app.py                      # Streamlit Web Data Studio
├── demo_walkthrough.py         # Terminal demonstration script
├── cli.py                      # CLI entrypoint
├── main.py                     # Pipeline master runner
├── Dockerfile                  # Production container definition
├── docker-compose.yml          # Container composition
├── Makefile                    # Task shortcuts
└── requirements.txt            # Python dependencies

Privacy and Anonymization Protocol

  1. Morphological Name Redaction: Detects author display names and inflects them across 6 Russian grammatical cases to eliminate conversational mentions.
  2. Deterministic Pattern Scrubbing: Removes phone numbers in international formats, email addresses, cryptocurrency wallet addresses, API keys, tokens, and database connection strings.
  3. Source Community Anonymization: Replaces all source channel titles with surrogate identifiers (community_node_01..11) and re-indexes technical IDs.
  4. Terminology Protection: Whitelists common technical terms, programming languages, libraries, and hosting providers to prevent false positives.
  5. Automated Sanity Suite: Regression tests against synthetic adversarial vectors verify regex pattern coverage in reports/pii_validation_report.json.

License and Ethical Use

  • Academic and Research Use: Provided for educational, non-commercial, and machine learning research purposes.
  • Privacy Policy: All data has undergone heuristic multi-pass PII scrubbing and anonymization.
  • Notice and Takedown: If you identify any inadvertent personal identifier or content that should be excluded, please open a takedown issue or submit a removal request. Requests are processed within 48 hours.

RICC RICC

RICC · Russian IT Community Corpus

Contributors

wwewtech

107 commits

Languages

Python

92.3%

Jinja

6.8%