CoolFace
Modelpublic

a-ivanovitch/RegTech-7B-Instruct

sourceHugging Faceapache-2.0updated 7mo agoView on Hugging Face
1likes12downloads
Model Card

🏦 RegTech-7B-Instruct

Fine-tuned for RAG-powered banking compliance β€” not general knowledge.

A specialized Qwen2.5-7B-Instruct model fine-tuned to excel within a Retrieval-Augmented Generation (RAG) pipeline for Italian banking regulatory compliance.

This model doesn't try to memorize regulations β€” it's trained to work with retrieved context: follow instructions precisely, produce structured outputs, call compliance tools, and maintain the right tone and terminology when grounded on regulatory documents.


🎯 What This Model Does

This fine-tuning optimizes the model's behavior within a RAG system, not its factual knowledge. Specifically:

TaskDescription
πŸ“‹ RAG Q&AAnswer regulatory questions grounded on retrieved documents
πŸ”§ Tool CallingKYC verification, risk scoring, PEP checks, SOS reporting
πŸ” Query ExpansionRewrite user queries with regulatory terminology for better retrieval
🧠 Intent DetectionClassify if a message needs document search or is conversational
πŸ“Š Document RerankingScore candidate documents by relevance
πŸ“ Structured JSONTopic extraction, metadata, impact analysis in JSON format
βš–οΈ Impact AnalysisCross-reference external regulations against internal bank procedures

πŸ“ˆ Evaluation β€” LLM-as-Judge

Evaluated by Claude Opus 4.6 (Anthropic) across 11 blind test scenarios. The judge compared base vs fine-tuned model outputs without knowing which was which.

πŸ† Head-to-Head

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  🟒 Tuned Wins    7/11    (68.2%)       β”‚
β”‚  πŸ”΄ Base Wins     3/11    (31.8%)       β”‚
β”‚  βšͺ Ties          1/11                   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“Š Quality Scores (1–5)

CriterionBaseTunedDelta
🎯 Instruction Following3.274.82+1.55🟒🟒🟒
πŸ“Ž Context Adherence3.645.00+1.36🟒🟒🟒
βœ… Accuracy3.734.73+1.00🟒🟒
πŸ“ Format4.094.64+0.55🟒
πŸ—£οΈ Tone4.454.73+0.28🟒
πŸ“Š Overall3.844.78+0.95🟒🟒
Largest improvement across all model sizes. Instruction following jumps +1.55 and context adherence reaches a perfect 5.00 β€” the fine-tuning transforms this model's ability to follow retrieved regulatory context.

πŸ“‚ Results by Category

CategoryBaseTunedTie
🚫 Refusal Handling020
⚠️ Edge Cases010
🎨 Style & Tone010
πŸ“€ Data Extraction001
πŸ“‹ JSON Output110
πŸ“– RAG Q&A110
πŸ”§ Tool Use110

πŸ”„ Comparison Across Model Sizes

Metric4B7B32B
Base score (pre-tuning)4.113.844.36
Tuned score4.684.784.80
Delta (improvement)+0.57+0.95+0.44
Best eval loss1.1911.3300.813
Token accuracy~73%~72%~81%
Train/eval gap0.0500.0830.030
The 7B shows the highest delta (+0.95) β€” it benefits the most from fine-tuning, reaching near-parity with the 32B tuned model (4.78 vs 4.80).

πŸ’‘ Usage Examples

πŸ“‹ RAG Q&A β€” Answering from Retrieved Context

The model is designed to receive retrieved regulatory documents as context and answer based on them:

python
messages = [
    {
        "role": "system",
        "content": """Sei un assistente per la compliance bancaria. 
Rispondi SOLO basandoti sul contesto fornito.

<contesto_recuperato>
Art. 92 CRR - Gli enti soddisfano in qualsiasi momento i seguenti 
requisiti: a) CET1 del 4,5%; b) Tier 1 del 6%; c) capitale totale dell'8%.
Il coefficiente Γ¨ calcolato come rapporto tra i fondi propri e 
l'importo complessivo dell'esposizione al rischio.
</contesto_recuperato>"""
    },
    {
        "role": "user", 
        "content": "Quali sono i requisiti minimi di capitale secondo il CRR?"
    }
]

πŸ” Query Expansion β€” Improving RAG Retrieval

python
messages = [
    {
        "role": "system",
        "content": "Riscrivi la query dell'utente in una versione piΓΉ ricca per migliorare il recupero documentale (RAG). Aggiungi termini tecnici e riferimenti normativi. Rispondi SOLO con il JSON richiesto."
    },
    {
        "role": "user",
        "content": "## QUERY ORIGINALE: [obblighi segnalazione operazioni sospette]"
    }
]

