国产chinesehdxxxx老太婆,办公室玩弄爆乳女秘hd,扒开腿狂躁女人爽出白浆 ,丁香婷婷激情俺也去俺来也,ww国产内射精品后入国产

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

小米在預訓練模型的探索與優(yōu)化

深度學習自然語言處理 ? 來源:深度學習自然語言處理 ? 作者:深度學習自然語言 ? 2020-12-31 10:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

導讀:預訓練模型在NLP大放異彩,并開啟了預訓練-微調(diào)的NLP范式時代。由于工業(yè)領域相關業(yè)務的復雜性,以及工業(yè)應用對推理性能的要求,大規(guī)模預訓練模型往往不能簡單直接地被應用于NLP業(yè)務中。本文將為大家?guī)硇∶自陬A訓練模型的探索與優(yōu)化。

01

預訓練簡介

87bfe21c-4a91-11eb-8b86-12bb97331649.png

預訓練與詞向量的方法一脈相承。詞向量是從任務無關和大量的無監(jiān)督語料中學習到詞的分布式表達,即文檔中詞的向量化表達。在得到詞向量之后,一般會輸入到下游任務中,進行后續(xù)的計算,從而得到任務相關的模型。

但是,詞向量的學習方法存在一個問題:不能對文檔中的上下文進行建模,對于上面的例子“蘋果”在兩個句子中的表達意思是不一樣的,而詞向量的表達卻是同一個,所以在表達能力的多樣性上會有局限,這是一種靜態(tài)的Word Embedding。

在后面的發(fā)展中,有了根據(jù)上下文建模的Word Embedding,比如,可以在學習上嘗試使用雙向LSTM模型,在非監(jiān)督語料學習詞向量,這比靜態(tài)的詞向量網(wǎng)絡會復雜一些,最后可以通過隱層得到動態(tài)的詞向量輸入到下游任務中。

1. 序列建模方法

893daaa2-4a91-11eb-8b86-12bb97331649.png

在NLP中,一般使用序列建模的方法。之前比較常用的序列建模是LSTM遞歸神經(jīng)網(wǎng)絡,其問題是建模時,句子中兩個遠距離詞之間的交互是間接的。

17年Transformer發(fā)布之后,在NLP任務中取得了很大的提升。這里面Self-Attention可以對任意詞語間進行直接的交互,Multi-head Attention可以表達在不同類型的進行語義交互。

2. 預訓練模型

8a1c167a-4a91-11eb-8b86-12bb97331649.png

在這之后,預訓練模型開始流行起來。

首先是ELMO,依然使用的是雙向LSTM,它將模型做的更深,并且在大規(guī)模的無監(jiān)督語料中進行訓練,使用的訓練任務是語言模型。對于具體的任務,將從ELMO得到的詞向量作為特征輸入到下游任務中,ELMO這種的預訓練屬于Feature based Pretraining。

其次是GPT,它使用的是Transformer結(jié)構,訓練任務是從左到右的語言模型,比較適合生成類的任務。

最后是BERT,依然使用的Transformer結(jié)構,訓練任務換成了Mask Language Model,可以對詞語的上下文進行建模。

3. BERT模型

8a6f92dc-4a91-11eb-8b86-12bb97331649.png

BERT是一種Pretrain和Finetune的訓練方式,在Pretrain階段使用海量的非監(jiān)督語料訓練出一個與任務無關的公共模型,在Finetune階段可以使用少量的監(jiān)督語料訓練一個任務相關且效果更優(yōu)的模型。

4. BERT效果

8ae1dc0c-4a91-11eb-8b86-12bb97331649.png

BERT可以靈活的適配下游任務,比如句對分類、文本分類、序列標注、QA等等。另一方面BERT的參數(shù)規(guī)模也是非常大的,BertBase有110M的參數(shù),BertLarge有340M參數(shù)。

5. 預訓練模型發(fā)展

8b1a0488-4a91-11eb-8b86-12bb97331649.png

