pytorch gpt2 text-generation ja dataset:wikipedia dataset:cc100 transformers license:cc-by-sa-4.0
---
language:
- ja
license: cc-by-sa-4.0
datasets:
- wikipedia
- cc100
widget:
- text: "早稲田 大学 で 自然 言語 処理 を"
---

# nlp-waseda/gpt2-small-japanese

This model is Japanese GPT-2 pretrained on Japanese Wikipedia and CC-100.

## Intended uses & limitations

You can use the raw model for text generation or fine-tune it to a downstream task.

Note that the texts should be segmented into words using Juman++ in advance.

### How to use

You can use this model directly with a pipeline for text generation. Since the generation relies on some randomness, we set a seed for reproducibility:

```python
>>> from transformers import pipeline, set_seed
>>> generator = pipeline('text-generation', model='nlp-waseda/gpt2-small-japanese')
>>> set_seed(42)
>>> generator("早稲田 大学 で 自然 言語 処理 を", max_length=30, do_sample=True, pad_token_id=2, num_return_sequences=5)
[{'generated_text': '早稲田 大学 で 自然 言語 処理 を 学び 、 帰国 後 、 早稲田 大学 理工 学部 に 入学 し ます 。 卒業 後 、 早稲田 大学 工学 研究 科 、'},
 {'generated_text': '早稲田 大学 で 自然 言語 処理 を 学び 、 アメリカ の 大学 で 学士 号 を 取得 、 修士 の 取得 で 博士 号 を 取得 。  2008 年'},
 {'generated_text': '早稲田 大学 で 自然 言語 処理 を 勉強 して い ます 。 学部 は 日本 語 学科 を 専攻 して い ます 。  英語 が 話せる と いう'},
 {'generated_text': '早稲田 大学 で 自然 言語 処理 を 専攻 して いた 。 2011 年 に 第 26 回 日本 化学 会 学生 委員 会 奨励 賞 ( 第 2 年次 審査'},
 {'generated_text': '早稲田 大学 で 自然 言語 処理 を 中心 と する 言語 学 研究 を 行って いる 。   東京 都 ・ 豊島 区 の お 見合い 相手 。'}]
```

Here is how to use this model to get the features of a given text in PyTorch:

```python
from transformers import ReformerTokenizer, GPT2Model
tokenizer = ReformerTokenizer.from_pretrained('nlp-waseda/gpt2-small-japanese')
model = GPT2Model.from_pretrained('nlp-waseda/gpt2-small-japanese')
text = "早稲田 大学 で 自然 言語 処理 を"
encoded_input = tokenizer(text, return_tensors='pt')
output = model(**encoded_input)
```

## Training data

The GPT-2 model was pretrained on Japanese Wikipedia, dumped on 2022-03-20, and the Japanese portion of CC-100.

## Training procedure

### Preprocessing

The texts are normalized using zenhan, segmented into words using Juman++, and tokenized using SentencePiece. Juman++ 2.0.0-rc3 was used for pretraining.

The model was trained on 8 NVIDIA A100 GPUs.