Views
No views yet
saketgarodia1/bert-it-ticket-studentsaketgarodia1/bert-IT-ticket-classifier-fulldistilbert-base-uncased)AutoModelForSequenceClassification with 8 labelssaketgarodia1/bert-it-ticket-student.load_in_4bit=Truebnb_4bit_quant_type="nf4"bnb_4bit_compute_dtype=torch.bfloat16bnb_4bit_use_double_quant=Truetorch.uint8):
torch.float16):
saketgarodia1/IT-service-topic-classification-data| Split | Loss | Accuracy | Macro F1 |
|---|---|---|---|
| Validation | ~0.389 | ~0.884 | ~0.882 |
| Test | ~0.422 | ~0.880 | ~0.875 |
Values are computed with a standard cross-entropy loss on the hard labels, andsklearn.metrics.accuracy_score/f1_score(average="macro").
| Model | Approx. Accuracy | Approx. Macro F1 | Notes |
|---|---|---|---|
| BERT teacher (FP32) | ~0.937 | ~0.936 | Larger, ~110M parameters |
| DistilBERT student (FP32) | ~0.93X | ~0.93X | ~67M parameters |
| DistilBERT student (4-bit) | ~0.88 | ~0.88 | Quantized, much smaller |
0.93X with your final student numbers if you log them.)1import torch
2from transformers import (
3 AutoTokenizer,
4 AutoModelForSequenceClassification,
5 BitsAndBytesConfig,
6)
7
8model_id = "saketgarodia1/distilbert-IT-ticket-student-4bit"
9
10# 4-bit NF4 config (same as used for export)
11nf4_config = BitsAndBytesConfig(
12 load_in_4bit=True,
13 bnb_4bit_quant_type="nf4",
14 bnb_4bit_compute_dtype=torch.bfloat16,
15 bnb_4bit_use_double_quant=True,
16)
17
18tokenizer = AutoTokenizer.from_pretrained(model_id)
19
20model = AutoModelForSequenceClassification.from_pretrained(
21 model_id,
22 quantization_config=nf4_config,
23 device_map="auto", # place layers on available GPU(s)
24)
25
26text = "VPN not connecting to corporate WiFi"
27inputs = tokenizer(text, return_tensors="pt").to(model.device)
28
29with torch.no_grad():
30 logits = model(**inputs).logits
31
32pred_id = logits.argmax(dim=-1).item()
33print("Predicted class id:", pred_id)