我是如何用AI把“請(qǐng)洗手”翻譯成500種語(yǔ)言的?
通過(guò)使用人類(lèi)和機(jī)器生成的翻譯,可以將關(guān)鍵的健康短語(yǔ)翻譯成世界各地的當(dāng)?shù)卣Z(yǔ)言。
你可能不知道,目前世界上有 7117 種語(yǔ)言在使用,不是方言,而是在用的語(yǔ)言! 然而,世界上許多數(shù)字媒體只能使用幾十種語(yǔ)言,而像谷歌翻譯這樣的翻譯平臺(tái)只支持 100 種左右的語(yǔ)言。這樣的現(xiàn)實(shí)意味著,由于缺乏及時(shí)獲取信息的機(jī)會(huì),全世界有數(shù)十億人被邊緣化。當(dāng)前的冠狀病毒(COVID-19)大流行已經(jīng)讓人痛苦地意識(shí)到了這一點(diǎn),凸顯了將健康相關(guān)的短語(yǔ)(如“請(qǐng)洗手”或“保持距離”等)即時(shí)、快速翻譯成小眾語(yǔ)言的必要性。
為此,我應(yīng)用了最先進(jìn)的 AI 技術(shù),用 544 種語(yǔ)言構(gòu)建出了與“請(qǐng)洗手”相近的短語(yǔ)并進(jìn)行了統(tǒng)計(jì)(我的 GPU 還在運(yùn)行)。多語(yǔ)言無(wú)監(jiān)督和受監(jiān)督嵌入(MUSE)方法被用來(lái)訓(xùn)練這 544 種語(yǔ)言和英語(yǔ)之間的跨語(yǔ)言單詞嵌入。然后,這些嵌入方法可以從現(xiàn)有文檔中提取出與目標(biāo)短語(yǔ)相似的短語(yǔ)。
我與 SIL 國(guó)際公司的同事們合作完成了這項(xiàng)工作,他們收集了該短語(yǔ)的更多的人工翻譯結(jié)果。這些人工翻譯結(jié)果和我的一些機(jī)器翻譯結(jié)果的組合可以在這個(gè)民族語(yǔ)指南頁(yè)面上搜索到(機(jī)器生成的短語(yǔ)用一個(gè)小的機(jī)器人圖標(biāo)表示),更多的翻譯將在生成/收集到的時(shí)候加入。
利用現(xiàn)有的語(yǔ)料庫(kù)
SIL 國(guó)際公司已經(jīng)完成了 2000 多種語(yǔ)言的語(yǔ)言工作,目前管理著 1600 多個(gè)語(yǔ)言項(xiàng)目。因此,當(dāng)我解決這個(gè)特殊的問(wèn)題時(shí),我知道我們很可能已經(jīng)多次將“請(qǐng)洗手”和/或類(lèi)似的短語(yǔ)翻譯成了數(shù)百種語(yǔ)言,而這一猜測(cè)得到了回報(bào)。我很快就從我們的檔案庫(kù)中收集到了超過(guò) 900 種語(yǔ)言的文檔(主要是完成的貝殼書(shū)模板、教材和圣經(jīng))。這些文檔中的每一份都有一個(gè)英文的對(duì)應(yīng)版本,其中必然包括“請(qǐng)洗手”和/或類(lèi)似“請(qǐng)洗臉”這樣的短語(yǔ)。此外,這些文檔的質(zhì)量都很高,并與當(dāng)?shù)卣Z(yǔ)言社區(qū)合作進(jìn)行了翻譯和檢查。
這是相當(dāng)多語(yǔ)言的數(shù)據(jù)集。然而,有兩個(gè)問(wèn)題需要克服。首先,這個(gè)數(shù)據(jù)包含了大多數(shù)語(yǔ)言的數(shù)千種樣本,這與訓(xùn)練機(jī)器翻譯模型所使用的數(shù)百萬(wàn)個(gè)樣本形成了鮮明對(duì)比。其次,即使文檔中包含目標(biāo)語(yǔ)言中的“請(qǐng)洗手”這個(gè)短語(yǔ),我們也不知道這個(gè)短語(yǔ)在周?chē)谋局械拇_切位置。
我們當(dāng)然可以利用低資源語(yǔ)言的機(jī)器翻譯中的一些最新技巧,但是需要花費(fèi)一些時(shí)間來(lái)調(diào)整自動(dòng)化方法,以快速適應(yīng)每種語(yǔ)言對(duì)中的翻譯模型。此外,我們所針對(duì)的許多語(yǔ)言都沒(méi)有現(xiàn)成的的基線,可以用來(lái)比較評(píng)估指標(biāo)(例如 BLEU 評(píng)分)。考慮到對(duì)冠狀病毒大流行的迫切擔(dān)憂(yōu),我們希望比這更快一點(diǎn)(盡管我們計(jì)劃在將來(lái)再來(lái)解決這個(gè)問(wèn)題)。
我選擇通過(guò)在現(xiàn)有的文檔中尋找短語(yǔ)本身或短語(yǔ)的組件(如“請(qǐng)洗”或“你的手”)來(lái)嘗試構(gòu)建“請(qǐng)洗手”這個(gè)短語(yǔ)。為了找到這些成分,我使用 Facebook Research 的多語(yǔ)言無(wú)監(jiān)督和受監(jiān)督嵌入(MUSE)對(duì)每個(gè) {英語(yǔ)、目標(biāo)語(yǔ)言} 對(duì)進(jìn)行了跨語(yǔ)言嵌入訓(xùn)練。MUSE 以單語(yǔ)言的單詞嵌入作為輸入(我使用 fasttext 來(lái)生成這些詞),并使用對(duì)抗性方法學(xué)習(xí)了從英語(yǔ)到目標(biāo)嵌入空間的映射。這個(gè)過(guò)程的輸出是跨語(yǔ)言的單詞嵌入。
一旦產(chǎn)生了跨語(yǔ)言嵌入,我們就可以開(kāi)始在目標(biāo)語(yǔ)言文檔中尋找短語(yǔ)組件。結(jié)果發(fā)現(xiàn),整個(gè)文檔中清楚地使用了“請(qǐng)洗臉”這個(gè)短語(yǔ)以及單獨(dú)的“手”、“請(qǐng)洗”等詞。對(duì)于每一種語(yǔ)言,我都通過(guò) n-gram 搜索我預(yù)期該短語(yǔ)會(huì)出現(xiàn)的地方(根據(jù)其在英語(yǔ)的對(duì)應(yīng)版本中的用法)。使用跨語(yǔ)言嵌入法對(duì) n-gram 進(jìn)行了矢量化處理,并使用各種距離指標(biāo)與英語(yǔ)短語(yǔ)的矢量化版本進(jìn)行了比較。在嵌入空間中,與英文短語(yǔ)“最接近”的 n-gram 被確定為與目標(biāo)語(yǔ)言匹配。
最后,將與英語(yǔ)對(duì)應(yīng)的成分短語(yǔ)進(jìn)行組合,生成目標(biāo)語(yǔ)言中的“請(qǐng)洗手”短語(yǔ)。這種組合方式再次利用了跨語(yǔ)言嵌入,以確保以合適方式組合組件。例如,如果我們?cè)谀繕?biāo)語(yǔ)言中匹配“請(qǐng)洗腳”這個(gè)短語(yǔ),就必須將“腳”對(duì)應(yīng)的 n-gram 替換成“手”對(duì)應(yīng)的 n-gram。下面是伯利茲·克里奧爾英語(yǔ)的一個(gè)例子:
當(dāng)然,在這個(gè)匹配過(guò)程中,會(huì)做一些假設(shè),這個(gè)過(guò)程完全有可能不能產(chǎn)生語(yǔ)法上正確的預(yù)測(cè)。例如,我假設(shè)在大多數(shù)語(yǔ)言中,“手”的單詞和“腳”的單詞都是一個(gè)字元長(zhǎng)的(字元由空格和標(biāo)點(diǎn)符號(hào)隔開(kāi))。當(dāng)然并非總是如此。這可能會(huì)造成類(lèi)似于“和洗和手你”或類(lèi)似的瑕疵詞條。希望我們可以克服其中的一些局限性,并在未來(lái)擴(kuò)展這個(gè)系統(tǒng),但是,現(xiàn)在,我們選擇用圖形來(lái)強(qiáng)化這個(gè)想法。
我們將世界衛(wèi)生組織的洗手說(shuō)明改編成了一個(gè) PNG 圖片模板。然后,我們把我們翻譯和生成的短語(yǔ),用 Bash 和 Go 腳本的組合將其渲染到洗手圖像中。這樣,在文字和圖像中都強(qiáng)調(diào)了正確洗手的理念(以防萬(wàn)一我們生成的翻譯很尷尬)。
結(jié)果
到目前為止,我已經(jīng)能夠訓(xùn)練出 544 種語(yǔ)言的跨語(yǔ)言嵌入。我使用上述討論過(guò)的方法嘗試為所有這些語(yǔ)言構(gòu)建“請(qǐng)洗手”這個(gè)短語(yǔ)。因?yàn)槲覜](méi)有許多語(yǔ)言對(duì)的對(duì)齊數(shù)據(jù),所以我使用了同樣包含“請(qǐng)洗手”成分的單獨(dú)的保留文檔來(lái)幫助驗(yàn)證構(gòu)造短語(yǔ)中的字元。這讓我們對(duì)公開(kāi)發(fā)布的翻譯版本有了一些信心(至少它們包含了表示“洗”和/或“手”的信息)。此外,我還將該方法與谷歌翻譯支持的和/或有可用的人工翻譯的語(yǔ)言對(duì)進(jìn)行了比較。以下是來(lái)自 Ethnologue 帶有語(yǔ)言統(tǒng)計(jì)的翻譯樣本。
語(yǔ)言:意大利語(yǔ) [Ita]
- 地點(diǎn):意大利
- 人口: 68,000,000
- 我們的系統(tǒng): làvati la mani
- 谷歌翻譯: Lavati le mani
語(yǔ)言:保加利亞語(yǔ) [bul]
- 地點(diǎn):保加利亞
- 人口:8,000,000
- 我們的系統(tǒng):умий ръцете
- 谷歌翻譯:Измий си ръцете
語(yǔ)言: 荷蘭語(yǔ) [nld]
- 地點(diǎn):荷蘭
- 人口:24,000,000,000
- 我們的系統(tǒng):wast uw handen
- 谷歌翻譯:Was je handen
語(yǔ)言: Pijin [pis]
- 地點(diǎn):所羅門(mén)群島
- 人口: 550,000
- 我們的系統(tǒng):wasim han
- 谷歌翻譯:不支持
語(yǔ)言:Tikar [tik]
- 地點(diǎn):喀麥隆
- 人口:110,000
- 我們的系統(tǒng):ɓɔsi fyàʼ
- 谷歌翻譯:不支持
語(yǔ)言:Waffa [waj]
- 地點(diǎn):巴布亞新幾內(nèi)亞
- 人口:1,300
- 我們的系統(tǒng):yaakuuvaitana nnikiiyauvaa fini
- 谷歌翻譯:不支持
構(gòu)造的短語(yǔ)類(lèi)似于參考翻譯,或者似乎是“請(qǐng)洗手”的另一種說(shuō)法。例如,在保加利亞語(yǔ)中,我預(yù)測(cè)為“умий ръцете”,而谷歌翻譯預(yù)測(cè)為“Измий си ръцете”。 然而,如果我用谷歌翻譯回譯我的預(yù)測(cè),我還是會(huì)得到“請(qǐng)洗手”。有一些不確定的地方,我無(wú)法與參考譯文(例如,所羅門(mén)群島的 Pijin [pis])或人類(lèi)注釋的跨度進(jìn)行比較,但我仍然可以驗(yàn)證“洗”(wasim)和“手”(han)分別用在其他必定是談?wù)撓椿蚴值膮⒖嘉募小?大約有 15% 的譯文可以用這個(gè)方法驗(yàn)證,我希望在收集參考文獻(xiàn)字典的過(guò)程中能進(jìn)行更多的驗(yàn)證。
請(qǐng)注意,我最多使用了每種語(yǔ)言中大約 7000 個(gè)句子來(lái)得到上述譯文,即使是意大利語(yǔ)這樣的高資源語(yǔ)言也是如此。我也不依賴(lài)語(yǔ)言對(duì)之間的對(duì)齊句子。盡管存在這種數(shù)據(jù)非常稀缺、無(wú)監(jiān)督的情況,但對(duì)于兩個(gè)系統(tǒng)都支持的語(yǔ)言,我仍然能夠獲得類(lèi)似于谷歌翻譯的短語(yǔ)。這證明了這種“混合”方法(無(wú)監(jiān)督的單詞嵌入+基于規(guī)則的匹配)在將短語(yǔ)翻譯成數(shù)據(jù)非常少的語(yǔ)言中的潛在用途。
注意:我絕對(duì)不是說(shuō)這是解決冠狀病毒和其他健康相關(guān)的信息傳播問(wèn)題的解決方案。這里仍有很多東西需要探索和正式評(píng)估,我們正在為此努力。在很多情況下,這種方法無(wú)法幫助構(gòu)建數(shù)百種語(yǔ)言的重要信息資料。但是,我認(rèn)為,我們所有人都應(yīng)該嘗試著為當(dāng)前危機(jī)的相關(guān)問(wèn)題制定創(chuàng)造性的解決方案。也許這只是一個(gè)非常大的拼圖中的一塊。
你可以在這個(gè)民族語(yǔ)言指南上查看經(jīng)過(guò)驗(yàn)證的譯文加上人工翻譯的完整列表。此外,我們即將以論文的形式對(duì)這一系統(tǒng)進(jìn)行更深入的描述和分析。我們歡迎公眾對(duì)翻譯進(jìn)行反饋,以幫助系統(tǒng)進(jìn)行微調(diào),最重要的是,確保將健康信息傳遞給世界各地的邊緣化語(yǔ)言社區(qū)。
制作自己的洗手海報(bào)
我們已經(jīng)開(kāi)源了用于渲染復(fù)合的腳本和生成洗手海報(bào)的代碼。這種方法應(yīng)該能夠處理幾乎所有的語(yǔ)言和腳本。你可以在海報(bào)中添加你自己的“請(qǐng)洗手”的翻譯,以幫助傳播,或者根據(jù)自己的本地語(yǔ)境進(jìn)行翻譯。請(qǐng)務(wù)必在社交媒體上以 #WashYourHands 為標(biāo)簽分享你生成的海報(bào)。
培養(yǎng)你的 AI 技能
有很多令人興奮的 AI 問(wèn)題,可以給世界帶來(lái)巨大的影響。如果你想用人工智能解決像上面提到的問(wèn)題,或者你認(rèn)為你的企業(yè)可能需要開(kāi)始利用人工智能來(lái)做其他事情(供應(yīng)鏈優(yōu)化、推薦、客戶(hù)服務(wù)自動(dòng)化等),那么不要錯(cuò)過(guò)今年 5 月的AI 課堂培訓(xùn)活動(dòng)。AI 課堂是一個(gè)沉浸式的、為期三天的虛擬培訓(xùn)活動(dòng),適合至少有一定編程經(jīng)驗(yàn)和數(shù)學(xué)基礎(chǔ)知識(shí)的人參加。該培訓(xùn)提供了使用 Python 和開(kāi)源框架(如 TensorFlow 和 PyTorch)進(jìn)行現(xiàn)實(shí)的 AI 開(kāi)發(fā)的實(shí)用基礎(chǔ)知識(shí)。完成課程后,學(xué)員將有信心開(kāi)始開(kāi)發(fā)和部署自己的 AI 解決方案。