joaocarlosnb's picture
Add codebase link.
6ef8051 verified
---
license: mit
language:
- en
base_model:
- microsoft/deberta-v3-base
pipeline_tag: zero-shot-classification
tags:
- smart
- city
- classifier
- genai
---
# GenAI Smart City Classifier (DeBERTa v3 Base Fine-Tune)
Binary transformer classifier detecting whether a text describes a Generative AI (GenAI) application in a smart city context.
The full codebase can be found [here](https://github.com/les2feup/genai-smartcity/).
## Labels
- 0: GenAI used for smart city application
- 1: Not related
`id2label = {0: "GenAI used for smart city application", 1: "Not related"}`
## Model Card Summary
- Base: microsoft/deberta-v3-base
- Tokenizer: DebertaV2Tokenizer (same as base)
- Max length used in training batches: 512 (inference examples use 256)
- Loss: Custom focal loss (γ=2) + label smoothing (0.1)
- Scheduler: Cosine, warmup 10%
- Epochs: 8, batch size 8 (train) / 16 (eval)
- Calibration: Temperature scaling (optimal ≈ 0.602)
## Quick Start
```python
import torch
from transformers import DebertaV2Tokenizer, AutoModelForSequenceClassification
MODEL_ID = "joaocarlosnb/genai-smartcity-classifier" # replace with actual repo id
TEMP = 0.602
id2label = {0: "GenAI used for smart city application", 1: "Not related"}
tokenizer = DebertaV2Tokenizer.from_pretrained(MODEL_ID)
model = AutoModelForSequenceClassification.from_pretrained(MODEL_ID)
model.eval()
def predict(text, max_length=256, apply_temp=True):
inputs = tokenizer(text, truncation=True, padding="max_length",
max_length=max_length, return_tensors="pt")
with torch.no_grad():
logits = model(**inputs).logits
if apply_temp:
logits = logits / TEMP
probs = torch.softmax(logits, dim=-1)[0]
top = int(probs.argmax())
return {
"label": id2label[top],
"probabilities": {id2label[i]: float(p) for i, p in enumerate(probs)}
}
print(predict("We apply a diffusion model to simulate traffic for urban planning."))
```
## Installation
```bash
pip install transformers torch
```
## Input Guidance
Short technical sentences or abstract fragments (English). Truncate >512 tokens automatically.
## Limitations
- Binary only (no “mentioned, not used” middle class)
- English academic / technical domain bias
- Not evaluated for adversarial or multilingual robustness
## Intended Use
Research, corpus analysis, and exploratory filtering. Human review is recommended before operational deployment.
## Dataset
Training data hosted separately (same namespace). Contains augmented, adaptive, contrastive, and diagnostic subsets.
## Reproducibility Notes
Set `seed=42`. Use DebertaV2Tokenizer with max_length=512 for full retraining.
## Citation (Placeholder)
> Bittencourt, J. C. N., Flores, T. K. S., Jesus, T. C., & Costa, D. G. (2025). On the Role of AI in Building Generative Urban Intelligence. In Review. https://doi.org/10.21203/rs.3.rs-7131966/v1
>
## License
See repository LICENSE (ensure compatibility with upstream model license).
## Security
Do not hard-code Hugging Face tokens. Use environment variable: `export