yeniguno/bert-uncased-intent-classification
Model Card for Model ID
This is a fine-tuned BERT-based model for intent classification, capable of categorizing intents into 82 distinct labels. It was trained on a consolidated dataset of multilingual intent datasets.
How to Get Started with the Model
Use the code below to get started with the model.
from transformers import AutoModelForSequenceClassification, AutoTokenizer, pipeline
model = AutoModelForSequenceClassification.from_pretrained("yeniguno/bert-uncased-intent-classification")
tokenizer = AutoTokenizer.from_pretrained("yeniguno/bert-uncased-intent-classification")
pipe = pipeline("text-classification", model=model, tokenizer=tokenizer)
text = "Play the song, Sam."
prediction = pipe(text)
print(prediction)
# [{'label': 'play_music', 'score': 0.9997674822807312}]Uses
This model is intended for:
Natural Language Understanding (NLU) tasks. Classifying user intents for applications such as:
- Voice assistants
- Chatbots
- Customer support automation
- Conversational AI systems
Bias, Risks, and Limitations
The model's performance may degrade on intents that are underrepresented in the training data. Not optimized for languages other than English. Domain-specific intents not included in the dataset may require additional fine-tuning.
Training Details
Training Data
his model was trained on a combination of intent datasets from various sources:
Datasets Used:
- mteb/amazonmassiveintent
- mteb/mtop_intent
- sonos-nlu-benchmark/snipsbuiltin_intents
- Mozilla/smartintentdataset
- Bhuvaneshwari/intent_classification
- clinc/clinc_oos
Each dataset was preprocessed, and intent labels were consolidated into 82 unique classes.
Dataset Sizes:
- Train size: 138228
- Validation size: 17279
- Test size: 17278
Training Procedure
The model was fine-tuned with the following hyperparameters:
Base Model: bert-base-uncased Learning Rate: 3e-5 Batch Size: 32 Epochs: 4 Weight Decay: 0.01 Evaluation Strategy: Per epoch Mixed Precision: FP32 Hardware: A100
