leonardlin
commited on
Commit
•
56cc5f4
1
Parent(s):
0fcc9a5
updated Model Card
Browse files- README.md +125 -17
- llm-jp-eval.ja.png +0 -0
- llm-jp-eval.mistral.png +0 -0
README.md
CHANGED
@@ -4,42 +4,150 @@ language:
|
|
4 |
- en
|
5 |
- ja
|
6 |
---
|
7 |
-
|
8 |
|
9 |
-
We have extended the Mistral tokenizer to
|
10 |
|
11 |
-
This model was created for use with [Shisa 7B](https://huggingface.co/augmxnt/shisa-7b-v1), our JA/EN fine-tuned model, but
|
12 |
-
|
13 |
-
(There are no stop tokens trained into this base model so it doesn't benchmark well but we have validated with ablations on fine-tuned models that using this base model outperforms raw Mistral 7B for Japanese language performance.)
|
14 |
|
15 |
Training took 2,400 A100-40 GPU hours on a single 16 x A100-40 machine with [DeepSpeed](https://github.com/microsoft/DeepSpeed) ZeRO-3.
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
## Acknowledgements
|
18 |
-
|
19 |
|
20 |
Compute for this model was generously sponsored by [AKA Virtual](https://akavirtual.com/) (Tokyo, Japan).
|
21 |
|
22 |
-
Thanks to the [ELYZA](https://huggingface.co/elyza) team for publishing the details of their [tokenizer extension approach](https://zenn.dev/elyza/articles/2fd451c944649d) which we used as
|
23 |
|
24 |
-
And of course, thanks to the [Mistral AI](https://huggingface.co/mistralai) for releasing
|
25 |
|
26 |
---
|
27 |
|
28 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
|
30 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
|
32 |
-
|
33 |
|
34 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
|
36 |
-
|
37 |
|
38 |
## 謝辞
|
39 |
-
|
40 |
|
41 |
-
|
42 |
|
43 |
-
[
|
44 |
|
45 |
-
|
|
|
4 |
- en
|
5 |
- ja
|
6 |
---
|
7 |
+
`mistral-7b-ja-v0.1` takes [Mistral 7B](https://huggingface.co/mistralai/Mistral-7B-v0.1) and adds an additional 8B tokens of primarily Japanese pre-training. Japanese tokens were sourced from [MADLAD-400](https://github.com/google-research/google-research/tree/master/madlad_400), using [DSIR](https://github.com/p-lambda/dsir), along with 10% English tokens sampled from a mix of MADLAD-400 EN and various open datasources added in to prevent catastrophic forgetting.
|
8 |
|
9 |
+
We have extended the Mistral tokenizer to 120k tokens to improve Japanese efficiency. Our tokenizer achieves ~2.3 characters per token in JA, versus the base Mistral 7B tokenizer which is <1 character per token. Code for our implementation is available in our [Shisa repo](https://github.com/AUGMXNT/shisa).
|
10 |
|
11 |
+
This base model was created for use with [Shisa 7B](https://huggingface.co/augmxnt/shisa-7b-v1), our JA/EN fine-tuned model, but we provide it for the community as we believe the combination of strong performance and efficient bilingual tokenizer could be useful.
|
|
|
|
|
12 |
|
13 |
Training took 2,400 A100-40 GPU hours on a single 16 x A100-40 machine with [DeepSpeed](https://github.com/microsoft/DeepSpeed) ZeRO-3.
|
14 |
|
15 |
+
## Performance
|
16 |
+
This base model was able to attain class-leading Japanese performance in standardized benchmarks with significantly less additional pre-training than previously released models. We believe this may be due to the use of a better-curated pre-training dataset, but ablations at even 2.5B additional JA tokens still showed very strong Japanese performance.
|
17 |
+
|
18 |
+
We used a slightly modified [llm-jp-eval](https://github.com/llm-jp/llm-jp-eval) (our base model requires a `bos_token` to be prepended to the prompt; we tested other models with and without the modification and took the higher results for all models tested). Here we validate versus the original Mistral 7B base model as well as [Japanese Stable LM Instruct Gamma 7B](https://huggingface.co/stabilityai/japanese-stablelm-instruct-gamma-7b), which is a Mistral 7B base with an additional 100B tokens of JA/EN pre-training. We also include [Japanese-StableLM-Base-Beta-70B](https://huggingface.co/stabilityai/japanese-stablelm-base-beta-70b), which is a Llama 2 70B that also has an additional 100B tokens of JA/EN pre-training as a reference:
|
19 |
+
|
20 |
+
![Mistral llm-jp-eval Comparison]()
|
21 |
+
|
22 |
+
Here we also compare `mistral-7b-ja-v0.1` to other recently-released similar classed (7B parameter) Japanese-tuned models. [ELYZA 7B fast model](https://huggingface.co/elyza/ELYZA-japanese-Llama-2-7b-fast) and [Youri 7B](https://huggingface.co/rinna/youri-7b) are Llama 2 7B models with 18B and 40B of additional pre-training respectively, and [CALM2-7B](https://huggingface.co/cyberagent/calm2-7b) and [llm-jp-13b]() are pretrained models with 1.3T and 300B JA/EN tokens of pre-training:
|
23 |
+
|
24 |
+
![7B llm-jp-eval Performance]()
|
25 |
+
|
26 |
+
## Tokenizer
|
27 |
+
As mentioned in the introduction, our tokenizer is an extended version of the Mistral 7B tokenizer, with a vocab size of 120073 and aligned to 128K. The remaining unused tokens are assigned as average-weighted `<|extra_{idx}|>` tokens.
|
28 |
+
|
29 |
+
We use the "Fast" tokenizer, which should be the default for `AutoTokenizer`, but if you have problems, make sure to check `tokenizer.is_fast` or to initialize with `use_fast=True`.
|
30 |
+
|
31 |
+
Japanese efficiency from sampling 50K items (~85M characters) from the JA subset of the [CulturaX](https://huggingface.co/datasets/uonlp/CulturaX) dataset:
|
32 |
+
|
33 |
+
| LLM | Tokenizer | Vocab Size | Avg Char/Token |
|
34 |
+
|:----------------------------------------------|:----------------------------------------------------|-------------:|-----------------:|
|
35 |
+
| *Shisa 7B (AUGMXNT)* | *augmxnt/mistral-7b-ja-v0.1* | *120073* | *2.31* |
|
36 |
+
| OpenCALM (CyberAgent) | cyberagent/open-calm-7b | 52000 | 2.17 |
|
37 |
+
| Japanese LargeLM (LINE) | line-corporation/japanese-large-lm-3.6b | 51200 | 2.14 |
|
38 |
+
| CALM2-7B (CyberAgent) | cyberagent/calm2-7b | 65000 | 2.00 |
|
39 |
+
| Bilingual-GPT-NeoX-4B (Rinna) | rinna/bilingual-gpt-neox-4b | 65536 | 1.88 |
|
40 |
+
| Japanese StableLM Alpha (Stability AI) | [novelai/nerdstash-tokenizer-v1](https://huggingface.co/NovelAI/nerdstash-tokenizer-v1) | 65535 | 1.85 |
|
41 |
+
| Japanese-GPT-NeoX-3.6B (Rinna) | rinna/japanese-gpt-neox-3.6b | 32000 | 1.83 |
|
42 |
+
| Japanese StableLM Beta JAVocab (Stability AI) | stabilityai/japanese-stablelm-base-ja_vocab-beta-7b | 49247 | 1.79 |
|
43 |
+
| llm-jp-13b (LLM-jp) | [llm-jp/llm-jp-13b-v1.0](https://github.com/llm-jp/llm-jp-tokenizer) | 50570 | 1.65 |
|
44 |
+
| Japanese-Llama-2-7b-fast (ELYZA) | elyza/ELYZA-japanese-Llama-2-7b-fast | 45043 | 1.53 |
|
45 |
+
| Qwen 14B (Qwen) | Qwen/Qwen-14B | 151851 | 1.48 |
|
46 |
+
| weblab-10b (Matsuo Lab) | EleutherAI/gpt-neox-20b | 50254 | 1.00 |
|
47 |
+
| Japanese StableLM Gamma (Stability AI) | mistralai/Mistral-7B-v0.1 | 32000 | 0.95 |
|
48 |
+
| Youri 7B (Rinna) | meta-llama/Llama-2-7B | 32000 | 0.88 |
|
49 |
+
|
50 |
+
We also test English efficiency using a sampling of 50K items (~177M characters) from the EN subset of the [CulturaX](https://huggingface.co/datasets/uonlp/CulturaX) dataset as a sanity check (and to see how other tokenizers fare):
|
51 |
+
|
52 |
+
| LLM | Tokenizer | Vocab Size | Avg Char/Token |
|
53 |
+
|:----------------------------------------------|:----------------------------------------------------|-------------:|-----------------:|
|
54 |
+
| Qwen 14B (Qwen) | Qwen/Qwen-14B | 151851 | 4.47 |
|
55 |
+
| weblab-10b (Matsuo Lab) | EleutherAI/gpt-neox-20b | 50254 | 4.45 |
|
56 |
+
| Japanese StableLM Alpha (Stability AI) | [novelai/nerdstash-tokenizer-v1](https://huggingface.co/NovelAI/nerdstash-tokenizer-v1) | 65535 | 4.15 |
|
57 |
+
| *Shisa 7B (AUGMXNT)* | *augmxnt/mistral-7b-ja-v0.1* | *120073* | *4.12* |
|
58 |
+
| CALM2-7B (CyberAgent) | cyberagent/calm2-7b | 65000 | 4.12 |
|
59 |
+
| Japanese StableLM Beta JAVocab (Stability AI) | stabilityai/japanese-stablelm-base-ja_vocab-beta-7b | 49247 | 4.01 |
|
60 |
+
| Japanese StableLM Gamma (Stability AI) | mistralai/Mistral-7B-v0.1 | 32000 | 4.01 |
|
61 |
+
| Japanese-Llama-2-7b-fast (ELYZA) | elyza/ELYZA-japanese-Llama-2-7b-fast | 45043 | 3.86 |
|
62 |
+
| Youri 7B (Rinna) | meta-llama/Llama-2-7B | 32000 | 3.86 |
|
63 |
+
| llm-jp-13b (LLM-jp) | [llm-jp/llm-jp-13b-v1.0](https://github.com/llm-jp/llm-jp-tokenizer) | 50570 | 3.79 |
|
64 |
+
| OpenCALM (CyberAgent) | cyberagent/open-calm-7b | 52000 | 2.83 |
|
65 |
+
| Japanese LargeLM (LINE) | line-corporation/japanese-large-lm-3.6b | 51200 | 2.49 |
|
66 |
+
| Japanese-GPT-NeoX-3.6B (Rinna) | rinna/japanese-gpt-neox-3.6b | 32000 | 2.42 |
|
67 |
+
| Bilingual-GPT-NeoX-4B (Rinna) | rinna/bilingual-gpt-neox-4b | 65536 | 2.42 |
|
68 |
+
|
69 |
+
With our extended tokenizer, we are able to achieve class-leading JA token efficiency without any losses in EN performance vs the base tokenizer. This bears out in our testing, and we often see >2X JA inference speedups with our tokenizer.
|
70 |
+
|
71 |
## Acknowledgements
|
72 |
+
Team: [Jon Durbin](https://huggingface.co/jondurbin), [Leonard Lin](https://huggingface.co/leonardlin)
|
73 |
|
74 |
Compute for this model was generously sponsored by [AKA Virtual](https://akavirtual.com/) (Tokyo, Japan).
|
75 |
|
76 |
+
Thanks to the [ELYZA](https://huggingface.co/elyza) team for publishing the details of their [tokenizer extension approach](https://zenn.dev/elyza/articles/2fd451c944649d) which we used as a starting point for our tokenizer.
|
77 |
|
78 |
+
And of course, thanks to the [Mistral AI](https://huggingface.co/mistralai) for releasing such a strong base model!
|
79 |
|
80 |
---
|
81 |
|
82 |
+
`mistral-7b-ja-v0.1`は、[Mistral 7B](https://huggingface.co/mistralai/Mistral-7B-v0.1)を基にして、主に日本語の事前トレーニングのために追加で80億トークンを追加しています。日本語トークンは、[MADLAD-400](https://github.com/google-research/google-research/tree/master/madlad_400)から取得し、[DSIR](https://github.com/p-lambda/dsir)を使用しています。さらに、MADLAD-400 ENと様々なオープンデータソースからの英語トークンの10%を追加し、壊滅的忘却を防ぐために組み込んでいます。
|
83 |
+
|
84 |
+
Mistralのトークン化器を12万トークンまで拡張し、日本語の効率を向上させました。私たちのトークン化器はJAでトークンあたり約2.3文字を実現しており、基本的なMistral 7Bのトークン化器はトークンあたり<1文字です。私たちの実装のコードは、[Shisaリポジトリ](https://github.com/AUGMXNT/shisa)で利用可能です。
|
85 |
+
|
86 |
+
このベースモデルは、[Shisa 7B](https://huggingface.co/augmxnt/shisa-7b-v1)、私たちのJA/ENファインチューニングモデル用に作成されましたが、強力なパフォーマンスと効率的なバイリンガルトークン化器の組み合わせが有用であると考え、コミュニティに提供しています。
|
87 |
+
|
88 |
+
トレーニングには、16 x A100-40マシンで2,400 A100-40 GPU時間を使用し、[DeepSpeed](https://github.com/microsoft/DeepSpeed) ZeRO-3で行いました。
|
89 |
+
|
90 |
+
## パフォーマンス
|
91 |
+
このベースモデルは、以前にリリースされたモデルよりもはるかに少ない追加事前トレーニングで、標準ベンチマークにおいて日本語性能の先頭を切ることができました。これは、より良くキュレーションされた事前トレーニングデータセットの使用によるものかもしれませんが、25億追加JAトークンでのアブレーションでも非常に強力な日本語パフォーマンスを示しました。
|
92 |
+
|
93 |
+
私たちは、わずかに変更された[llm-jp-eval](https://github.com/llm-jp/llm-jp-eval)を使用しました(私たちのベースモデルは、プロンプトに`bos_token`を追加する必要があります。他のモデルについても、変更の有無にかかわらずテストし、すべてのモデルでテストされた高い結果を取りました)。ここでは、元のMistral 7Bベースモデルおよび[日本語Stable LM Instruct Gamma 7B](https://huggingface.co/stabilityai/japanese-stablelm-instruct-gamma-7b)(これはMistral 7Bベースであり、追加の1000億JA/ENトークンの事前トレーニングが行われています)と比較します。また、[Japanese-StableLM-Base-Beta-70B](https://huggingface.co/stabilityai/japanese-stablelm-base-beta-70b)(これはLlama 2 70Bで、追加の1000億JA/ENトークンの事前トレーニングが行われています)も参考に含まれています。
|
94 |
+
|
95 |
+
![Mistral llm-jp-eval 比較]()
|
96 |
+
|
97 |
+
ここでは、`mistral-7b-ja-v0.1`を他の最近リリースされた同じクラス(7Bパラメータ)の日本語チューニングモデルとも比較します。[ELYZA 7B fast model](https://huggingface.co/elyza/ELYZA-japanese-Llama-2-7b-fast)および[Youri 7B](https://huggingface.co/rinna/youri-7b)はLlama 2 7Bモデルで、それぞれ180億と400億の追加事前トレーニングがあります。また、[CALM2-7B](https://huggingface.co/cyberagent/calm2-7b)と[llm-jp-13b]()は、1.3Tおよび3000億JA/ENトークンの事前トレーニングを行ったプリトレーニングモデルです。
|
98 |
+
|
99 |
+
![7B llm-jp-eval パフォーマンス]()
|
100 |
+
|
101 |
+
## トークン化器
|
102 |
+
序文で触れたように、私たちのトークン化器はMistral 7Bトークン化器の拡張版で、語彙サイズは120073であり、128Kに合わせられています。残りの未使用トークンは、平均重み付けされた`<|extra_{idx}|>`トークンとして割り当てられています。
|
103 |
+
|
104 |
+
私たちは「Fast」トークン化器を使用しており、これは`AutoTokenizer`のデフォルトであるべきですが、問題がある場合は`tokenizer.is_fast`をチェックするか、`use_fast=True`で初期化することを確認してください。
|
105 |
+
|
106 |
+
[CulturaX](https://huggingface.co/datasets/uonlp/CulturaX)データセットのJAサブセットから50Kアイテム(約8500万文字)をサンプリングした際の日本語効率:
|
107 |
|
108 |
+
| LLM | トークン化器 | 語彙サイズ | 1トークンあたりの平均文字数 |
|
109 |
+
|:----------------------------------------------|:----------------------------------------------------|-------------:|-----------------:|
|
110 |
+
| *Shisa 7B (AUGMXNT)* | *augmxnt/mistral-7b-ja-v0.1* | *120073* | *2.31* |
|
111 |
+
| OpenCALM (CyberAgent) | cyberagent/open-calm-7b | 52000 | 2.17 |
|
112 |
+
| Japanese LargeLM (LINE) | line-corporation/japanese-large-lm-3.6b | 51200 | 2.14 |
|
113 |
+
| CALM2-7B (CyberAgent) | cyberagent/calm2-7b | 65000 | 2.00 |
|
114 |
+
| Bilingual-GPT-NeoX-4B (Rinna) | rinna/bilingual-gpt-neox-4b | 65536 | 1.88 |
|
115 |
+
| Japanese StableLM Alpha (Stability AI) | [novelai/nerdstash-tokenizer-v1](https://huggingface.co/NovelAI/nerdstash-tokenizer-v1) | 65535 | 1.85 |
|
116 |
+
| Japanese-GPT-NeoX-3.6B (Rinna) | rinna/japanese-gpt-neox-3.6b | 32000 | 1.83 |
|
117 |
+
| Japanese StableLM Beta JAVocab (Stability AI) | stabilityai/japanese-stablelm-base-ja_vocab-beta-7b | 49247 | 1.79 |
|
118 |
+
| llm-jp-13b (LLM-jp) | [llm-jp/llm-jp-13b-v1.0](https://github.com/llm-jp/llm-jp-tokenizer) | 50570 | 1.65 |
|
119 |
+
| Japanese-Llama-2-7b-fast (ELYZA) | elyza/ELYZA-japanese-Llama-2-7b-fast | 45043 | 1.53 |
|
120 |
+
| Qwen 14B (Qwen) | Qwen/Qwen-14B | 151851 | 1.48 |
|
121 |
+
| weblab-10b (Matsuo Lab) | EleutherAI/gpt-neox-20b | 50254 | 1.00 |
|
122 |
+
| Japanese StableLM Gamma (Stability AI) | mistralai/Mistral-7B-v0.1 | 32000 | 0.95 |
|
123 |
+
| Youri 7B (Rinna) | meta-llama/Llama-2-7B | 32000 | 0.88 |
|
124 |
|
125 |
+
また、[CulturaX](https://huggingface.co/datasets/uonlp/CulturaX)データセットのENサブセットから50Kアイテム(約1億7700万文字)をサンプリングして、英語効率をテストしました。これは健全性チェック(および他のトークン化器のパフォーマンスを確認するため)として行われます:
|
126 |
|
127 |
+
| LLM | トークン化器 | 語彙サイズ | 1トークンあたりの平均文字数 |
|
128 |
+
|:----------------------------------------------|:----------------------------------------------------|-------------:|-----------------:|
|
129 |
+
| Qwen 14B (Qwen) | Qwen/Qwen-14B | 151851 | 4.47 |
|
130 |
+
| weblab-10b (Matsuo Lab) | EleutherAI/gpt-neox-20b | 50254 | 4.45 |
|
131 |
+
| Japanese StableLM Alpha (Stability AI) | [novelai/nerdstash-tokenizer-v1](https://huggingface.co/NovelAI/nerdstash-tokenizer-v1) | 65535 | 4.15 |
|
132 |
+
| *Shisa 7B (AUGMXNT)* | *augmxnt/mistral-7b-ja-v0.1* | *120073* | *4.12* |
|
133 |
+
| CALM2-7B (CyberAgent) | cyberagent/calm2-7b | 65000 | 4.12 |
|
134 |
+
| Japanese StableLM Beta JAVocab (Stability AI) | stabilityai/japanese-stablelm-base-ja_vocab-beta-7b | 49247 | 4.01 |
|
135 |
+
| Japanese StableLM Gamma (Stability AI) | mistralai/Mistral-7B-v0.1 | 32000 | 4.01 |
|
136 |
+
| Japanese-Llama-2-7b-fast (ELYZA) | elyza/ELYZA-japanese-Llama-2-7b-fast | 45043 | 3.86 |
|
137 |
+
| Youri 7B (Rinna) | meta-llama/Llama-2-7B | 32000 | 3.86 |
|
138 |
+
| llm-jp-13b (LLM-jp) | [llm-jp/llm-jp-13b-v1.0](https://github.com/llm-jp/llm-jp-tokenizer) | 50570 | 3.79 |
|
139 |
+
| OpenCALM (CyberAgent) | cyberagent/open-calm-7b | 52000 | 2.83 |
|
140 |
+
| Japanese LargeLM (LINE) | line-corporation/japanese-large-lm-3.6b | 51200 | 2.49 |
|
141 |
+
| Japanese-GPT-NeoX-3.6B (Rinna) | rinna/japanese-gpt-neox-3.6b | 32000 | 2.42 |
|
142 |
+
| Bilingual-GPT-NeoX-4B (Rinna) | rinna/bilingual-gpt-neox-4b | 65536 | 2.42 |
|
143 |
|
144 |
+
私たちの拡張トークン化器を使用することで、基本トークン化器と比較してENパフォーマンスの損失なく、クラス最高のJAトークン効率を実現できました。これは私たちのテストで実証されており、トークン化器を使用することでJA推論速度が2倍以上になることがしばしばあります。
|
145 |
|
146 |
## 謝辞
|
147 |
+
チーム:[Jon Durbin](https://huggingface.co/jondurbin)、[Leonard Lin](https://huggingface.co/leonardlin)
|
148 |
|
149 |
+
このモデルの計算は、[AKA Virtual](https://akavirtual.com/)(日本、東京)によって寛大に提供されました。
|
150 |
|
151 |
+
[ELYZA](https://huggingface.co/elyza)チームが公開した[トークン化器拡張アプローチ](https://zenn.dev/elyza/articles/2fd451c944649d)の詳細に感謝します。これは私たちのトークン化器の出発点として使用されました。
|
152 |
|
153 |
+
もちろん、[Mistral AI](https://huggingface.co/mistralai)による強力なベースモデルのリリースに感謝します!
|
llm-jp-eval.ja.png
ADDED
llm-jp-eval.mistral.png
ADDED