|
--- |
|
license: apache-2.0 |
|
tags: |
|
- whisper-event |
|
- generated_from_trainer |
|
datasets: |
|
- google/fleurs |
|
metrics: |
|
- wer |
|
model-index: |
|
- name: Whisper Small Amharic FLEURS |
|
results: |
|
- task: |
|
name: Automatic Speech Recognition |
|
type: automatic-speech-recognition |
|
dataset: |
|
name: google/fleurs am_et |
|
type: google/fleurs |
|
config: am_et |
|
split: validation |
|
args: am_et |
|
metrics: |
|
- name: Wer |
|
type: wer |
|
value: 103.08219178082192 |
|
--- |
|
|
|
<!-- This model card has been generated automatically according to the information the Trainer had access to. You |
|
should probably proofread and complete it, then remove this comment. --> |
|
|
|
# Whisper Small Amharic FLEURS |
|
|
|
This model is a fine-tuned version of [openai/whisper-small](https://huggingface.co/openai/whisper-small) on the google/fleurs am_et dataset. |
|
It achieves the following results on the evaluation set: |
|
- Loss: 6.8839 |
|
- Wer: 103.0822 |
|
|
|
## Model description |
|
|
|
- The main Whisper Small Hugging Face page: [Hugging Face - Whisper Small](https://huggingface.co/openai/whisper-small) |
|
|
|
## Intended uses & limitations |
|
|
|
- For experimentation and curiosity. |
|
- Based on the paper [AXRIV](https://arxiv.org/abs/2212.04356) and [Benchmarking OpenAI Whisper for non-English ASR - Dan Shafer](https://blog.deepgram.com/benchmarking-openai-whisper-for-non-english-asr/), there is a performance bias towards certain languages and curated datasets. |
|
- From the Whisper paper, am_et is a low resource language (Table E), with the WER results ranging from 120-229, based on model size. Whisper small WER=120.2, indicating more training time may improve the fine tuning. |
|
|
|
## Training and evaluation data |
|
|
|
- This model was trained/evaluated on data from google/fleurs [google/fluers - HuggingFace Datasets](https://huggingface.co/datasets/google/fleurs). |
|
|
|
## Training procedure |
|
|
|
- The training was done in Lambda Cloud GPU on A100/40GB GPUs, which were provided by OpenAI Community Events [Whisper Fine Tuning Event - Dec 2022](https://github.com/huggingface/community-events/tree/main/whisper-fine-tuning-event#fine-tune-whisper). The training was done using [HuggingFace Community Events - Whisper - run_speech_recognition_seq2seq_streaming.py](https://github.com/huggingface/community-events/blob/main/whisper-fine-tuning-event/run_speech_recognition_seq2seq_streaming.py) using the included [whisper_python_am_et.ipynb](https://huggingface.co/drmeeseeks/whisper-small-am_et/blob/main/am_et_fine_tune_whisper_streaming_colab_RUNNING-evalerrir.ipynb) to setup the Lambda Cloud GPU/Colab environment. For Colab, you must reduce the train batch size to the recommended amount mentioned at , as the T4 GPUs have 16GB of memory [Whisper Fine Tuning Event - Dec 2022](https://github.com/huggingface/community-events/tree/main/whisper-fine-tuning-event#fine-tune-whisper). The notebook sets up the environment, logs into your huggingface account, and generates a bash script. The bash script generated in the IPYNB, `run.sh` was run from the terminal to train `bash run.sh`, as described on the Whisper community events GITHUB page. |
|
|
|
### Training hyperparameters |
|
|
|
The following hyperparameters were used during training: |
|
- learning_rate: 1e-05 |
|
- train_batch_size: 64 |
|
- eval_batch_size: 32 |
|
- seed: 42 |
|
- optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08 |
|
- lr_scheduler_type: linear |
|
- lr_scheduler_warmup_steps: 500 |
|
- training_steps: 2000 |
|
- mixed_precision_training: Native AMP |
|
|
|
### Training results |
|
|
|
| Training Loss | Epoch | Step | Validation Loss | Wer | |
|
|:-------------:|:------:|:----:|:---------------:|:--------:| |
|
| 0.9013 | 100.0 | 100 | 2.7090 | 171.5753 | |
|
| 0.0002 | 200.0 | 200 | 3.7303 | 298.6301 | |
|
| 0.0001 | 300.0 | 300 | 3.8287 | 239.3836 | |
|
| 0.0001 | 400.0 | 400 | 3.8877 | 234.9315 | |
|
| 0.0001 | 500.0 | 500 | 4.0561 | 316.4384 | |
|
| 0.0001 | 600.0 | 600 | 4.2706 | 189.0411 | |
|
| 0.0 | 700.0 | 700 | 4.4524 | 229.4521 | |
|
| 0.0 | 800.0 | 800 | 4.6250 | 308.5616 | |
|
| 0.0 | 900.0 | 900 | 4.7844 | 429.4521 | |
|
| 0.0405 | 1000.0 | 1000 | 4.6182 | 206.8493 | |
|
| 0.0002 | 1100.0 | 1100 | 5.5423 | 159.9315 | |
|
| 0.0002 | 1200.0 | 1200 | 6.0517 | 151.7123 | |
|
| 0.0002 | 1300.0 | 1300 | 6.3493 | 154.7945 | |
|
| 0.0002 | 1400.0 | 1400 | 6.5431 | 138.6986 | |
|
| 0.0002 | 1500.0 | 1500 | 6.6699 | 158.5616 | |
|
| 0.0001 | 1600.0 | 1600 | 6.7591 | 160.2740 | |
|
| 0.0001 | 1700.0 | 1700 | 6.8209 | 103.0822 | |
|
| 0.0001 | 1800.0 | 1800 | 6.8562 | 103.0822 | |
|
| 0.0001 | 1900.0 | 1900 | 6.8758 | 103.0822 | |
|
| 0.0001 | 2000.0 | 2000 | 6.8839 | 103.0822 | |
|
|
|
### Recommendations |
|
|
|
Limit training duration for smaller datasets to ~ 2000 to 3000 steps to avoid overfitting. 5000 steps using the [HuggingFace - Whisper Small](https://huggingface.co/openai/whisper-small) takes ~ 5hrs on A100 GPUs (1hr/1000 steps). Encountered `RuntimeError: The size of tensor a (504) must match the size of tensor b (448) at non-singleton dimension 1` which is related to [Trainer RuntimeError](https://discuss.huggingface.co/t/trainer-runtimeerror-the-size-of-tensor-a-462-must-match-the-size-of-tensor-b-448-at-non-singleton-dimension-1/26010) as some languages datasets have input lengths that have non-standard lengths. The link did not resolve my issue, and appears elsewhere too [Training languagemodel – RuntimeError the expanded size of the tensor (100) must match the existing size (64) at non singleton dimension 1](https://hungsblog.de/en/technology/troubleshooting/training-languagemodel-runtimeerror-the-expanded-size-of-the-tensor-100-must-match-the-existing-size-64-at-non-singleton-dimension-1/). To circumvent this issue, `run.sh` paremeters are adjusted. Then run `python run_eval_whisper_streaming.py --model_id="openai/whisper-small" --dataset="google/fleurs" --config="am_et" --batch_size=32 --max_eval_samples=64 --device=0 --language="am"` to find the WER score manually. Otherwise, erroring out during evaluation prevents the trained model from loading to HugginFace. Based on the paper [AXRIV](https://arxiv.org/abs/2212.04356) and [Benchmarking OpenAI Whisper for non-English ASR - Dan Shafer](https://blog.deepgram.com/benchmarking-openai-whisper-for-non-english-asr/), there is a performance bias towards certain languages and curated datasets. The OpenAI fintuning community event provided ample _free_ GPU time to help develop the model further and improve WER scores. |
|
|
|
### Environmental Impact |
|
|
|
Carbon emissions were estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700). In total roughly 100 hours were used primarily in US East/Asia Pacific (80%/20%), with AWS as the reference. Additional resources are available at [Our World in Data - CO2 Emissions](https://ourworldindata.org/co2-emissions) |
|
|
|
- __Hardware Type__: AMD EPYC 7J13 64-Core Processor (30 core VM) 197GB RAM, with NVIDIA A100-SXM 40GB |
|
- __Hours Used__: 100 hrs |
|
- __Cloud Provider__: Lambda Cloud GPU |
|
- __Compute Region__: US East/Asia Pacific |
|
- __Carbon Emitted__: 12 kg (GPU) + 13 kg (CPU) = 25 kg (the weight of 3 gallons of water) |
|
|
|
### Framework versions |
|
|
|
- Transformers 4.26.0.dev0 |
|
- Pytorch 1.13.1+cu117 |
|
- Datasets 2.8.1.dev0 |
|
- Tokenizers 0.13.2 |
|
|
|
### Citation |
|
|
|
- [Whisper - GITHUB](https://github.com/openai/whisper) |
|
- [Whisper - OpenAI - BLOG](https://openai.com/blog/whisper/) |
|
- [Model Card - HuggingFace Hub - GITHUB](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/templates/modelcard_template.md) |
|
|
|
```bibtex |
|
@misc{https://doi.org/10.48550/arxiv.2212.04356, |
|
doi = {10.48550/ARXIV.2212.04356}, |
|
url = {https://arxiv.org/abs/2212.04356}, |
|
author = {Radford, Alec and Kim, Jong Wook and Xu, Tao and Brockman, Greg and McLeavey, Christine and Sutskever, Ilya}, |
|
keywords = {Audio and Speech Processing (eess.AS), Computation and Language (cs.CL), Machine Learning (cs.LG), Sound (cs.SD), FOS: Electrical engineering, electronic engineering, information engineering, FOS: Electrical engineering, electronic engineering, information engineering, FOS: Computer and information sciences, FOS: Computer and information sciences}, |
|
title = {Robust Speech Recognition via Large-Scale Weak Supervision}, |
|
publisher = {arXiv}, |
|
year = {2022}, |
|
copyright = {arXiv.org perpetual, non-exclusive license} |
|
} |
|
|
|
@article{owidco2andothergreenhousegasemissions, |
|
author = {Hannah Ritchie and Max Roser and Pablo Rosado}, |
|
title = {CO₂ and Greenhouse Gas Emissions}, |
|
journal = {Our World in Data}, |
|
year = {2020}, |
|
note = {https://ourworldindata.org/co2-and-other-greenhouse-gas-emissions} |
|
} |
|
|
|
``` |
|
|