在BERT之后,預訓練模型的發(fā)展非常迅速,出現(xiàn)了很多新的預訓練模型。這些模型的趨勢是模型參數(shù)在不斷的增大。

02

預訓練落地挑戰(zhàn)

我們以對話系統(tǒng)來介紹下預訓練落地的一些挑戰(zhàn)。對話系統(tǒng)的流程是將輸入的語音通過ASR識別成文本Query,然后進行分詞。由于語音的輸入一般是連續(xù)的,所以需要進行語義的斷句。接下來,進行意圖分類將Query分類到天氣/音樂/聊天……這些類別中,再根據(jù)Query來匹配到答案,其中匹配的方法可以是檢索式也可以是生成式。

在整個對話系統(tǒng)中,預訓練模型可以應用到很多任務中,遇到的挑戰(zhàn)主要有以下幾個方面:

挑戰(zhàn)一:推理延時高、成本高

8b9c1b58-4a91-11eb-8b86-12bb97331649.png

第一個挑戰(zhàn)是由于預訓練模型的參數(shù)比較大,會引起推理的延時比較高以及單卡的吞吐比較低,所以推理延時高和成本高是一個通用的挑戰(zhàn)。

挑戰(zhàn)二:知識融入

8c2c8e18-4a91-11eb-8b86-12bb97331649.png

第二個挑戰(zhàn)是一些任務除了使用原生的BERT模型之外,還需要融入一些外部的知識。比如意圖分類的任務,Query中的歌手、歌曲名實體的融入可以幫助模型將Query更準確的分類到音樂類中。

挑戰(zhàn)三:如何根據(jù)任務調(diào)整模型和訓練

8cde37ee-4a91-11eb-8b86-12bb97331649.png

第三個挑戰(zhàn)是我們發(fā)現(xiàn)一些任務需要在預訓練模型的基礎上進行調(diào)整——模型結(jié)構上或者訓練方法上。比如分詞任務,同樣一句話我們可能同時需要粗粒度的分詞或者細粒度的分詞結(jié)果,對于原生BERT的序列標注任務需要一些適配。另外,像是對話生成類的任務,傳統(tǒng)上使用Encoder和Decoder的模式,在原生BERT需要進行訓練方法的改進。

03

預訓練實踐探索

1. 推理效率

前面我們已經(jīng)提到,對于BERT的一個挑戰(zhàn)是模型參數(shù)很大,針對這個問題我們很容易想到是不是可以對模型進行壓縮,而知識蒸餾是一種常用的模型壓縮方法。

①知識蒸餾

知識蒸餾是由一個大模型(teacher模型)通過蒸餾數(shù)據(jù)來生成一個小模型(student模型)。針對分類任務,蒸餾數(shù)據(jù)相對原始數(shù)據(jù)會變成soft label的形式,更利于小模型學習到模型中的知識。

8ec88d48-4a91-11eb-8b86-12bb97331649.png

前面說到預訓練模型可以分為Pretrain階段和Finetune階段,對于知識蒸餾來說,也可以分別對Pretrain階段和Finetune階段進行蒸餾。其中,因為Pretrain階段時間會很慢,蒸餾Pretrain也很慢,一般時間是周級別的。另一種方法是跳過Pretrain的階段,使用小模型作為學生的初始模型,直接進行Finetune的蒸餾階段。在實踐中我們發(fā)現(xiàn),這種方式可以得到一個效果不錯的模型。好處是Finetune階段比較快,天級別就可以完成一個蒸餾任務。

8f454a04-4a91-11eb-8b86-12bb97331649.png

我們發(fā)現(xiàn)多模型集成蒸餾對模型效果有一定的提升。多模型集成蒸餾是我們同時訓練多個教師模型,每個教師模型會對數(shù)據(jù)生成一份蒸餾后的數(shù)據(jù)。比如分類任務,會生成多個logits這樣概率的分布,然后通過教師集成為一個logits,最后用這個融合后的logits去優(yōu)化最終的學生模型。

8fc5e600-4a91-11eb-8b86-12bb97331649.png

