orgilj commited on
Commit
97b96d8
·
verified ·
1 Parent(s): d31ead0

Upload Mongolian Moonshine ASR (WER 11.88 pct)

Browse files
config.json ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "MoonshineForConditionalGeneration"
4
+ ],
5
+ "attention_bias": false,
6
+ "attention_dropout": 0.0,
7
+ "bos_token_id": 1,
8
+ "decoder_hidden_act": "silu",
9
+ "decoder_num_attention_heads": 8,
10
+ "decoder_num_hidden_layers": 8,
11
+ "decoder_num_key_value_heads": 8,
12
+ "decoder_start_token_id": 1,
13
+ "dtype": "float32",
14
+ "encoder_hidden_act": "gelu",
15
+ "encoder_num_attention_heads": 8,
16
+ "encoder_num_hidden_layers": 8,
17
+ "encoder_num_key_value_heads": 8,
18
+ "eos_token_id": 2,
19
+ "hidden_size": 416,
20
+ "initializer_range": 0.02,
21
+ "intermediate_size": 1664,
22
+ "is_encoder_decoder": true,
23
+ "max_position_embeddings": 194,
24
+ "model_type": "moonshine",
25
+ "pad_head_dim_to_multiple_of": 8,
26
+ "pad_token_id": 2,
27
+ "partial_rotary_factor": 0.62,
28
+ "rope_parameters": {
29
+ "partial_rotary_factor": 0.62,
30
+ "rope_theta": 10000.0,
31
+ "rope_type": "default"
32
+ },
33
+ "tie_word_embeddings": true,
34
+ "transformers_version": "5.12.1",
35
+ "use_cache": false,
36
+ "vocab_size": 2003
37
+ }
generation_config.json ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_from_model_config": true,
3
+ "bos_token_id": 1,
4
+ "decoder_start_token_id": 1,
5
+ "do_sample": false,
6
+ "early_stopping": true,
7
+ "eos_token_id": [
8
+ 2
9
+ ],
10
+ "length_penalty": 1.2,
11
+ "max_length": 194,
12
+ "no_repeat_ngram_size": 2,
13
+ "num_beams": 5,
14
+ "pad_token_id": 2,
15
+ "repetition_penalty": 1.2,
16
+ "transformers_version": "5.12.1"
17
+ }
mn_bpe.model ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a23510d1ccd07f7219758f14f32eca9b542e9af6c7c03f6e16c25d898dac4107
3
+ size 37637
mn_tokenizer.py ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ MnBPETokenizer - HuggingFace PreTrainedTokenizer for the Mongolian BPE model.
3
+
4
+ Special token layout (matches training in mn_tokenizer_patch.py):
5
+ id 0 -> <pad>
6
+ id 1 -> <s> BOS
7
+ id 2 -> </s> EOS / PAD
8
+ id 3+ -> BPE pieces (offset = 3)
9
+ """
10
+ import os, shutil
11
+ from typing import Dict, List, Optional, Tuple
12
+ import sentencepiece as spm
13
+ from transformers import PreTrainedTokenizer
14
+
15
+ VOCAB_FILES_NAMES = {"vocab_file": "mn_bpe.model"}
16
+ _SPECIAL = {0: "<pad>", 1: "<s>", 2: "</s>"}
17
+ _OFFSET = 3
18
+
19
+
20
+ class MnBPETokenizer(PreTrainedTokenizer):
21
+ vocab_files_names = VOCAB_FILES_NAMES
22
+ model_input_names = ["input_ids", "attention_mask"]
23
+
24
+ def __init__(self, vocab_file, bos_token="<s>", eos_token="</s>",
25
+ unk_token="<unk>", pad_token="</s>",
26
+ sp_model_kwargs=None, **kwargs):
27
+ self.sp_model_kwargs = sp_model_kwargs or {}
28
+ self.sp_model = spm.SentencePieceProcessor(**self.sp_model_kwargs)
29
+ self.sp_model.Load(vocab_file)
30
+ self.vocab_file = vocab_file
31
+ super().__init__(bos_token=bos_token, eos_token=eos_token,
32
+ unk_token=unk_token, pad_token=pad_token,
33
+ sp_model_kwargs=sp_model_kwargs, **kwargs)
34
+
35
+ @property
36
+ def vocab_size(self):
37
+ return self.sp_model.get_piece_size() + _OFFSET
38
+
39
+ def get_vocab(self):
40
+ v = {self.convert_ids_to_tokens(i): i for i in range(self.vocab_size)}
41
+ v.update(self.added_tokens_encoder)
42
+ return v
43
+
44
+ def _tokenize(self, text):
45
+ return self.sp_model.encode(text, out_type=str)
46
+
47
+ def _convert_token_to_id(self, token):
48
+ rev = {v: k for k, v in _SPECIAL.items()}
49
+ if token in rev:
50
+ return rev[token]
51
+ return self.sp_model.piece_to_id(token) + _OFFSET
52
+
53
+ def _convert_id_to_token(self, index):
54
+ if index in _SPECIAL:
55
+ return _SPECIAL[index]
56
+ return self.sp_model.id_to_piece(index - _OFFSET)
57
+
58
+ def convert_tokens_to_string(self, tokens):
59
+ return self.sp_model.decode(tokens)
60
+
61
+ def save_vocabulary(self, save_directory, filename_prefix=None):
62
+ if not os.path.isdir(save_directory):
63
+ return ()
64
+ fname = VOCAB_FILES_NAMES["vocab_file"]
65
+ if filename_prefix:
66
+ fname = f"{filename_prefix}-{fname}"
67
+ out = os.path.join(save_directory, fname)
68
+ if os.path.abspath(self.vocab_file) != os.path.abspath(out):
69
+ shutil.copyfile(self.vocab_file, out)
70
+ return (out,)
71
+
72
+ def decode_ids(self, ids, skip_special=True):
73
+ """Decode token ids to text, matching training decode logic."""
74
+ pieces = []
75
+ for i in ids:
76
+ i = int(i)
77
+ if i == self.eos_token_id:
78
+ break
79
+ if skip_special and i < _OFFSET:
80
+ continue
81
+ pieces.append(i - _OFFSET)
82
+ return self.sp_model.decode(pieces) if pieces else ""
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8e7aa75168859df3714a3d0de883deca658e1545062d1268c95e25ae43656f1b
3
+ size 194886848
preprocessor_config.json ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "do_normalize": false,
3
+ "feature_extractor_type": "Wav2Vec2FeatureExtractor",
4
+ "feature_size": 1,
5
+ "padding_side": "right",
6
+ "padding_value": 0.0,
7
+ "return_attention_mask": true,
8
+ "sampling_rate": 16000
9
+ }
tokenizer_config.json ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "added_tokens_decoder": {
3
+ "1": {
4
+ "content": "<s>",
5
+ "lstrip": false,
6
+ "normalized": false,
7
+ "rstrip": false,
8
+ "single_word": false,
9
+ "special": true
10
+ },
11
+ "2": {
12
+ "content": "</s>",
13
+ "lstrip": false,
14
+ "normalized": false,
15
+ "rstrip": false,
16
+ "single_word": false,
17
+ "special": true
18
+ },
19
+ "4": {
20
+ "content": "<unk>",
21
+ "lstrip": false,
22
+ "normalized": false,
23
+ "rstrip": false,
24
+ "single_word": false,
25
+ "special": true
26
+ }
27
+ },
28
+ "backend": "custom",
29
+ "bos_token": "<s>",
30
+ "eos_token": "</s>",
31
+ "model_max_length": 1000000000000000019884624838656,
32
+ "pad_token": "</s>",
33
+ "sp_model_kwargs": {},
34
+ "tokenizer_class": "MnBPETokenizer",
35
+ "unk_token": "<unk>"
36
+ }