Downloads · 30 days
19
19% of all-time downloads
ayushgupta7777/sentinelops-classifier
sentinelops-classifier is a text classification model from ayushgupta7777. Use it when you need a label for a piece of text. It is set up for pytorch. The card lists the license as apache-2.0.
Multi-task DistilBERT classifier that predicts severity (P0/P1/P2/P3) and category (networking, database, deploy, capacity, auth, other) for SRE incident postmortems. Non-generative baseline for the SentinelOps flagsh…
Downloads · 30 days
19
19% of all-time downloads
All-time downloads
99
Public
Repo size
266 MB
Likes
0
Public
Click a slice to open those files.
.pt266 MB · 100%
From the Hugging Face model README
Multi-task DistilBERT classifier that predicts severity (P0/P1/P2/P3) and category (networking, database, deploy, capacity, auth, other) for SRE incident postmortems. Non-generative baseline for the SentinelOps flagship project, benchmarked against a fine-tuned Mistral-7B generation model.
Given an incident summary, returns {severity, category} predictions for routing, prioritization, or retrieval filtering inside the SentinelOps agent.
Not intended for: standalone production incident triage, compliance decisions, or any use case where a miscategorization has safety or financial impact.
danluu/post-mortems, Cloudflare blog, GitHub status (Atom feed), and AWS post-event summaries.Dataset: https://huggingface.co/datasets/ayushgupta07xx/sentinelops-corpus
distilbert-base-uncasedsentinelops, job_type classifier_pt.Training code: https://github.com/ayushgupta07xx/sentinelops/blob/main/training/classifier/train_pt.py
This is a small held-out set — per-class F1 numbers have high variance and a single misclassification moves a 9-example class F1 by ~0.1. Treat these numbers as directional indicators, not population estimates. The limit reflects the labeled-data budget (~270 manually labeled examples, standard 80/10/10 split) which is the realistic ceiling for a solo 5-week project.
| Head | Accuracy | Macro-F1 | Weighted-F1 |
|---|---|---|---|
| Severity | 0.48 | 0.36 | 0.52 |
| Category | 0.30 | 0.36 | 0.24 |
Full per-class precision/recall/F1 is in eval_report.json. Confusion matrices: assets/confusion_matrix_severity.png, assets/confusion_matrix_category.png.
auth) had fewer than 10 training examples; the model underperforms there.model.pt — PyTorch state dict (~253 MB)tokenizer/ — HF tokenizer filesconfig.json — model hyperparameterslabel_mappings.json — severity and category label listseval_report.json — full classification reportsassets/confusion_matrix_{severity,category}.png — confusion matricesimport json, torch
from transformers import DistilBertTokenizerFast
from huggingface_hub import snapshot_download
local = snapshot_download("ayushgupta07xx/sentinelops-classifier")
# Requires the DistilBertMultiTask class from:
# https://github.com/ayushgupta07xx/sentinelops/blob/main/training/classifier/model_pt.py
from model_pt import DistilBertMultiTask, Config
with open(f"{local}/label_mappings.json") as f:
lm = json.load(f)
cfg = Config(num_severity=len(lm["severity"]), num_category=len(lm["category"]))
model = DistilBertMultiTask(cfg)
model.load_state_dict(torch.load(f"{local}/model.pt", map_location="cpu"))
model.eval()
tokenizer = DistilBertTokenizerFast.from_pretrained(f"{local}/tokenizer")
Built as part of SentinelOps. No paper — this is engineering, not research.