在蒸餾的效果上,以語義斷句任務為例,我們做了三版的模型:

第一版使用單模型的BERT去蒸餾學生模型

第二版使用多模型進行蒸餾,這里面使用的集成策略也相對簡單

第三版使用更多的教師模型且更復雜的集成策略來蒸餾學生模型

從效果上面看,準確率和召回率三版模型都有逐步的提升,尤其集成教師蒸餾的方法在召回率上的效果有了較大的提升。

②低精度推理

9156da2e-4a91-11eb-8b86-12bb97331649.png

我們都知道在模型訓練時,參數(shù)一般都是以float32存儲的。由于神經(jīng)網(wǎng)絡計算有一定的魯棒性,使用float16半精度的表示也可以達到接近float32的效果。我們可以看到在GPU V100上,半精度算力可以達到單精度的兩倍,在推理延時和吞吐上都具有優(yōu)勢。

91b4dd18-4a91-11eb-8b86-12bb97331649.png

具體的操作是將各個float32位的參數(shù)矩陣都轉(zhuǎn)換成float16位的格式。在實際應用,如Query-Question相似度計算任務中,低精度推理的精度損失小于1%,而P99的延時從200ms降到了80ms,有一倍以上的推理速度降低。

③算子融合

92222030-4a91-11eb-8b86-12bb97331649.png

在推理速率上的提升,我們還嘗試了另一種方法:算子融合。

它的初衷是,Transformer從結(jié)構上看每一層都有self-attention,add,layer-normalize,feed forward,sublayer等步驟。實際上,中間的每一步轉(zhuǎn)化到具體的深度學習框架中都是非常長的算子步驟。比如像layer-normalize這一步需要tensorflow中6-7個甚至更多的算子計算序列來完成。這樣在計算框架中OP粒度很小,而CPU在很多時間都是在等待OP的內(nèi)存交換和調(diào)度,導致CPU大部分時間都是在空轉(zhuǎn),使得計算效率較低。

92ef632e-4a91-11eb-8b86-12bb97331649.png

算子融合的思路就是將這些相鄰的算子盡可能融合成一個算子,這樣就能讓CPU最大限度的連續(xù)運行。上圖就是將Transformer中的一個block進行了算子融合,將多個小的算子融合成大的算子。

94654df4-4a91-11eb-8b86-12bb97331649.png

我們可以看到通過加入算子融合,在低精度推理上,推理速度又降低了一倍。這樣就可以將BERT這種大的模型推到線上落地。

2. 知識融合

①問題

94f52d52-4a91-11eb-8b86-12bb97331649.png

回顧一下之前的對話系統(tǒng)場景,在落地意圖分類任務時,有一些類別包含領域相關的外部信息。比如音樂包含歌手名、歌曲名這樣的信息,我們利用這些信息可以更容易地將query分到對應的類別上。

這樣問題就可以抽象表達為如何將輸入的原始序列和槽位的標簽序列融合在一起用來做分類模型。一個簡單的方法就是將標簽序列也作為輸入,輸入到BERT中,但是BERT在訓練中沒有見到過這樣的輸入,這樣分類的效果會差一些。

②方案

982723c2-4a91-11eb-8b86-12bb97331649.png

介紹下我們的知識融合方案:

首先引入槽位注意力機制,原始輸入的Query會經(jīng)過BERT計算輸出一個隱層的表達,槽位的標簽也會做一個嵌入的表達。考慮到同一個詞語位置的地方會有多個槽位信息,我們對于這個多標簽的情況可以做一個池化操作,融合為一個向量。之后做一個線性變換,將文本序列和標簽序列映射到同一個空間,在同一個空間進行attention操作使兩個序列進行交互,這樣就可以得到原始特征和標簽特征的融合特征表示。

9878a83c-4a91-11eb-8b86-12bb97331649.png

