今天,在開源最強(qiáng)NLP模型BERT的TensorFlow代碼和預(yù)訓(xùn)練模型的基礎(chǔ)上,谷歌AI團(tuán)隊(duì)再次發(fā)布一個(gè)多語(yǔ)言模型和一個(gè)中文模型。
上周,谷歌AI團(tuán)隊(duì)開源了備受關(guān)注的“最強(qiáng)NLP模型”BERT的TensorFlow代碼和預(yù)訓(xùn)練模型,不到一天時(shí)間,收獲3000多星!
今天,谷歌再次發(fā)布BERT的多語(yǔ)言模型和中文模型!
BERT,全稱是BidirectionalEncoderRepresentations fromTransformers,是一種預(yù)訓(xùn)練語(yǔ)言表示的新方法。
BERT有多強(qiáng)大呢?它在機(jī)器閱讀理解頂級(jí)水平測(cè)試SQuAD1.1中表現(xiàn)出驚人的成績(jī):全部?jī)蓚€(gè)衡量指標(biāo)上全面超越人類!并且還在11種不同NLP測(cè)試中創(chuàng)出最佳成績(jī),包括將GLUE基準(zhǔn)推至80.4%(絕對(duì)改進(jìn)7.6%),MultiNLI準(zhǔn)確度達(dá)到86.7% (絕對(duì)改進(jìn)率5.6%)等。
新智元近期對(duì)BERT模型作了詳細(xì)的報(bào)道和專家解讀:
NLP歷史突破!谷歌BERT模型狂破11項(xiàng)紀(jì)錄,全面超越人類!
狂破11項(xiàng)記錄,谷歌年度最強(qiáng)NLP論文到底強(qiáng)在哪里?
解讀谷歌最強(qiáng)NLP模型BERT:模型、數(shù)據(jù)和訓(xùn)練
如果你已經(jīng)知道BERT是什么,只想馬上開始使用,可以下載預(yù)訓(xùn)練過(guò)的模型,幾分鐘就可以很好地完成調(diào)優(yōu)。
戳這里直接使用:
https://github.com/google-research/bert/blob/master/multilingual.md
模型
目前有兩種多語(yǔ)言模型可供選擇。我們不打算發(fā)布更多單語(yǔ)言模型,但可能會(huì)在未來(lái)發(fā)布這兩種模型的BERT-Large版本:
BERT-Base, Multilingual:102 languages, 12-layer, 768-hidden, 12-heads, 110M parameters
BERT-Base, Chinese:Chinese Simplified and Traditional, 12-layer, 768-hidden, 12-heads, 110M parameters
多語(yǔ)言模型支持的語(yǔ)言是維基百科上語(yǔ)料最大的前100種語(yǔ)言(泰語(yǔ)除外)。多語(yǔ)言模型也包含中文(和英文),但如果你的微調(diào)數(shù)據(jù)僅限中文,那么中文模型可能會(huì)產(chǎn)生更好的結(jié)果。
結(jié)果
為了評(píng)估這些系統(tǒng),我們使用了XNLI dataset,它是MultiNLI的一個(gè)版本,其中dev集和test集已經(jīng)(由人類)翻譯成15種語(yǔ)言。需要注意的是,訓(xùn)練集是機(jī)器翻譯的(我們使用的是XNLI提供的翻譯,而不是Google NMT)。
以下6種主要語(yǔ)言的評(píng)估結(jié)果:
前兩行是XNLI baseline的結(jié)果,后三行是使用BERT的結(jié)果。
Translate Train表示MultiNLI的訓(xùn)練集是從英語(yǔ)用機(jī)器翻譯成外語(yǔ)的。所以訓(xùn)練和評(píng)估都是用外語(yǔ)完成的。遺憾的是,由于是用機(jī)器翻譯的數(shù)據(jù)進(jìn)行訓(xùn)練,因此無(wú)法量化較低的精度在多大程度上歸因于機(jī)器翻譯的質(zhì)量,多大程度上歸因于預(yù)訓(xùn)練模型的質(zhì)量。
Translate Test表示XNLI測(cè)試集是從外語(yǔ)用機(jī)器翻譯成英語(yǔ)的。因此,訓(xùn)練和評(píng)估都是用英語(yǔ)進(jìn)行的。但是,由于測(cè)試評(píng)估是在機(jī)器翻譯的英語(yǔ)上進(jìn)行的,因此準(zhǔn)確性取決于機(jī)器翻譯系統(tǒng)的質(zhì)量。
Zero Shot表示多語(yǔ)言BERT模型在英語(yǔ)MultiNLI上進(jìn)行了微調(diào),然后在外語(yǔ)XNLI測(cè)試集上進(jìn)行了評(píng)估。在這種情況下,預(yù)訓(xùn)練和微調(diào)的過(guò)程都不涉及機(jī)器翻譯。
請(qǐng)注意,英語(yǔ)的結(jié)果比MultiNLI baseline的84.2要差,因?yàn)檫@個(gè)訓(xùn)練使用的是Multilingual BERT模型,而不是English-only的BERT模型。這意味著對(duì)于語(yǔ)料資源大的語(yǔ)言,多語(yǔ)言模型的表現(xiàn)不如單語(yǔ)言模型。但是,訓(xùn)練和維護(hù)數(shù)十種單語(yǔ)言模型是不可行的。因此,如果你的目標(biāo)是使用英語(yǔ)和中文以外的語(yǔ)言最大限度地提高性能,那么從我們的多語(yǔ)言模型開始,對(duì)你感興趣的語(yǔ)言數(shù)據(jù)進(jìn)行額外的預(yù)訓(xùn)練是有益的。
對(duì)于中文來(lái)說(shuō),用MultilingualBERT-Base和Chinese-onlyBERT-Base訓(xùn)練的中文模型的結(jié)果比較如下:
跟英語(yǔ)類似,單語(yǔ)言模型比多語(yǔ)言模型好3%。
Fine-tuning 示例
多語(yǔ)言模型不需要任何特殊考慮或更改API。我們?cè)趖okenization.py中更新了BasicTokenizer的實(shí)現(xiàn)以支持漢字的tokenization,但沒有更改 tokenization API。
為了測(cè)試新模型,我們修改了run_classifier.py以添加對(duì)XNLI數(shù)據(jù)集的支持。這是MultiNLI的15種語(yǔ)言版本,其中dev/test 集已經(jīng)經(jīng)過(guò)人工翻譯的,訓(xùn)練集已經(jīng)經(jīng)過(guò)機(jī)器翻譯。
要運(yùn)行 fine-tuning 代碼,請(qǐng)下載XNLI dev/test set和XNLI機(jī)器翻譯的訓(xùn)練集,然后將兩個(gè).zip文件解壓縮到目錄$XNLI_DIR中。
在XNLI上運(yùn)行 fine-tuning。該語(yǔ)言被硬編碼為run_classifier.py(默認(rèn)為中文),因此如果要運(yùn)行其他語(yǔ)言,請(qǐng)修改XnliProcessor。
這是一個(gè)大型數(shù)據(jù)集,因此在GPU上訓(xùn)練需要花費(fèi)幾個(gè)小時(shí)(在Cloud TPU上大約需要30分鐘)。要快速運(yùn)行實(shí)驗(yàn)以進(jìn)行調(diào)試,只需將num_train_epochs設(shè)置為較小的值(如0.1)即可。
export BERT_BASE_DIR=/path/to/bert/chinese_L-12_H-768_A-12 # or multilingual_L-12_H-768_A-12export XNLI_DIR=/path/to/xnli python run_classifier.py --task_name=XNLI --do_train=true --do_eval=true --data_dir=$XNLI_DIR --vocab_file=$BERT_BASE_DIR/vocab.txt --bert_config_file=$BERT_BASE_DIR/bert_config.json --init_checkpoint=$BERT_BASE_DIR/bert_model.ckpt --max_seq_length=128 --train_batch_size=32 --learning_rate=5e-5 --num_train_epochs=2.0 --output_dir=/tmp/xnli_output/
使用 Chinese-only 模型,結(jié)果應(yīng)該是這樣的:
***** Eval results ***** eval_accuracy = 0.774116 eval_loss = 0.83554 global_step = 24543 loss = 0.74603訓(xùn)練細(xì)節(jié)
數(shù)據(jù)源和采樣
我們選擇的語(yǔ)言是維基百科上語(yǔ)料最大的前100種語(yǔ)言。將每種語(yǔ)言的整個(gè)Wikipedia轉(zhuǎn)儲(chǔ)數(shù)據(jù)(不包括用戶頁(yè)和討論頁(yè))作為每種語(yǔ)言的訓(xùn)練數(shù)據(jù)。
然而,對(duì)于特定語(yǔ)言,維基百科的語(yǔ)料大小差異很大,而在神經(jīng)網(wǎng)絡(luò)模型中,低資源語(yǔ)言可能是“代表性不足”的(假設(shè)語(yǔ)言一定程度上在有限的模型容量中“競(jìng)爭(zhēng)”)。
維基百科的語(yǔ)料大小也與該語(yǔ)言的使用者人數(shù)有關(guān),而且我們也不想為了一種特定語(yǔ)言在很小的數(shù)據(jù)集上執(zhí)行數(shù)千個(gè)epochs,造成過(guò)度擬合模型。
為了平衡這兩個(gè)因素,我們?cè)谟?xùn)練前數(shù)據(jù)創(chuàng)建(以及WordPiece詞匯創(chuàng)建)期間對(duì)數(shù)據(jù)進(jìn)行了指數(shù)平滑加權(quán)。換句話說(shuō),假設(shè)一種語(yǔ)言的概率是P(L),例如P(English) = 0.21,表示在將所有維基百科總合在一起之后,21%的數(shù)據(jù)是英語(yǔ)的。我們通過(guò)某個(gè)因子S對(duì)每個(gè)概率求冪,然后重新規(guī)范化,并從這個(gè)分布中進(jìn)行采樣。
在這個(gè)示例中,我們使S = 0.7。因此,像英語(yǔ)這樣的高資源語(yǔ)言會(huì)被抽樣不足,而像冰島語(yǔ)這樣的低資源語(yǔ)言會(huì)被過(guò)度采樣。比如說(shuō),在原始分布中,英語(yǔ)比冰島語(yǔ)采樣率高1000倍,但在平滑后,英語(yǔ)的采樣率只高100倍。
Tokenization
對(duì)于Tokenization,我們使用110k共享的WordPiece詞匯表。單詞計(jì)數(shù)的加權(quán)方式與數(shù)據(jù)相同,因此低資源語(yǔ)言的加權(quán)會(huì)增大。 我們故意不使用任何標(biāo)記來(lái)表示輸入語(yǔ)言(以便zero-shot訓(xùn)練可以工作)。
因?yàn)橹形臎]有空白字符,所以在使用WordPiece之前,我們?cè)贑JK Unicode范圍內(nèi)的每個(gè)字符周圍添加了空格。這意味著中文被有效地符號(hào)化了。請(qǐng)注意,CJK Unicode block僅包含漢字字符,不包括朝鮮文/韓文或日語(yǔ)片假名/平假名,這些與其他語(yǔ)言一樣使用空格+ WordPiece進(jìn)行標(biāo)記化。
對(duì)于所有其他語(yǔ)言,我們應(yīng)用與英語(yǔ)相同的方法:(a)字母小寫+重音刪除,(b)標(biāo)點(diǎn)符號(hào)分割,(c)空白標(biāo)記化。 我們知道口音標(biāo)記在某些語(yǔ)言中具有重要意義,但認(rèn)為減少有效詞匯的好處可以彌補(bǔ)這一點(diǎn)。一般來(lái)說(shuō),BERT強(qiáng)大的上下文模型應(yīng)該能彌補(bǔ)刪除重音標(biāo)記而引入的歧義。
支持的語(yǔ)言
多語(yǔ)言模型支持維基百科上語(yǔ)料量最大的前100種語(yǔ)言。
但我們不得不排除的唯一一種語(yǔ)言是泰語(yǔ),因?yàn)樗俏ㄒ灰环N不使用空格來(lái)劃分單詞的語(yǔ)言(除了漢語(yǔ)),而且每個(gè)單詞的字符太多,不能使用基于字符的tokenization。
-
谷歌
+關(guān)注
關(guān)注
27文章
6231瀏覽量
107997 -
語(yǔ)言模型
+關(guān)注
關(guān)注
0文章
561瀏覽量
10771 -
機(jī)器翻譯
+關(guān)注
關(guān)注
0文章
140瀏覽量
15181
原文標(biāo)題:谷歌最強(qiáng)NLP模型BERT官方中文版來(lái)了!多語(yǔ)言模型支持100種語(yǔ)言
文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
?VLM(視覺語(yǔ)言模型)?詳細(xì)解析

摩爾線程宣布成功部署DeepSeek蒸餾模型推理服務(wù)
語(yǔ)言模型管理的作用
谷歌正式發(fā)布Gemini 2.0 性能提升近兩倍
大語(yǔ)言模型開發(fā)框架是什么
大語(yǔ)言模型開發(fā)語(yǔ)言是什么
大語(yǔ)言模型如何開發(fā)
谷歌計(jì)劃12月發(fā)布Gemini 2.0模型
Llama 3 語(yǔ)言模型應(yīng)用
ChatGPT 的多語(yǔ)言支持特點(diǎn)
科大訊飛發(fā)布訊飛星火4.0 Turbo大模型及星火多語(yǔ)言大模型
谷歌全新推出開放式視覺語(yǔ)言模型PaliGemma
使用OpenVINO 2024.4在算力魔方上部署Llama-3.2-1B-Instruct模型

評(píng)論