--- license: apache-2.0 language: - en metrics: - accuracy library_name: transformers pipeline_tag: text-classification tags: - customer-service-tickets - github-issues - bart-large-mnli - zero-shot-classification - NLP widget: - text: "Sign up form is not working" example_title: "Example 1" - text: "json and yaml support" example_title: "Example 2" - text: "fullscreen and tabs media key don't do what they should" example_title: "Example 2" --- # GitHub issues classifier (using zero shot classification) Predicts wether a statement is a feature request, issue/bug or question This model was trained using the [**Zero-shot classifier distillation**](https://github.com/huggingface/transformers/tree/main/examples/research_projects/zero-shot-distillation) method with the [BART-large-mnli](https://huggingface.co/facebook/bart-large-mnli) model as teacher model, to train a classifier on Github issues from the [Github Issues Prediction dataset](https://www.kaggle.com/datasets/anmolkumar/github-bugs-prediction) ## Labels As per the dataset Kaggle competition, the classifier predicts wether an issue is a bug, feature or question. After playing around with different labels pre-training I've used a different mapping of labels that yielded better predictions (see notebook [here](https://www.kaggle.com/code/antoinemacia/zero-shot-classifier-for-bug-analysis/edit) for details), labels being * issue * feature request * question ## Training data * 15k of Github issues titles ("unlabeled_titles_simple.txt") * Hypothesis used: "This request is a {}" * Teacher model used: valhalla/distilbart-mnli-12-1 * Studend model used: distilbert-base-uncased ## Results Agreement of student and teacher predictions: **94.82%** See [this notebook](https://www.kaggle.com/code/antoinemacia/zero-shot-classifier-for-bug-analysis/edit) for more info on feature engineering choice made ## How to train using your own dataset * Download training dataset from https://www.kaggle.com/datasets/anmolkumar/github-bugs-prediction * Modify and run convert.py, updating the paths to convert to a CSV * Run distill.py with the csv file (see [here](https://github.com/huggingface/transformers/tree/main/examples/research_projects/zero-shot-distillation) for more info) ## Acknowledgements * Joe Davison and his article on [Zero-Shot Learning in Modern NLP](https://joeddav.github.io/blog/2020/05/29/ZSL.html) * Jeremy Howard, fast.ai and his notebook [Iterate like a grandmaster](https://www.kaggle.com/code/antoinemacia/iterate-like-a-grandmaster)