訓練方法與前處理細節詢問

#1
by sam-ezai - opened

你好,

我嘗試過幾次透過 HuggingFace 提供的訓練腳本硬勸,或是簡單的移除 CommonVoice 台羅標記並加空格,勸一段時間後 WER 或是 CER 都收斂不起來,在 80% 左右游移。
發現你的模型在前期的 CER 表現就很不錯,想請問是如何訓練的?比如說是否有調整過 Tokenizer,超參數或有其他可以注意的地方?

謝謝

你好,

感謝您使用此模型,但也先說聲抱歉,正確率方面當時因為趕著做實驗,沒有仔細處理 CommonVoice 的台羅標記,所以輸出時仍會有台羅標記,去除掉台羅拼音的 cer 大約為 45% 。
此 model 所訓練的程式碼為之前的 whisper Fine-Tuning Event 所提供的 run_speech_recognition_seq2seq_streaming.py , 已經上傳至檔案區了,請參考。

你好,我有試著用 run.sh 在 train/eval batch_size=8, no gradient_accum 的情況下跑了一次,雖然效果比我之前勸的好很多,但去除台羅的 CER 大概只有 79%,離你的結果還有點差距XD
感謝你的程式碼,我再試著勸看看。

另外看到你的 norm_text 函式部分有寫一些全形標點過濾,順手提供一下我認為蠻全面的方案。

# https://github.com/speechio/chinese_text_normalization/blob/master/python/cn_tn.py#L67
import string
CN_PUNCS_STOP = '!?。。'
CN_PUNCS_NONSTOP = '"#$%&'()*+,-/:;<=>@[\]^_`{|}~⦅⦆「」、、〃《》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰〾〿–—‘’‛“”„‟…‧﹏·〈〉-'
CN_PUNCS = CN_PUNCS_STOP + CN_PUNCS_NONSTOP

PUNCS = CN_PUNCS + string.punctuation
PUNCS_TRANSFORM = str.maketrans(PUNCS, ' ' * len(PUNCS), '') # replace

感謝你的建議,之後有時間我會將你的建議參考進我的程式碼內

Sign up or log in to comment