# Expected output:
# {"query": "obblighi segnalazione operazioni sospette SOS UIF D.Lgs. 231/2007 
#   art. 35 riciclaggio finanziamento terrorismo portale RADAR tempistiche 
#   invio indicatori anomalia"}

πŸ”§ Tool Calling β€” Compliance Workflows

python
messages = [
    {
        "role": "system",
        "content": """Sei un assistente operativo per la compliance.
        
<tools>
{"name": "calcola_scoring_rischio", "parameters": {...}}
{"name": "controlla_liste_pep", "parameters": {...}}
{"name": "verifica_kyc", "parameters": {...}}
</tools>

<contesto_recuperato>
Procedura AML-003: L'adeguata verifica rafforzata (EDD) deve essere 
applicata per PEP, paesi ad alto rischio e profili con scoring > 60.
</contesto_recuperato>"""
    },
    {
        "role": "user",
        "content": "Devo aprire un conto per una societΓ  con sede a Dubai. Il legale rappresentante Γ¨ il sig. Al-Rashid."
    }
]

# The model will:
# 1. Call controlla_liste_pep for the representative
# 2. Call calcola_scoring_rischio based on risk factors  
# 3. Recommend EDD procedure per AML-003, grounded on retrieved policy

πŸ“Š Document Reranking

python
messages = [
    {
        "role": "system",
        "content": "Valuta la rilevanza di ciascun candidato rispetto alla query. Restituisci solo i candidati rilevanti con score 0-100. Rispondi SOLO con il JSON richiesto."
    },
    {
        "role": "user",
        "content": '{"query": "requisiti CET1 fondi propri", "candidates": [{"id": "doc_001", "title": "Art. 92 CRR", "content": "..."}, {"id": "doc_002", "title": "DORA Art. 5", "content": "..."}]}'
    }
]

# Expected: {"matches": [{"id": "doc_001", "relevance": 95}]}

βš™οΈ Training Details

🧬 MethodLoRA β€” bf16 full precision (no quantization)
πŸ—οΈ Base ModelQwen2.5-7B-Instruct
πŸ“¦ Dataset923 train / 102 eval samples
⏱️ Duration13.2 minutes

πŸ“‰ Training Metrics

MetricValue
Final Train Loss1.247
Best Eval Loss1.330 (step 680/693)
Train/Eval Gap0.083 βœ…
Gap of 0.083 indicates stable training with no overfitting.

πŸ“š Dataset Coverage

The training data covers the full lifecycle of a RAG-based compliance assistant:

CategoryPurpose
🏷️ Title GenerationGenerate conversation titles from user queries
πŸ” Query ExpansionEnrich queries with regulatory terms for better retrieval
🧠 Intent ClassificationRoute queries to RAG vs conversational responses
πŸ“Š Document RerankingScore retrieved documents by relevance
πŸ“ Topic ExtractionExtract main topics from regulatory text pages
πŸ“– Document SummarizationSummarize multi-page regulatory documents
βš–οΈ Relevance FilteringFilter regulatory text relevant to banks
πŸ“… Metadata ExtractionFind application dates, issuing authorities
πŸ”§ Impact AnalysisCross-reference regulations vs internal procedures
πŸ’¬ RAG Q&A + Tool CallingMulti-turn compliance conversations with tools

Regulatory sources covered: CRR/CRR3, DORA (UE 2022/2554), D.Lgs. 231/2007 (AML), D.Lgs. 385/1993 (TUB), Circolare 285, PSD2, MiFID II/MiFIR, D.P.R. 180/1950 and related Banca d'Italia provisions.


πŸš€ Deployment

With vLLM

bash
vllm serve ./models/RegTech-7B-Instruct --dtype bfloat16

With Transformers

python
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained("YOUR_REPO_ID", torch_dtype="bfloat16", device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("YOUR_REPO_ID")

text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=512)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

⚠️ Important Notes

  • β€”πŸŽ― RAG-optimized β€” trained to work with retrieved context, not to memorize regulations. Always provide relevant documents in the system prompt.
  • β€”πŸ¦ Domain-specific β€” optimized for Italian banking compliance. General capabilities may differ from the base model.
  • β€”βš–οΈ Not legal advice β€” a tool to assist compliance professionals, not a substitute for regulatory expertise.
  • β€”πŸ”§ Tool schemas β€” tool calling works best with the specific function signatures used during training.
  • β€”πŸ† Best cost/performance ratio β€” shows the largest improvement from fine-tuning (+0.95 delta) while reaching near-parity with the 32B model.

<p align="center"> Built with ❀️ for banking RAG<br> <em>Fine-tuned with LoRA β€’ Evaluated by Claude Opus 4.6 β€’ Powered by Qwen2.5</em><br> <em>Contact For Commercial Use: https://landing.2sophia.ai</em> </p>