
Automatic correction of README.md metadata for keys. Contact [email protected] for any question
e0038f0
language: | |
- mk | |
thumbnail: https://huggingface.co/macedonizer/mk-roberta-base/blaze-koneski.jpg | |
license: apache-2.0 | |
datasets: | |
- wiki-mk | |
- time-mk-news-2010-2015 | |
# mk-gpt2 | |
Test the whole generation capabilities here: https://transformer.huggingface.co/doc/gpt2-large | |
Pretrained model on English language using a causal language modeling (CLM) objective. It was introduced in | |
[this paper](https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf) | |
and first released at [this page](https://openai.com/blog/better-language-models/). | |
## Model description | |
mk-gpt2 is a transformers model pretrained on a very large corpus of Macedonian data in a self-supervised fashion. This | |
means it was pretrained on the raw texts only, with no humans labelling them in any way (which is why it can use lots | |
of publicly available data) with an automatic process to generate inputs and labels from those texts. More precisely, | |
it was trained to guess the next word in sentences. | |
More precisely, inputs are sequences of continuous text of a certain length and the targets are the same sequence, | |
shifted one token (word or piece of word) to the right. The model uses internally a mask-mechanism to make sure the | |
predictions for the token `i` only uses the inputs from `1` to `i` but not the future tokens. | |
This way, the model learns an inner representation of the Macedonian language that can then be used to extract features | |
useful for downstream tasks. The model is best at what it was pretrained for however, which is generating texts from a | |
prompt. | |
### How to use | |
Here is how to use this model to get the features of a given text in PyTorch: | |
import random | |
from transformers import AutoTokenizer, AutoModelWithLMHead | |
tokenizer = AutoTokenizer.from_pretrained('macedonizer/mk-gpt2') \ | |
model = AutoModelWithLMHead.from_pretrained('macedonizer/mk-gpt2') | |
input_text = 'Скопје е ' | |
if len(input_text) == 0: \ | |
encoded_input = tokenizer(input_text, return_tensors="pt") \ | |
output = model.generate( \ | |
bos_token_id=random.randint(1, 50000), \ | |
do_sample=True, \ | |
top_k=50, \ | |
max_length=1024, \ | |
top_p=0.95, \ | |
num_return_sequences=1, \ | |
) \ | |
else: \ | |
encoded_input = tokenizer(input_text, return_tensors="pt") \ | |
output = model.generate( \ | |
**encoded_input, \ | |
bos_token_id=random.randint(1, 50000), \ | |
do_sample=True, \ | |
top_k=50, \ | |
max_length=1024, \ | |
top_p=0.95, \ | |
num_return_sequences=1, \ | |
) | |
decoded_output = [] \ | |
for sample in output: \ | |
decoded_output.append(tokenizer.decode(sample, skip_special_tokens=True)) | |
print(decoded_output) |