--- language: su tags: - sundanese-gpt2-base license: mit datasets: - mc4 - cc100 - oscar - wikipedia widget: - text: "Nami abdi Budi, ti Indonésia" --- ## Sundanese GPT-2 Base Sundanese GPT-2 Base is a causal language model based on the [OpenAI GPT-2](https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf) model. It was trained on four datasets: [OSCAR](https://hf.co/datasets/oscar)'s `unshuffled_deduplicated_su` subset, the Sundanese [mC4](https://hf.co/datasets/mc4) subset, the Sundanese [CC100](https://hf.co/datasets/cc100) subset, and Sundanese [Wikipedia](https://su.wikipedia.org/). 10% of the dataset is kept for evaluation purposes. The model was trained from scratch and achieved an evaluation loss of 3.61 and an evaluation perplexity of 36.97. This model was trained using HuggingFace's Flax framework. All necessary scripts used for training could be found in the [Files and versions](https://hf.co/w11wo/sundanese-gpt2-base/tree/main) tab, as well as the [Training metrics](https://hf.co/w11wo/sundanese-gpt2-base/tensorboard) logged via Tensorboard. ## Model | Model | #params | Arch. | Training/Validation data (text) | | --------------------- | ------- | ----- | ------------------------------------- | | `sundanese-gpt2-base` | 124M | GPT-2 | OSCAR, mC4, CC100, Wikipedia (758 MB) | ## Evaluation Results The model was trained for 50 epochs and the following is the final result once the training ended. | train loss | valid loss | valid PPL | total time | | ---------- | ---------- | --------- | ---------- | | 2.436 | 3.61 | 36.97 | 7:1:54 | ## How to Use ### As Causal Language Model ```python from transformers import pipeline pretrained_name = "w11wo/sundanese-gpt2-base" nlp = pipeline( "text-generation", model=pretrained_name, tokenizer=pretrained_name ) nlp("Nami abdi Budi, ti Indonésia") ``` ### Feature Extraction in PyTorch ```python from transformers import GPT2Model, GPT2TokenizerFast pretrained_name = "w11wo/sundanese-gpt2-base" model = GPT2Model.from_pretrained(pretrained_name) tokenizer = GPT2TokenizerFast.from_pretrained(pretrained_name) prompt = "Nami abdi Budi, ti Indonésia" encoded_input = tokenizer(prompt, return_tensors='pt') output = model(**encoded_input) ``` ## Disclaimer Do consider the biases which came from all four datasets that may be carried over into the results of this model. ## Author Sundanese GPT-2 Base was trained and evaluated by [Wilson Wongso](https://w11wo.github.io/). ## Citation Information ```bib @article{rs-907893, author = {Wongso, Wilson and Lucky, Henry and Suhartono, Derwin}, journal = {Journal of Big Data}, year = {2022}, month = {Feb}, day = {26}, abstract = {The Sundanese language has over 32 million speakers worldwide, but the language has reaped little to no benefits from the recent advances in natural language understanding. Like other low-resource languages, the only alternative is to fine-tune existing multilingual models. In this paper, we pre-trained three monolingual Transformer-based language models on Sundanese data. When evaluated on a downstream text classification task, we found that most of our monolingual models outperformed larger multilingual models despite the smaller overall pre-training data. In the subsequent analyses, our models benefited strongly from the Sundanese pre-training corpus size and do not exhibit socially biased behavior. We released our models for other researchers and practitioners to use.}, issn = {2693-5015}, doi = {10.21203/rs.3.rs-907893/v1}, url = {https://doi.org/10.21203/rs.3.rs-907893/v1} } ```