ashwani-tanwar
commited on
Commit
•
0d969e4
1
Parent(s):
f35014f
Create Readme
Browse files
README.md
ADDED
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
language: gu
|
3 |
+
---
|
4 |
+
|
5 |
+
# Gujarati-XLM-R-Large
|
6 |
+
|
7 |
+
|
8 |
+
This model is finetuned over [XLM-RoBERTa](https://huggingface.co/xlm-roberta-large) (XLM-R) using its large variant with the Gujarati language using the [OSCAR](https://oscar-corpus.com/) monolingual dataset. We used the same masked language modelling (MLM) objective which was used for pretraining the XLM-R. As it is built over the pretrained XLM-R, we leveraged *Transfer Learning* by exploiting the knowledge from its parent model.
|
9 |
+
|
10 |
+
## Dataset
|
11 |
+
OSCAR corpus contains several diverse datasets for different languages. We followed the work of [CamemBERT](https://www.aclweb.org/anthology/2020.acl-main.645/) who reported better performance with this diverse dataset as compared to the other large homogenous datasets.
|
12 |
+
|
13 |
+
## Preprocessing and Training Procedure
|
14 |
+
Please visit [this link](https://github.com/ashwanitanwar/nmt-transfer-learning-xlm-r#6-finetuning-xlm-r) for the detailed procedure.
|
15 |
+
|
16 |
+
## Usage
|
17 |
+
- This model can be used for further finetuning for different NLP tasks using the Gujarati language.
|
18 |
+
- It can be used to generate contextualised word representations for the Gujarati words.
|
19 |
+
- It can be used for domain adaptation.
|
20 |
+
- It can be used to predict the missing words from the Gujarati sentences.
|
21 |
+
|
22 |
+
## Demo
|
23 |
+
### Using the model to predict missing words
|
24 |
+
```
|
25 |
+
from transformers import pipeline
|
26 |
+
unmasker = pipeline('fill-mask', model='ashwani-tanwar/Gujarati-XLM-R-Large')
|
27 |
+
pred_word = unmasker("અમદાવાદ એ ગુજરાતનું એક <mask> છે.")
|
28 |
+
print(pred_word)
|
29 |
+
```
|
30 |
+
```
|
31 |
+
[{'sequence': '<s> અમદાવાદ એ ગુજરાતનું એક શહેર છે.</s>', 'score': 0.9790881276130676, 'token': 85227, 'token_str': '▁શહેર'},
|
32 |
+
{'sequence': '<s> અમદાવાદ એ ગુજરાતનું એક રાજ્ય છે.</s>', 'score': 0.004246668424457312, 'token': 63678, 'token_str': '▁રાજ્ય'},
|
33 |
+
{'sequence': '<s> અમદાવાદ એ ગુજરાતનું એક ગામ છે.</s>', 'score': 0.0038021174259483814, 'token': 66346, 'token_str': '▁ગામ'},
|
34 |
+
{'sequence': '<s> અમદાવાદ એ ગુજરાતનું એક મહત્વ છે.</s>', 'score': 0.002798238070681691, 'token': 126763, 'token_str': '▁મહત્વ'},
|
35 |
+
{'sequence': '<s> અમદાવાદ એ ગુજરાતનું એક અમદાવાદ છે.</s>', 'score': 0.0021192911081016064, 'token': 69499, 'token_str': '▁અમદાવાદ'}]
|
36 |
+
```
|
37 |
+
### Using the model to generate contextualised word representations
|
38 |
+
```
|
39 |
+
from transformers import AutoTokenizer, AutoModel
|
40 |
+
tokenizer = AutoTokenizer.from_pretrained("ashwani-tanwar/Gujarati-XLM-R-Large")
|
41 |
+
model = AutoModel.from_pretrained("ashwani-tanwar/Gujarati-XLM-R-Large")
|
42 |
+
sentence = "અમદાવાદ એ ગુજરાતનું એક શહેર છે."
|
43 |
+
encoded_sentence = tokenizer(sentence, return_tensors='pt')
|
44 |
+
context_word_rep = model(**encoded_sentence)
|
45 |
+
```
|