PEFT
Safetensors
Uyghur
whisper
asr
uyghur
lo-ra

مودىل ھەققىدە

#1
by birtal - opened

ئالدى بىلەن بۇ ئەجرىڭىز ئۈچۈن كۆپ رەھمەت
whisper-small
دىكى مودىل چۈشۈرۈشتە مودىل تولۇق يوللانماي قالدىمۇ قانداق؟
ئادەتتە
whisper-small
دىكى مودىل چوڭلۇقى 960 مىگادىن چوڭراق چىقاتتى

مودېل چوڭلۇقى ھەققىدە چۈشەندۈرۈش

بۇ مودېلنىڭ كىچىك بولۇشىدىكى سەۋەب، ئۇ بىر LoRA (Adapter) مودېلى. ئۇ Whisper-Small نىڭ تولۇق پارامېتىرلىرىنى ئۆز ئىچىگە ئالمايدۇ، پەقەت ئۇيغۇرچە ئۈچۈن مەشىق قىلىنغان قوشۇمچە قەۋەتنىلا ئۆز ئىچىگە ئالىدۇ.

  • تولۇق مودېل ئەمەس: بۇ پەقەت ئەسلى مودېلغا قوشۇمچە قىلىنىدىغان «ئاداپتېر».
  • ئىشلىتىش ئۇسۇلى: ئىشلەتكەندە PeftModel ئارقىلىق ئەسلى مودېل بىلەن بىرلەشتۈرۈپ ئىشلىتىلىدۇ.

。شۇڭا ھۆججەت تولۇق يوللانمىغان.

«whisper-small-uyghur-merged» قىسقۇچىدىكى مودېل بىرىكتۈرۈلگەن تولۇق مودېلدۇر . سىز بۇ قىسقۇچتىكى مودېلنى بىۋاسىتە ئىشلىتەلەيسىز.

بۇ كود LoRA مودېنى ئەسلى مودېلغا تولۇق سىڭدۈرۈپ (Merge)، بىرلا پۈتۈن مودېل قىلىپ ساقلايدۇ.

from transformers import WhisperForConditionalGeneration, WhisperProcessor
from peft import PeftModel
import torch

# 1. مودېل ئادرېسلىرىنى بېكىتىش
base_model_name = "openai/whisper-small"
lora_model_id = "Rekipjan/whisper-small-uyghur" # سىزنىڭ Hugging Face ئامبىرىڭىز
save_path = "./whisper-small-uyghur-merged"     # ساقلىنىدىغان جاي

print("مودېل يۈكلىنىۋاتىدۇ...")

# 2. ئەسلى مودېلنى يۈكلەش
base_model = WhisperForConditionalGeneration.from_pretrained(
    base_model_name, 
    device_map="auto", 
    torch_dtype=torch.float16
)

# 3. LoRA ئاداپتېرىنى يۈكلەش
model = PeftModel.from_pretrained(base_model, lora_model_id)

# 4. ئېغىرلىقلارنى بىر گەۋدىلەشتۈرۈش (Merge and Unload)
# بۇ قەدەم LoRA قەۋەتلىرىنى ئەسلى مودېلغا «ھەزىم» قىلدۇرىدۇ
print("ئېغىرلىقلار بىرلەشتۈرۈلۈۋاتىدۇ (Merging)...")
merged_model = model.merge_and_unload()

# 5. بىرلەشتۈرۈلگەن مودېلنى ساقلاش
print(f"بىرلەشتۈرۈلگەن مودېل ساقلىنىۋاتىدۇ: {save_path}")
merged_model.save_pretrained(save_path, safe_serialization=True)

# 6. بىر تەرەپ قىلغۇچنى (Processor) ساقلاش
# بۇ قەدەمنى قىلمىغاندا مودېل يالغۇز ئىشلىيەلمەيدۇ
processor = WhisperProcessor.from_pretrained(base_model_name)
processor.save_pretrained(save_path)

print(f"مۇۋەپپەقىيەتلىك تاماملاندى! مودېل {save_path} غا ساقلاندى.")
print("ئەمدى سىز پەقەت مۇشۇ قىسقۇچنىلا يۈكلەپ ئىشلەتسىڭىز بولىدۇ.")

ئىشلىتىشكە قولايلىق بولسۇن ئۈچۈن، مەن تولۇق مودېلنى GGML مودېل شەكلىگە (whisper.cpp) ئايلاندۇرۇپ بولدۇم. سىز تۆۋەندىكى قوراللارنىڭ بىرىنى تاللاپ، ggml--small-model.bin ياكى ggml-base-model.bin مودېلىنى چۈشۈرۈپ ئىشلەتسىڭىز بولىدۇ:
https://github.com/gtppoplp/WhisperDesktop
https://github.com/thewh1teagle/vibe
مودېلنى ئەكىرگەندىن كېيىن بىۋاسىتە ئىشلەتكىلى بولىدۇ.

Sign up or log in to comment