--- 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 `phrase` 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 air position at gospel radio station WYLD AM." s2 = "In 1990, Petit accepted a full time overnight on posture while jumping 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") ```