File size: 2,595 Bytes
ed4659c
098df7a
 
 
 
 
 
 
 
ed4659c
098df7a
 
 
 
ed4659c
098df7a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e1d6e47
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
098df7a
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
---
tags:
- fill-mask
- japanese
- albert

language:
- ja

license: mit

widget:
- text: "明日は明日の[MASK]が吹く"

---
## albert-base-japanese-v1-with-japanese
日本語事前学習済みALBERTモデルです  
このモデルではTokenizerに[BertJapaneseTokenizerクラス](https://huggingface.co/docs/transformers/main/en/model_doc/bert-japanese#transformers.BertJapaneseTokenizer)を利用しています  
[albert-base-japanese-v1](https://huggingface.co/ken11/albert-base-japanese-v1)よりトークナイズ処理が楽になっています  

## How to use
### ファインチューニング
このモデルはPreTrainedモデルです  
基本的には各種タスク用にファインチューニングして使用されることを想定しています  

### Fill-Mask
#### for PyTorch
```py
from transformers import (
    AutoModelForMaskedLM, AutoTokenizer
)


tokenizer = AutoTokenizer.from_pretrained("ken11/albert-base-japanese-v1-with-japanese-tokenizer")
model = AutoModelForMaskedLM.from_pretrained("ken11/albert-base-japanese-v1-with-japanese-tokenizer")

text = "明日は明日の[MASK]が吹く"
tokens = tokenizer(text, return_tensors="pt")
mask_index = tokens["input_ids"][0].tolist().index(tokenizer.mask_token_id)
predict = model(**tokens)[0]
_, result = predict[0, mask_index].topk(5)

print(tokenizer.convert_ids_to_tokens(result.tolist()))
```

#### for TensorFlow
```py
from transformers import (
    TFAutoModelForMaskedLM, AutoTokenizer
)
import tensorflow as tf


tokenizer = AutoTokenizer.from_pretrained("ken11/albert-base-japanese-v1-with-japanese-tokenizer")
model = TFAutoModelForMaskedLM.from_pretrained("ken11/albert-base-japanese-v1-with-japanese-tokenizer")

text = "明日は明日の[MASK]が吹く"
tokens = tokenizer(text, return_tensors="tf")
mask_index = tokens["input_ids"][0].numpy().tolist().index(tokenizer.mask_token_id)
predict = model(**tokens)[0]
result = tf.math.top_k(predict[0, mask_index], k=5)

print(tokenizer.convert_ids_to_tokens(result.indices.numpy()))
```

## Training Data
学習には
- [日本語Wikipediaの全文](https://ja.wikipedia.org/wiki/Wikipedia:%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89)

を利用しています  

## Tokenizer
トークナイザーは[BertJapaneseTokenizerクラス](https://huggingface.co/docs/transformers/main/en/model_doc/bert-japanese#transformers.BertJapaneseTokenizer)を利用しています  
こちらも学習データは同様です

## Licenese
[The MIT license](https://opensource.org/licenses/MIT)