Downloads · 30 days
3
5% of all-time downloads
itsLu/mentalbert-v6-hierarchical
mentalbert-v6-hierarchical is a text classification model from itsLu. Use it when you need a label for a piece of text. It is set up for transformers. The card lists the license as mit.
A 5-stage hierarchical mental-health text classifier covering 8 classes: Normal, Depression, Suicidal, Anxiety, Stress, Bipolar, Personality Disorder, Directed Aggression.
Downloads · 30 days
3
5% of all-time downloads
All-time downloads
62
Public
Repo size
3.3 GB
Likes
0
Public
Click a slice to open those files.
.safetensors3.3 GB · 100%
From the Hugging Face model README
A 5-stage hierarchical mental-health text classifier covering 8 classes: Normal, Depression, Suicidal, Anxiety, Stress, Bipolar, Personality Disorder, Directed Aggression.
This is the Deep Dive tier of the Vibecheck project (Helwan University). The
Quick Vibe counterpart is itsLu/mentalbert-v6-flat.
text → Stage 0 (Cardiff RoBERTa, DA binary)
↓
Stage 1A (MentalBERT, Suicidal binary)
↓
Stage 1B (MentalBERT, Normal vs Distress)
↓
Stage 2 (MentalBERT, 5-class Anxiety/Bipolar/Dep/PD/Stress)
↓
Stage 3 (Longformer, Depression vs Suicidal re-scorer)
Each stage is fine-tuned on the full V6 dataset, carved per stage. Routing thresholds are calibrated on the validation set via a joint t1A × t3 grid sweep producing two operating points:
F1_macro − 0.30·Sui_miss_rate − 0.30·Sui_FP_rate.Sui→Dep ≤ 150 on val, then minimises Dep→Sui.import requests
r = requests.post(ENDPOINT_URL,
headers={"Authorization": f"Bearer {HF_TOKEN}"},
json={"inputs": "I don't see the point anymore.", "mode": "safety"})
print(r.json())
# -> {"label": "Suicidal", "exit_stage": "stage1a", "mode": "safety",
# "stage_probs": {...}}
mode is "balanced" (default) or "safety".
stage0/ — Cardiff RoBERTa, DA gatestage1a/ — MentalBERT, Suicidal gatestage1b/ — MentalBERT, Normal/Distressstage2/ — MentalBERT, 5-class distressstage3/ — Longformer, Dep/Sui re-scorerconfig.json — thresholds, class order, metricshandler.py — HF Inference Endpoints handler with mode switchingmohamedasem318/mental-health-dataset-extended-v6 — ~89k rows from 7 sources
(cssrs, jigsaw17, civil_comments, kaggle_bpd, kaggle, huggingface, swmh). V6 replaces V5's OLID-sourced Directed Aggression class with Jigsaw 2017 + Civil Comments threat-labelled data — the change targets real-world detection of explicit violent intent (e.g., "I want to kill my friend"), which OLID's Twitter-insult distribution did not cover. Stratified 70/10/20 split,
random_state=42. Per-source reliability constants are recorded in config.json
but were not applied to the loss (plain class-weighted CE only — a prior
attempt with a per-sample-weighted wrapper destabilised Stage 0 training under
fp16/AMP).
If you use this model, please cite the Vibecheck project (Helwan University final-year project, 2026).