--- language: - de - fr - it license: cc0-1.0 tags: - sentence-transformers - sentence-similarity - feature-extraction - swiss-law - legal-retrieval - dense-retrieval base_model: harrier-meta-distilled-v2 datasets: - voilaj/swiss-caselaw --- # harrier-semantic-v1 **Semantic retrieval model for Swiss court decisions** — fine-tuned on 55,000 (Sachverhalt → cited decision) pairs. Understands natural language descriptions of legal situations in German, French, and Italian and retrieves relevant Swiss Federal Court (BGer/BGE) decisions. ## Performance (Semantic Benchmark, 800 items) | Metric | Baseline | harrier-semantic-v1 | |--------|----------|---------------------| | MRR@10 | 0.0823 | **0.1501** (+82%) | | Recall@10 | — | 0.0744 | | Hit@1 | — | 0.0925 | ## Usage ```python from sentence_transformers import SentenceTransformer model = SentenceTransformer("ArneH/harrier-semantic-v1") # Describe a legal situation in natural language query = "Arbeitnehmer wurde während Krankheit fristlos entlassen" embedding = model.encode(query, normalize_embeddings=True) ``` ## MCP Server (Claude Desktop / Claude Code) Use with the Swiss Legal Semantic MCP server for offline semantic + keyword search over 963,000+ Swiss court decisions: ```bash pip install mcp sentence-transformers numpy huggingface_hub python server.py --setup # auto-downloads model + embeddings ``` Pre-computed corpus embeddings: [ArneH/swiss-caselaw-embeddings](https://huggingface.co/datasets/ArneH/swiss-caselaw-embeddings) ## Training - **Base model**: harrier-meta-distilled-v2 (0.6B Qwen3-based) - **Training pairs**: 55,000 (Sachverhalt → cited decisions, DE/FR/IT) - **Loss**: MultipleNegativesRankingLoss - **Epochs**: 3, Batch: 512 (2× B200 GPU, DDP) - **Data source**: [voilaj/swiss-caselaw](https://huggingface.co/datasets/voilaj/swiss-caselaw) (963k decisions)