juliensimon's picture
juliensimon HF staff
Librarian Bot: Add base_model information to model (#5)
43f6bb2
---
license: mit
tags:
- generated_from_trainer
- language-identification
- openvino
datasets:
- fleurs
metrics:
- accuracy
pipeline_tag: text-classification
base_model: facebook/xlm-v-base
model-index:
- name: xlm-v-base-language-id
results:
- task:
type: text-classification
name: Text Classification
dataset:
name: fleurs
type: fleurs
config: all
split: validation
args: all
metrics:
- type: accuracy
value: 0.9930337861372344
name: Accuracy
---
<!-- This model card has been generated automatically according to the information the Trainer had access to. You
should probably proofread and complete it, then remove this comment. -->
# xlm-v-base-language-id
This model is a fine-tuned version of [facebook/xlm-v-base](https://huggingface.co/facebook/xlm-v-base) on the [google/fleurs](https://huggingface.co/datasets/google/fleurs) dataset.
It achieves the following results on the evaluation set:
- Loss: 0.0241
- Accuracy: 0.9930
# Usage
The simplest way to use the model is with a text classification pipeline:
```
from transformers import pipeline
model_id = "juliensimon/xlm-v-base-language-id"
p = pipeline("text-classification", model=model_id)
p("Hello world")
# [{'label': 'English', 'score': 0.9802148342132568}]
```
The model is also compatible with [Optimum Intel](https://github.com/huggingface/optimum-intel).
For example, you can optimize it with Intel OpenVINO and enjoy a 2x inference speedup (or more).
```
from optimum.intel.openvino import OVModelForSequenceClassification
from transformers import AutoTokenizer, pipeline
model_id = "juliensimon/xlm-v-base-language-id"
ov_model = OVModelForSequenceClassification.from_pretrained(model_id)
tokenizer = AutoTokenizer.from_pretrained(model_id)
p = pipeline("text-classification", model=ov_model, tokenizer=tokenizer)
p("Hello world")
# [{'label': 'English', 'score': 0.9802149534225464}]
```
An OpenVINO version of the model is available in the repository.
## Intended uses & limitations
The model can accurately detect 102 languages. You can find the list on the [dataset](https://huggingface.co/datasets/google/fleurs) page.
## Training and evaluation data
The model has been trained and evaluated on the complete google/fleurs training and validation sets.
## Training procedure
The training script is included in the repository. The model has been trained on an p3dn.24xlarge instance on AWS (8 NVIDIA V100 GPUs).
### Training hyperparameters
The following hyperparameters were used during training:
- learning_rate: 3e-05
- train_batch_size: 128
- eval_batch_size: 128
- seed: 42
- gradient_accumulation_steps: 4
- total_train_batch_size: 512
- optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
- lr_scheduler_type: linear
- lr_scheduler_warmup_ratio: 0.1
- num_epochs: 5
- mixed_precision_training: Native AMP
### Training results
| Training Loss | Epoch | Step | Validation Loss | Accuracy |
|:-------------:|:-----:|:----:|:---------------:|:--------:|
| 0.6368 | 1.0 | 531 | 0.4593 | 0.9689 |
| 0.059 | 2.0 | 1062 | 0.0412 | 0.9899 |
| 0.0311 | 3.0 | 1593 | 0.0275 | 0.9918 |
| 0.0255 | 4.0 | 2124 | 0.0243 | 0.9928 |
| 0.017 | 5.0 | 2655 | 0.0241 | 0.9930 |
### Framework versions
- Transformers 4.26.0
- Pytorch 1.13.1
- Datasets 2.8.0
- Tokenizers 0.13.2