mozarilla's picture
Publish Tiny Blue Log Classifier
12097aa verified
Raw
History Blame Contribute Delete
1.21 kB
import argparse
import json
import torch
from transformers import AutoModelForSequenceClassification, AutoTokenizer
def main():
parser = argparse.ArgumentParser()
parser.add_argument("model", help="Local model directory or Hugging Face repo id")
parser.add_argument("text", nargs="?", default="EventID=4625 Failed logon user=administrator source_ip=203.0.113.44 count=17")
args = parser.parse_args()
torch.set_num_threads(2)
tokenizer = AutoTokenizer.from_pretrained(
args.model,
trust_remote_code=True,
)
model = AutoModelForSequenceClassification.from_pretrained(
args.model,
trust_remote_code=True,
)
model.eval()
encoded = tokenizer(
args.text,
return_tensors="pt",
truncation=True,
max_length=96,
padding=False,
)
with torch.inference_mode():
logits = model(**encoded).logits
probs = torch.softmax(logits, dim=-1)[0]
idx = int(probs.argmax().item())
print(json.dumps({
"label": model.config.id2label[idx],
"confidence": round(float(probs[idx]), 6),
"text": args.text,
}, indent=2))
if __name__ == "__main__":
main()