File size: 3,438 Bytes
0bfaffa
 
 
 
001826c
d322b88
0bfaffa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d322b88
0bfaffa
 
 
 
 
 
 
d322b88
0bfaffa
 
 
 
d322b88
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0bfaffa
 
d322b88
0bfaffa
 
 
27c7dcd
0bfaffa
 
 
27c7dcd
 
0bfaffa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d322b88
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
---
license: mit
tags:
- generated_from_trainer
- language-identification
- openvino
datasets:
- fleurs
metrics:
- accuracy
model-index:
- name: xlm-v-base-language-id
  results:
  - task:
      name: Text Classification
      type: text-classification
    dataset:
      name: fleurs
      type: fleurs
      config: all
      split: validation
      args: all
    metrics:
    - name: Accuracy
      type: accuracy
      value: 0.9930337861372344
pipeline_tag: text-classification
---

<!-- 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 (AutoModelForSequenceClassification, AutoTokenizer,
                          pipeline)

model_id = "juliensimon/xlm-v-base-language-id"
ov_model = OVModelForSequenceClassification.from_pretrained(
    model_id, from_transformers=True
)
tokenizer = AutoTokenizer.from_pretrained(model_id)
p = pipeline("text-classification", model=ov_model, tokenizer=tokenizer)
p("Hello world")
# [{'label': 'English', 'score': 0.9802149534225464}]
```

## 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