|
--- |
|
language: ja |
|
license: cc-by-sa-4.0 |
|
library_name: transformers |
|
tags: |
|
- gpt2 |
|
datasets: |
|
- wikipedia |
|
- cc100 |
|
- oscar |
|
widget: |
|
- text: "<s>昨日私は京都で" |
|
--- |
|
|
|
# Model Card for Japanese character-level GPT-2 Small |
|
|
|
## Model description |
|
|
|
This is a Japanese character-level GPT-2 Small (90M parameters) language model pre-trained on Japanese Wikipedia, the Japanese portion of CC-100, and the Japanese portion of OSCAR. |
|
|
|
## How to use |
|
|
|
You can use this model directly with a pipeline for text generation. |
|
|
|
```python |
|
>>> from transformers import pipeline, set_seed |
|
>>> generator = pipeline('text-generation', model='ku-nlp/gpt2-small-japanese-char') |
|
>>> set_seed(5) |
|
>>> generator("<s>昨日私は京都で", max_length=30, do_sample=True, num_return_sequences=5) |
|
|
|
[{'generated_text': '<s>昨日私は京都で仕事して、今日は大阪に行くのですが今日はいつ'}, |
|
{'generated_text': '<s>昨日私は京都で開催された「みんなで!アラーム学習アワード2'}, |
|
{'generated_text': '<s>昨日私は京都で行われましたコンフェクションフォーラムへ行っ'}, |
|
{'generated_text': '<s>昨日私は京都では雪が解けるまで寝た様子があります・・・(;'}, |
|
{'generated_text': '<s>昨日私は京都でも27回生の卒業式を行わせていただいておりま'}] |
|
``` |
|
|
|
You can also use this model to get the features of a given text. |
|
|
|
## Vocabulary |
|
|
|
A character-level vocabulary of size 6K is used. To be precise, rare characters may be split into bytes because byte-level byte-pair encoding (BPE) is used. The BPE tokenizer was trained on a small subset of the training data. Since the data were converted into a one-character-per-line format, merge operations never go beyond character boundaries. |
|
|
|
Note that the tokenizer maps U+0020 to `[UNK]` because preprocessing eliminated whitespace characters (U+0020) from training data. Use U+3000 (Ideographic Space) instead. |
|
|
|
## Training data |
|
|
|
We used the following corpora for pre-training: |
|
|
|
- Japanese Wikipedia (as of 20221020, 3.2GB, 27M sentences, 1.3M documents) |
|
- Japanese portion of CC-100 (85GB, 619M sentences, 66M documents) |
|
- Japanese portion of OSCAR (54GB, 326M sentences, 25M documents) |
|
|
|
Note that we filtered out documents annotated with "header", "footer", or "noisy" tags in OSCAR. |
|
Also note that Japanese Wikipedia was duplicated 10 times to make the total size of the corpus comparable to that of CC-100 and OSCAR. As a result, the total size of the training data is 171GB. |
|
|
|
## Training procedure |
|
|
|
The training took about 3 months (with two interruptions) with a single NVIDIA A100 80GB GPU. |
|
|
|
The following hyperparameters were used during pre-training: |
|
|
|
- learning_rate: 2e-4 |
|
- per_device_train_batch_size: 36 |
|
- gradient_accumulation_steps: 32 |
|
- optimizer: AdamW with betas=(0.9, 0.999) and epsilon=1e-06 |
|
- weight_decay: 0.01 |
|
- lr_scheduler_type: linear |
|
- max_grad_norm: 1.0 |
|
- max_steps: 500,000 (but terminated at 142,000 steps ~= 3.0 epochs) |
|
- warmup_steps: 10,000 |
|
|
|
The eval loss was 1.597 while the eval accuracy was 0.6359. The evaluation set consists of 5,000 randomly sampled documents from each of the training corpora. |
|
|