File size: 3,018 Bytes
9098ae1
 
63387f0
 
 
 
 
461a10b
63387f0
9098ae1
63387f0
461a10b
63387f0
 
 
461a10b
63387f0
 
 
 
 
 
 
 
 
 
461a10b
63387f0
 
 
461a10b
63387f0
461a10b
63387f0
 
 
 
 
461a10b
 
63387f0
 
461a10b
63387f0
 
 
 
461a10b
63387f0
461a10b
63387f0
 
 
 
 
461a10b
63387f0
 
 
 
 
461a10b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63387f0
 
 
461a10b
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
---
license: apache-2.0
library_name: transformers
tags:
  - distilbert
  - text-classification
  - security
  - arbiter
pipeline_tag: text-classification
---

# Arbiter — Log threat classifier

## What this is

A **DistilBERT** sequence-classification checkpoint fine-tuned for **[Arbiter](https://github.com/SentinelSage/arbiter)**.

Given a short security-log style string, it predicts one of four actions:

| Index | Action (app mapping) |
|------:|----------------------|
| 0 | block |
| 1 | quarantine |
| 2 | warn |
| 3 | none |

The Arbiter app then scales a threat score from the predicted class / probabilities and may adjust the final recommendation with a separate rule-based layer (`refine_action`).

## Project

Part of **Arbiter** (Django + React): paste a security log or ask a cybersecurity question.

This repository holds **weights only**. Application code: [github.com/SentinelSage/arbiter](https://github.com/SentinelSage/arbiter).

## Training note

This is a **custom fine-tune**, not an unmodified public DistilBERT base checkpoint. Do not treat Hub `distilbert-base-uncased` (or similar) as a drop-in substitute for this artifact.

**Training data:** custom-curated, **unpublished** project data. There is no public labelled cybersecurity corpus linked as a training set for this demo.

## Intended use

- Running the Arbiter full-ML path locally
- Experimentation and educational use with the companion application

**Not** a production SOC product. No warranty. Outputs can be wrong; do not use for live blocking, compliance, or incident response without your own validation.

## How Arbiter loads it

Local path after download (`scripts/download_models.py` or equivalent):

```text
backend/models/log_based_model/
```

Loaded with Hugging Face `DistilBertForSequenceClassification.from_pretrained(<local_or_hub_id>)` when `ARBITER_DEMO_MODE=false`.

## Files

Expect a standard Transformers export, e.g. `model.safetensors`, `config.json`, tokenizer files (`vocab.txt`, `tokenizer_config.json`, …).

## Method / citations

If you reference this work:

- **DistilBERT:** Sanh, V., Debut, L., Chaumond, J., & Wolf, T. (2019). *DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter.*  
  Base: [distilbert-base-uncased](https://huggingface.co/distilbert-base-uncased)
- **Transformers:** Wolf, T., et al. (2020). *Transformers: State-of-the-Art Natural Language Processing.* EMNLP.  
  [huggingface/transformers](https://github.com/huggingface/transformers)
- **PyTorch:** Paszke, A., et al. (2019). *PyTorch: An Imperative Style, High-Performance Deep Learning Library.* NeurIPS.  
  [pytorch/pytorch](https://github.com/pytorch/pytorch)

## Safety

Research / portfolio demo only. Classifier confidence is **not calibrated**. Do not paste production logs, PII, or credentials into demos that use these weights on a shared host.

## License

Apache License 2.0. Demo only — provided as-is, without warranty of any kind.

Copyright 2026 Ryan Vong / Sentinel Sage