From fa265230a200f037592377987c6d963d2601e6d0 Mon Sep 17 00:00:00 2001 From: Suraj Parmar Date: Fri, 10 Jul 2020 21:04:23 +0530 Subject: [PATCH] Create Model card for RoBERTa-hindi-guj-san (#5661) --- .../surajp/RoBERTa-hindi-guj-san/README.md | 108 ++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 model_cards/surajp/RoBERTa-hindi-guj-san/README.md diff --git a/model_cards/surajp/RoBERTa-hindi-guj-san/README.md b/model_cards/surajp/RoBERTa-hindi-guj-san/README.md new file mode 100644 index 0000000000..2a8f45eefc --- /dev/null +++ b/model_cards/surajp/RoBERTa-hindi-guj-san/README.md @@ -0,0 +1,108 @@ +--- +language: "multilingual" +tags: +- Hindi +- Sanskrit +- Gujarati +- Indic +- roberta +license: "MIT" +datasets: +- Wikipedia (Hindi, Sanskrit, Gujarati) +metrics: +- perplexity +--- + +# RoBERTa-hindi-guj-san + +## Model description + +Multillingual RoBERTa like model trained on Wikipedia articles of Hindi, Sanskrit, Gujarati languages. The tokenizer was trained on combined text. +However, Hindi text was used to pre-train the model and then it was fine-tuned on Sanskrit and Gujarati Text combined hoping that pre-training with Hindi +will help the model learn similar languages. + +### Configuration + +| Parameter | Value | +|---|---| +| `hidden_size` | 768 | +| `num_attention_heads` | 12 | +| `num_hidden_layers` | 6 | +| `vocab_size` | 30522 | +|`model_type`|`roberta`| + +## Intended uses & limitations + +#### How to use + +```python +# Example usage +from transformers import AutoTokenizer, AutoModelWithLMHead, pipeline + +tokenizer = AutoTokenizer.from_pretrained("surajp/RoBERTa-hindi-guj-san") +model = AutoModelWithLMHead.from_pretrained("surajp/RoBERTa-hindi-guj-san") + +fill_mask = pipeline( + "fill-mask", + model=model, + tokenizer=tokenizer +) + +# Sanskrit: इयं भाषा न केवलं भारतस्य अपि तु विश्वस्य प्राचीनतमा भाषा इति मन्यते। +# Hindi: अगर आप अब अभ्यास नहीं करते हो तो आप अपने परीक्षा में मूर्खतापूर्ण गलतियाँ करोगे। +# Gujarati: ગુજરાતમાં ૧૯મી માર્ચ સુધી કોઈ સકારાત્મક (પોઝીટીવ) રીપોર્ટ આવ્યો હતો. +fill_mask("ગુજરાતમાં ૧૯મી માર્ચ સુધી કોઈ સકારાત્મક (પોઝીટીવ) રીપોર્ટ આવ્યો હતો.") + +''' +Output: +-------- +[ +{'score': 0.07849744707345963, 'sequence': ' ગુજરાતમાં ૧૯મી માર્ચ સુધી કોઈ સકારાત્મક (પોઝીટીવ) રીપોર્ટ આવ્યો જ હતો.', 'token': 390}, +{'score': 0.06273336708545685, 'sequence': ' ગુજરાતમાં ૧૯મી માર્ચ સુધી કોઈ સકારાત્મક (પોઝીટીવ) રીપોર્ટ આવ્યો ન હતો.', 'token': 478}, +{'score': 0.05160355195403099, 'sequence': ' ગુજરાતમાં ૧૯મી માર્ચ સુધી કોઈ સકારાત્મક (પોઝીટીવ) રીપોર્ટ આવ્યો થઇ હતો.', 'token': 2075}, +{'score': 0.04751499369740486, 'sequence': ' ગુજરાતમાં ૧૯મી માર્ચ સુધી કોઈ સકારાત્મક (પોઝીટીવ) રીપોર્ટ આવ્યો એક હતો.', 'token': 600}, +{'score': 0.03788900747895241, 'sequence': ' ગુજરાતમાં ૧૯મી માર્ચ સુધી કોઈ સકારાત્મક (પોઝીટીવ) રીપોર્ટ આવ્યો પણ હતો.', 'token': 840} +] + +``` + +## Training data + +Cleaned wikipedia articles in Hindi, Sanskrit and Gujarati on Kaggle. It contains training as well as evaluation text. +Used in [iNLTK](https://github.com/goru001/inltk) + +- [Hindi](https://www.kaggle.com/disisbig/hindi-wikipedia-articles-172k) +- [Gujarati](https://www.kaggle.com/disisbig/gujarati-wikipedia-articles) +- [Sanskrit](https://www.kaggle.com/disisbig/sanskrit-wikipedia-articles) + +## Training procedure + +- On TPU (using `xla_spawn.py`) +- For language modelling +- Iteratively increasing `--block_size` from 128 to 256 over epochs +- Tokenizer trained on combined text +- Pre-training with Hindi and fine-tuning on Sanskrit and Gujarati texts + +``` +--model_type distillroberta-base \ +--model_name_or_path "/content/SanHiGujBERTa" \ +--mlm_probability 0.20 \ +--line_by_line \ +--save_total_limit 2 \ +--per_device_train_batch_size 128 \ +--per_device_eval_batch_size 128 \ +--num_train_epochs 5 \ +--block_size 256 \ +--seed 108 \ +--overwrite_output_dir \ +``` + +## Eval results + +perplexity = 2.920005983224673 + + + +> Created by [Suraj Parmar/@parmarsuraj99](https://twitter.com/parmarsuraj99) | [LinkedIn](https://www.linkedin.com/in/parmarsuraj99/) + +> Made with in India