m3hrdadfi commited on
Commit
4462fcd
1 Parent(s): ba83a58

HP-tune and optimize the model for a better performance

Browse files
README.md CHANGED
@@ -26,7 +26,7 @@ model-index:
26
  metrics:
27
  - name: Test WER
28
  type: wer
29
- value: 53.96
30
 
31
  ---
32
 
@@ -47,6 +47,10 @@ The model can be used directly (without a language model) as follows:
47
  !pip install jiwer
48
  ```
49
 
 
 
 
 
50
 
51
  **Prediction**
52
  ```python
@@ -62,32 +66,7 @@ import string
62
 
63
  import IPython.display as ipd
64
 
65
- chars_to_ignore = [
66
- ",", "?", ".", "!", "-", ";", ":", '""', "%", "'", '"', "�",
67
- "#", "!", "?", "«", "»", "(", ")", "؛", ",", "?", ".", "!", "-", ";", ":", '"',
68
- "“", "%", "‘", "�", "–", "…", "_", "”", '“', '„'
69
- ]
70
- chars_to_mapping = {
71
- "\\u200c": " ", "\\u200d": " ", "\\u200e": " ", "\\u200f": " ", "\\ufeff": " ",
72
- }
73
-
74
- def multiple_replace(text, chars_to_mapping):
75
- pattern = "|".join(map(re.escape, chars_to_mapping.keys()))
76
- return re.sub(pattern, lambda m: chars_to_mapping[m.group()], str(text))
77
-
78
- def remove_special_characters(text, chars_to_ignore_regex):
79
- text = re.sub(chars_to_ignore_regex, '', text).lower() + " "
80
- return text
81
-
82
- def normalizer(batch, chars_to_ignore, chars_to_mapping):
83
- chars_to_ignore_regex = f"""[{"".join(chars_to_ignore)}]"""
84
- text = batch["sentence"].lower().strip()
85
-
86
- text = multiple_replace(text, chars_to_mapping)
87
- text = remove_special_characters(text, chars_to_ignore_regex)
88
-
89
- batch["sentence"] = text
90
- return batch
91
 
92
 
93
  def speech_file_to_array_fn(batch):
@@ -121,7 +100,7 @@ model = Wav2Vec2ForCTC.from_pretrained("m3hrdadfi/wav2vec2-large-xlsr-georgian")
121
  dataset = load_dataset("common_voice", "ka", split="test[:1%]")
122
  dataset = dataset.map(
123
  normalizer,
124
- fn_kwargs={"chars_to_ignore": chars_to_ignore, "chars_to_mapping": chars_to_mapping},
125
  remove_columns=list(set(dataset.column_names) - set(['sentence', 'path']))
126
  )
127
 
@@ -138,35 +117,65 @@ for i in max_items:
138
 
139
  **Output:**
140
  ```text
141
- reference: ადმინისტრაციული ცენტრი ქალაქი იმიშლი
142
- predicted: ადმინისტრაციული ცენტრი ქალაქი იმიშლი
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
143
  ---
144
- reference: დაიბადა ადვოკატის ოჯახში
145
- predicted: აიბადა ადმოკატის ოჯახში
146
  ---
147
- reference: აღსანიშნავია რომ სიმღერა წარმოადგენს პოლ მაკკარტნისა და ჯორჯ ჰარისონის იშვიათ ვოკალურ დუეტს
148
- predicted: აღსენიშნავიარო სიმღე რაწარმოადგემს ბოლ მაკარდნის და ჯორჩხარისონის იშვიად ვოკალურ დუეთს
149
  ---
150
- reference: იკრძალებოდა წირვალოცვა ქართულ ენაზე
151
- predicted: იკრძალებოდე წირვა ლოცვა ქართულ ენაზე
152
  ---
153
- reference: აღმართულია ვალესა და ბერნის კანტონების საზღვარზე
154
- predicted: აღმართულია ვალესა და ბერნის კანთონების საზღვარზე
155
  ---
156
- reference: აქ იგი მიიწვიეს სამხატვრო აკადემიაში სადაც სიცოცხლის ბოლომდე ეწეოდა პედაგოგიურ მოღვაწეობას
157
- predicted: აქ იგი მიისწრვიეს სამხატრო აკადემი აშისა და ციცაცხლის ბოლომდე ეწყებობ და პედაგუდივირ მოყვაწევებას
158
  ---
159
- reference: კლარისა თანხმდება შემოთავაზებაზე და ლექტერის დახმარებით სერიული მკვლელის კვალს დაადგება
160
- predicted: კლარის თან ხვდება შემუთავაზე ბაზე და ლექტერის დახმარებიც სერიური მკვლელის კველს დაადგებაა
161
  ---
162
- reference: იბრძოდა ტყვეებით ვაჭრობის წინააღმდეგ
163
- predicted: დიბრძოტო ტყვეებით ვაჭრობის წინააღდეგ
164
  ---
165
- reference: სათავსს აღმოსავლეთით და დასავლეთით თითო სარკმელი აქვს
166
- predicted: სათავს აღმოსაველეთი და დასავლეთ მთიდო სარკმელი აქვს
167
  ---
168
- reference: იგი მდებარეობს ქალაქის ჩრდილოაღმოსავლეთ ნაწილში
169
- predicted: იგი მდებარეობს ქალაქის ჩრდილო აღმოსავლეთ ნაწილში
 
 
 
 
 
 
 
 
 
170
  ---
171
  ```
