|
--- |
|
base_model: jjzha/jobbert-base-cased |
|
model-index: |
|
- name: jobbert-base-cased-compdecs |
|
results: [] |
|
license: mit |
|
language: |
|
- en |
|
metrics: |
|
- accuracy |
|
pipeline_tag: text-classification |
|
widget: |
|
- text: "You must be proficient in Excel." |
|
- text: "Would you like to join a major manufacturing company?" |
|
--- |
|
|
|
_Nesta, the UK's innovation agency, has been scraping online job adverts since 2021 and building algorithms to extract and structure information as part of the [Open Jobs Observatory](https://www.nesta.org.uk/project/open-jobs-observatory/) project._ |
|
|
|
_Although we are unable to share the raw data openly, we aim to open source **our models, algorithms and tools** so that anyone can use them for their own research and analysis._ |
|
|
|
## 🖊️ Model description |
|
|
|
This model is a fine-tuned version of [jjzha/jobbert-base-cased](https://huggingface.co/jjzha/jobbert-base-cased). JobBERT is a continuously pre-trained bert-base-cased checkpoint on ~3.2M sentences from job postings. |
|
|
|
It has been fine tuned with a classification head to binarily classify job advert sentences as being a `company description` or not. |
|
|
|
The model was trained on **486 manually labelled company description sentences** and **1000 non company description sentences less than 250 characters in length.** |
|
|
|
|
|
It achieves the following results on a held out test set 147 sentences: |
|
- Accuracy: 0.92157 |
|
|
|
| Label | precision | recall | f1-score | support | |
|
| ----------- | ----------- | ----------- |----------- |----------- | |
|
| not company description | 0.930693 |0.959184|0.944724|98| |
|
| company description | 0.913043 |0.857143|0.884211|49| |
|
|
|
The code for training the model is in our [ojd_daps_language_models repo](https://github.com/nestauk/ojd_daps_language_models), a central repository for fine-tuning transformer models on our database of scraped job adverts. |
|
|
|
## 🖨️ Use |
|
|
|
To use the model: |
|
|
|
``` |
|
from transformers import AutoTokenizer, AutoModelForSequenceClassification |
|
from transformers import pipeline |
|
|
|
model = AutoModelForSequenceClassification.from_pretrained("nestauk/jobbert-base-cased-compdecs") |
|
tokenizer = AutoTokenizer.from_pretrained("nestauk/jobbert-base-cased-compdecs") |
|
|
|
comp_classifier = pipeline('text-classification', model=model, tokenizer=tokenizer) |
|
``` |
|
An example use is as follows: |
|
|
|
``` |
|
job_sent = "Would you like to join a major manufacturing company?" |
|
comp_classifier(job_sent) |
|
|
|
>> [{'label': 'LABEL_1', 'score': 0.9953641891479492}] |
|
``` |
|
|
|
The intended use of this model is to extract company descriptions from online job adverts to use in downstream tasks such as mapping to [Standardised Industrial Classification (SIC)](https://www.gov.uk/government/publications/standard-industrial-classification-of-economic-activities-sic) codes. |
|
|
|
|
|
### ⚖️ Training hyperparameters |
|
|
|
The following hyperparameters were used during training: |
|
- learning_rate: 2e-05 |
|
- train_batch_size: 16 |
|
- eval_batch_size: 16 |
|
- seed: 42 |
|
- optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08 |
|
- lr_scheduler_type: linear |
|
- num_epochs: 10 |
|
|
|
### ⚖️ Training results |
|
|
|
The fine-tuning metrics are as follows: |
|
- eval_loss: 0.462236 |
|
- eval_runtime: 0.629300 |
|
- eval_samples_per_second: 233.582000 |
|
- eval_steps_per_second: 15.890000 |
|
- epoch: 10.000000 |
|
- perplexity: 1.590000 |
|
- |
|
|
|
### ⚖️ Framework versions |
|
|
|
- Transformers 4.32.0 |
|
- Pytorch 2.0.1+cu118 |
|
- Datasets 2.14.4 |
|
- Tokenizers 0.13.3 |