深探無監(jiān)督預(yù)訓(xùn)練技術(shù)落地 火山語音“算法優(yōu)化+工程革新”兩手抓
核心思想在于用量化模塊將輸入特征離散化
一直以來,火山語音團(tuán)隊(duì)都為時(shí)下風(fēng)靡的視頻平臺(tái)提供基于語音識(shí)別技術(shù)的智能視頻字幕解決方案,簡(jiǎn)單來說就是可以自動(dòng)將視頻中的語音和歌詞轉(zhuǎn)化成文字,來輔助視頻創(chuàng)作的功能。但伴隨平臺(tái)用戶的快速增長(zhǎng)以及對(duì)語言種類更加豐富多樣的要求,傳統(tǒng)采用有監(jiān)督學(xué)習(xí)技術(shù)來解決的辦法日漸遭遇瓶頸,這讓團(tuán)隊(duì)著實(shí)犯了難。
眾所周知,傳統(tǒng)的有監(jiān)督學(xué)習(xí)會(huì)對(duì)人工標(biāo)注的有監(jiān)督數(shù)據(jù)產(chǎn)生嚴(yán)重依賴,尤其在大語種的持續(xù)優(yōu)化以及小語種的冷啟動(dòng)方面。以中文普通話和英語這樣的大語種為例,盡管視頻平臺(tái)提供了充足的業(yè)務(wù)場(chǎng)景語音數(shù)據(jù),但有監(jiān)督數(shù)據(jù)達(dá)到一定規(guī)模之后,繼續(xù)標(biāo)注的ROI將非常低,必然需要技術(shù)人員考慮如何有效利用百萬小時(shí)級(jí)別的無標(biāo)注數(shù)據(jù),來進(jìn)一步改善大語種語音識(shí)別的效果。
相對(duì)小眾的語言或者方言,由于資源、人力等原因,數(shù)據(jù)的標(biāo)注成本高昂。在標(biāo)注數(shù)據(jù)極少的情況下(10小時(shí)量級(jí)),有監(jiān)督訓(xùn)練的效果非常差,甚至可能無法正常收斂;而采購的數(shù)據(jù)往往和目標(biāo)場(chǎng)景不匹配,無法滿足業(yè)務(wù)的需要。
為此火山語音團(tuán)隊(duì)迫切需要研究如何以盡可能低廉的標(biāo)注成本充分利用大量的無標(biāo)注數(shù)據(jù),提升少量標(biāo)注數(shù)據(jù)下的識(shí)別效果并落地到實(shí)際業(yè)務(wù)中,所以無監(jiān)督預(yù)訓(xùn)練技術(shù)成為視頻平臺(tái)ASR(Automatic Speech Recognition / 自動(dòng)語音識(shí)別)能力向小語種推廣的關(guān)鍵。
盡管近年來學(xué)術(shù)界在語音無監(jiān)督預(yù)訓(xùn)練領(lǐng)域取得了許多重大進(jìn)展,包括Wav2vec2.0 [1]、HuBERT [2]等,但在工業(yè)界卻鮮有落地案例可以參考借鑒。整體來看,火山語音團(tuán)隊(duì)認(rèn)為,以下三方面主要原因,阻礙了無監(jiān)督預(yù)訓(xùn)練技術(shù)的落地:
- 1. 模型參數(shù)量大、推理開銷大。大量無標(biāo)注數(shù)據(jù)需要用較大的模型做無監(jiān)督預(yù)訓(xùn)練,才能得到高質(zhì)量的語音表征,但這樣的模型如果直接部署到線上,會(huì)帶來高昂的推理成本。
- 2. 無監(jiān)督預(yù)訓(xùn)練只關(guān)注語音表征的學(xué)習(xí),需要結(jié)合大量純文本訓(xùn)練的語言模型聯(lián)合解碼才能達(dá)到理想效果,和端到端ASR推理引擎不兼容。
- 3. 無監(jiān)督預(yù)訓(xùn)練開銷大、周期長(zhǎng)且不穩(wěn)定。以Wav2vec2.0為例,300M參數(shù)量的模型用64張V100 GPU預(yù)訓(xùn)練60萬步,耗時(shí)長(zhǎng)達(dá)半個(gè)月;此外由于數(shù)據(jù)分布的差異,在業(yè)務(wù)數(shù)據(jù)上訓(xùn)練容易發(fā)散。
對(duì)此火山語音團(tuán)隊(duì)在基于無監(jiān)督預(yù)訓(xùn)練的語音識(shí)別技術(shù)落地過程中,針對(duì)以上三大痛點(diǎn)進(jìn)行了算法改進(jìn)和工程優(yōu)化,形成一套完整易推廣的落地方案。本文將針對(duì)方案,從落地流程、算法優(yōu)化以及工程優(yōu)化等環(huán)節(jié)展開詳盡介紹。
落地流程
下圖是基于無監(jiān)督預(yù)訓(xùn)練的低資源語種ASR的落地流程,大致可以劃分為數(shù)據(jù)收集、種子模型訓(xùn)練和模型遷移三個(gè)階段。
圖1 基于無監(jiān)督預(yù)訓(xùn)練的ASR落地流程
具體來說,第一階段的數(shù)據(jù)收集,可以通過語種分流、采購等手段收集目標(biāo)語言的無標(biāo)注語音、標(biāo)注語音和純文本數(shù)據(jù)。
第二階段的種子模型訓(xùn)練,也就是經(jīng)典的“無監(jiān)督預(yù)訓(xùn)練+有監(jiān)督微調(diào)”過程。這一階段將得到一個(gè)聲學(xué)模型,通?;谶B接時(shí)序分類(Connectionist Temporal Classification, CTC [3])損失函數(shù)微調(diào)。聲學(xué)模型結(jié)合純文本訓(xùn)練的語言模型,構(gòu)成一個(gè)完整的語音識(shí)別系統(tǒng),可以取得不錯(cuò)的識(shí)別效果。之所以稱之為種子模型,是因?yàn)檫@個(gè)模型并不適合直接上線到業(yè)務(wù),我們更傾向于使用LAS(Listen, Attend and Spell [4])或RNN-T(Recurrent Neural Network Transducer [5])這類端到端模型進(jìn)行線上部署。
歸其原因,主要是LAS/RNN-T具有出色的端到端建模能力,同時(shí)在近年來已經(jīng)取得了優(yōu)于傳統(tǒng)CTC模型的效果,并在工業(yè)界得到越來越多的應(yīng)用?;鹕秸Z音團(tuán)隊(duì)針對(duì)端到端語音識(shí)別模型的推理和部署做了大量?jī)?yōu)化工作,已形成一套相對(duì)成熟的方案,并支持眾多業(yè)務(wù)。在維持效果無損的前提下,如果可以沿用端到端推理引擎,就能大幅降低引擎的運(yùn)維成本。
基于此團(tuán)隊(duì)設(shè)計(jì)了第三階段,即模型遷移階段。主要借鑒知識(shí)蒸餾的思想,用種子模型對(duì)無標(biāo)注數(shù)據(jù)打偽標(biāo)簽,然后提供一個(gè)參數(shù)量較小的LAS模型做訓(xùn)練,同步實(shí)現(xiàn)了模型結(jié)構(gòu)的遷移和推理計(jì)算量的壓縮。整個(gè)流程的有效性在粵語ASR上得到驗(yàn)證,具體實(shí)驗(yàn)結(jié)果如下表所示:
首先,團(tuán)隊(duì)采購了1kh成品數(shù)據(jù)用于實(shí)驗(yàn)對(duì)比,直接訓(xùn)練LAS模型性能不佳,字錯(cuò)率(Character Error Rate, CER)高達(dá)44.2%。經(jīng)過分析,火山語音認(rèn)為主要原因是采購數(shù)據(jù)(對(duì)話)和業(yè)務(wù)測(cè)試集(視頻)領(lǐng)域不匹配,在wav2vec2.0上的初步實(shí)驗(yàn)也發(fā)現(xiàn)了類似的現(xiàn)象。
相比用采購數(shù)據(jù)做預(yù)訓(xùn)練,采用和目標(biāo)領(lǐng)域一致的數(shù)據(jù)做預(yù)訓(xùn)練,在業(yè)務(wù)測(cè)試集上的CER可以從42.0%下降到29.4%,于是團(tuán)隊(duì)將業(yè)務(wù)場(chǎng)景的無標(biāo)注數(shù)據(jù)積累到50kh,模型參數(shù)量從100M增加到300M,CER進(jìn)一步下降到23.1%。
最后團(tuán)隊(duì)驗(yàn)證了模型遷移的效果,結(jié)合粵語語言模型對(duì)50kh無標(biāo)注數(shù)據(jù)解碼得到偽標(biāo)簽,訓(xùn)練LAS模型??梢钥吹?,基于偽標(biāo)簽訓(xùn)練的LAS模型基本可以保持CTC種子模型的識(shí)別效果且模型參數(shù)量減少了三分之一,可以直接基于成熟的端到端推理引擎部署上線。
圖2 模型參數(shù)量和CER對(duì)比
最終在模型結(jié)構(gòu)和參數(shù)量不變的前提下,團(tuán)隊(duì)用50kh無標(biāo)注業(yè)務(wù)數(shù)據(jù)和10h有標(biāo)注業(yè)務(wù)數(shù)據(jù)取得了23.0%的CER,相對(duì)基線模型下降48%。解決了線上計(jì)算量和兼容性的問題之后,聚焦到整個(gè)流程中最為核心的無監(jiān)督預(yù)訓(xùn)練技術(shù),針對(duì)wav2vec2.0,火山語音團(tuán)隊(duì)分別從算法和工程兩個(gè)維度進(jìn)行了優(yōu)化。
算法優(yōu)化
wav2vec2.0作為Meta AI在2020年提出來的自監(jiān)督預(yù)訓(xùn)練模型,開啟了語音無監(jiān)督表征學(xué)習(xí)的新篇章。其核心思想在于用量化模塊將輸入特征離散化,并通過對(duì)比學(xué)習(xí)優(yōu)化,模型主體與BERT類似,隨機(jī)mask部分輸入特征。