172
 
@@ -186,33 +195,7 @@ import numpy as np
186
  import re
187
  import string
188
 
189
-
190
- chars_to_ignore = [
191
- ",", "?", ".", "!", "-", ";", ":", '""', "%", "'", '"', "�",
192
- "#", "!", "?", "«", "»", "(", ")", "؛", ",", "?", ".", "!", "-", ";", ":", '"',
193
- "“", "%", "‘", "�", "–", "…", "_", "”", '“', '„'
194
- ]
195
- chars_to_mapping = {
196
- "\\u200c": " ", "\\u200d": " ", "\\u200e": " ", "\\u200f": " ", "\\ufeff": " ",
197
- }
198
-
199
- def multiple_replace(text, chars_to_mapping):
200
- pattern = "|".join(map(re.escape, chars_to_mapping.keys()))
201
- return re.sub(pattern, lambda m: chars_to_mapping[m.group()], str(text))
202
-
203
- def remove_special_characters(text, chars_to_ignore_regex):
204
- text = re.sub(chars_to_ignore_regex, '', text).lower() + " "
205
- return text
206
-
207
- def normalizer(batch, chars_to_ignore, chars_to_mapping):
208
- chars_to_ignore_regex = f"""[{"".join(chars_to_ignore)}]"""
209
- text = batch["sentence"].lower().strip()
210
-
211
- text = multiple_replace(text, chars_to_mapping)
212
- text = remove_special_characters(text, chars_to_ignore_regex)
213
-
214
- batch["sentence"] = text
215
- return batch
216
 
217
 
218
  def speech_file_to_array_fn(batch):
@@ -246,7 +229,7 @@ model = Wav2Vec2ForCTC.from_pretrained("m3hrdadfi/wav2vec2-large-xlsr-georgian")
246
  dataset = load_dataset("common_voice", "ka", split="test")
247
  dataset = dataset.map(
248
  normalizer,
249
- fn_kwargs={"chars_to_ignore": chars_to_ignore, "chars_to_mapping": chars_to_mapping},
250
  remove_columns=list(set(dataset.column_names) - set(['sentence', 'path']))
251
  )
252
 
