miya-99999 commited on
Commit
885b04f
1 Parent(s): 17a122a

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +89 -0
README.md CHANGED
@@ -1,3 +1,92 @@
1
  ---
2
  license: cc-by-sa-4.0
3
  ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
  license: cc-by-sa-4.0
3
  ---
4
+ ---
5
+ license: cc-by-sa-4.0
6
+ ---
7
+ # v4からの修正点
8
+ 数字を全て一桁区切りに。
9
+
10
+ # 説明
11
+ wikipedia, mbpp, grade-school-mathで学習したトークナイザー。
12
+
13
+ ## 学習に使ったデータ
14
+ - 英語:1.33GB (wiki40b)<br>
15
+ - 日本語:1.78GB (wiki40b) ※形態素単位で"||||"で事前分割してsentencepieceの学習時にpretokenization_delimiterを設定。<br>
16
+ - コード:172KB (mbpp) <br>
17
+ - 数学:2.1MB (grade-school-math)
18
+ -
19
+ ## 語彙の追加
20
+ 以下を参考に日本語の語彙を追加。
21
+ - wikitinary 目次一覧(名詞・形容詞・形容動詞・副詞・接尾辞・助詞・動詞などから一般的に使われると思われるものを定性的に選別。)
22
+ - wikitionary 日本語の基本語彙1000
23
+ - 文化庁「常用漢字一覧表」の例から一部をサンプリング。
24
+ - 時間・季節・方角に関する語
25
+ - 都道府県・観光地・東京23区
26
+ - 頻出する日本の苗字
27
+ - 定型表現(「こんにちは」「よろしく」「ございます」など)
28
+ その他、以下の語彙を追加。
29
+ - 記号
30
+ - 数字(漢数字・半角数字0~9・全角数字0〜9・上付き数字0〜9)
31
+ - 数学に出るギリシャ文字
32
+
33
+
34
+ ## 語彙の割合
35
+ 概算ですが、アルファベットが約6割、日本語(ひらがな・カタカナ・漢字)が約4割となっています。(その他記号や数字は1~2%程度)
36
+
37
+ ## 参照
38
+ - https://aclanthology.org/2020.lrec-1.297.pdf
39
+ - https://www.tensorflow.org/datasets/catalog/wiki40b
40
+ - https://github.com/openai/grade-school-math
41
+ - https://github.com/google-research/google-research/tree/master/mbpp
42
+ - https://www.bunka.go.jp/kokugo_nihongo/sisaku/joho/joho/kakuki/14/pdf/jyouyou_kanjihyou.pdf
43
+ - https://ja.m.wiktionary.org/wiki/%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA:%E6%97%A5%E6%9C%AC%E8%AA%9E
44
+ -
45
+
46
+ ## 設定
47
+ vocab_size=56,320(語彙サイズ)<br>
48
+ character_coverage=0.9995(文字のカバー率99.95%)<br>
49
+ model_type="unigram"(アルゴリズム)<br>
50
+ normalization="identity"(正規化なし)<br>
51
+ byte_fallback=True(バイト変換あり)<br>
52
+ split_digits=True(数字分割あり)<br>
53
+ allow_whitespace_only_pieces=True(空白のトークンを許可する)<br>
54
+ remove_extra_whitespaces=True(余分な空白の削除あり)<br>
55
+
56
+ ## 形式
57
+ LlamaTokenizer<br>
58
+ ※encode時に文頭にbos_tokenである"\<s\>"トークンが付きます。
59
+
60
+ # 使い方
61
+ ```python
62
+ !pip install transformers>=4.34.0
63
+
64
+ from transformers import AutoTokenizer
65
+ test_tokenizer = AutoTokenizer.from_pretrained("geniacllm/ja-en-tokenizer-unigram-v5", use_fast=False)
66
+ ```
67
+ ```python
68
+ # text
69
+ text = "This is tokenizer test."
70
+
71
+ # tokenize
72
+ tokenized = test_tokenizer.tokenize(text)
73
+ print(tokenized)
74
+
75
+ # encode
76
+ encoded = test_tokenizer.encode(text)
77
+ print(encoded)
78
+
79
+ # decode
80
+ decoded = test_tokenizer.decode(encoded)
81
+ print(decoded)
82
+
83
+ # special_token
84
+ print(test_tokenizer.special_tokens_map)
85
+
86
+
87
+ # vocab size
88
+ print(len(test_tokenizer))
89
+
90
+ # all subwords in vocab
91
+ print(test_tokenizer.get_vocab())
92
+ ```