百度EasyDL AI開(kāi)發(fā)公開(kāi)課第3期:如何0代碼、快速定制企業(yè)級(jí)NLP模型?百度工程師詳解技術(shù)選型與模型調(diào)優(yōu)策略
主講人 | 龍心塵 百度NLP資深研發(fā)工程師
量子位編輯 | 公眾號(hào) QbitAI
近幾年以預(yù)訓(xùn)練為代表的NLP技術(shù)取得了爆發(fā)式發(fā)展,新技術(shù)新模型層出不窮。企業(yè)與開(kāi)發(fā)者如何將最先進(jìn)的NLP領(lǐng)域科研成果,高效地應(yīng)用到業(yè)務(wù)場(chǎng)景中并解決實(shí)際問(wèn)題?
「百度EasyDL AI開(kāi)發(fā)公開(kāi)課」中,百度資深研發(fā)工程師龍心塵結(jié)合世界領(lǐng)先的文心(ERNIE)語(yǔ)義理解技術(shù),通過(guò)產(chǎn)業(yè)實(shí)踐案例,深入解析技術(shù)選型和模型調(diào)優(yōu)的方法,分享了工程實(shí)踐中的經(jīng)驗(yàn)。
講解分為5個(gè)部分:
- NLP常見(jiàn)任務(wù)
- NLP典型應(yīng)用場(chǎng)景
- EasyDL-NLP與文心(ERNIE)簡(jiǎn)介
- 文心核心技術(shù)解析
- NLP定制化實(shí)踐與經(jīng)驗(yàn)分享
直播回放:
以下為分享內(nèi)容整理:
NLP常見(jiàn)任務(wù)
自然語(yǔ)言處理(NLP)大致分為4大經(jīng)典任務(wù):文本分類(lèi),文本匹配,序列標(biāo)注,文本生成。
文本分類(lèi)
假設(shè)輸入文本為x,輸出標(biāo)簽為y,如果y 表示x屬于某一個(gè)類(lèi)別的概率,或者一組類(lèi)別的概率分布,則可抽象為文本分類(lèi)問(wèn)題。
典型的文本分類(lèi)包含情感分析、新聞主題分類(lèi)、文本蘊(yùn)含。
情感分析一般需要判斷某句話是積極的或消極的,屬于單標(biāo)簽分類(lèi)。
新聞主題分類(lèi)相對(duì)復(fù)雜,一個(gè)新聞可能同時(shí)具有多個(gè)互相獨(dú)立的屬性,可以同時(shí)出現(xiàn),屬于多標(biāo)簽分類(lèi)。
文本蘊(yùn)含任務(wù)輸入的是兩段文本,需要判斷兩段文本之間的關(guān)系(包含關(guān)系、對(duì)立關(guān)系、中立關(guān)系等),屬于句對(duì)分類(lèi)。
文本匹配
假設(shè)輸入文本為x,輸出標(biāo)簽為y,如果x是兩段文本(x1、x2),Y表示二者的相似度,則可抽象為文本匹配問(wèn)題。
如圖,x1與x2的意思是非常相似的,所以標(biāo)簽y是1。如果x1與x2的含義不相似,那么輸出的y就是0。如果需要判斷兩者相似的概率,標(biāo)簽y在0-1之間。
文本匹配任務(wù)在搜索引擎、推薦、FAQ等判斷兩句話相似的場(chǎng)景中應(yīng)用非常廣泛。
除此之外,文本聚類(lèi)問(wèn)題也可以通過(guò)文本相似度問(wèn)題進(jìn)行處理。機(jī)器學(xué)習(xí)的聚類(lèi)算法的核心步驟是計(jì)算兩個(gè)樣本之間的距離,而相似度就是兩個(gè)文本之間距離的度量,可以很好地判斷文本間語(yǔ)義層面上的距離。
序列標(biāo)注
假設(shè)輸入文本為x,輸出標(biāo)簽為y,如果x是一段文本,y是一段與x等長(zhǎng)的文本,且x與y的每個(gè)字符一一對(duì)應(yīng),則可抽象為序列標(biāo)注問(wèn)題。
如上圖是一個(gè)命名實(shí)體識(shí)別任務(wù),需要要判斷一句話里的一些關(guān)鍵詞語(yǔ),是否屬于地址、人名等實(shí)體。這句話里面,“廈門(mén)”和“金門(mén)”是兩個(gè)地址實(shí)體。
同時(shí),這個(gè)句子中的每一個(gè)字,我們都會(huì)給出判斷,將不需要關(guān)注的字標(biāo)記為O,因此輸出的判斷標(biāo)簽Y與X是等長(zhǎng)的。
除此之外,分詞、詞性標(biāo)注、組塊分析、語(yǔ)義角色標(biāo)注、詞槽挖掘等,都是典型的序列標(biāo)注任務(wù)。某些人將閱讀理解也理解成一種特殊的序列標(biāo)注,X是2段文本,分別表示正文篇章和問(wèn)題,Y是篇章中的一小段文本,表示對(duì)應(yīng)問(wèn)題的答案。
文本生成
假設(shè)輸入文本為x,輸出標(biāo)簽為y,如果x是一段文本,y是一段不定長(zhǎng)的文本,則可抽象為文本生成問(wèn)題。
最典型的文本生成問(wèn)題是機(jī)器翻譯,比如輸入一段英文,輸出一段其他語(yǔ)言的文字。這兩段文字的字、詞的順序不一定一一對(duì)應(yīng),因此輸出的是一個(gè)不定長(zhǎng)的文本。
另外,文本摘要、標(biāo)題生成、閑聊等都是典型的文本生成任務(wù)。
NLP典型應(yīng)用場(chǎng)景
上述介紹了四大經(jīng)典N(xiāo)LP任務(wù),核心是希望大家注意不同任務(wù)的輸出X與輸出Y。這樣就可以在真實(shí)的NLP應(yīng)用場(chǎng)景中,能把不同任務(wù)拆分成簡(jiǎn)單的典型任務(wù)。
在企業(yè)實(shí)際應(yīng)用和產(chǎn)業(yè)實(shí)踐中,業(yè)務(wù)需求千變?nèi)f化,往往需要對(duì)NLP模型進(jìn)行定制化的訓(xùn)練。
定制過(guò)程中,企業(yè)要考慮三個(gè)要點(diǎn):效率問(wèn)題、效果問(wèn)題、效能問(wèn)題。
為了幫助中小企業(yè)更高效的實(shí)現(xiàn)NLP模型訓(xùn)練、優(yōu)化、部署應(yīng)用,百度面向企業(yè)提供了的零門(mén)檻、一站式AI開(kāi)發(fā)平臺(tái)—EasyDL提供全流程服務(wù)支持,和業(yè)界領(lǐng)先的語(yǔ)義理解技術(shù)平臺(tái)—文心(ERNIE)為企業(yè)降低NLP定制成本,下文為大家詳細(xì)介紹其優(yōu)勢(shì)與核心技術(shù)。
EasyDL:全流程企業(yè)級(jí)定制化服務(wù)支持
EasyDL為大家提供一站式定制化NLP開(kāi)發(fā)平臺(tái),低門(mén)檻、簡(jiǎn)單易用。面向企業(yè)客戶(hù)和開(kāi)發(fā)者提供全流程技術(shù)服務(wù)配套,包括業(yè)務(wù)問(wèn)題分析、技術(shù)選型指導(dǎo)、模型優(yōu)化指導(dǎo)、開(kāi)發(fā)者使用培訓(xùn)等。
EasyDL不僅為企業(yè)客戶(hù)提供全流程方案與技術(shù)支持,在解決企業(yè)業(yè)務(wù)問(wèn)題的同時(shí),也讓企業(yè)能更好地沉淀自身技術(shù)實(shí)力,真正做到“授之以漁”。
文心:降低NLP定制成本
文心(ERNIE)是依托百度深度學(xué)習(xí)平臺(tái)飛槳打造的語(yǔ)義理解技術(shù)與平臺(tái),集先進(jìn)的預(yù)訓(xùn)練模型、全面的NLP算法集、端到端開(kāi)發(fā)套件和平臺(tái)化服務(wù)于一體,為企業(yè)和開(kāi)發(fā)者提供一整套NLP定制與應(yīng)用能力。
文心基于最新一代預(yù)訓(xùn)練范式的技術(shù)優(yōu)勢(shì),能夠大幅降低NLP定制成本。
對(duì)于企業(yè)來(lái)說(shuō),文心的低成本定制能力意味著什么呢?更少的標(biāo)注數(shù)據(jù)、更少的算力投入、更短的開(kāi)發(fā)周期。
文心核心技術(shù):ERNIE 2.0(持續(xù)學(xué)習(xí)語(yǔ)義理解框架)
文心開(kāi)創(chuàng)性地將大數(shù)據(jù)預(yù)訓(xùn)練與多源豐富知識(shí)相結(jié)合,持續(xù)學(xué)習(xí)海量數(shù)據(jù)中的知識(shí),避免災(zāi)難性遺忘,將機(jī)器語(yǔ)義理解水平提升到一個(gè)新的高度。
以中文模型為例,目前ERNIE已經(jīng)學(xué)習(xí)了1500萬(wàn)篇百科語(yǔ)料和詞語(yǔ)、實(shí)體知識(shí),700萬(wàn)個(gè)人類(lèi)對(duì)話,3億的文章的因果結(jié)構(gòu)關(guān)系,以及10億次的搜索查詢(xún)與結(jié)果的對(duì)應(yīng)關(guān)系,以及2000萬(wàn)的語(yǔ)言邏輯關(guān)系知識(shí)。
模型還在持續(xù)不斷地建模新的海量數(shù)據(jù)與知識(shí),不斷地提升下游的應(yīng)用效果。ERNIE在中英文的16個(gè)任務(wù)上已經(jīng)超越了業(yè)界最好模型,全面適用于各類(lèi)NLP應(yīng)用場(chǎng)景。
文心的技術(shù)創(chuàng)新:ERNIE-GEN
為了解決文本生成任務(wù)中的問(wèn)題,ERNIE提出了ERNIE-GEN技術(shù)范式。
首先,ERNIE-GEN主要關(guān)注文本生成任務(wù)中的“曝光偏置”問(wèn)題。ERNIE-GEN采用了填充式生成技術(shù),在訓(xùn)練和解碼中,插入人工符號(hào)(ATTN)和位置編碼來(lái)匯聚上文向量表示,用于每一步的預(yù)測(cè)。
即將模型的注意力從上一個(gè)生成字符轉(zhuǎn)移到更全局的上文表示,以緩解上一個(gè)字符預(yù)測(cè)錯(cuò)誤對(duì)后續(xù)生成的負(fù)面影響,緩解曝光偏置問(wèn)題,增強(qiáng)生成魯棒性。
其次,ERNIE-GEN采取了多流注意力機(jī)制,能夠同時(shí)實(shí)現(xiàn)逐詞生成任務(wù)和逐片段生成任務(wù)。
文心的技術(shù)創(chuàng)新:ERNIE-ViL
我們知道,人類(lèi)的認(rèn)知不僅通過(guò)閱讀文字產(chǎn)生,還通過(guò)觀察大量的事物、查看大量圖片、動(dòng)畫(huà)片、圖文相結(jié)合等方式,是多模態(tài)的形式。
那么,如何讓模型學(xué)習(xí)文本、圖像、語(yǔ)音等不同形式的信息,從而在認(rèn)知理解層面取得更好的效果?
在多模態(tài)領(lǐng)域,我們的ERNIE-ViL(知識(shí)增強(qiáng)的視覺(jué)語(yǔ)言表示學(xué)習(xí))更加強(qiáng)調(diào)的是在引入圖像信息的同時(shí),融合了更多知識(shí)。即細(xì)粒度語(yǔ)義信息抽取,區(qū)分普通詞與語(yǔ)義次,構(gòu)建了物體預(yù)測(cè)、屬性預(yù)測(cè)、關(guān)系預(yù)測(cè)三個(gè)預(yù)訓(xùn)練任務(wù),聚焦細(xì)粒度的語(yǔ)義對(duì)齊知識(shí)。
正是因?yàn)榻Y(jié)合了多模態(tài)與知識(shí),ERNIE-ViL在視覺(jué)問(wèn)答、視覺(jué)常識(shí)推理、引用表達(dá)式理解、圖像檢索、標(biāo)題檢索等5項(xiàng)多模態(tài)任務(wù)集合上取得世界最好的效果。并且在視覺(jué)常識(shí)推理任務(wù)榜單中取得第一名。
案例實(shí)踐分享
實(shí)際應(yīng)用中,NLP定制化訓(xùn)練任務(wù)可拆分成7個(gè)步驟,并不斷循環(huán)、迭代優(yōu)化:
因此,提升NLP模型訓(xùn)練效果,一方面要提升循環(huán)迭代的速度和效率,另一方面則需要考慮如何提升優(yōu)化效果。
1.任務(wù)拆分
首先,遇到任何文本場(chǎng)景的任務(wù)問(wèn)題,都可以拆分成上述的典型任務(wù)。接下來(lái),明確任務(wù)本身的輸入與輸出是什么,明確子任務(wù)的輸入與輸入是什么,然后把這些子任務(wù)組合起來(lái),最終解決問(wèn)題。
以百度APP的搜索問(wèn)答場(chǎng)景為例,輸入的是問(wèn)題,輸出的是答案。
首先進(jìn)行簡(jiǎn)單抽象為一個(gè)文本匹配問(wèn)題。因?yàn)槲覀兛梢蕴崆鞍堰@些答案準(zhǔn)備好,用戶(hù)提問(wèn)時(shí)只需計(jì)算問(wèn)題與答案的匹配度,問(wèn)題與答案匹配度高,就把答案推薦出來(lái),若匹配度低則不推薦。
再來(lái)進(jìn)一步拆分。首先,用戶(hù)輸入的可能并非是明確的問(wèn)題,未必有答案。因此我們需要前置一個(gè)“文本分類(lèi)”任務(wù)來(lái)過(guò)濾問(wèn)題,過(guò)濾掉大量的不是明確問(wèn)題的流量。接下來(lái),再將能夠匹配答案的問(wèn)題進(jìn)行問(wèn)答匹配任務(wù)。
2.技術(shù)選型
技術(shù)選型也可理解為一種廣義的優(yōu)化問(wèn)題:在有限的條件下,找到合適的方案,優(yōu)化出最好的目標(biāo)。所以問(wèn)題的核心是先明確現(xiàn)有條件的限制是什么、目標(biāo)是什么。
接下來(lái),基于應(yīng)用場(chǎng)景、硬件條件,選擇相應(yīng)的可選技術(shù)方案,來(lái)達(dá)到目標(biāo)優(yōu)化效果:
比如對(duì)于模型效果的提升的目標(biāo),可以借鑒以往經(jīng)驗(yàn):
3.選擇網(wǎng)絡(luò)
在文本分類(lèi)的場(chǎng)景下,以BOW網(wǎng)絡(luò)為例,典型網(wǎng)絡(luò)結(jié)構(gòu)依次包括:輸入文本的ID序列、 Embedding、BOW結(jié)構(gòu)、全連接層、Softmax層。
其中BOW層可替換為CNN、TextCNN、GRU、LSTM,隨著網(wǎng)絡(luò)結(jié)構(gòu)越來(lái)越復(fù)雜,模型效果一般也會(huì)依次提升。
Embedding層可以替換為ERNIE、Transformer,也會(huì)提升模型效果。
在文本匹配任務(wù)場(chǎng)景下,有4種不同的網(wǎng)絡(luò)結(jié)構(gòu),分別是單塔pointwise、雙塔pointwise、單塔pairwise、雙塔pairwise。
回到百度搜索問(wèn)答場(chǎng)景下,在任務(wù)拆分這一步,我們將搜索問(wèn)答拆分為文本分類(lèi)、問(wèn)答匹配兩部分。文本分類(lèi)、問(wèn)答匹配對(duì)預(yù)測(cè)速度的要求都非常高,因此我們選擇BOW網(wǎng)絡(luò)。在文本分類(lèi)時(shí)選擇分類(lèi)BOW,在問(wèn)答匹配時(shí)選擇雙塔或者單塔BOW。
4.預(yù)訓(xùn)練模型
下圖詳細(xì)介紹了文心預(yù)訓(xùn)練模型的不同特點(diǎn):
回到百度搜索問(wèn)答場(chǎng)景,教師模型就需要選擇預(yù)訓(xùn)練模型了。為提升教師模型的效果,其中的分類(lèi)任務(wù)選擇ERNIE-BASE 2.0,匹配任務(wù)選擇ERNIE-SIM。
5.訓(xùn)練模型
為提升訓(xùn)練效率,如何選擇GPU或CPU,可結(jié)合實(shí)際情況參考如下:
那么如何用好GPU、提升訓(xùn)練效率?大原則是GPU的利用率越高,訓(xùn)練速度越快。
首先,先小后大,先單機(jī)單卡,再單機(jī)多卡,最后多機(jī)多卡。一般來(lái)說(shuō),單機(jī)多卡的GPU利用率更高、更快。
其次,訓(xùn)練數(shù)據(jù)與batch-size方面的改進(jìn)。如將大文件拆成多個(gè)小文件,設(shè)置合理的數(shù)據(jù)緩沖區(qū)以提升數(shù)據(jù)讀取速度;根據(jù)神經(jīng)網(wǎng)絡(luò)中最大矩陣估算顯存占用,估算batch-size等;多卡模式下多進(jìn)程訓(xùn)練,添加混合精度訓(xùn)練等方法,提升訓(xùn)練速度。
回到百度搜索問(wèn)答場(chǎng)景,教師模型選擇GPU訓(xùn)練,而學(xué)生模型是海量數(shù)據(jù)的淺層網(wǎng)絡(luò),用CPU集群訓(xùn)練效果更好。
6.提升效率
如何提升迭代效率,不浪費(fèi)寶貴的開(kāi)發(fā)時(shí)間?我的經(jīng)驗(yàn)是,要選擇合適的開(kāi)發(fā)平臺(tái)和工具:
另外,規(guī)范的開(kāi)發(fā)流程也是提升迭代效率的關(guān)鍵。首先,需要分析業(yè)務(wù)背景,明確任務(wù)的輸入和輸出,將其抽象成已得到解決的NLP典型任務(wù),并且明確評(píng)估指標(biāo)。
第二步,快速實(shí)現(xiàn)NLP模型基線,建議大家準(zhǔn)備幾千條、格式規(guī)范的訓(xùn)練數(shù)據(jù),進(jìn)行無(wú)代碼訓(xùn)練。同時(shí)選擇好網(wǎng)絡(luò)和預(yù)訓(xùn)練模型。
最后,不斷優(yōu)化模型效果。比如結(jié)合業(yè)務(wù)需求、進(jìn)行更細(xì)致的技術(shù)選型,小數(shù)據(jù)調(diào)試,配置參數(shù)級(jí)訓(xùn)練、進(jìn)行自主調(diào)參等。
7.優(yōu)化效果
對(duì)于ERNIE系列預(yù)訓(xùn)練模型,模型優(yōu)化最重要的一點(diǎn)是優(yōu)化數(shù)據(jù)質(zhì)量。即反復(fù)觀察bad case,針對(duì)典型case增加正確樣本;同時(shí)也可以考慮數(shù)據(jù)降噪相關(guān)策略,提升模型效果。
其次是優(yōu)化數(shù)據(jù)數(shù)量。通過(guò)觀察學(xué)習(xí)曲線來(lái)評(píng)估數(shù)據(jù)數(shù)量是否合適,可以考慮數(shù)據(jù)增強(qiáng)、數(shù)據(jù)蒸餾等策略。
第三點(diǎn)是增加數(shù)據(jù)特征,可以考慮增加非文本特征,或增加新的文本特征(如N-gram、subword、分詞邊界、詞性等)。
第四點(diǎn)是優(yōu)化調(diào)參與組網(wǎng)。大原則是通過(guò)學(xué)習(xí)曲線觀察是否過(guò)擬合,若過(guò)擬合則降低模型復(fù)雜度、增加數(shù)據(jù)量,若欠擬合則增加模型復(fù)雜度。
— 完 —
量子位 QbitAI · 頭條號(hào)簽約
關(guān)注我們,第一時(shí)間獲知前沿科技動(dòng)態(tài)
- 天云數(shù)據(jù)CEO雷濤:從軟件到數(shù)件,AI生態(tài)如何建立自己的“Android”?| 量子位·視點(diǎn)分享回顧2022-03-23
- 火熱報(bào)名中丨2022實(shí)景三維創(chuàng)新峰會(huì)成都站將于4月13日召開(kāi)!2022-03-21
- 從軟件到數(shù)件,AI生態(tài)如何建立自己的“Android”?天云數(shù)據(jù)CEO直播詳解,可預(yù)約 | 量子位·視點(diǎn)2022-03-11
- 什么樣的AI制藥創(chuàng)企才能走得更遠(yuǎn)?來(lái)聽(tīng)聽(tīng)業(yè)內(nèi)怎么說(shuō)|直播報(bào)名2022-03-03