華為多模態(tài)同傳翻譯的落地及優(yōu)化
一、同傳翻譯技術(shù)背景以及面臨的一些挑戰(zhàn)
同傳翻譯任務(wù)是要把源方向的音頻翻譯成目標(biāo)方向的文本。該技術(shù)主要有兩個應(yīng)用場景:離線語音翻譯場景和同傳翻譯場景。這兩個場景最大的區(qū)別在于信息量。
場景 | 區(qū)別描述 |
同傳翻譯 | 實時互動,所以只能獲取到當(dāng)前音頻流,不能有效獲取全量上下文的信息 |
語音翻譯 | 已經(jīng)獲取整個音視頻的全文的信息 |
語音翻譯/同傳翻譯領(lǐng)域主要有兩種技術(shù)路線:端到端的技術(shù)方案和級聯(lián)的技術(shù)方案。學(xué)術(shù)界多以端到端的系統(tǒng)為研究方向。端到端的技術(shù)方案是直接從源語音到目標(biāo)的文本生成。端到端的語音翻譯模型訓(xùn)練依賴二元數(shù)據(jù)組集 <源端音頻,目標(biāo)端文本>,但這樣的數(shù)據(jù)對只有萬級別的數(shù)據(jù)量,不支持在工業(yè)界完整地落地。所以工業(yè)界的語音翻譯系統(tǒng)還是以級聯(lián)的這種技術(shù)方案為主。級聯(lián)的技術(shù)方案包含兩個模塊ASR和MT。ASR把源端的音頻先識別為源端的文本,然后MT把它變成目標(biāo)端的文本。
級聯(lián)的方案依賴三元數(shù)據(jù)組集<源端音頻,源端文本,目標(biāo)端文本>。源端音頻到源端文本用到ASR模塊,而源端文本到目標(biāo)端文本用到翻譯模塊。這兩個模塊的數(shù)據(jù)量是很大的。另外,在真實場景中,還有很多的單語文本數(shù)據(jù)/無標(biāo)簽音頻做MT/ASR的增強(qiáng)訓(xùn)練以提升質(zhì)量。
1、ASR技術(shù)
ASR的模型結(jié)構(gòu)可以分成音頻特征抽取和文本生成兩個模塊。
音頻特征抽取模塊主流的提取方式為Transformer和Conformer。Conformer是在Transformer基礎(chǔ)上進(jìn)行改進(jìn),加入了CNN模塊。
文本生成模塊最經(jīng)典的生成方式是CTC。CTC將音頻特征輸入,一次性解碼所有文本。第二種生成方式是AED,即token by token的自回歸式生成,直到生成一個結(jié)束符號。
根據(jù)場景劃分,ASR可以分成離線解碼和流式解碼兩種。其中,流式解碼是學(xué)術(shù)界的研究熱點,并且通常會假定一種沒有字符跳變的理想情況。目前,有三種技術(shù)方向。第一個方案是Transducer系列,如RNN-T,Transformer-T等。第二個方案對Attention模塊引入Chunk-wise的改造。在提取音頻特征時,讓后面的和前面的信息在不同的chunk之間進(jìn)行隔斷,讓前面chunk的特征信息不依賴于后面chunk信息,從而保證在一個chunk內(nèi)解出來信息不會發(fā)生跳變。近期比較熱門的研究是incremental decoding的方案。這種方案采用離線模型流式化改造的解碼策略,因此不需要改變模型或者專門訓(xùn)練一個流式的模型。
2、MT技術(shù)
MT領(lǐng)域目前以Transformer模型為主。Transformer是一個標(biāo)準(zhǔn)的解碼器-編碼器的結(jié)構(gòu)。在工程上,有兩個特別有效的策略可以進(jìn)行模型加速或質(zhì)量提升。第一個策略是加深模型維度,Deep Transformer。眾所周知,模型的參數(shù)量越大,效果和質(zhì)量越好。但是大模型的弊端在于計算量特別大。為了解決這個難點,東北大學(xué)-小牛翻譯團(tuán)隊提出Deep Transformer結(jié)構(gòu)。通過Layer Norm前置的方式保證可以穩(wěn)定的疊加模型深度,最終提升質(zhì)量。從標(biāo)準(zhǔn)的6*6模型,可以加深到35層或者更多層。因為Transformer是并行式的解碼,所以在保證模型的寬度時,只加深網(wǎng)絡(luò)的深度不會帶來特別多額外的計算量。第二個策略是一種數(shù)據(jù)增強(qiáng)的方案,Back Translation。翻譯技術(shù)依賴于對齊的原文本和目標(biāo)文本數(shù)據(jù),但是對齊的數(shù)據(jù)是稀缺的。而另一方面,一些大語種比如英文,能從網(wǎng)上找到上千萬的單語數(shù)據(jù)。那通過一個反向的翻譯模型把單語構(gòu)造成一個偽平行語料,然后結(jié)合原始真實平行語料進(jìn)行訓(xùn)練。這樣能明顯提高翻譯質(zhì)量。
機(jī)器翻譯最近的研究方向是解碼策略。Transformer是自回歸式(Autoregressive,AR)解碼策略。而非自回歸式(Non-Autoregressive, NAR)的解碼策略可以提高解碼速度,一次性生成結(jié)果。非自回歸生成在機(jī)器翻譯的作用,類似于CTC在語音翻譯的作用。非自回歸式的生成的不足之處是沒有上下文的依賴,一些比較熱的研究方向是通過迭代式生成或者使用AR模型當(dāng)teacher模型進(jìn)行蒸餾來提升它的質(zhì)量。
我們團(tuán)隊在這方面也有一些進(jìn)展。
第一個是HI-CMLM模型,對CMLM的改進(jìn),通過迭代式生成目標(biāo)文本。
第二個是Diformer模型。這個模型是AR和NAR策略的大一統(tǒng),將解碼方向通過direction embedding融合到decoder中,從而可以任意方向解碼。
3、語音翻譯或者同傳技術(shù)里面所遇到的挑戰(zhàn)
系統(tǒng)的難點跟每一個單點技術(shù)的難點息息相關(guān)。
單點技術(shù)挑戰(zhàn)
ASR準(zhǔn)確性是工業(yè)界和學(xué)術(shù)界一直在解決的問題。另外一個問題是MT領(lǐng)域風(fēng)格。翻譯軟件在開放的領(lǐng)域數(shù)據(jù)集上的訓(xùn)練涉及到領(lǐng)域遷移的問題。比如技術(shù)論壇會議有一些特別的翻譯的風(fēng)格和一些特殊詞匯。這個通用模型差異需要領(lǐng)域風(fēng)格的遷移。
系統(tǒng)的挑戰(zhàn)
第一個是級聯(lián)錯誤放大問題。轉(zhuǎn)錄結(jié)果的錯誤從源端的文本傳到下游任務(wù),可能會引起誤差放大。
第二個問題是上下文一致性的問題。前段時間和后段時間出現(xiàn)同樣詞時,期望ASR和翻譯的結(jié)果是一致的。ASR的一致性的問題通常會歸到long-form transcript方向。在MT領(lǐng)域,一般是把它歸為document-level 方向。
同傳技術(shù)挑戰(zhàn)
同傳場景因為其對實時性的特定要求又有額外的技術(shù)挑戰(zhàn)。
首先翻譯質(zhì)量越高,對上下文的信息要求越多,延遲會越高。但是同傳場景對實時性要求又很高。所以同傳策略考慮質(zhì)量和實時性的平衡問題。
第二個是跳變的過程。從用戶體驗的角度,先解碼的結(jié)果有一些錯誤,可以通過re-transcript / re-translation 來修正,但是如果有大量修正,用戶體驗會很差。
二、同傳的這個項目架構(gòu)的設(shè)計和策略
我們的同傳架構(gòu)有兩個大的分支:語音流到語音流(speech to speech)和語音到文本(speech to text)。兩個比較核心的模塊是ASR服務(wù)和MT服務(wù),除此之外還有TE(Text Editor)基于文本編輯服務(wù)和干預(yù)服務(wù),使結(jié)果更加魯棒。
經(jīng)常面臨的問題是領(lǐng)域的ASR模型訓(xùn)練。比如某個會議或論壇的場景涉及到領(lǐng)域的模型,但是領(lǐng)域模型的數(shù)據(jù)是有限的,有限的數(shù)據(jù)其實很難有比較好的結(jié)果。一個解決方案是大數(shù)據(jù)集下做預(yù)訓(xùn)練然后遷移到這個領(lǐng)域的數(shù)據(jù)。有兩個技術(shù)方向預(yù)訓(xùn)練大模型和領(lǐng)域的小模型。
1、預(yù)訓(xùn)練大模型
例如做一個多語言模型大模型訓(xùn)練時,把中文的數(shù)據(jù)和英文的數(shù)據(jù)混在一塊,解決多語言之間的問題并且也能提高模型泛化能力。
訓(xùn)練策略是基于一個MindSpore深度學(xué)習(xí)訓(xùn)練框架,和D芯片等AI芯片的分布式的訓(xùn)練,因為存儲和計算特別耗算力。
訓(xùn)練架構(gòu)選擇混合式結(jié)構(gòu)。既支持CTC的解碼也支持auto decoder解碼,針對不同的下游任務(wù)有多元的選擇。另一個是自監(jiān)督訓(xùn)練架構(gòu)。進(jìn)行下游訓(xùn)練有一些策略。
2、領(lǐng)域小模型
訓(xùn)練策略是Fine-tune或Continue Training,進(jìn)行增量的訓(xùn)練。如果直接進(jìn)行增量訓(xùn)練,可能會出現(xiàn)過擬合情況而且訓(xùn)練的成本比較高。可以采用Domain Adapter的訓(xùn)練方式,把模型參數(shù)凍住然后訓(xùn)練少量層的參數(shù)。也可以使用Lora,通過矩陣分解訓(xùn)練兩個比較小的參數(shù),得到比較好的結(jié)果。只訓(xùn)練少量參數(shù)是在實踐中驗證過比較有效的方案。另一個策略就是Spec Augmentation,在頻譜是增強(qiáng)樣本的方式。這種增強(qiáng)方式在小數(shù)據(jù)領(lǐng)域遷移上面,經(jīng)工程驗證是非常有效的。因為它可以起到正則化的作用,提高整個模型的魯棒性。
流式的場景例如同傳場景存在過程態(tài)和終態(tài)的概念。
過程態(tài)或者流式解碼在工程落地的時候采用CTC解碼策略。因為流式場景特性需要快速的解碼結(jié)果,所以采用一次性解碼方式。
終態(tài)使用AED的解碼方式,因為它有上下文的依賴性,生成文本結(jié)果更加流暢。采用兩種不同的解碼方會引入文本結(jié)果不一致的問題,又叫做跳變問題。在工程里比較有效的解決方法是使用蒸餾數(shù)據(jù)進(jìn)行偽標(biāo)簽訓(xùn)練。
對一大批無標(biāo)簽的音頻數(shù)據(jù),先用離線的解碼方式生成偽標(biāo)簽,然后基于這批偽數(shù)據(jù)對去訓(xùn)練流式模型,讓流式解碼擬合解碼結(jié)果。這個蒸餾的方式已經(jīng)被驗證特別有效。
有效的ASR策略:
Ensemble-based ASR De-noise
領(lǐng)域遷移的問題涉及到各種各樣領(lǐng)域的數(shù)據(jù),但是最終目標(biāo)領(lǐng)域或測試評價集是某一個領(lǐng)域,所以存在訓(xùn)練數(shù)據(jù)和驗證集或者真實落地場景數(shù)據(jù)的領(lǐng)域差異問題。在公開演講的場景,一些掌聲或者笑聲在里面,這些被定位空白音或者靜音片段。這些片段在標(biāo)準(zhǔn)的Transformer解碼或者AED等自回歸式解碼時,可能會產(chǎn)生亂碼的情況,所以先要de-noise。不引入其他技術(shù)方案前提下,使用這種Robust模型的方式對這些音頻去噪。
Context-aware Re-ranking for ASR
這個策略是要保持上下文一致性。首先按照片段去解碼,然后對每個片段的轉(zhuǎn)錄結(jié)果生成beam。在有多個beam之后,從beam里面去篩選。
使用更大數(shù)據(jù)訓(xùn)練、重新打分和計算,然后去選擇上下文更加一致性的結(jié)果作為最終的結(jié)果,有效得提高整個長序列文本的一致性。
ASR Domain Controlled Training & Decoding
Large Scale Pre-training & Domain Fine-tuning for MT
業(yè)界的領(lǐng)域遷移大方向為大數(shù)據(jù)+大模型。有一些開源模型如OpenAI Whisper訓(xùn)練數(shù)萬小時。
多語言加多任務(wù)。多任務(wù)學(xué)習(xí)方式是提高魯棒性的訓(xùn)練方式。ASR識別、Translation和語言檢測任務(wù)融合做多任務(wù)學(xué)習(xí)。
無監(jiān)督和自監(jiān)督預(yù)訓(xùn)練模型。自監(jiān)督是特別有效的方式但是訓(xùn)練成本很高,所以要平衡效果和成本。Meta提出來的wave2vec的對比學(xué)習(xí).先在無標(biāo)簽全量的音頻數(shù)據(jù)上做表征學(xué)習(xí),然后下游ASR任務(wù)做fine-tuning。最近Meta的MMS和Google的USM類似于這樣的訓(xùn)練方式。
多語言大模型需要大數(shù)據(jù)量。構(gòu)建大數(shù)據(jù)量比較典型的有效方案有Back Translation和迭代式的方案等,從而增加這個目標(biāo)端和譯文端的多樣性。翻譯評價指標(biāo)叫BLEU(Bilingual Evaluation Understudy。BLEU本質(zhì)上是文本相似度的計算方式。有一個問題是數(shù)據(jù)增強(qiáng)策略之后指標(biāo)確實提升了,但是人工對翻譯的結(jié)果的感知并沒有變化。因為領(lǐng)域里有翻譯腔的問題,生成數(shù)據(jù)那傾向模型本身的bias。一個特別有效的減少bias的方法叫Text Style Transfer Back-Translation。
文本生成數(shù)據(jù)里面有翻譯腔問題。一個策略是在目標(biāo)文本和翻譯文本之間應(yīng)用文本遷移小模型。在構(gòu)造偽數(shù)據(jù)的時候,小模型讓風(fēng)格遷移,額外增加文本多樣性。在各個指標(biāo)包括人工評價感知上都取得了明顯的效果。
另外一個問題就是領(lǐng)域遷移。比如科技論壇和醫(yī)療論壇的專用詞等跟通用場景景象是不太一樣的。領(lǐng)域遷移訓(xùn)練流程涉及到一個從indomain 到outdoman包括數(shù)據(jù)的篩選、過濾以及訓(xùn)練的流程。領(lǐng)域遷移屬于低資源訓(xùn)練,因為領(lǐng)域的數(shù)據(jù)一般都是受限的。一個最直觀有效的策略就是R-Drop。在訓(xùn)練的時候隨機(jī)drop out,生成多個結(jié)果后加一個KL約束使結(jié)果更加一致。本質(zhì)上提升模型的魯棒性。這種策略在低資源或者低數(shù)據(jù)量上是有效的。在訓(xùn)練大模型時沒有特別明顯效果并且跟一些方案比如模型的ensemble有一些潛在的沖突,不能同時有效。
機(jī)器翻譯領(lǐng)域每年都會WMT比賽。去年的Biomedical Shared Task是一個典型的醫(yī)療領(lǐng)域的領(lǐng)域遷移的任務(wù)。工程里面特別常見的一些策略,最核心的是Continue Training under R-Drop。這是特別有效的手段。結(jié)合著數(shù)據(jù)過濾、Diversification、下游的Fine-tuning和BT能最終取得比較好的結(jié)果。這些方法可以在工程里實踐落地。
在語音翻譯的同傳場景里,原文和譯文的長度保持基本一致的時候,用戶的體驗上會有明顯的比較友好的感受。這個策略定義為等長或者等距翻譯。這個方式已經(jīng)落地到真實場景。
去年等距的翻譯比賽,有多種策略融合達(dá)到百分之96的準(zhǔn)確率。策略包括Length Encoding,beam等。這些策略融合后能滿足用戶體驗的訴求。比如智慧手表會收集來一些信息。如果手表的屏幕比較小,譯文長度特別長,用戶體驗就會不好。
工程落地有意思的點就是TE服務(wù)。整個系統(tǒng)的構(gòu)建里面最大問題在于級聯(lián)錯誤放大。ASR錯誤會級聯(lián)傳下去,導(dǎo)致這塊錯誤的累積放大。降低這種錯誤延續(xù)的一個方法是在ASR和MT加一個橋梁。這個模塊叫TE服務(wù),服務(wù)里面包含一些子服務(wù)。
首先是對ASR Output 做一些口水詞的順滑(Disfluency)。然后ASR的識別結(jié)果可能是有些錯誤,可以通過NLP文本的技術(shù)手段找到一些潛在的錯誤,并做修正(Correction)。接著是標(biāo)點還原(Punctuation)。ASR是天然的不帶標(biāo)點,這和文本風(fēng)格上的差異。翻譯里面就帶著文本和語音的停頓信息然后送到下游的標(biāo)點還原的服務(wù)。這個大模型從數(shù)據(jù)維度角度去解決這個問題。比如在訓(xùn)練數(shù)據(jù)時,基于帶標(biāo)點和上下文的長音頻長文本去訓(xùn)練。那可能TE服務(wù)不需要標(biāo)點還原模塊。
技術(shù)還是需要去積累。因為訓(xùn)練一個端到端的大模型時,在數(shù)據(jù)里面一定是有噪聲的。數(shù)據(jù)噪聲需要通過標(biāo)點還原模型去過濾和修正數(shù)據(jù)。
一個糾錯的無監(jiān)督的框架。預(yù)訓(xùn)練模型已經(jīng)學(xué)到了有效的信息,不需要應(yīng)用錯誤糾正的model而是需要把大模型的能力用進(jìn)來。經(jīng)過驗證這個策略能夠得到一個比較好的糾錯效果。它能比較魯棒地找到特別不明顯的低錯問題。
標(biāo)點還原目前不是一個難點問題。在大模型背景下,有Zero-Shot方式的一個標(biāo)點還原的工作。
同傳場景需要保證實時性。ASR和MT用極低的時延得到轉(zhuǎn)錄和翻譯的結(jié)果。這里涉及到很多技術(shù)包括模型層面像蒸餾的小模型或者底層的推理加速。華為諾亞Bolt團(tuán)隊支持一些支持CPU量化等推理加速的技術(shù)手段。Effiency Task是翻譯領(lǐng)域的任務(wù),在Bolt框架里得到比較好的結(jié)果。推理加速能有效得緩解同傳場景里遇到的問題。
應(yīng)對挑戰(zhàn)主要包括兩個方向:面向用戶場景和忠于用戶體驗。
面向用戶場景
首先語音翻譯可天然分成兩個場景:離線的場景和流式的場景。不同的場景有不同技術(shù)方案。所以需要針對用戶場景和領(lǐng)域場景,去做模型算法上的工作。
忠于用戶體驗
語音翻譯不能只看BLUE等指標(biāo),還要關(guān)注到關(guān)鍵詞不能錯,否則會影響整個體驗。工程落地的額外指標(biāo)叫關(guān)鍵詞F1值。提升關(guān)鍵詞的準(zhǔn)確性包括等長翻譯最終的用戶體驗。
華為翻譯目前是公司內(nèi)部機(jī)器翻譯能力的提供者。產(chǎn)品包括在內(nèi)部微群和工具,對外也是在華為云上面應(yīng)用。整個公司的底層由MindSpore框架和芯片來支持多模態(tài)同傳翻譯落地及優(yōu)化。