這個(gè)題目看起來比較小眾,希望大家聽我的講座沒有白聽,可以學(xué)到一些東西,就是AI技術(shù)落地過程中的一些問題,以及解決策略和方法,技術(shù)、產(chǎn)品、行業(yè)問題的大雜燴。 我的分享主要包括以下幾個(gè)方面: 1. 機(jī)器翻譯現(xiàn)狀簡介; 2. 翻譯需求與人工翻譯行業(yè); 3. 人機(jī)交互式機(jī)器翻譯技術(shù); 4. 人機(jī)交互式機(jī)器翻譯應(yīng)用; 5. 人工智能落地的一些思考。 首先會(huì)過一下機(jī)器翻譯的現(xiàn)狀,看一下翻譯需求是怎么回事,然后就是我本身做的事情,還有做這個(gè)事情過程中遇到的哪些問題,以及這些問題帶來的思考。
機(jī)器翻譯在2018年不想聽到這幾個(gè)字也很難,有的公司說起人工智能好像也不知道做什么,那就做一個(gè)翻譯機(jī)或者同傳吧,如果沒有技術(shù)怎么辦,沒有技術(shù)的話,你也可以做機(jī)器翻譯,怎么做呢?做人機(jī)耦合吧,把人關(guān)到同傳箱里面,然后翻譯內(nèi)容不由機(jī)器來生成,由人進(jìn)行生成,把人工翻譯結(jié)果打印到屏幕上。翻譯其實(shí)是比較低頻的需求,但是在2018年很多公司希望在翻譯上展示出自己不一樣的能力,表現(xiàn)出很饑渴的樣子,大家很多時(shí)候或多或少有這樣的疑問,當(dāng)大家真的需要用機(jī)器翻譯的時(shí)候,往往錯(cuò)誤百出,在同傳的時(shí)候,在博鰲論壇上,翻譯連續(xù)翻譯出10幾個(gè)神奇的句子,這種神奇詭秘的地方,對于機(jī)器翻譯來說,這不是偽需求嗎?誰會(huì)花幾千塊,大幾百塊買那么一個(gè)破玩意兒,但是各家說自己出貨又很高,我一直沒有想明白,為什么那些翻譯機(jī)的銷量能有幾百萬,幾千萬臺(tái),然后各家的數(shù)據(jù)一綜合的話會(huì)超過億,可是在我身邊卻看不到呢,我們AI行業(yè)各家的數(shù)據(jù)都是謎一樣的存在。每家都在宣傳自己掌握核心技術(shù),通過開源軟件知道了機(jī)器翻譯的原理,出來的東西也都差不多,一句詩來形容就是“藕花深處田田葉,葉上初生并蒂蓮”。 國內(nèi)最近20年,長期投入的機(jī)器翻譯的單位大概有這么幾家,有的資深一些,有的比較新一些,比如說騰訊在機(jī)器翻譯上的投入沒有超過3年,超過10年快20年的是前面幾個(gè)單位,比如說中國科學(xué)院自動(dòng)化研究所(也是我讀博的地方),還有中國科學(xué)院計(jì)算機(jī)技術(shù)研究所,除此之外,清華,哈工大,這些時(shí)間也比較長,蘇州大學(xué)比較年輕的,最近幾年在人工智能上的成績是有目共睹的,公司的話應(yīng)該是百度和網(wǎng)易有道,其他的相對晚一些。機(jī)器翻譯的從業(yè)人員,應(yīng)該都是從這些機(jī)構(gòu)走出來的,畢業(yè)的或者跳槽的,思維趨同,做出來的產(chǎn)品大差不差。 機(jī)器翻譯用的框架還是雷同的,主要是細(xì)節(jié)處理或者是針對一些問題本身的改進(jìn)。通行的結(jié)構(gòu)就是編碼器解碼器結(jié)構(gòu),做深度學(xué)習(xí)的對這套框架應(yīng)該是很熟悉的,最難用的就是先把原文句子經(jīng)過每個(gè)字詞通過RNN之類的手段對它進(jìn)行編碼,最后形成一個(gè)句子向量,在解碼端,從句子開始根據(jù)句子向量,生成空格段的詞,最難用的框架,問題可能是比較多的:比如它的基本原則很簡單,在解碼器一端從句子開始到句子結(jié)尾處,它才停止翻譯的過程,如果沒有遇到句子開始和句子結(jié)尾的話就一直進(jìn)行翻譯過程。大家很容易想到有些問題:比如在這種框架中,有些片段沒有翻譯到,形成丟失,或者是生成的譯文和原文沒有什么關(guān)系。大家實(shí)際中在使用線上翻譯產(chǎn)品中會(huì)有這樣的感知,雖然現(xiàn)在的機(jī)器翻譯和三四年前相比已經(jīng)有了質(zhì)的飛躍,但還是不合格的,仍然有很多問題,這時(shí)如果需要彌補(bǔ)這些問題,一般都是加模型。 最簡單的就是注意力模型,加注意力模型的本質(zhì)需求是希望我生成的下一個(gè)目標(biāo)詞的時(shí)候能與原文的某些詞或者某一個(gè)詞建立比較強(qiáng)的聯(lián)系,并通過注意力模型,來生成隨翻譯過程不斷變化的上下文向量。它根據(jù)原文編碼,加注意力模型之后呢,它會(huì)隨著前面已經(jīng)生成的詞,進(jìn)行變化,這個(gè)時(shí)候翻譯效果會(huì)上升一大截。 如果用固化的方法來講,注意力模型怎么去解釋它的物理作用呢?在翻譯這個(gè)問題下,它看起來有點(diǎn)像翻譯的概念,就是詞到詞之間的翻譯,但是好多詞又不一定,在使用線上翻譯的時(shí)候,輸入原文句子里面多一個(gè)標(biāo)點(diǎn),少一個(gè)標(biāo)點(diǎn)可能引起譯文端的劇烈變化,這個(gè)時(shí)候,這個(gè)時(shí)候注意力就是學(xué)偏了,它把好多東西都?jí)旱搅嗽淖詈竽莻€(gè)標(biāo)點(diǎn)上面。所以我們?nèi)斯蜗嗨际降娜ソ忉尫g概念是不對的,既然注意力機(jī)制與翻譯概念不是那么有關(guān)系的話,那就換一下,比如谷歌發(fā)表了transformer的架構(gòu)。 大家如果做這個(gè)方向應(yīng)該是比較熟悉的,不做這個(gè)方向的,要理解的東西也比較多,相比RNN結(jié)構(gòu),transformer這個(gè)結(jié)構(gòu)相比RNN,對原文信息的編碼是更充分的,比如說是在RNN的時(shí)候,對原文的編碼都是從左至右或者從右至左,但是在transformer這一套框架中,它對原文中每個(gè)詞的編碼都會(huì)參考整個(gè)句子的詞,而且編碼還不止一層,有個(gè)self-attention機(jī)制,一般我們用attention都是原文和目標(biāo)端文字之間的關(guān)系,但是在transformer關(guān)系中它會(huì)計(jì)算原文和原文之間的關(guān)系,然后譯文與譯文之間的關(guān)系,這樣就會(huì)更充分了,但是參數(shù)規(guī)模會(huì)爆炸,所以也出現(xiàn)了比較尷尬的事實(shí),transformer在比賽中,如果GPU狀態(tài)比較差的話,是跑不了實(shí)驗(yàn)的,比如我們實(shí)際場景上線,就是訓(xùn)練語料是以億句為規(guī)模的,想通過1080,或者2080那是肯定跑不出來的,因?yàn)橐芎脦讉€(gè)月,就算是P40,一塊P40也沒什么用,就是它的單個(gè)顯存比較大一些,比如說24G左右,因?yàn)樵诿鎸A繑?shù)據(jù)的時(shí)候,我們一個(gè)模型,跑一個(gè)模型48塊盤,48塊P40,如果大家是玩一玩或者創(chuàng)業(yè)公司來做這個(gè)事情的時(shí)候,會(huì)有很多的困難,也許以后會(huì)隨著云計(jì)算業(yè)務(wù)的普及,大家會(huì)受惠,但是短期而言的話,在做AI技術(shù)落地的時(shí)候,硬件對于創(chuàng)業(yè)團(tuán)隊(duì)容易造成很大的經(jīng)濟(jì)壓力。 State-of-the-art:基于Transformer的機(jī)器翻譯 transformer對語言的編碼不是單向的,每個(gè)詞每一輪的編碼都會(huì)參考上一輪的結(jié)果,這是transformer顯著區(qū)別于RNN的區(qū)別,編碼器如之前所言考慮句子中所有詞,解碼器默認(rèn)是從左到右,從句子開始生成下一個(gè)詞,在生成下一個(gè)詞之前,對之前解碼的內(nèi)容進(jìn)行多輪解碼。 機(jī)器翻譯的訓(xùn)練和大家做其他的訓(xùn)練也沒有什么兩樣,都是隨機(jī)初始化,或者按照某種預(yù)設(shè)方式初始化參數(shù),然后把它加載到模型中,對訓(xùn)練語句進(jìn)行batch數(shù)據(jù),計(jì)算損失,調(diào)參數(shù),重復(fù)這個(gè)過程,直到最后收斂,把參數(shù)保留下來,沒有什么不一樣的地方,只是需要注意計(jì)算損失這一步。因?yàn)橐话愣栽诜g領(lǐng)域,如何去評(píng)價(jià)一個(gè)自動(dòng)譯文好不好呢,我們的評(píng)價(jià)指標(biāo)叫blue,它是和參考譯文去比對,一元的串匹配的有多少,二元的串匹配的有多少,三元四元有多少。但是在神經(jīng)網(wǎng)絡(luò)翻譯訓(xùn)練當(dāng)中,我們是沒有辦法用blue這種方式的,這時(shí)候就用PPL,用的比較廣泛,雖然在統(tǒng)計(jì)規(guī)律中講PPL越低,blue值會(huì)增的,但是好多時(shí)候,在一些比較狹小的空間,它會(huì)有個(gè)反饋,所以這個(gè)時(shí)候會(huì)有個(gè)模型選擇。這個(gè)模型選擇一般是構(gòu)建一批比較大一點(diǎn)的人工測試集,就是面向開放領(lǐng)域,或者把大家的高頻query抓下來,埋點(diǎn),然后中間會(huì)生成一堆checkpoint,然后看哪個(gè)更能體現(xiàn)線上實(shí)際要求,這個(gè)過程和做其他產(chǎn)品沒有特別大的區(qū)別,只是做數(shù)據(jù)處理充滿各種小的技巧。 比如說在做產(chǎn)品的過程中產(chǎn)品還沒有發(fā)布,買數(shù)據(jù)的錢花了好多,然后人工評(píng)估體系的構(gòu)建又花了好多錢,最后都不知道這個(gè)產(chǎn)品能賺幾個(gè)錢。(注:當(dāng)然我是很有自信的,我的產(chǎn)品能把產(chǎn)品的成本賺回來了。)現(xiàn)在各家都在炒作自家產(chǎn)品,其實(shí)用的技術(shù)沒有差太多,如果用相同的語料去訓(xùn)練各大公司的機(jī)器翻譯引擎的話,大家blue值的差別不會(huì)超過3個(gè),區(qū)別其實(shí)會(huì)很小很小,大家為什么又拼命強(qiáng)調(diào)其中的差異化呢,其中最主要的原因就是:目前,翻譯的問題還沒有被徹底解決,大家還可以找出很多差異,但是大趨勢是趨同的。機(jī)器翻譯的困難呢,大家在做的過程中會(huì)有一些體會(huì),我這里總結(jié)了四個(gè)方面: 第一個(gè)方面就是歧義和未知現(xiàn)象:歧義的,像南京市長江大橋這種都老掉牙了,未知現(xiàn)象的,比如是在武俠小說里面駕。。。駕。。。(模仿騎馬的這種), 再比如新產(chǎn)生的詞不太容易被翻譯出來。 第二個(gè)方面是翻譯不僅僅是字符串的轉(zhuǎn)換:直接翻譯不能解決所有問題,比如,青梅竹馬,直接翻譯成英文是“發(fā)青的梅子,竹子做的馬”;特定情況下的江湖(比如有人的地方就有江湖),直接翻譯過去就是“江和湖”,其實(shí)并不能表達(dá)中文中的語義;再比如特定場景下的“你媽媽叫你回家吃飯了”,都沒法直接逐字進(jìn)行翻譯。 第三個(gè)方面就是翻譯的解并不唯一:缺乏量化標(biāo)準(zhǔn),并且始終存在人為標(biāo)準(zhǔn),這個(gè)是精準(zhǔn)層面的,把一句話表達(dá)清楚,其實(shí)有很多方式。 第四個(gè)方面就是翻譯的高度:有的語句意境很高,上升到文學(xué)層次了,比如“最是那一低頭的溫柔”,翻譯的時(shí)候涉及到意境的體會(huì)和把握,對于人工翻譯來說困難,對于機(jī)器翻譯來說,也困難。
翻譯行業(yè)全球的產(chǎn)值還是很高的,大約四到五百億人民幣,主戰(zhàn)場在歐洲和北美洲,最大增速在非洲,中國占10%左右,國內(nèi)主要的語種是中英互譯,利潤主要來自于外單。 獨(dú)角獸不獨(dú),充分多樣性。其他領(lǐng)域獨(dú)角獸往往比重很大,占據(jù)70%左右的市場,但是翻譯市場不是這樣。從2005年到2016年頭部公司的排名和占比區(qū)別不大。 10人以上團(tuán)隊(duì)需要工具卻無力支付正版。
背景:全自動(dòng)輸出翻譯結(jié)果無法保證譯文質(zhì)量,這時(shí)候就需要人機(jī)交互,實(shí)現(xiàn)下面三個(gè)任務(wù): 1. 在翻譯過程中接受用戶提供譯文干預(yù),能根據(jù)干預(yù)結(jié)果生成更好的結(jié)果; 2. 及時(shí)學(xué)習(xí)用戶的修改反饋,不能一個(gè)愚蠢的錯(cuò)誤反復(fù)出現(xiàn); 3. 實(shí)時(shí)提供翻譯輔助信息。 人工翻譯如何和機(jī)器翻譯產(chǎn)生交互?人工翻譯參與程度與自動(dòng)翻譯的質(zhì)量相關(guān),如果自動(dòng)譯文的質(zhì)量較高,那就機(jī)器翻譯直接發(fā)揮作用了(人工只需要在自動(dòng)譯文之后進(jìn)行校驗(yàn)),如果自動(dòng)譯文的質(zhì)量比較低,就需要比較高的人工介入,像翻譯輸入法(相當(dāng)于比較多的人工標(biāo)注),如果主動(dòng)譯文的質(zhì)量不好不差的情況下,可以用交互式機(jī)器翻譯來解決翻譯質(zhì)量的問題(人工標(biāo)注比較難的部分)。 在自動(dòng)翻譯過程中,機(jī)器翻譯可以扮演的角色: 整句的更新(高精度的翻譯整個(gè)句子)、片段提示(在無法保證整句精準(zhǔn)的情況下保證重點(diǎn)片段的精準(zhǔn))、翻譯輸入法、在線學(xué)習(xí)、語義理解、快速解碼。 在整個(gè)過程中,除了AI技術(shù),還涉及到產(chǎn)品設(shè)計(jì)能力。需要產(chǎn)品經(jīng)理和技術(shù)人員之間的協(xié)調(diào)和共識(shí)。 最簡單暴力的使用機(jī)器翻譯的一種,就是譯后編輯。就是首先機(jī)器翻譯,然后人工編輯。 機(jī)器翻譯不差不好的情況下使用交互式機(jī)器翻譯,就是人工翻譯片段和機(jī)器翻譯片段交替進(jìn)行。 約束解碼方式,就是強(qiáng)制在翻譯中必須含有一部分術(shù)語,比如說一句話中必須把“深圳騰訊”,“社區(qū)”包含在內(nèi),這一點(diǎn)是目前難以做到的,主要是卡在翻譯速度上,時(shí)間消耗嚴(yán)重。 我們對算法進(jìn)行了一些改進(jìn),如上圖所示。 我們希望用戶打完這句話用的按鍵數(shù)越少越好,用谷歌和微軟輸入法結(jié)果如下,因?yàn)橐话愕妮斎敕ㄈW(xué)習(xí)的是人的輸入歷史,我們引入機(jī)器翻譯的東西可以改進(jìn)過于依賴輸入歷史的情況。 拼音輸入法:是尋找最優(yōu)解的過程,需要對過程進(jìn)行打分,之前主要是音字轉(zhuǎn)換概率,字音轉(zhuǎn)換概率,語言模型概率,輸入歷史。這里我們可以進(jìn)一步引入翻譯技術(shù)。 人機(jī)交互式機(jī)器翻譯研究-在線學(xué)習(xí)方法 在線學(xué)習(xí),就是online learning,即時(shí)學(xué)習(xí)用戶反饋,一般強(qiáng)化學(xué)習(xí),增強(qiáng)學(xué)習(xí)比較多,我們采用的是基于隨機(jī)森林的在線翻譯模型,是一種投票機(jī)制。 根據(jù)信息增益決定決策樹上某一支是否要分叉,同時(shí)根據(jù)當(dāng)前的錯(cuò)誤率決定是否刪除某棵樹,方法比較簡單,主要是基于解決實(shí)際問題以及當(dāng)前可獲得的有效資源的角度進(jìn)行考慮,要找到適合當(dāng)前環(huán)境的方法。 比如說需要翻譯的句子A如下:“獲取或設(shè)置與批注關(guān)聯(lián)的對象”但是之前翻譯過這樣的句子包含了與A的公共子串“關(guān)聯(lián)的對象”,這樣就是如何復(fù)用以前的翻譯結(jié)果?這就是我們需要找到簡單、高效、適合當(dāng)前團(tuán)隊(duì)實(shí)現(xiàn)能力的方法,我們的方案是容易翻譯記憶的NMT(Transformer)如下圖: 不一定最新的論文就能解決當(dāng)前團(tuán)隊(duì)下我們的問題,很多東西還是要結(jié)合實(shí)際去思考適合自己的,最后的效果不一定差。
這里主要說人機(jī)交互式機(jī)器翻譯在騰訊的主要應(yīng)用場景,分為內(nèi)部場景和外部場景,騰訊不同的方向有不同的翻譯團(tuán)隊(duì),進(jìn)行賽馬機(jī)制。如下,同聲傳譯,拍照翻譯,輔助翻譯。技術(shù)問題落地到實(shí)踐是一個(gè)問題,大公司和創(chuàng)業(yè)公司的方向可能不一樣,大公司可以內(nèi)部落地也可以外部落地,創(chuàng)業(yè)公司只能外部落地,內(nèi)部落地不一定意味著產(chǎn)品能夠解決問題,外部落地就很現(xiàn)實(shí),所以如何外部落地,能攬到更多的外部項(xiàng)目是一個(gè)值得思考的問題。 工業(yè)場景對翻譯的需求還是很大的,比如華為、中興、南車、北車,他們一般有自己的翻譯部門,他們是有這個(gè)需求,實(shí)際上他們需要根據(jù)他們自己的業(yè)務(wù)背景,進(jìn)行一些技術(shù)定制,客戶就是大爺,我們聽他們的,雖然有時(shí)候感覺這些需求和高大上算法沒什么關(guān)系,但是沒有客戶的肯定,算法是沒有辦法用的,最后經(jīng)過挺長時(shí)間的行業(yè)調(diào)研,一開始的時(shí)候定制的比較麻煩,后來就習(xí)慣了。 騰訊機(jī)器翻譯應(yīng)用 如何把技術(shù)變成產(chǎn)品,這里有許多路要走,因?yàn)橛脩敉膊恢雷约盒枰裁?,為了避免一系列莫名其妙的需求?/span> 第一步要做的就是需要有明確的需求:比如語種、領(lǐng)域、用途、業(yè)務(wù)接口。 第二步就是確定合適的語料,從哪里買,語料質(zhì)量怎么樣,價(jià)格合不合適,能不能壓價(jià)等,一般都要200萬句對以上。 第三步是集成可用的state of the art技術(shù):輸入法,屬于抽取,翻譯片段挖掘等,很多時(shí)候是有開源工具的,但是開源工具基本上都是有坑的,很多時(shí)候面臨著自己開發(fā)和用開源工具的問題,目前我們是自己開發(fā),因?yàn)槭煜ら_源工具的時(shí)間比我們自己開發(fā)還要久,但是不同的團(tuán)隊(duì)有不同的情況,開源工具容易上手,能拿過來就用。 第四步就是調(diào)試GPU集群,并行加速訓(xùn)練。第五步是部署上線并迭代。 難點(diǎn)在哪里? 人們對于自動(dòng)譯文質(zhì)量過高的期望、開源系統(tǒng)的坑遠(yuǎn)比計(jì)劃的多、如何甄別并且集成最新技術(shù)、如何拉通目標(biāo)場景技術(shù)鏈條,關(guān)于最后一點(diǎn)拉通目標(biāo)場景的技術(shù)鏈條,因?yàn)榘l(fā)論文是將問題聚焦到一個(gè)點(diǎn)上,而做一款產(chǎn)品的時(shí)候,流程和目標(biāo)設(shè)定上環(huán)節(jié)比較多,鏈條比較長。
團(tuán)隊(duì)需要什么樣的人?需要調(diào)參大師、論文機(jī)器、代碼工匠,說起來似乎論文機(jī)器發(fā)揮的作用最小,其實(shí)也不是這樣,如果是創(chuàng)業(yè)公司,老板需要拿最新的論文去忽悠錢,沒有論文機(jī)器是不行的,調(diào)參大師和代碼工匠是必須的,三者的關(guān)系需要高超的管理技能進(jìn)行協(xié)調(diào)這是內(nèi)部的問題。 外部的問題有“數(shù)據(jù)鴻溝”和“工程壁壘”,純技術(shù)團(tuán)隊(duì)是沒有業(yè)務(wù)數(shù)據(jù)的,業(yè)務(wù)數(shù)據(jù)又特別寶貴,如何通過溝通把寶貴的數(shù)據(jù)弄到手是一個(gè)技術(shù)問題;另外一個(gè)是在算法技術(shù)同質(zhì)化的情況下,需要很細(xì)致的步驟安排大量的數(shù)據(jù)清洗和工程問題,這些都是大家比拼的實(shí)力。 最后在設(shè)計(jì)產(chǎn)品的時(shí)候,理念選擇上,設(shè)計(jì)一個(gè)“人工智能產(chǎn)品”還是一個(gè)“用人工智能的產(chǎn)品”,未來的趨勢一定是人工智能產(chǎn)品,但是目前我們還是要幫助產(chǎn)品設(shè)計(jì)出更合理的人工智能的產(chǎn)品。 作者介紹: 黃國平博士畢業(yè)于中國科學(xué)院自動(dòng)化研究所,現(xiàn)為騰訊AI Lab高級(jí)研究員,研究方向?yàn)闄C(jī)器翻譯和自然語言處理,研究興趣為人機(jī)交互式機(jī)器翻譯。 |
|