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