--- language: - en - fr - de - es - it license: apache-2.0 tags: - gliner - gliner2 - text-classification - multi-label - hr - human-resources - multilingual pipeline_tag: token-classification base_model: urchade/gliner_large-v2.1 --- # Gliner2HR — Multi-Label HR Conversation Classifier **Gliner2HR** is a fine-tuned [GLiNER2-large](https://huggingface.co/urchade/gliner_large-v2.1) model for **multi-label classification of HR workplace conversations** across 18 intent categories. It supports English, French, German, Spanish, and Italian. ## Benchmark Evaluated on [xwjzds/hr_multiwoz_tod_sgd](https://huggingface.co/datasets/xwjzds/hr_multiwoz_tod_sgd) — 550 single-label HR dialogues, 8 active categories, single-label classification task: | Model | Accuracy | Macro F1 | Precision | Recall | |---|---|---|---|---| | **Gliner2HR (fine-tuned)** | **69.3%** | **0.807** | **0.954** | 0.716 | | GLiNER2-large (base, no fine-tuning) | 42.9% | 0.535 | 0.728 | 0.459 | GLiHR outperforms the untuned base model by **+26.4 points accuracy** and **+27.1 points Macro F1** at threshold 0.3. Per-label F1 on benchmark: | Label | GLiHR | Base | Delta | |---|---|---|---| | Harassment | 0.925 | 0.800 | +0.125 | | Leave & Absence | 0.892 | 0.787 | +0.105 | | Benefits | 0.868 | 0.764 | +0.104 | | Mobility | 0.838 | 0.000 | +0.838 | | Training & Development | 0.807 | 0.563 | +0.244 | | Health & Safety | 0.817 | 0.682 | +0.135 | | Performance Management | 0.775 | 0.206 | +0.569 | | IT & Equipment | 0.530 | 0.478 | +0.052 | ## Supported Labels (18 categories) `Benefits` · `Compliance & Legal` · `Contracts` · `DEI` · `Expense Management` · `Harassment` · `Health & Safety` · `IT & Equipment` · `Leave & Absence` · `Mobility` · `Offboarding` · `Onboarding` · `Payroll` · `Performance Management` · `Recruitment` · `Timetracking` · `Training & Development` · `Work Arrangements` ## Usage ```python from gliner import GLiNER model = GLiNER.from_pretrained("AurelPx/gliner2hr") labels = [ "Benefits", "Compliance & Legal", "Contracts", "DEI", "Expense Management", "Harassment", "Health & Safety", "IT & Equipment", "Leave & Absence", "Mobility", "Offboarding", "Onboarding", "Payroll", "Performance Management", "Recruitment", "Timetracking", "Training & Development", "Work Arrangements" ] text = """USER: I have not received my payslip for March yet. AGENT: I checked the payroll system, it was generated on the 28th. USER: Also, I would like to understand my pension contributions.""" entities = model.predict_entities(text, labels, threshold=0.3) predicted_labels = list({e["label"] for e in entities}) # -> ["Payroll", "Benefits"] ``` ## Recommended Threshold - `0.3` — best accuracy (69.3%) and F1 (0.807), recommended for most use cases - `0.5` — slightly lower recall, higher precision (P=0.954 at 0.3 already very high) ## Training Data Fine-tuned on **2,559 synthetic multi-turn HR conversations** (2–5 turns, `USER: ... AGENT: ...` format) covering all 18 categories, generated in English, French, German, Spanish, and Italian. Labels were assigned during generation — no post-hoc keyword matching. ## Citation ```bibtex @misc{gliner2hr, title = {Gliner2HR: Multi-Label HR Conversation Classification with GLiNER2}, year = {2025}, note = {Fine-tuned GLiNER2-large on synthetic multilingual HR dialogues. https://huggingface.co/AurelPx/glihr} } ```