|
--- |
|
license: mit |
|
language: |
|
- en |
|
library_name: keras |
|
--- |
|
# Model Card for Model ID |
|
|
|
<!-- Provide a quick summary of what the model is/does. --> |
|
|
|
This model is used to classify the user-intent for the Danswer project, visit https://github.com/danswer-ai/danswer. |
|
|
|
## Model Details |
|
Multiclass classifier on top of distilbert-base-uncased |
|
|
|
### Model Description |
|
|
|
<!-- Provide a longer summary of what this model is. --> |
|
Classifies user intent of queries into categories including: |
|
0: Keyword Search |
|
1: Semantic Search |
|
2: Direct Question Answering |
|
|
|
|
|
- **Developed by:** [DanswerAI] |
|
- **License:** [MIT] |
|
- **Finetuned from model [optional]:** [distilbert-base-uncased] |
|
|
|
### Model Sources [optional] |
|
|
|
<!-- Provide the basic links for the model. --> |
|
|
|
- **Repository:** [https://github.com/danswer-ai/danswer] |
|
- **Demo [optional]:** [Upcoming!] |
|
|
|
## Uses |
|
|
|
<!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. --> |
|
|
|
This model is intended to be used in the Danswer Question-Answering System |
|
|
|
|
|
## Bias, Risks, and Limitations |
|
|
|
<!-- This section is meant to convey both technical and sociotechnical limitations. --> |
|
|
|
This model has a very small dataset maintained by DanswerAI. If interested, reach out to [email protected]. |
|
|
|
### Recommendations |
|
|
|
<!-- This section is meant to convey recommendations with respect to the bias, risk, and technical limitations. --> |
|
|
|
This model is intended to be used in the Danswer (QA System) |
|
|
|
## How to Get Started with the Model |
|
|
|
``` |
|
from transformers import AutoTokenizer |
|
from transformers import TFDistilBertForSequenceClassification |
|
import tensorflow as tf |
|
|
|
model = TFDistilBertForSequenceClassification.from_pretrained("danswer/intent-model") |
|
tokenizer = AutoTokenizer.from_pretrained("danswer/intent-model") |
|
|
|
class_semantic_mapping = { |
|
0: "Keyword Search", |
|
1: "Semantic Search", |
|
2: "Question Answer" |
|
} |
|
|
|
# Get user input |
|
user_query = "How do I set up Danswer to run on my local environment?" |
|
|
|
# Encode the user input |
|
inputs = tokenizer(user_query, return_tensors="tf", truncation=True, padding=True) |
|
|
|
# Get model predictions |
|
predictions = model(inputs)[0] |
|
|
|
# Get predicted class |
|
predicted_class = tf.math.argmax(predictions, axis=-1) |
|
|
|
print(f"Predicted class: {class_semantic_mapping[int(predicted_class)]}") |
|
``` |