在這之后,我們加入了一個融合門控機制。一般提取出來的標簽都會有一些噪聲,我們通過外部知識獲取的標簽會有一些不準確的可能,所以我們需要確定有多少程度的標簽信息可以加入到原始序列中。我們加入的是一個動態(tài)門控的機制,將文本特征和槽位特征進行一個動態(tài)的加權。在融合門控之后加入了一個多頭注意力機制,它的作用是在融合之后的特征進行上下文交互來建模。

③效果對比

992bc96c-4a91-11eb-8b86-12bb97331649.png

綜合上面這些方法的融合,在意圖分類這個任務上對比單獨使用BERT和融入槽位信息的BERT,融入了槽位信息之后準確率上會有一定量的提升。在上面的例子中,“想聽說不出的秘密”和“我不想說出這個秘密”由于加入的外部知識能夠很好的分類到相應的類別當中。

3. 任務適配

任務一:多粒度分詞

①問題

998b8d02-4a91-11eb-8b86-12bb97331649.png

針對同一句話,我們會有粗細粒度不同的分詞需求。比如:這是一家移動互聯(lián)網(wǎng)公司,粗粒度:這/是/一家/移動互聯(lián)網(wǎng)/公司,細粒度:這/是/一家/移動/互聯(lián)網(wǎng)/公司,所以我們需要模型的調(diào)整來完成這樣的需求。

分詞任務可以看成是序列標注的任務,輸入的是文本,輸出是每個文字上各個標簽的開始或者結(jié)束。一種簡單的一種做法就是為粗/細粒度分別訓練兩版不同的模型,但是模型的維護成本和運行成本都比較高。

②方案

9a914d90-4a91-11eb-8b86-12bb97331649.png

我們的方法是構建一個統(tǒng)一的多粒度分詞模型。它的思想是輸入時將分詞粒度的標簽也加入到輸入序列中,指導分詞粒度的結(jié)果。比如上圖中使用fine/coarse來分別代表細/粗粒度標簽,模型的結(jié)果就根據(jù)這個標簽來適配。

我們除了使用BERT模型網(wǎng)絡外也加入了Bigram的向量特征進行融合,之后使用多頭注意力機制對融合特征的上下文進行建模,最后進行MLP Decoder。除了分詞本身的學習以外,分詞類型也可以作為一個學習任務,兩個任務共同訓練這樣一個網(wǎng)絡。

③效果

9b7c6492-4a91-11eb-8b86-12bb97331649.png

如圖中表格所示,我們使用的多粒度分詞模型在很多任務上都有不錯的效果。通過上面展示的示例可以看到,這種多粒度分詞方法也是一種靈活的分詞方式。

任務二:生成式對話

①問題

9c8b0474-4a91-11eb-8b86-12bb97331649.png

針對生成式對話這樣的場景,一般輸入一個Question,輸出為一個Reply。通常我們會在互聯(lián)網(wǎng)社區(qū)獲取大量Q/R的數(shù)據(jù)作為訓練語料來訓練模型。傳統(tǒng)來說,這是一個序列到序列的生成任務,跟翻譯模型的訓練過程比較相近。

傳統(tǒng)的seq2seq模型使用Encoder和Decoder進行建模,問題是沒有預訓練的過程。

另一種方法是使用類似GPT的預訓練方式,將Q和R在一起建模,中間使用[SEP]進行分割,局限是在學習的過程中只能看到文本左邊的內(nèi)容,而不能對整個文本上下文進行建模。

②方案

9d2787fe-4a91-11eb-8b86-12bb97331649.png

我們采用的是一種多任務的訓練方法。先使用一個基礎的預訓練模型(BERT-Base)來初始化生成式模型的參數(shù),接下來就對話任務進行多任務的訓練,比如MLM、PLM、Mask Pos Predict等語言模型訓練任務,最終在解碼階端可以采用通用的自回歸方式生成。

③效果

9e0afdb8-4a91-11eb-8b86-12bb97331649.png

從實驗對比來看,跟傳統(tǒng)的seq2seq、GPT相比,加入多任務訓練的方式在針對回復相關性上有很明顯的提升。從上圖右邊示例中可以看到,隨著語料數(shù)據(jù)不斷的增大和模型多任務的學習,生成的回復有很好的連貫性和相關性。

