File size: 1,946 Bytes
8847b61 67cdf3a 8847b61 67cdf3a | 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 | ---
language: en
tags:
- phrase-similarity
- pic
- cross-encoder
datasets:
- Deehan1866/processed_phrase_similarity
metrics:
- accuracy
---
# bayartsogt/structbert-large Fine-tuned on PiC Phrase Similarity (Angle 3 — with_rationale)
Cross-encoder model for the PiC (Phrase in Context) phrase-similarity
binary classification task. Both sentences — plus an LLM-generated
rationale — are fed together so the model can attend across them
simultaneously.
## Base model
`bayartsogt/structbert-large`
## Input format
```
[CLS] sentence1_marked [SEP] sentence2_marked [SEP] rationale [SEP]
```
## Target Phrase Marking
The target phrase is wrapped with `<TGT>phrase</TGT>` using substring
matching against the raw sentence (whole-word boundaries preferred,
case-insensitive fallback), since PS phrases can be multi-word and
have no explicit position column in the source dataset.
## Performance
| Split | Accuracy |
|------------|----------|
| Validation | 0.7440 |
| Test | 0.7370 |
## Usage
```python
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
tokenizer = AutoTokenizer.from_pretrained("Deehan1866/ps-fullymasked-structbert-large")
model = AutoModelForSequenceClassification.from_pretrained("Deehan1866/ps-fullymasked-structbert-large")
s1 = "In 1990, Petit accepted a full time overnight on <TGT>air position</TGT> at gospel radio station WYLD AM."
s2 = "In 1990, Petit accepted a full time overnight on <TGT>posture while jumping</TGT> at gospel radio station WYLD AM."
rationale = "The first phrase denotes a broadcasting role; the second describes a physical stance during a jump."
sep = tokenizer.sep_token
enc = tokenizer(s1, s2 + " " + sep + " " + rationale,
return_tensors="pt", truncation=True, max_length=512)
with torch.no_grad():
logits = model(**enc).logits
pred = torch.argmax(logits).item()
print("Similar" if pred == 1 else "Not similar")
```
|