Text Classification
Transformers
ONNX
Safetensors
English
stratabert
diagnostic
long-context
custom-code
custom_code
Instructions to use dplotnikov/stratabert-tiny-ag-news-smoke with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use dplotnikov/stratabert-tiny-ag-news-smoke with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-classification", model="dplotnikov/stratabert-tiny-ag-news-smoke", trust_remote_code=True)# Load model directly from transformers import AutoModelForSequenceClassification model = AutoModelForSequenceClassification.from_pretrained("dplotnikov/stratabert-tiny-ag-news-smoke", trust_remote_code=True, dtype="auto") - Notebooks
- Google Colab
- Kaggle
| """Task heads for StrataBERT.""" | |
| from __future__ import annotations | |
| import torch | |
| from torch import nn | |
| class StrataBertClassificationHead(nn.Module): | |
| def __init__(self, config): | |
| super().__init__() | |
| self.dropout = nn.Dropout(config.classifier_dropout) | |
| self.dense = nn.Linear(config.hidden_size, config.hidden_size) | |
| self.out_proj = nn.Linear(config.hidden_size, config.num_labels) | |
| def forward(self, pooled: torch.Tensor) -> torch.Tensor: | |
| x = self.dropout(pooled) | |
| x = torch.nn.functional.gelu(self.dense(x)) | |
| x = self.dropout(x) | |
| return self.out_proj(x) | |
| class StrataBertTokenClassificationHead(nn.Module): | |
| def __init__(self, config): | |
| super().__init__() | |
| self.dropout = nn.Dropout(config.classifier_dropout) | |
| self.classifier = nn.Linear(config.hidden_size, config.num_labels) | |
| def forward(self, hidden_states: torch.Tensor) -> torch.Tensor: | |
| return self.classifier(self.dropout(hidden_states)) | |
| class StrataBertLMHead(nn.Module): | |
| def __init__(self, config, embedding_weight: torch.nn.Parameter | None = None): | |
| super().__init__() | |
| self.dense = nn.Linear(config.hidden_size, config.hidden_size) | |
| self.norm = nn.LayerNorm(config.hidden_size, eps=config.norm_eps) | |
| self.decoder = nn.Linear(config.hidden_size, config.vocab_size, bias=False) | |
| self.bias = nn.Parameter(torch.zeros(config.vocab_size)) | |
| self.decoder.bias = self.bias | |
| if embedding_weight is not None: | |
| self.decoder.weight = embedding_weight | |
| def forward(self, hidden_states: torch.Tensor) -> torch.Tensor: | |
| x = torch.nn.functional.gelu(self.dense(hidden_states)) | |
| x = self.norm(x) | |
| return self.decoder(x) | |
| class StrataBertRTDHead(nn.Module): | |
| def __init__(self, config): | |
| super().__init__() | |
| self.dropout = nn.Dropout(config.classifier_dropout) | |
| self.classifier = nn.Linear(config.hidden_size, 1) | |
| def forward(self, hidden_states: torch.Tensor) -> torch.Tensor: | |
| return self.classifier(self.dropout(hidden_states)).squeeze(-1) | |