Views
No views yet
fsicoli/common_voice_22_0 (config: ky)test split):WER (normalized): 16.2061WER_ortho (orthographic): 19.1491test_loss: 0.1722WER: 16.1677WER_ortho: 19.6021r=8, lora_alpha=16, lora_dropout=0.1q_proj, v_projmax_steps=4000checkpoint-4000 (WER=16.21)| Step | Train loss | Val loss | WER_ortho | WER |
|---|---|---|---|---|
| 500 | 0.7980 | 0.7911 | 44.3501 | 42.0754 |
| 1000 | 0.3980 | 0.2043 | 28.9947 | 27.8551 |
| 1500 | 0.1712 | 0.1821 | 20.7479 | 17.7343 |
| 2000 | 0.1734 | 0.1770 | 20.7569 | 17.6977 |
| 2500 | 0.1935 | 0.1743 | 19.7995 | 16.8192 |
| 3000 | 0.3406 | 0.1728 | 19.8988 | 16.9656 |
| 3500 | 0.3192 | 0.1724 | 19.3840 | 16.4074 |
| 4000 | 0.1499 | 0.1722 | 19.1491 | 16.2061 |
pip install -U "transformers" "peft" "accelerate" "torch"1import torch
2from peft import PeftModel, PeftConfig
3from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor, pipeline
4
5adapter_id = "AleksTv/whisper-medium-ky-lora"
6
7peft_cfg = PeftConfig.from_pretrained(adapter_id)
8base_id = peft_cfg.base_model_name_or_path # nineninesix/kyrgyz-whisper-medium
9
10device = 0 if torch.cuda.is_available() else -1
11dtype = torch.float16 if torch.cuda.is_available() else torch.float32
12
13base_model = AutoModelForSpeechSeq2Seq.from_pretrained(
14 base_id,
15 torch_dtype=dtype,
16 device_map="auto" if torch.cuda.is_available() else None,
17 low_cpu_mem_usage=True,
18 use_safetensors=True,
19)
20
21model = PeftModel.from_pretrained(base_model, adapter_id)
22
23# The base model uses custom tokenizer components for Kyrgyz support.
24processor = AutoProcessor.from_pretrained(base_id, trust_remote_code=True)
25
26asr = pipeline(
27 "automatic-speech-recognition",
28 model=model,
29 tokenizer=processor.tokenizer,
30 feature_extractor=processor.feature_extractor,
31 device=device,
32)
33
34print(asr("path/to/audio.wav")["text"])1import torch
2from peft import PeftModel, PeftConfig
3from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor
4
5adapter_id = "AleksTv/whisper-medium-ky-lora"
6
7peft_cfg = PeftConfig.from_pretrained(adapter_id)
8base_id = peft_cfg.base_model_name_or_path
9
10dtype = torch.float16 if torch.cuda.is_available() else torch.float32
11
12base_model = AutoModelForSpeechSeq2Seq.from_pretrained(
13 base_id,
14 torch_dtype=dtype,
15 low_cpu_mem_usage=True,
16 use_safetensors=True,
17)
18
19model = PeftModel.from_pretrained(base_model, adapter_id)
20merged = model.merge_and_unload()
21
22out_dir = "whisper-medium-ky-merged"
23merged.save_pretrained(out_dir, safe_serialization=True)
24AutoProcessor.from_pretrained(base_id, trust_remote_code=True).save_pretrained(out_dir)