File size: 2,502 Bytes
dffffff
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
---
license: mit
tags:
- text-classification
- multi-label-classification
- crypto
- technology
- twitter
- x
- roberta
pipeline_tag: text-classification
---

# Techpto Transformer

RoBERTa multi-label classifier for detecting whether X/Twitter posts or profile text are crypto-related, tech-related, both, or neither.

This is the V5B transformer checkpoint trained for the Techpto classifier project. It was later distilled into the faster `techpto-classifier` hashed linear model for full-corpus scanning.

## Labels

- `crypto`
- `tech`

The model uses sigmoid probabilities, not softmax. A text can match neither label, one label, or both labels.

## Files

- `model.safetensors`: transformer weights.
- `config.json`: `RobertaForSequenceClassification` config with `problem_type = multi_label_classification`.
- `tokenizer.json` and `tokenizer_config.json`: tokenizer files.
- `metrics.json`: full training/eval metrics.
- `classification_thresholds.json`: recommended threshold sets.

## Recommended Thresholds

For high precision on the test split:

```json
{
  "crypto": 0.80,
  "tech": 0.86
}
```

For best F1 on the test split:

```json
{
  "crypto": 0.41,
  "tech": 0.57
}
```

For higher recall / F2:

```json
{
  "crypto": 0.12,
  "tech": 0.16
}
```

## Test Metrics

At the higher-recall thresholds stored in `metrics.json`:

- Exact match accuracy: `0.9071`
- Micro F1: `0.9200`
- Macro F1: `0.9099`

At the high-precision threshold set:

- Exact match accuracy: `0.9305`
- Micro precision: `0.9704`
- Micro recall: `0.8873`
- Micro F1: `0.9270`
- Macro F1: `0.9186`

## Usage

```python
import torch
from transformers import AutoModelForSequenceClassification, AutoTokenizer

repo_id = "pompompur-in/techpto-transformer"
tokenizer = AutoTokenizer.from_pretrained(repo_id)
model = AutoModelForSequenceClassification.from_pretrained(repo_id)
model.eval()

text = "Building a new AI agent workflow for crypto wallet monitoring."
inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=192)

with torch.no_grad():
    logits = model(**inputs).logits[0]
    probs = torch.sigmoid(logits)

labels = ["crypto", "tech"]
thresholds = {"crypto": 0.80, "tech": 0.86}
predictions = {
    label: float(prob) >= thresholds[label]
    for label, prob in zip(labels, probs)
}

print(dict(zip(labels, map(float, probs))))
print(predictions)
```

## Notes

This checkpoint is intended for classification/research workflows over social text. It is not a general-purpose language model.