04

總結(jié)與展望1. 總結(jié)

本文主要介紹了推理效率、知識融入和任務適配。

推理效率:在知識蒸餾方面使用多教師模型集成蒸餾是一種可以將模型壓縮更小,保證模型效果的方法;而推理加速方面使用低精度推理和算子融合的方法可以幫助推理速度有幾倍的提升。

知識融入:在對話系統(tǒng)意圖識別任務中,通過在原始序列中加入槽位信息序列,使用attention的方法將兩個特征序列融合成一個序列。

任務適配:多粒度分詞任務是在輸入上加入適配的標簽來指導輸出的一種自適應的改變。生成式對話采用聯(lián)合多任務訓練的方式能夠集成預訓練和序列到序列的生成模型。

2. 展望

輕量級模型

知識融入

預訓練平臺

原文標題:小米在預訓練模型的探索與優(yōu)化

文章出處:【微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

責任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 模型
    +關注

    關注

    1

    文章

    3521

    瀏覽量

    50427
  • 小米
    +關注

    關注

    70

    文章

    14472

    瀏覽量

    147332
  • nlp
    nlp
    +關注

    關注

    1

    文章

    490

    瀏覽量

    22625

原文標題:小米在預訓練模型的探索與優(yōu)化

文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    用PaddleNLP為GPT-2模型制作FineWeb二進制訓練數(shù)據(jù)集

    作者:算力魔方創(chuàng)始人/英特爾創(chuàng)新大使劉力 《用PaddleNLP4060單卡上實踐大模型訓練技術》發(fā)布后收到讀者熱烈反響,很多讀者要求進一步講解更多的技術細節(jié)。本文主要針對大語言
    的頭像 發(fā)表于 03-21 18:24 ?1684次閱讀
    用PaddleNLP為GPT-2<b class='flag-5'>模型</b>制作FineWeb二進制<b class='flag-5'>預</b><b class='flag-5'>訓練</b>數(shù)據(jù)集

    從Open Model Zoo下載的FastSeg大型公共訓練模型,無法導入名稱是怎么回事?

    從 Open Model Zoo 下載的 FastSeg 大型公共訓練模型。 運行 converter.py 以將 FastSeg 大型模型轉(zhuǎn)換為中間表示 (IR): pyth
    發(fā)表于 03-05 07:22

    為什么無法使用Dla_compilerOpenVINO?中編譯用于FPGA的IR模型?

    導入了訓練神經(jīng)網(wǎng)絡模型。 使用模型優(yōu)化器轉(zhuǎn)換為 IR 模型: mo --saved_mode
    發(fā)表于 03-05 06:00

    用PaddleNLP4060單卡上實踐大模型訓練技術

    作者:算力魔方創(chuàng)始人/英特爾創(chuàng)新大使劉力 之前我們分享了《從零開始訓練一個大語言模型需要投資多少錢》,其中高昂的訓練費用讓許多對大模型
    的頭像 發(fā)表于 02-19 16:10 ?999次閱讀
    用PaddleNLP<b class='flag-5'>在</b>4060單卡上實踐大<b class='flag-5'>模型</b><b class='flag-5'>預</b><b class='flag-5'>訓練</b>技術

    【「基于大模型的RAG應用開發(fā)與優(yōu)化」閱讀體驗】+大模型微調(diào)技術解讀

    今天學習<基于大模型的RAG應用開發(fā)與優(yōu)化>這本書。大模型微調(diào)是深度學習領域中的一項關鍵技術,它指的是已經(jīng)
    發(fā)表于 01-14 16:51

    《具身智能機器人系統(tǒng)》第7-9章閱讀心得之具身智能機器人與大模型

    的應用。MAML算法通過二階優(yōu)化找到對任務變化敏感的模型參數(shù),實現(xiàn)了快速適應。上下文學習則引入了注意力機制,使模型能夠根據(jù)當前場景動態(tài)調(diào)整行為策略。
    發(fā)表于 12-24 15:03

    KerasHub統(tǒng)一、全面的訓練模型

    深度學習領域正在迅速發(fā)展,處理各種類型的任務中,訓練模型變得越來越重要。Keras 以其用戶友好型 API 和對易用性的重視而聞名,始終處于這一動向的前沿。Keras 擁有專用的內(nèi)
    的頭像 發(fā)表于 12-20 10:32 ?501次閱讀

    什么是大模型、大模型是怎么訓練出來的及大模型作用

    ,基礎模型。 ? 大模型是一個簡稱,完整的叫法,應該是“人工智能訓練模型”。
    的頭像 發(fā)表于 11-25 09:29 ?1.3w次閱讀
    什么是大<b class='flag-5'>模型</b>、大<b class='flag-5'>模型</b>是怎么<b class='flag-5'>訓練</b>出來的及大<b class='flag-5'>模型</b>作用

    使用PyTorch英特爾獨立顯卡上訓練模型

    《PyTorch 2.5重磅更新:性能優(yōu)化+新特性》中的一個新特性就是:正式支持英特爾獨立顯卡上訓練模型
    的頭像 發(fā)表于 11-01 14:21 ?2054次閱讀
    使用PyTorch<b class='flag-5'>在</b>英特爾獨立顯卡上<b class='flag-5'>訓練</b><b class='flag-5'>模型</b>

    AI大模型訓練數(shù)據(jù)來源分析

    AI大模型訓練數(shù)據(jù)來源廣泛且多元化,這些數(shù)據(jù)源對于構建和優(yōu)化AI模型至關重要。以下是對AI大模型訓練
    的頭像 發(fā)表于 10-23 15:32 ?3676次閱讀

    AI大模型的性能優(yōu)化方法

    AI大模型的性能優(yōu)化是一個復雜而關鍵的任務,涉及多個方面和策略。以下是一些主要的性能優(yōu)化方法: 一、模型壓縮與優(yōu)化
    的頭像 發(fā)表于 10-23 15:01 ?2424次閱讀

    直播預約 |數(shù)據(jù)智能系列講座第4期:訓練的基礎模型下的持續(xù)學習

    神經(jīng)網(wǎng)絡,特別是訓練的基礎模型研究得到了廣泛的應用,但其仍然主要依賴于大量樣本上的批量式訓練。本報告將探討實現(xiàn)
    的頭像 發(fā)表于 10-18 08:09 ?595次閱讀
    直播預約 |數(shù)據(jù)智能系列講座第4期:<b class='flag-5'>預</b><b class='flag-5'>訓練</b>的基礎<b class='flag-5'>模型</b>下的持續(xù)學習

    FP8模型訓練中Debug優(yōu)化思路

    目前,市場上許多公司都積極開展基于 FP8 的大模型訓練,以提高計算效率和性能。在此,我們整理并總結(jié)了客戶及 NVIDIA 技術團隊 FP8 模型
    的頭像 發(fā)表于 09-06 14:36 ?930次閱讀
    FP8<b class='flag-5'>模型</b><b class='flag-5'>訓練</b>中Debug<b class='flag-5'>優(yōu)化</b>思路

    蘋果承認使用谷歌芯片來訓練AI

    蘋果公司最近在一篇技術論文中披露,其先進的人工智能系統(tǒng)Apple Intelligence背后的兩個關鍵AI模型,是谷歌設計的云端芯片上完成訓練的。這一消息標志著
    的頭像 發(fā)表于 07-30 17:03 ?918次閱讀

    蘋果揭示AI新動向:Apple Intelligence模型谷歌云端芯片上訓練

    蘋果公司最新的技術論文中披露了一項重要信息,其全新的人工智能系統(tǒng)Apple Intelligence所依賴的模型并非傳統(tǒng)上大型科技公司首選的NVIDIA GPU,而是選擇了谷歌設計的云端芯片上進行
    的頭像 發(fā)表于 07-30 15:00 ?851次閱讀