@@ -260,12 +243,15 @@ print("WER: {:.2f}".format(100 * wer.compute(predictions=result["predicted"], re
260
 
261
 
262
  **Test Result**:
263
- - WER: 53.96%
264
 
265
 
266
  ## Training & Report
267
  The Common Voice `train`, `validation` datasets were used for training.
268
 
269
- You can see the training states [here](https://wandb.ai/m3hrdadfi/finetuned_wav2vec_xlsr_georgian/reports/Fine-Tuning-for-Wav2Vec2-Large-XLSR-53-Georgian--Vmlldzo1NTg5MDQ?accessToken=rsmd0p83iln13yq23b9kzj8bim6nco21w8cqn2tb19v51okakqk92c71h6hbxmfj)
 
 
270
 
271
- The script used for training can be found [here](https://colab.research.google.com/github/m3hrdadfi/notebooks/blob/main/Fine_Tune_XLSR_Wav2Vec2_on_Georgian_ASR_with_%F0%9F%A4%97_Transformers_ipynb.ipynb)
 
26
  metrics:
27
  - name: Test WER
28
  type: wer
29
+ value: 43.86
30
 
31
  ---
32
 
47
  !pip install jiwer
48
  ```
49
 
50
+ **Normalizer**
51
+ ```bash
52
+ !wget -O normalizer.py https://huggingface.co/m3hrdadfi/wav2vec2-large-xlsr-lithuanian/raw/main/normalizer.py
53
+ ```
54
 
55
  **Prediction**
56
  ```python
66
 
67
  import IPython.display as ipd
68
 
69
+ from normalizer import normalizer
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
70
 
71
 
72
  def speech_file_to_array_fn(batch):
100
  dataset = load_dataset("common_voice", "ka", split="test[:1%]")
101
  dataset = dataset.map(
102
  normalizer,
103
+ fn_kwargs={"remove_extra_space": True},
104
  remove_columns=list(set(dataset.column_names) - set(['sentence', 'path']))
105
  )
106
 
117
 
118
  **Output:**
119
  ```text
120
+ reference: პრეზიდენტობისას ბუში საქართველოს და უკრაინის დემოკრატიულ მოძრაობების და ნატოში გაწევრიანების აქტიური მხარდამჭერი იყო
121
+ predicted: პრეზიდენტო ვისას ბუში საქართველოს და უკრაინის დემოკრატიულ მოძრაობების და ნატიში დაწევრიანების აქტიური მხარდამჭერი იყო
122
+ ---
123
+ reference: შესაძლებელია მისი დამონება და მსახურ დემონად გადაქცევა
124
+ predicted: შესაძლებელია მისი დამონებათ და მსახურდემანად გადაქცევა
125
+ ---
126
+ reference: ეს გამოსახულებები აღბეჭდილი იყო მოსკოვის დიდი მთავრებისა და მეფეების ბეჭდებზე
127
+ predicted: ეს გამოსახულებები აღბეჭდილი იყო მოსკოვის დიდი მთავრებისა და მეფეების ბეჭდებზე
128
+ ---
129
+ reference: ჯოლიმ ოქროს გლობუსისა და კინომსახიობთა გილდიის ნომინაციები მიიღო
130
+ predicted: ჯოლი მოქროს გლობუსისა და კინამსახიობთა გილდიის ნომინაციები მიიღო
131
+ ---
132
+ reference: შემდგომში საქალაქო ბიბლიოთეკა სარაიონო ბიბლიოთეკად გადაკეთდა გაიზარდა წიგნადი ფონდი
133
+ predicted: შემდღომში საქალაქო ბიბლიოთეკა სარაიონო ბიბლიოთეკად გადაკეთა გაიზარდა წიგნადი ფოვდი
134
+ ---
135
+ reference: აბრამსი დაუკავშირდა მირანდას და ორი თვის განმავლობაში ისინი მუშაობდნენ აღნიშნული სცენის თანმხლებ მელოდიაზე
136
+ predicted: აბრამში და უკავშირდა მირანდეს და ორითვის განმავლობაში ისინი მუშაობდნენა აღნიშნულის ჩენის მთამხლევით მელოდიაში
137
+ ---
138
+ reference: ამჟამად თემთა პალატის ოპოზიციის ლიდერია ლეიბორისტული პარტიის ლიდერი ჯერემი კორბინი
139
+ predicted: ამჟამად თემთა პალატის ოპოზიციის ლიდერია ლეიბურისტული პარტიის ლიდერი ჯერემი კორვინი
140
+ ---
141
+ reference: ორი
142
+ predicted: ორი
143
  ---
144
+ reference: მას შემდეგ იგი კოლექტივის მუდმივი წევრია
145
+ predicted: მას შემდეგ იგი კოლექტივის ფუდ მივი წევრია
146
  ---
147
+ reference: აზერბაიჯანულ ფილოსოფიას შეიძლება მივაკუთვნოთ რუსეთის საზოგადო მოღვაწე ჰეიდარ ჯემალი
148
+ predicted: აზერგვოიჯანალ ფილოსოფიას შეიძლება მივაკუთვნოთ რუსეთის საზოგადო მოღვაწე ჰეიდარ ჯემალი
149
  ---
150
+ reference: ბრონქსში ჯერომის ავენიუ ჰყოფს გამჭოლ ქუჩებს აღმოსავლეთ და დასავლეთ ნაწილებად
151
+ predicted: რონგში დერომიწ ავენილ პოფს გამ დოლფურქებს აღმოსავლეთ და დასავლეთ ნაწილებად
152
  ---
153
+ reference: ჰაერი არის ჟანგბადის ის ძირითადი წყარო რომელსაც საჭიროებს ყველა ცოცხალი ორგანიზმი
154
+ predicted: არი არის ჯამუბადესის ძირითადი წყარო რომელსაც საჭიროოებს ყველა ცოცხალი ორგანიზმი
155
  ---
156
+ reference: ჯგუფი უმეტესწილად ასრულებს პოპმუსიკის ჟანრის სიმღერებს
157
+ predicted: ჯგუფიუმეტესწევად ასრულებს პოპნუსიკის ჟანრის სიმრერებს
158
  ---
159
+ reference: ბაბილინა მუდმივად ცდილობდა შესაძლებლობების ფარგლებში მიეღო ცოდნა და ახალი ინფორმაცია
160
+ predicted: ბაბილინა მუდმივა ცდილობდა შესაძლებლობების ფარგლებში მიიღო ცოტნა და ახალი ინფორმაცია
161
  ---
162
+ reference: მრევლის რწმენით რომელი ჯგუფიც გაიმარჯვებდა მთელი წლის მანძილზე სიუხვე და ბარაქა არ მოაკლდებოდა
163
+ predicted: მრევრის რწმენით რომელიჯგუფის გაიმარჯვებდა მთელიჭლის მანძილზა სიუყვეტაბარაქა არ მოაკლდებოდა
164
  ---
165
+ reference: ნინო ჩხეიძეს განსაკუთრებული ღვაწლი მიუძღვის ქუთაისისა და რუსთაველის თეატრების შემოქმედებით ცხოვრებაში
166
+ predicted: მინო ჩხეიძეს განსაკუთრებული ღოვაწლი მიოცხვის ქუთაისისა და რუსთაველის თეატრების შემოქმედებით ცხოვრებაში
167
  ---
168
+ reference: იგი სამი დიალექტისგან შედგება
169
+ predicted: იგი სამი დიალეთის გან შედგება
170
+ ---
171
+ reference: ფორმით სირაქლემებს წააგვანან
172
+ predicted: ომიცი რაქლემებს ააგვანამ
173
+ ---
174
+ reference: დანი დაიბადა კოლუმბუსში ოჰაიოში
175
+ predicted: დონი დაიბაოდა კოლუმბუსში ოხვაიოში
176
+ ---
177
+ reference: მშენებლობისათვის გამოიყო ადგილი ყოფილი აეროპორტის რაიონში
178
+ predicted: შენებლობისათვის გამოიყო ადგილი ყოფილი აეროპორტის რაიონში
179
  ---
180
  ```
181
 
195
  import re
196
  import string
197
 
198
+ from normalizer import normalizer
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
199
 
200
 
201
  def speech_file_to_array_fn(batch):
229
  dataset = load_dataset("common_voice", "ka", split="test")
230
  dataset = dataset.map(
231
  normalizer,
232
+ fn_kwargs={"remove_extra_space": True},
233
  remove_columns=list(set(dataset.column_names) - set(['sentence', 'path']))
234
  )
235
 
243
 
244
 
245
  **Test Result**:
246
+ - WER: 43.86%
247
 
248
 
249
  ## Training & Report
250
  The Common Voice `train`, `validation` datasets were used for training.
251
 
252
+ You can see the training states [here](https://wandb.ai/m3hrdadfi/wav2vec2_large_xlsr_ka/reports/Fine-Tuning-for-Wav2Vec2-Large-XLSR-53-Georgian--Vmlldzo1OTQyMzk?accessToken=ytf7jseje66a3byuheh68o6a7215thjviscv5k2ewl5hgq9yqr50yxbko0bnf1d3)
253
+
254
+ The script used for training can be found [here](https://colab.research.google.com/github/m3hrdadfi/notebooks/blob/main/Fine_Tune_XLSR_Wav2Vec2_on_Georgian_ASR_with_%F0%9F%A4%97_Transformers_ipynb.ipynb)
255
 
256
+ ## Questions?
257
+ Post a Github issue on the [Wav2Vec](https://github.com/m3hrdadfi/wav2vec) repo.
all_results.json DELETED
@@ -1,24 +0,0 @@
1
- {
2
- "epoch": 30.0,
3
- "eval_loss": 0.4455166161060333,
4
- "eval_mem_cpu_alloc_delta": 52916700,
5
- "eval_mem_cpu_peaked_delta": 92345080,
6
- "eval_mem_gpu_alloc_delta": 0,
7
- "eval_mem_gpu_peaked_delta": 5249111040,
8
- "eval_runtime": 81.4513,
9
- "eval_samples": 654,
10
- "eval_samples_per_second": 8.029,
11
- "eval_wer": 0.5288702928870292,
12
- "init_mem_cpu_alloc_delta": 9478038,
13
- "init_mem_cpu_peaked_delta": 18306,
14
- "init_mem_gpu_alloc_delta": 1261911040,
15
- "init_mem_gpu_peaked_delta": 0,
16
- "total_flos": 8.556740517881789e+18,
17
- "train_mem_cpu_alloc_delta": 12260352,
18
- "train_mem_cpu_peaked_delta": 186508822,
19
- "train_mem_gpu_alloc_delta": 3794085376,
20
- "train_mem_gpu_peaked_delta": 6038033408,
21
- "train_runtime": 8781.3793,
22
- "train_samples": 1585,
23
- "train_samples_per_second": 0.109
24
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
config.json CHANGED
@@ -1,11 +1,11 @@
1
  {
2
  "_name_or_path": "facebook/wav2vec2-large-xlsr-53",
3
- "activation_dropout": 0.0,
4
  "apply_spec_augment": true,
5
  "architectures": [
6
  "Wav2Vec2ForCTC"
7
  ],
8
- "attention_dropout": 0.1,
9
  "bos_token_id": 1,
10
  "conv_bias": true,
11
  "conv_dim": [
@@ -42,16 +42,16 @@
42
  "feat_extract_activation": "gelu",
43
  "feat_extract_dropout": 0.0,
44
  "feat_extract_norm": "layer",
45
- "feat_proj_dropout": 0.0,
46
  "final_dropout": 0.0,
47
  "gradient_checkpointing": true,
48
  "hidden_act": "gelu",
49
- "hidden_dropout": 0.1,
50
  "hidden_size": 1024,
51
  "initializer_range": 0.02,
52
  "intermediate_size": 4096,
53
  "layer_norm_eps": 1e-05,
54
- "layerdrop": 0.1,
55
  "mask_channel_length": 10,
56
  "mask_channel_min_space": 1,
57
  "mask_channel_other": 0.0,
@@ -62,7 +62,7 @@
62
  "mask_time_length": 10,
63
  "mask_time_min_space": 1,
64
  "mask_time_other": 0.0,
65
- "mask_time_prob": 0.05,
66
  "mask_time_selection": "static",
67
  "model_type": "wav2vec2",
68
  "num_attention_heads": 16,
@@ -71,6 +71,6 @@
71
  "num_feat_extract_layers": 7,
72
  "num_hidden_layers": 24,
73
  "pad_token_id": 0,
74
- "transformers_version": "4.5.0.dev0",
75
  "vocab_size": 38
76
  }
1
  {
2
  "_name_or_path": "facebook/wav2vec2-large-xlsr-53",
3
+ "activation_dropout": 0.08247,
4
  "apply_spec_augment": true,
5
  "architectures": [
6
  "Wav2Vec2ForCTC"
7
  ],
8
+ "attention_dropout": 0.2744,
9
  "bos_token_id": 1,
10
  "conv_bias": true,
11
  "conv_dim": [
42
  "feat_extract_activation": "gelu",
43
  "feat_extract_dropout": 0.0,
44
  "feat_extract_norm": "layer",
45
+ "feat_proj_dropout": 0.138,
46
  "final_dropout": 0.0,
47
  "gradient_checkpointing": true,
48
  "hidden_act": "gelu",
49
+ "hidden_dropout": 0.023,
50
  "hidden_size": 1024,
51
  "initializer_range": 0.02,
52
  "intermediate_size": 4096,
53
  "layer_norm_eps": 1e-05,
54
+ "layerdrop": 0.01938,
55
  "mask_channel_length": 10,
56
  "mask_channel_min_space": 1,
57
  "mask_channel_other": 0.0,
62
  "mask_time_length": 10,
63
  "mask_time_min_space": 1,
64
  "mask_time_other": 0.0,
65
+ "mask_time_prob": 0.05897,
66
  "mask_time_selection": "static",
67
  "model_type": "wav2vec2",
68
  "num_attention_heads": 16,
71
  "num_feat_extract_layers": 7,
72
  "num_hidden_layers": 24,
73
  "pad_token_id": 0,
74
+ "transformers_version": "4.6.0.dev0",
75
  "vocab_size": 38
76
  }
eval_results.json DELETED
@@ -1,12 +0,0 @@
1
- {
2
- "epoch": 30.0,
3
- "eval_loss": 0.4455166161060333,
4
- "eval_mem_cpu_alloc_delta": 52916700,
5
- "eval_mem_cpu_peaked_delta": 92345080,
6
- "eval_mem_gpu_alloc_delta": 0,
7
- "eval_mem_gpu_peaked_delta": 5249111040,
8
- "eval_runtime": 81.4513,
9
- "eval_samples": 654,
10
- "eval_samples_per_second": 8.029,
11
- "eval_wer": 0.5288702928870292
12
- }
 
 
 
 
 
 
 
 
 
 
 
 
normalizer.py ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import re
2
+ import string
3
+
4
+
5
+ chars_to_ignore = [
6
+ ",", "?", ".", "!", "-", ";", ":", '""', "%", "'", '"', "�",
7
+ "#", "!", "؟", "?", "«", "»", "،", "(", ")", "؛", "'ٔ", "٬", 'ٔ', ",", "?",
8
+ ".", "!", "-", ";", ":", '"', "“", "%", "‘", "”", "�", "–", "…", "_", "”", '“', '„',
9
+ ]
10
+ chars_to_ignore = f"""[{"".join(chars_to_ignore)}]"""
11
+
12
+ dictionary_mapping = {
13
+ "\u200c": " ",
14
+ "\u200d": " ",
15
+ "\u200e": " ",
16
+ "\u200f": " ",
17
+ "\ufeff": " ",
18
+ "\u0307": " ",
19
+ }
20
+
21
+
22
+ def multiple_replace(text, chars_to_mapping):
23
+ pattern = "|".join(map(re.escape, chars_to_mapping.keys()))
24
+ return re.sub(pattern, lambda m: chars_to_mapping[m.group()], str(text))
25
+
26
+
27
+ def remove_special_characters(text, chars_to_ignore_regex):
28
+ text = re.sub(chars_to_ignore_regex, '', text).lower() + " "
29
+ return text
30
+
31
+
32
+ def normalizer_at_word_level(text):
33
+ words = text.split()
34
+ _text = []
35
+
36
+ for word in words:
37
+ # Normalizer at word level
38
+ _text.append(word)
39
+
40
+ return " ".join(_text) + " "
41
+
42
+ def normalizer(batch, return_dict=True, filter_trivials=False, remove_extra_space=False):
43
+ text = batch["sentence"].lower().strip()
44
+
45
+ # Dictionary mapping
46
+ text = multiple_replace(text, dictionary_mapping)
47
+ text = re.sub(" +", " ", text)
48
+
49
+ # Remove specials
50
+ text = remove_special_characters(text, chars_to_ignore)
51
+ text = re.sub(" +", " ", text)
52
+
53
+ # Normalizer at word level
54
+ text = normalizer_at_word_level(text)
55
+ text = re.sub(" +", " ", text)
56
+
57
+ if remove_extra_space:
58
+ text = text.strip()
59
+ else:
60
+ text = text.strip() + " "
61
+
62
+ if filter_trivials:
63
+ if not len(text) > 2:
64
+ text = None
65
+
66
+ if not return_dict:
67
+ return text
68
+
69
+ batch["sentence"] = text
70
+ return batch
predictions.csv CHANGED
The diff for this file is too large to render. See raw diff
preprocessor_config.json CHANGED
@@ -1,5 +1,6 @@
1
  {
2
  "do_normalize": true,
 
3
  "feature_size": 1,
4
  "padding_side": "right",
5
  "padding_value": 0.0,
1
  {
2
  "do_normalize": true,
3
+ "feature_extractor_type": "Wav2Vec2FeatureExtractor",
4
  "feature_size": 1,
5
  "padding_side": "right",
6
  "padding_value": 0.0,
pytorch_model.bin CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:7c0938b613c1c3fe1abd582f27dfec45efeef27402c30a8bc0de2408aef51c21
3
  size 1262089623
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f66ce10de79208bae9af02ca5236203be628ad2f37ceb4141bf9de3388fd6fd8
3
  size 1262089623
result.bin DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:1c42bc8fa4f5eca7ff0ab10d3692e0b33144189969b2b23f107e68c3f4e47803
3
- size 3183
 
 
 
train_results.json DELETED
@@ -1,15 +0,0 @@
1
- {
2
- "epoch": 30.0,
3
- "init_mem_cpu_alloc_delta": 9478038,
4
- "init_mem_cpu_peaked_delta": 18306,
5
- "init_mem_gpu_alloc_delta": 1261911040,
6
- "init_mem_gpu_peaked_delta": 0,
7
- "total_flos": 8.556740517881789e+18,
8
- "train_mem_cpu_alloc_delta": 12260352,
9
- "train_mem_cpu_peaked_delta": 186508822,
10
- "train_mem_gpu_alloc_delta": 3794085376,
11
- "train_mem_gpu_peaked_delta": 6038033408,
12
- "train_runtime": 8781.3793,
13
- "train_samples": 1585,
14
- "train_samples_per_second": 0.109
15
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
trainer_state.json CHANGED
@@ -1,297 +1,177 @@
1
  {
2
  "best_metric": null,
3
  "best_model_checkpoint": null,
4
- "epoch": 30.0,
5
- "global_step": 960,
6
  "is_hyper_param_search": false,
7
  "is_local_process_zero": true,
8
  "is_world_process_zero": true,
9
  "log_history": [
10
  {
11
- "epoch": 1.56,
12
- "learning_rate": 7.5e-05,
13
- "loss": 13.0978,
14
- "step": 50
15
- },
16
- {
17
- "epoch": 1.56,
18
- "eval_loss": 13.780136108398438,
19
- "eval_runtime": 82.8799,
20
- "eval_samples_per_second": 7.891,
21
- "eval_wer": 1.0,
22
- "step": 50
23
- },
24
- {
25
- "epoch": 3.12,
26
- "learning_rate": 0.00015,
27
- "loss": 7.3093,
28
- "step": 100
29
- },
30
- {
31
- "epoch": 3.12,
32
- "eval_loss": 3.198237419128418,
33
- "eval_runtime": 81.5893,
34
- "eval_samples_per_second": 8.016,
35
- "eval_wer": 1.0,
36
- "step": 100
37
- },
38
- {
39
- "epoch": 4.69,
40
- "learning_rate": 0.000225,
41
- "loss": 3.0745,
42
- "step": 150
43
- },
44
- {
45
- "epoch": 4.69,
46
- "eval_loss": 3.1082892417907715,
47
- "eval_runtime": 82.4037,
48
- "eval_samples_per_second": 7.937,
49
- "eval_wer": 1.0,
50
- "step": 150
51
- },
52
- {
53
- "epoch": 6.25,
54
- "learning_rate": 0.0003,
55
- "loss": 3.0551,
56
- "step": 200
57
- },
58
- {
59
- "epoch": 6.25,
60
- "eval_loss": 3.0994772911071777,
61
- "eval_runtime": 82.7226,
62
- "eval_samples_per_second": 7.906,
63
- "eval_wer": 1.0,
64
- "step": 200
65
- },
66
- {
67
- "epoch": 7.81,
68
- "learning_rate": 0.00028026315789473683,
69
- "loss": 3.0632,
70
- "step": 250
71
- },
72
- {
73
- "epoch": 7.81,
74
- "eval_loss": 3.0916755199432373,
75
- "eval_runtime": 83.5323,
76
- "eval_samples_per_second": 7.829,
77
- "eval_wer": 1.0,
78
- "step": 250
79
- },
80
- {
81
- "epoch": 9.38,
82
- "learning_rate": 0.0002605263157894737,
83
- "loss": 3.0391,
84
  "step": 300
85
  },
86
  {
87
- "epoch": 9.38,
88
- "eval_loss": 3.0707435607910156,
89
- "eval_runtime": 82.7328,
90
- "eval_samples_per_second": 7.905,
91
  "eval_wer": 1.0,
92
  "step": 300
93
  },
94
  {
95
- "epoch": 10.94,
96
- "learning_rate": 0.00024078947368421052,
97
- "loss": 3.0321,
98
- "step": 350
99
- },
100
- {
101
- "epoch": 10.94,
102
- "eval_loss": 3.0443670749664307,
103
- "eval_runtime": 84.1437,
104
- "eval_samples_per_second": 7.772,
105
- "eval_wer": 1.0,
106
- "step": 350
107
- },
108
- {
109
- "epoch": 12.5,
110
- "learning_rate": 0.00022105263157894733,
111
- "loss": 3.0069,
112
- "step": 400
113
- },
114
- {
115
- "epoch": 12.5,
116
- "eval_loss": 2.998474359512329,
117
- "eval_runtime": 83.9178,
118
- "eval_samples_per_second": 7.793,
119
- "eval_wer": 1.0,
120
- "step": 400
121
- },
122
- {
123
- "epoch": 14.06,
124
- "learning_rate": 0.0002013157894736842,
125
- "loss": 2.9623,
126
- "step": 450
127
  },
128
  {
129
- "epoch": 14.06,
130
- "eval_loss": 2.866849184036255,
131
- "eval_runtime": 82.5906,
132
- "eval_samples_per_second": 7.919,
133
  "eval_wer": 1.0,
134
- "step": 450
135
- },
136
- {
137
- "epoch": 15.62,
138
- "learning_rate": 0.00018157894736842105,
139
- "loss": 2.4771,
140
- "step": 500
141
- },
142
- {
143
- "epoch": 15.62,
144
- "eval_loss": 1.5367902517318726,
145
- "eval_runtime": 85.6456,
146
- "eval_samples_per_second": 7.636,
147
- "eval_wer": 0.9838912133891213,
148
- "step": 500
149
- },
150
- {
151
- "epoch": 17.19,
152
- "learning_rate": 0.00016184210526315788,
153
- "loss": 1.0561,
154
- "step": 550
155
  },
156
  {
157
- "epoch": 17.19,
158
- "eval_loss": 0.6924143433570862,
159
- "eval_runtime": 85.1658,
160
- "eval_samples_per_second": 7.679,
161
- "eval_wer": 0.7548117154811715,
162
- "step": 550
163
  },
164
  {
165
- "epoch": 18.75,
166
- "learning_rate": 0.0001421052631578947,
167
- "loss": 0.5288,
168
- "step": 600
 
 
169
  },
170
  {
171
- "epoch": 18.75,
172
- "eval_loss": 0.5334728956222534,
173
- "eval_runtime": 83.737,
174
- "eval_samples_per_second": 7.81,
175
- "eval_wer": 0.6569037656903766,
176
- "step": 600
177
  },
178
  {
179
- "epoch": 20.31,
180
- "learning_rate": 0.00012236842105263157,
181
- "loss": 0.3581,
182
- "step": 650
 
 
183
  },
184
  {
185
- "epoch": 20.31,
186
- "eval_loss": 0.48591092228889465,
187
- "eval_runtime": 86.2479,
188
- "eval_samples_per_second": 7.583,
189
- "eval_wer": 0.605857740585774,
190
- "step": 650
191
  },
192
  {
193
- "epoch": 21.88,
194
- "learning_rate": 0.00010263157894736841,
195
- "loss": 0.2638,
196
- "step": 700
 
 
197
  },
198
  {
199
- "epoch": 21.88,
200
- "eval_loss": 0.4631027579307556,
201
- "eval_runtime": 84.0825,
202
- "eval_samples_per_second": 7.778,
203
- "eval_wer": 0.5648535564853556,
204
- "step": 700
205
  },
206
  {
207
- "epoch": 23.44,
208
- "learning_rate": 8.289473684210526e-05,
209
- "loss": 0.2284,
210
- "step": 750
 
 
211
  },
212
  {
213
- "epoch": 23.44,
214
- "eval_loss": 0.4597685933113098,
215
- "eval_runtime": 86.122,
216
- "eval_samples_per_second": 7.594,
217
- "eval_wer": 0.5594142259414226,
218
- "step": 750
219
  },
220
  {
221
- "epoch": 25.0,
222
- "learning_rate": 6.315789473684209e-05,
223
- "loss": 0.1965,
224
- "step": 800
 
 
225
  },
226
  {
227
- "epoch": 25.0,
228
- "eval_loss": 0.4614764153957367,
229
- "eval_runtime": 86.0272,
230
- "eval_samples_per_second": 7.602,
231
- "eval_wer": 0.5535564853556485,
232
- "step": 800
233
  },
234
  {
235
- "epoch": 26.56,
236
- "learning_rate": 4.342105263157895e-05,
237
- "loss": 0.1837,
238
- "step": 850
 
 
239
  },
240
  {
241
- "epoch": 26.56,
242
- "eval_loss": 0.4499300718307495,
243
- "eval_runtime": 89.3292,
244
- "eval_samples_per_second": 7.321,
245
- "eval_wer": 0.5349372384937239,
246
- "step": 850
247
  },
248
  {
249
- "epoch": 28.12,
250
- "learning_rate": 2.3684210526315787e-05,
251
- "loss": 0.187,
252
- "step": 900
 
 
253
  },
254
  {
255
- "epoch": 28.12,
256
- "eval_loss": 0.45425695180892944,
257
- "eval_runtime": 85.6275,
258
- "eval_samples_per_second": 7.638,
259
- "eval_wer": 0.5345188284518828,
260
- "step": 900
261
  },
262
  {
263
- "epoch": 29.69,
264
- "learning_rate": 3.947368421052631e-06,
265
- "loss": 0.1568,
266
- "step": 950
 
 
267
  },
268
  {
269
- "epoch": 29.69,
270
- "eval_loss": 0.4458238184452057,
271
- "eval_runtime": 84.9753,
272
- "eval_samples_per_second": 7.696,
273
- "eval_wer": 0.5290794979079498,
274
- "step": 950
275
  },
276
  {
277
- "epoch": 30.0,
278
- "step": 960,
279
- "total_flos": 8.556740517881789e+18,
280
- "train_runtime": 8781.3793,
281
- "train_samples_per_second": 0.109
 
282
  },
283
  {
284
- "epoch": 30.0,
285
- "eval_loss": 0.4455166161060333,
286
- "eval_runtime": 81.4513,
287
- "eval_samples_per_second": 8.029,
288
- "eval_wer": 0.5288702928870292,
289
- "step": 960
290
  }
291
  ],
292
- "max_steps": 960,
293
- "num_train_epochs": 30,
294
- "total_flos": 8.556740517881789e+18,
295
  "trial_name": null,
296
  "trial_params": null
297
  }
1
  {
2
  "best_metric": null,
3
  "best_model_checkpoint": null,
4
+ "epoch": 59.991596638655466,
5
+ "global_step": 3540,
6
  "is_hyper_param_search": false,
7
  "is_local_process_zero": true,
8
  "is_world_process_zero": true,
9
  "log_history": [
10
  {
11
+ "epoch": 5.08,
12
+ "learning_rate": 0.0003546,
13
+ "loss": 6.338,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  "step": 300
15
  },
16
  {
17
+ "epoch": 5.08,
18
+ "eval_loss": 3.1361563205718994,
19
+ "eval_runtime": 51.9297,
20
+ "eval_samples_per_second": 12.632,
21
  "eval_wer": 1.0,
22
  "step": 300
23
  },
24
  {
25
+ "epoch": 10.17,
26
+ "learning_rate": 0.0005715592105263158,
27
+ "loss": 3.1258,
28
+ "step": 600
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  },
30
  {
31
+ "epoch": 10.17,
32
+ "eval_loss": 3.0660765171051025,
33
+ "eval_runtime": 50.6635,
34
+ "eval_samples_per_second": 12.948,
35
  "eval_wer": 1.0,
36
+ "step": 600
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  },
38
  {
39
+ "epoch": 15.25,
40
+ "learning_rate": 0.0005132368421052633,
41
+ "loss": 1.4079,
42
+ "step": 900
 
 
43
  },
44
  {
45
+ "epoch": 15.25,
46
+ "eval_loss": 0.5029116272926331,
47
+ "eval_runtime": 51.4993,
48
+ "eval_samples_per_second": 12.738,
49
+ "eval_wer": 0.6116052520118593,
50
+ "step": 900
51
  },
52
  {
53
+ "epoch": 20.34,
54
+ "learning_rate": 0.00045491447368421056,
55
+ "loss": 0.1446,
56
+ "step": 1200
 
 
57
  },
58
  {
59
+ "epoch": 20.34,
60
+ "eval_loss": 0.5113032460212708,
61
+ "eval_runtime": 51.276,
62
+ "eval_samples_per_second": 12.794,
63
+ "eval_wer": 0.5307073274036426,
64
+ "step": 1200
65
  },
66
  {
67
+ "epoch": 25.42,
68
+ "learning_rate": 0.0003965921052631579,
69
+ "loss": 0.0714,
70
+ "step": 1500
 
 
71
  },
72
  {
73
+ "epoch": 25.42,
74
+ "eval_loss": 0.5406283140182495,
75
+ "eval_runtime": 51.4595,
76
+ "eval_samples_per_second": 12.748,
77
+ "eval_wer": 0.5006353240152478,
78
+ "step": 1500
79
  },
80
  {
81
+ "epoch": 30.5,
82
+ "learning_rate": 0.00033826973684210527,
83
+ "loss": 0.0459,
84
+ "step": 1800
 
 
85
  },
86
  {
87
+ "epoch": 30.5,
88
+ "eval_loss": 0.5775919556617737,
89
+ "eval_runtime": 51.4074,
90
+ "eval_samples_per_second": 12.761,
91
+ "eval_wer": 0.49767047861075814,
92
+ "step": 1800
93
  },
94
  {
95
+ "epoch": 35.59,
96
+ "learning_rate": 0.0002799473684210526,
97
+ "loss": 0.0372,
98
+ "step": 2100
 
 
99
  },
100
  {
101
+ "epoch": 35.59,
102
+ "eval_loss": 0.5846429467201233,
103
+ "eval_runtime": 51.8427,
104
+ "eval_samples_per_second": 12.654,
105
+ "eval_wer": 0.4805167301990682,
106
+ "step": 2100
107
  },
108
  {
109
+ "epoch": 40.67,
110
+ "learning_rate": 0.00022162500000000003,
111
+ "loss": 0.0297,
112
+ "step": 2400
 
 
113
  },
114
  {
115
+ "epoch": 40.67,
116
+ "eval_loss": 0.5748910903930664,
117
+ "eval_runtime": 51.453,
118
+ "eval_samples_per_second": 12.75,
119
+ "eval_wer": 0.4841168996188056,
120
+ "step": 2400
121
  },
122
  {
123
+ "epoch": 45.76,
124
+ "learning_rate": 0.0001633026315789474,
125
+ "loss": 0.0254,
126
+ "step": 2700
 
 
127
  },
128
  {
129
+ "epoch": 45.76,
130
+ "eval_loss": 0.592321515083313,
131
+ "eval_runtime": 51.3943,
132
+ "eval_samples_per_second": 12.764,
133
+ "eval_wer": 0.4614570097416349,
134
+ "step": 2700
135
  },
136
  {
137
+ "epoch": 50.84,
138
+ "learning_rate": 0.00010498026315789474,
139
+ "loss": 0.0198,
140
+ "step": 3000
 
 
141
  },
142
  {
143
+ "epoch": 50.84,
144
+ "eval_loss": 0.5621945261955261,
145
+ "eval_runtime": 51.5882,
146
+ "eval_samples_per_second": 12.716,
147
+ "eval_wer": 0.4404913172384583,
148
+ "step": 3000
149
  },
150
  {
151
+ "epoch": 55.92,
152
+ "learning_rate": 4.665789473684211e-05,
153
+ "loss": 0.0193,
154
+ "step": 3300
 
 
155
  },
156
  {
157
+ "epoch": 55.92,
158
+ "eval_loss": 0.5657602548599243,
159
+ "eval_runtime": 71.8217,
160
+ "eval_samples_per_second": 9.134,
161
+ "eval_wer": 0.4470563320626853,
162
+ "step": 3300
163
  },
164
  {
165
+ "epoch": 59.99,
166
+ "step": 3540,
167
+ "total_flos": 3.4970554953107223e+19,
168
+ "train_runtime": 23737.912,
169
+ "train_samples_per_second": 0.149
 
170
  }
171
  ],
172
+ "max_steps": 3540,
173
+ "num_train_epochs": 60,
174
+ "total_flos": 3.4970554953107223e+19,
175
  "trial_name": null,
176
  "trial_params": null
177
  }
training_args.bin CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:b09499473860372d1a5755c32562e264aa7cbc7d9f4c4491ed862c399a413bb7
3
- size 2351
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4f065e737230c868e6e56300bb71bf5cfa9b8a6454b4c59dcdba32b156a0a13c
3
+ size 2415