作者 | 周明
編輯 | 陳彩嫻
8月29日至30日,由中國科學技術協會、中國科學院、南京市人民政府為指導單位,中國人工智慧學會、南京市建鄴區人民政府、江蘇省科學技術協會主辦的主題為“智周萬物”的2020年中國人工智慧大會(CCAI 2020)在江蘇南京新加坡·南京生態科技島舉辦。在大會上,微軟亞洲研究院副院長、國際計算語言學會(ACL)前任主席周明做了主題為《預訓練模型在多語言、多模態任務的進展》的特邀報告。
以下是周明老師的演講實錄:
1 預訓練模型助力NLP
自然語言處理(NLP),目的是使得計算機具備人類的聽、說、讀、寫、譯、問、答、搜尋、摘要、對話和聊天等能力,並可利用知識和常識進行推理和決策,並支援客服、診斷、法律、教學等場景。自然語言理解,被認為是AI皇#冠上的明珠。一旦有突破,則會大幅度推動AI在很多重要場景落地。
過去這五年,對自然語言是一個難忘的五年,它的一個標誌就是神經網路全面引入到了自然語言理解。從大規模的語言資料到強有力的算力,加上深度學習,把整個自然語言帶到一個新的階段。
今天我要講的預訓練模型,它使自然語言處理由原來的手工調參、依靠ML專家的階段,進入到可以大規模、可複製的大工業施展的階段,令我們這個領域的人感到非常振奮。而且預訓練模型從單語言、擴充套件到多語言、多模態任務。一路銳氣正盛,所向披靡。
那麼,預訓練模型到底是什麼,它是怎麼應用在很多產品裡,未來又有哪些發展機會和挑戰呢。下面試圖由淺入深地給大家介紹一下。
2 預訓練模型
下面簡要介紹預訓練模型的基礎技術,包括Transformer、自監督學習、微調。然後詳細介紹預訓練模型在語言、影像、文件和影片等任務中的進展,
預訓練透過自監督學習從大規模資料中獲得與具體任務無關的預訓練模型。體現某一個詞在一個特定上下文中的語義表徵。第二個步驟是微調,針對具體的任務修正網路。訓練資料可以是文字、文字-影像對、文字-影片對。預訓練模型的訓練方法可使用自監督學習技術(如自迴歸的語言模型和自編碼技術)。可訓練單語言、多語言和多模態的模型。此類模型可經過微調之後,用於支援分類、序列標記、結構預測和序列生成等各項技術,並構建文摘、機器翻譯、圖片檢索、影片註釋等應用。
為什麼我們要做預訓練模型?原因如下:
首先,預訓練模型是一種遷移學習的應用,利用幾乎無限的文字,學習輸入句子的每一個成員的上下文相關的表示,它隱式地學習到了通用的語法語義知識。
第二,它可以將從開放領域學到的知識遷移到下游任務,以改善低資源任務,對低資源語言處理也非常有利。
第三,預訓練模型在幾乎所有 NLP 任務中都取得了目前最佳的成果。
最後,這個預訓練模型+微調機制具備很好的可擴充套件性,在支援一個新任務時,只需要利用該任務的標註資料進行微調即可,一般工程師就可以實現。
下面介紹預訓練模型的三個關鍵技術。
1、Transformer
它在NLP各個任務中都取得了優異的效能,它是預訓練語言模型的核心網路。給定一句話或是一個段落作為輸入,首先將輸入序列中各個詞轉換為其對應的詞向量,同時加上每一個詞的位置向量,體現詞在序列的位置。然後將這些詞向量輸入到多層Transformer網路中,透過自注意力(self-attention)機制來學習詞與詞之間的關係,編碼其上下文資訊;再透過一個前饋網路經過非線性變化,輸出綜合了上下文特徵的各個詞的向量表示。
每一層Transformer網路主要由Multi-head self-attention層(多頭自注意力機制)和前饋網路層兩個子層構成。Multi-head self-attention會並行地執行多個不同引數的self-attention,並將各個self-attention的結果拼接作為後續網路的輸入,self-attention機制會在後面中做詳細介紹。此後,我們得到了蘊含當前上下文資訊的各個詞的表示,然後網路會將其輸入到前饋網路層以計算非線性層次的特徵。
在每一層Transformer網路中,會將殘差連線(residual connection)把自注意力機制前或者前饋神經網路之前的向量引入進來,以增強自注意力機制或者前饋網路的輸出結果向量。並且還做一個layer normalization,也就是透過歸一化把同層的各個節點的多維向量對映到一個區間裡面,這樣各層節點的向量在一個區間裡面。這兩個操作加入在每個子層後,可更加平滑地訓練深層次網路。
Transformer可以用於編碼,也可以用於解碼。所謂解碼就是根據一個句子的輸入得到一個預想的結果,比如機器翻譯(輸入源語言句子,輸出目標語言句子),或者閱讀理解(輸入文件和問題,輸出答案)。解碼時,已經解碼出來的詞要做一個自注意力機制,之後和編碼得到的隱狀態的序列再做一個注意力機制。這樣可以做N層。然後透過一個線性層對映到詞表的大小的一個向量。每個向量代表一個詞表詞的輸出可能性,經過一個Softmax層得到每個詞的輸出機率。
接下來詳細介紹self-attention機制,以一個head作為示例。假定當前輸入包含三個詞,給定其輸入詞向量或是其上一層Transformer網路的輸出,將其透過三組線性變換,轉換得到三組queries、keys 和 values向量。query和key向量用來計算兩兩詞之間的得分,也就是其依賴關係,這個得分會同其對應的value向量做加權和,以得到每個詞綜合上下文資訊的表示。
給定當前第一個詞的query向量,其首先同各個詞的key向量透過點積操作得到這兩個詞的得分,這些得分用來表示這兩個詞的依賴或是相關程度。這些得分之後會根據query等向量的維度做一定比例的縮放,並將這些得分透過softmax操作做歸一化。
之後,各個得分會同其相對應的value向量相乘得到針對第一個詞加權的各個value向量,這些加權的value向量最終相加以得到當前第一個詞的上下文表示。
在得到第一個詞的上下文表示後,給定第二個詞的query向量,我們會重複之前的操作,計算當前query向量同各個詞key向量的得分,對這些得分做Softmax歸一化處理,並將這些得分同其對應的value向量做加權和,以得到其編碼上下文資訊的表示。
下面是一個最簡化的例子以便簡單說明自注意力機制。為了簡單起見,這裡假設Q、K和V的變化都不起作用,也就是不變。
輸入是The weather is nice today。利用自注意力機制調整每個詞的表示。比如The。我們認為它要受到其他所有詞的影響。但是影響力可大可小。那麼每個詞的影響力是透過計算the 與每個詞的關聯度,然後透過一個softmax歸一化得到一個權值。每個詞一個權值。這樣the的最後表示就是和每個詞計算關聯度的結果之和。
多頭注意力機制就是對一個節點,可以設定幾組K、Q和V,分別計算關聯度(透過Q和K計算點積)和加權調整的值(透過V和關聯度計算)。幾組結果可以拼在一起,透過一個線性變換,體現多角度的特徵抽取。多頭可以是16個頭、12個頭等。
2、自監督學習
在預訓練的模型中,AR(自迴歸)LM 和 AE(自動編碼器)是最常用的自監督學習方法,其中,自迴歸LM 旨在利用前面的詞序列預測下個詞的出現機率(語言模型)。自動編碼器旨在對損壞的輸入句子,比如遮掩了句子某個詞、或者打亂了詞序等,重建原始資料。透過這些自監督學習手段來學習單詞的上下文相關表示。
3、微調
在做具體任務時,微調旨在利用其標註樣本對預訓練網路的引數進行調整。以我們使用基於BERT(一種流行的預訓練模型)為例來判斷兩個句子是否語義相同。輸入是兩個句子,經過BERT得到每個句子的對應編碼表示,我們可以簡單地用預訓練模型的第一個隱節點預測分類標記判斷兩個句子是同義句子的機率,同時需要額外加一個線性層和softmax計算得到分類標籤的分佈。
預測損失可以反傳給 BERT再對網路進行微調。當然也可以針對具體任務設計一個新網路,把預訓練的結果作為其輸入。
下面介紹預訓練模型的歷史沿革。
預訓練模型的發展雖然這幾年才大熱,但是我覺得源於早期的詞嵌入(word embedding)的工作。比如Word2Vec。它的訓練的結果是詞的嵌入,是一個靜態的表示;此後ULMFiT 是第一個使用RNN基於LM訓練的上下文相關的預訓練模型;CoVe利用翻譯任務來訓練編碼器-解碼器,並使用編碼器作為預訓練模型;ELMo 使用雙向 LSTM合併兩個方向的隱狀態獲得上下文相關表示;GPT採用LM進行訓練,它是基於Transformer的單向預訓練模型;BERT是基於Transformer的基於掩碼的預訓練模型;MT-DNN基於BERT增加了一些任務進行多工訓練;MASS使用編碼-解碼器來訓練預訓練模型;UNILM嘗試同時支援語言理解和生成任務。
把預訓練模型用於多語言任務:XLM是一種支援多語言的BERT模型;Unicoder引入若干新的任務改進了 XLM;T5把多種自然語言任務(比如機器翻譯、問答),用了更大的資料,在一個網路訓練,同時支援這些任務;BART是一種編碼-解碼器模型,透過還原損壞的句子訓練;mBART將 BART理念擴充套件到多語言。另外還有最新的很多模型恕我這裡沒有全部列出。此外也擴充套件到多模態。
這是一個更加詳細的總結。名稱、用途、架構、特點,這裡就不詳細說明了。
總體來講,預訓練模型發展趨勢:
第一,模型越來越大。比如Transformer的層數變化,從12層的Base模型到24層的Large模型。導致模型的引數越來越大,比如GPT 110 M,到GPT-2是1.5 Billion,圖靈是17 Billion,而GPT-3達到了驚人的175 Billion。一般而言模型大了,其能力也會越來越強。但是訓練代價確實非常大。
第二,預訓練方法也在不斷增加,從自迴歸LM,到自動編碼的各種方法,以及各種多工訓練等。
第三,還有從語言、多語言到多模態不斷演進。
最後就是模型壓縮,使之能在實際應用中經濟的使用,比如在手機端。這就涉及到知識蒸餾和teacher-student models,把大模型作為teacher,讓一個小模型作為student來學習,接近大模型的能力,但是模型的引數減少很多。
預訓練模型舉例說明:
BERT
這裡用BERT舉例說明預訓練模型訓練方法。基於Transformer。其基本模型為 12 層模型,還有一個大型模型為 24 層模型。這裡說明幾個關鍵地方。
1. tokenizer,簡單地理解為詞的切分,比如工具BPE。針對一個資料集合,BPE工具自動獲得該資料集的token的集合,取頻率最高的前N個token作為詞表,其他的token都看作是UNK(unknown word)。
2. 對資料集合的每個資料,透過BPE做tokenize,形成token的序列。
3. 訓練時,每個token有一個多維向量表示,比如1 024維。隨機初始化。
4. 計算預測的損失。該損失反向傳播來調整各層的網路引數。也包括每個token的多維向量表示。
5. 最後訓練的結果,包括每個token的多維向量表示、每層的網路引數,以及各個attention model的引數等。
6. 在用預訓練模型時,把輸入序列tokenize之後,對每個token,從詞典中得到多維向量表示。然後根據每層的網路引數,計算輸出。
訓練任務:BERT使用了掩碼語言模型(就是蓋住一個單詞或者多個單詞,然後讓模型預測)。損失用來調整網路。
BERT還使用NSP(下一句預測),旨在預測第二句是否是第一句的下一句。
UniLM
UniLM由微軟研究院自然語言計算組開發,是一種最先進的預訓練的模型,用於語言理解和生成任務。首先它是一個transformer機制。用了三個任務訓練:第一個任務就是掩碼語言模型(就是自編碼)類似於BERT,利用左右詞彙預測被蓋住的詞;第二個任務就是自迴歸語言模型,類似GPT,利用前面的詞序列預測下一個詞;第三個任務就是編碼-解碼模型,利用輸入句子和已經輸出的詞來預測接下來的詞。
這三個任務進行多工訓練。透過一個掩碼矩陣控制哪些詞可以用來attention。訓練得到的模型具備了理解和生成兩種能力。在GLUE任務集合、文摘生成和答案抽取等任務上都取得了當時最好的水平。
預訓練模型已廣泛應用於產品,比如提高搜尋的相關性等。上圖顯示必應搜尋使用了我們預訓練模型的問答系統,給定一個NL問題,系統提取包含答案的文字並確定答案部分。它也可以用於問題生成。給定一個文字,生成關於這個文字的若干問題。可以用於語言教育等領域。
3 預訓練模型在多語言任務的應用
有許多語言中,它們都有大量的單一語言資料,並且某些語言對之間存在一些對照資料。我們可以學習一個跨語言的預訓練模型,其中來自兩種不同語言的單詞,如果具有相似的含義,將聯絡在一起。然後,基於預訓練的模型要建立某個具體任務的系統。對某些語言,如果有帶標註的資料,利用之經微調可以得到一個系統。所得到的模型應用於其他語言的同一個任務,即使該語言沒有標註資料,也有一定效果。該語言如有標註資料也可進一部微調。這樣實現了跨語言之間的遷移學習。
下面介紹一個典型多語言預訓練模型XLM。它將BERT擴充套件到多語言理解任務。
XLM中使用了兩個任務。第一個是掩碼(遮蔽)語言模型,它與BERT中類似,輸入是一個句子,可以是A語言、也可以是B語言。透過共享所有語言的模型引數和詞彙,XLM可以獲得跨語言功能。第二個任務是TLM(翻譯語言模型),它叫做翻譯,其實並沒有考慮對譯關係。輸入是雙語對照句對,看作一個語言,去訓練掩碼語言模型。
我們開發的Unicoder-1進一步增加了跨語言訓練新任務。除了在單語句子上進行單詞和短語層面的“掩碼LM”,以及對雙語句子進行掩碼LM(稱作翻譯LM)之外,我們增加一個新的訓練任務:在利用了Giza+做了單詞對齊之後,透過預測兩個單詞的對譯關係是否存在。這個任務可以在單詞級別做、短語級別做,也可以在句子級別做。不僅用正例,也引入了反例,透過對比式學習,加強學習效果。
我們還將 Unicoder 擴充套件到跨語言生成任務。這個預訓練模型UNICODER-2做了如下任務訓練:給定來自多語言語料庫的輸入句子,首先打亂其句子,對文字加噪音,然後透過解碼器嘗試恢復。解碼時可以傳統方法每次僅預測一個token,也可透過我們最近的Prophet(先知)網路一起預測兩個token或者多個token,然後取第一個詞輸出,再預測下一位置的token。這樣做預測能力有新的提高。
我們建立了多語言任務的評測資料集XGLUE。XLGUE中的 11 個下游任務,其中包括NER(命名實體識別)、POS(詞性標註)等。現在XGLUE已經發布。這些任務現在涵蓋 19 種語言。
我們在XGLUE上評測了多個跨語言預訓練模型(包括 MBERT、XLM、XLM-R 和 Unicoder),並在上表中列出比較結果。可以看到,我們的Unicoder 在許多理解和生成任務上實現了最佳的平均效能。
多語言預訓練模型可以把英語的模型應用到其他語言。英語的標註資料比較多,而其他語言往往缺少標註資料。因此,利用多語言預訓練模型可以對新的語言,做zero-shot或者few-shot的學習。比如這裡展示了問答系統。英文問答資料finetune訓練的QA在法語、德語上也有很好的效果。也可以產生新聞的標題。同樣也是在英語標註集合finetune訓練之後的系統,也可以生成其他語言的標題。
這裡總結一下多語言預訓練模型。它緩解了多種語言的資源短缺問題。多語言預訓練模型幫助多語言搜尋、QA、廣告、新聞、文字摘要、低資源神經機器翻譯等取得新的提升。
多語言預訓練模型仍然面臨許多挑戰,首先最有效的預訓練任務仍然是掩碼LM(在多語種或雙語語料庫上),我們要擴充新的任務以便充分利用多語言/雙語的特點。
第二,詞彙表比單語言的預訓練模型(例如BERT / RoBERTa)大得多,單語3萬,多語25萬。這樣導致要學的模型引數就會增加很多,訓練的開銷更大。
第三,有的語言對有詞彙、語法的同源關係,遷移學習效果好,比如英語的finetune結果對法語、義大利語、西班牙語比較好,而對漢語的效果不太明顯。
下一步可以考慮在語系內部進行多語言模型訓練。
4 預訓練模型在多模態任務中的應用
1、影像-語言的預訓練模型
影像-語言的預訓練模型的目的,可以是用於理解或者生成。這裡僅介紹理解用的預訓練模型。做法如下:給定一個包含一幅圖片和對應的caption(就是文字描述)的資料庫。比如這個例子包括圖片和對應的文字描述。首先對這個資料庫進行預處理,用FASTER-RCNN 得到圖片每個物件label的分佈,以及物件的輸出向量表示(softmax之前的輸出向量表示)。一個圖片的所有物件按照從左到右、從上到下的順序排列,可以形成一個序列。和文字序列排列在一起。我們可以用BERT方式訓練一個預訓練模型,比如掩碼的方式,蓋住文欄位的某個token來預測這個token。或者蓋住物件序列的某一個物件來預測這個物件的輸出向量表示,或者直接預測這個物件的label。另外預測物件序列和text是否是相互描述。
現有工作基於大致相似的網路結構。我們是最早發表的工作之一。我們增加了一個新的訓練任務,即物件的輸出向量還原為物件的FASTER-RCNN的原始向量,取得了改進效果。
在Flickr30K(image retrieval和captioning的資料集),image2text和text2image兩個任務。Text2image任務是給定text,從1 K的圖片(給定)排序,得到最優的匹配。MSCOCO(微軟提供的資料集)任務完全與Flick30K一樣。Pre-training dataset是三百萬image-caption pairs 的谷歌提供的 Conceptual Captions。
目前最好的系統:ViLBERT來自facebook,UNITER來自微軟產品組。UNICODER-VL由於增加了新的訓練任務(如前述),預訓練模型對圖片和文字的編碼能力有所提升,得到了較好效果。
2、文件-語言的預訓練模型
我們開發的多模態的預訓練模型LayoutLM,透過對掃描的文件,利用OCR識別之後的文字片段和文字對照的影像同時進行預訓練。基於該預訓練模型,抽取表格裡的重要資訊,包括語義類別和值。獲得了目前在相關任務評測集的最高的水平(發表在KDD2020)。
這是目前可用的訓練資料集合,含有11 Million掃描文件和識別的結果。NIST發表的,最主要的16類資料(信件、表格、收據等),包含了掃描文件及其對應的OCR結果。我們重新用OCR(開源工具) ,以便得到識別物件的座標資訊。
我這裡解釋一下我們做的LayoutLM預訓練模型。
首先一個掃描的文件(digital burned doc),進入OCR引擎可以得到識別的結果,就是一個個的字元(以BPE分詞之後表示)串,以及在文件中的起始位置座標。字串的序列和位置座標(四個數字)作為預訓練輸入。然後透過類似BERT的掩碼方式(就是蓋住其中某些token)透過12層(或者24層)的Transformer來預測被蓋住的token。預測的損失回傳調整網路的全部引數。當然可以增加其他的訓練任務,比如判斷文件的分類。
透過對大規模的OCR識別的資料進行訓練,可以得到一個預訓練模型。這個預訓練模型在進行下游任務時要微調。微調時,可以直接用預訓練模型作為輸入進行微調,也可以把文件中的對應token的影像編碼也作為輸入,增強預訓練的訊號。
訓練任務1:掩碼訓練類似於BERT。預測被蓋住的token,其損失回傳,調整網路。
預訓練任務2:判斷影像的分類。按照原來資料集的分類標註,進行訓練。
下游任務之一是表單理解。給一個文件,識別出文件中包含key-value,就是實體語義型別(比如時間、地點、數目)和實體的值。透過標記BIO風格的序列,就可以得到識別結果。
我們的LayoutLM對幾個重要的下游任務都取得了最佳的結果。比如表單理解、收據資訊抽取等等。這裡不再贅述。
3、影片-語言的預訓練模型
下面介紹Video-NL預訓練模型。
對每個Video片段和對應的NL描述(語音識別的結果)建立這樣的網路結構,左邊NL的token序列,右邊是影片按照時間序列均勻切分(1.5 秒)的video clip的序列,可以用S3D等工具,每個video clip對應一個輸出向量表示。進入Video encoder。文字序列和video clip序列拼接起來進入Transformer。多層(比如三層、四層),後面跟著一個解碼,利用一個encoder-decoder結果來做預訓練。使用瞭如下四個任務進行預訓練。
• Video-text alignment任務用來判斷輸入的video clip和text是否相互描述。
• Masked language model任務用來預測transcript裡被mask掉的單詞。
• Transcript generation任務基於輸入的video clip,生成對應的video transcript,這時還有NL段置空了。
• Masked frame model任務用來預測被mask掉的video clip對應的video feature vector。
UNICODER-VL擴充套件到video。與其他工作相比,我們把理解和生成整合在一個預訓練模型,既可以理解,也有生成能力。預訓練的語料是,HowTo100M作為pre-train語料。它是從Youtube上抓下來的1.2 M影片,切分成136 M影片片段,根據時間軸配上文字說明(youtube自帶的)。下游任務finetune目前我們使用YouCook2的菜譜影片,以及MSR-VTT微軟釋出的(影片-caption)對的資料集合。
下游任務包括影片搜尋和影片caption生成兩個任務。首先是檢索任務——給定NL的query,從一個固定影片片段中搜尋最匹配的影片片段。然後是caption任務——給定一段影片,加上transcript,生成對應的caption。我們的提交系統目前取得了最好的評測結果。
這樣的預訓練模型有很多應用。這裡用Video chaptering來說明。它分為兩個任務,一個是video segmentation,用於對輸入video進行clip切分;一個是video captioning,用於對每個video clip生成一個總結性的內容。
我總結一下多模態預訓練模型。目前它尚處於初期階段。遵循大多數NLP預訓練模型,用Transformer機制,從有限的影像/影片-語言資料集中學習聯合表示,可以計算影像/影片片段和文字描述的距離,並實現影像/影片-文字之間的轉換。多模態預訓練模型雖然剛剛開始還不成熟,但是已經在影像/影片的搜尋,以及生成文字描述當任務中顯示出不錯的前景。
當然,多模態預訓練模型仍然面臨許多挑戰:
首先,影像/影片-語言對的資料的大小仍然比自然語言語料庫小得多。
第二,CV僅僅用於特徵提取,目前並沒有將CV模型和NLP模型共同訓練。當然目前沒有好的演算法,而且訓練的cost非常大。
第三,與之有關,就是CV的物件識別,目前的類別僅限於1 000類左右,對真實場景的覆蓋不夠,而且識別的精度也不夠,導致預訓練的輸入訊號天然帶有誤差。
第四,對於多模態預訓練模型,目前都是用Transformer機制,但是它的代價比較大,而且是否最合適對影像/影片-文字建立關聯,還需要進一步探索。
第五,圖片和影片的預訓練模型也不一樣,由於影片有時序,因此影片的分割按照固定時長分割,缺乏邏輯意義。而且影片的token會比NL多很多,導致訓練的代價比圖片和文字的預訓練大很多。
5 結語
NLP經歷了第一代的基於規則的NLP;第二代的基於統計的NLP;五年前進入到基於神經網路的第三代NLP(NN-NLP),在大資料、大模型、神經網路框架下取得了很好的進展,形成了一整套的技術。而現在更進一步,預訓練+微調形成了工業化可擴充套件的解決方案。
預訓練模型把遷移學習很好地用起來了,讓我們感到眼前一亮。這和小孩子讀書一樣,一開始語文、數學、化學都學,讀書、網上游戲等,在腦子裡積攢了很多。當他學習計算機時,實際上把他以前學到的所有知識都帶進去了。如果他以前沒上過中學,沒上過小學,突然學計算機就不懂這裡有什麼道理。這和我們預訓練模型一樣,預訓練模型就意味著把人類的語言知識,先學了一個東西,然後再代入到某個具體任務,就順手了,就是這麼一個簡單的道理。這要感謝楊強老師做的遷移學習,真的是有效。
預訓練體現出所有的自監督的訓練。如果為了做預訓練要標資料則失去意義,因為標不了太大資料,很多知識體現不出來。恰好自然語言有幾乎無限的語料,用語言模型或者用自編碼方法自監督學習。一個預訓練模型,只要訓出來以後,後續所有任務,都可以得到很好的處理。對一個任務,只要資料足夠大的任務,預訓練加微調機制基本可以搞定了。當然還需要研究zero-shot,few-shot等問題,這些還有研究空間。
預訓練模型在多語言任務中,rich-resource 的模型會遷移到low-resource語言任務中,減輕了資料不足的問題。預訓練模型在文字中表現出色,基本可以實用。而在多模態任務中,則方興未艾,還有巨大探索空間。比如圖片/影片的預處理、訓練任務的設計都將有很多有趣的研究。
要想邁向下一個階段也有很多問題,比如現有的預訓練模型是不是最優的?有沒有更好的訓練任務、更好的神經網路架構?訓練是否可以更快?模型是否可以更小?現在瘋狂追求大模型,耗盡計算資源,同時也汙染了環境,是不是我們可以接受的?還有現有的模型在利用知識、嘗試、進行推理,並且提供解釋等方面仍然沒有看到任何清晰的解決前景。這些都是難題。我希望大家一起繼續努力,把這些問題好好想想,努力把NLP推向一個新的高度。
https://blog.csdn.net/weixin_42137700/article/details/108662991