大規模語言模型(Large Language Model,LLM)無疑是時下最火熱的 AI 概念,它不僅是人工智能領域近兩年的研究熱點,也在近期引發了全社會的廣泛關注和討論,OpenAI 的 GPT-3 和 ChatGPT 更是數次登上微博熱搜。
LLM 強大的語言理解能力和知識儲備,給大眾留下了深刻的印象。LLM 所涌現的 in-context learning 能力,更是開啟了新的 NLP 范式,并使其有望成為以自然語言進行交互的通用型任務助手(ChatGPT)。LLM 的出現也為跨模態深度學習領域的研究者們帶來新的機遇和挑戰。
通過收集自互聯網的大規模語料進行預訓練,GPT-3 等 LLM 蘊含了豐富的世界知識,這使其有希望解決知識驅動的多模態任務,例如基于外部知識的圖像問答任務,OK-VQA [1]。但是,想要利用 LLM 的潛力解決多模態問題,有一個關鍵問題需要解決:LLM 以語言進行輸入輸出,如何使她能夠理解其他模態的數據,如圖片,并遷移到下游多模態任務呢?
PICa [2] 提出使用 Image Caption 模型將圖片轉化為文本描述,然后輸入給 GPT-3 使其回答關于圖片的問題,該方法在 OK-VQA 數據集上超越了傳統方法。但是由于 caption 未必能覆蓋圖片的全部信息,因此這一方法存在性能瓶頸。另一個容易想到的解決方案是,在預訓練的 LLM 基礎上,增加用來對接另一個模態輸入的網絡參數,并通過微調來得到一個跨模態的大模型。
Deepmind 的 Flamingo [3] 模型采用了這一方案,訓練了一個 800 萬參數量的視覺-語言模型,并在 OK-VQA 上達到新的 SOTA。但是訓練這樣的模型往往需要消耗大量的計算資源,動輒上百上千塊 GPU,這是學術界的大部分研究者難以負擔的。那么,如何能夠既享受到 LLM 的強大能力,又通過有限的計算資源在跨模態任務上達到先進的性能呢?
我們近期的論文給出了一個新的答案:用好小模型!論文 Prompting Large Language Models with Answer Heuristics for Knowledge-based Visual Question Answering 提出了名為 Prophet 的框架,通過在 LLM 上游引入一個可學習的、任務相關的視覺問答小模型,來更好地激發大模型的潛力。
Prophet 這個名字既是 Prompt with answer heuristics 的縮寫,也契合了 Prophet 框架的精神,我們希望 GPT-3 如一個先知一般對預兆(來自小模型的答案啟發)進行理解和闡釋。Prophet 僅需要 1 塊 3090 顯卡和少量 OpenAI API 的調用,就可以實現超越 Flamingo 的性能,并在兩個基于外部知識的視覺問答數據集 OK-VQA [1] 和 A-OKVQA [4] 上創造了新的 SOTA。該論文現已被 CVPR 2023 錄用。 **論文鏈接:**//arxiv.org/abs/2303.01903 **開源代碼:**
方法介紹
該論文著眼于基于外部知識的圖像問答任務(Knowledge-based VQA),它要求模型不僅能夠分析圖片和問題,還需要結合圖像外部的知識(生活常識、科學知識等世界知識)來推理得到答案。例如,如果問一張獅子圖片“這種動物最喜歡吃什么?”,那么模型就需要知道獅子是食肉動物,它們通常捕食羚羊、斑馬等。
早期的研究使用顯式的知識庫來檢索相關知識,但這樣做往往會引入過多的噪聲,影響模型的訓練和最終性能。近期的工作,如 PICa [2],則嘗試使用 GPT-3 作為隱式的知識引擎來獲取所需知識。PICa 通過將圖像轉化為文本描述(Image Caption)來讓 GPT-3 理解圖像,并使用 few-shot in-context learning 的范式,即提供少量問答示例,使 GPT-3 理解視覺問答任務并作出回答。
盡管 PICa 取得了令人鼓舞的結果,但我們認為它沒有充分激發 GPT-3 的潛能,因為它輸入 GPT-3 的關于圖片的信息往往不夠充分。如下圖所示,當我們問“what fruit comes from these trees?”,由于 caption 只提到了圖片的主要內容“a group of people walk in a city square”而忽略了圖中有一顆椰子樹的細節,GPT-3 未能得到回答問題所需要的關鍵信息,于是只能“瞎猜”一個答案。
后續的工作 KAT [5] 和 REVIVE [6] 在 PICa 輸出基礎上,增加了一個基于顯式知識檢索的 VQA 模型,進一步提高了性能,但依然沒有解決上述問題,未能充分挖掘出 GPT-3 的潛力。
▲ Prophet框架與之前的基于GPT-3的方法的對比
為解決 PICa 的瓶頸問題,我們提出了 Prophet,它利用答案啟發(answer heuristics)來幫助 GPT-3 更好的解決基于外部知識的 VQA 任務。所謂答案啟發,是指寫入 prompt 文本中的,和視覺問題的正確答案相似或相關的答案(當然也包括正確答案本身),我們相信這些具有潛力的答案可以提供豐富的、并且任務相關的視覺信息,可以有效幫助 GPT-3 理解圖像和視覺問答任務。
具體的,論文定義了兩種答案啟發: 1)答案候選(answer candidates): 問題的候選答案及其置信度;2)答案感知示例(answer-aware examples): 選擇答案相近的標注樣本(來自訓練集)作為 prompt 中的例子。有趣的是,這兩種答案啟發可以使用同一個簡單的 VQA 模型同時產生。
▲ Prophet的總體框架圖
Prophet 的完整流程分為兩個階段,如上圖所示。在第一階段,我們首先針對特定的外部知識 VQA 數據集訓練一個普通的 VQA 模型(在具體實現中,我們采用了一個改進的 MCAN [7] 模型),注意該模型不使用任何外部知識,但是在這個數據集的測試集上已經可以達到一個較弱的性能。然后我們從模型中提取兩種答案啟發:答案候選和答案感知示例。
具體的,我們以模型分類層輸出的置信度(模型輸出的 sigmoid 值)為依據對答案進行排序,抽取其中的 top 10 作為答案候選,并記錄每個答案的置信度分數;同時,我們將模型分類層之前的特征作為樣本的潛在答案特征(latent answer feature),在它表示的潛在特征空間中搜索最相近的標注樣本作為答案感知示例。
在第二階段,我們拓展了 PICa 的 prompt 格式,將答案啟發組織到 prompt 之中(如上圖所示的 prompt 例子),然后將 prompt 輸入給 GPT-3,提示其完成視覺問題的回答。
值得一提的是,雖然我們給出了答案候選,但是我們并未要求 GPT-3 必須從中選擇答案,一方面,prompt 中給出的示例可能就包含了正確答案不包含在答案候選中的情況,另一方面,如果所有候選的置信度都很低,也會暗示 GPT-3 生成一個全新的答案。這一設計不僅給予了 GPT-3 更多的自由,并且使 GPT-3 對前置 VQA 模型所可能引入的負面效應更加魯棒,即 GPT-3 有權不相信 VQA 模型的不合理“猜測”。
實驗分析
▲ Prophet論文主要實驗結果
上方兩表展示了 Prophet 在兩個基于外部知識的圖像問答數據集 OK-VQA 和 A-OKVQA 上的實驗結果,及其和以往方法的性能對比。實驗表明,Prophet 達到了先進的性能,顯著超越了以往的方法。在 OK-VQA 數據集上,Prophet 達到了 61.1% 的準確率,大幅超越了 Deepmind 的 80B 大模型 Flamingo。
值得一提的是,Prophet 不僅在分數上超越了 Flamingo,在所需的(線下)計算資源上也更為“親民”,更容易在有限的計算資源下進行復現。Flamingo-80B 需要在 1,536 塊 TPUv4 顯卡上訓練 15 天,而 Prophet 只需要一塊 RTX-3090 顯卡訓練 VQA 模型 4 天,再調用一定次數的 OpenAI API 即可。
在 A-OKVQA 上,Prophet 也達到了新的 SOTA,在測試集上取得 55.7% 的準確率。不僅如此,我們還為 A-OKVQA 的多選項測評模式設計了一個專門的變體(詳見論文),命名為 Prophet-MC,該變體的 MC 準確率達到了 73.6% 的優秀水平。
▲ 對答案候選和答案感知示例的消融實驗
論文對 Prophet 方法進行了充分、細致的消融實驗,上方兩表展示了其中最重要的兩個結果。在左表中我們嘗試調節答案候選的數量,可以觀察到該參數顯著影響方法的最終性能,說明答案候選在 Prophet 方法中起著至關重要的作用。在右表中,我們嘗試了其他策略來選擇 prompt 中的示例,其中的 fused 一行即對應了我們基于潛在答案特征來搜索答案感知示例的方式,實驗結果表明該方式是最優的。
更詳盡的實現細節和實驗分析請參考論文原文。
后記
Prophet 具有諸多優勢,方法思路簡單,性能優越,在實現上也更為簡單、經濟,因此我們決定分享我們的工作。在該工作完成后不久,跨模態大模型 PaLI [8] 和 PaLM-E [9] 相繼提出,他們在 OK-VQA 數據集上超越了 Prophet,但是我們相信 Prophet 依然有其獨特的價值:
實現 Prophet 所需的計算資源更小,是大部分學術界的研究者能夠承擔的,我們相信 Prophet 為這些研究者們創造出了更大的研究空間,Prophet 作為基于外部知識圖像問答任務的一個新的基線(baseline),還有許多值得挖掘的地方;
Prophet 不僅是 GPT-3 等 LLM 可以遷移到多種下游任務并取得優良性能的又一例證,更拓展了原本基于 few-shot in-context learning 的遷移范式,引出了一個新的范式,“小模型+LLM”。用任務相關的小模型作為 LLM 適配下游任務的適配器(Adapter),將增強 LLM 的通用性和針對性。我們相信 Prophet 的思路將啟發其他領域的工作。
如果您對我們的工作有任何疑問,歡迎來信探討,或者在 GitHub 上提交 issue。
參考文獻
關于作者
論文第一作者邵鎮煒是杭州電子科技大學計算機學院媒體智能實驗室碩士研究生。邵鎮煒同學患有“進行性脊肌萎縮癥”,肢體一級殘疾,沒有生活自理能力,生活和學習需要母親的全程照顧。2017年高考考入杭州電子科技大學計科專業,本科期間獲得2018年中國大學生自強之星、國家獎學金和浙江省優秀畢業生等榮譽。2021年通過研究生推免,加入余宙教授課題組攻讀碩士研究生。
論文通訊作者為杭州電子科技大學計算機學院余宙教授。余宙教授是杭電計算機學院最年輕的教授,教育部“復雜系統建模與仿真”實驗室副主任。長期從事多模態智能方向研究,曾帶領研究團隊多次獲得國際視覺問答挑戰賽VQA Challenge 的冠亞軍。
摘要: 超大預訓練模型(Pre-trained model, PTM)是人工智能領域近年來迅速崛起的研究方向, 在自然語言處理和計算機視覺等多種任務中達到了有史以來的最佳性能, 促進了人工智能生成內容的發展和落地. ChatGPT作為當下最火熱的PTM, 更是以優異的表現獲得各界的廣泛關注. 本文圍繞ChatGPT展開. 首先概括了PTM的基本思想并對其發展歷程進行了梳理; 接著, 詳細探討了ChatGPT的技術細節, 并以平行智能的視角闡述了ChatGPT; 最后, 從技術、范式以及應用等多個方面對PTM的發展趨勢進行了展望.
2022年底, 一款名為ChatGPT (Chat generative pre-trained Transformer)的人工智能聊天程序引爆全球, 成為了各行業關注的焦點. ChatGPT火熱之余, 不禁讓眾人思考: ChatGPT有何奧秘? “ChatGPT是一種基于人工智能的自然語言處理技術, 能夠根據給定的問題和語境生成符合語言習慣和邏輯的回答. 這種技術可以應用于各種領域, 如客服、智能助手、教育、醫療等, 能夠幫助人們更方便、高效地獲取所需信息. 當前, ChatGPT在各個領域的應用越來越廣泛, 因為它可以實現智能化、個性化、高效化的服務, 得到了廣大用戶的認可和喜愛. 隨著技術的不斷進步和完善, ChatGPT在處理語言難度、語境理解、知識獲取和表達等方面都得到了不斷的提升, 使得它在應用領域的效果和準確度都越來越好. 因此, 當下ChatGPT的火熱現象主要是因為它能夠提供高效便捷的智能服務, 并且在技術上不斷突破和進步, 能夠越來越好地滿足人們的需求. 同時, 隨著ChatGPT技術的發展, 它還將繼續在各個領域發揮重要作用, 成為人們生活中不可或缺的一部分.”①就這些問題, ChatGPT自己如是說道. 由ChatGPT的回答, 我們不難發現ChatGPT的論述條理清晰、井然有序, 更難得的是符合大眾日常的語言習慣, 這讓上述問題的答案不言而喻. ChatGPT的橫空出世勢必會給各行業帶來巨大的沖擊和挑戰, 同時也意味著新機遇的誕生. 因此, 人們需對ChatGPT有全面且深刻的認識.
ChatGPT屬于自然語言處理(Natural language processing, NLP)領域的超大預訓練模型(Pre-trained model, PTM)[1-2], 這類超大PTM也稱基石模型(Foundation model)[3, 4]、大模型(Large/big model)[5-7]. 簡單來說, 超大PTM旨在設計具有超大參數量的深度神經網絡(Deep neural network, DNN), 在海量未標記的數據上對其進行訓練. 利用超大參數量DNN強大的函數近似能力, 預訓練可使超大PTM在這些海量數據上提取共性特征. 再根據下游任務, 對超大PTM進行微調(Fine-tune)或上下文學習(In-context learning), 使最終的模型可在具有一定相關度但不同的任務中獲得優異的表現. 目前, 國內外眾多科研機構、公司研發的超大PTM已在各領域取得了巨大的突破, 引領了新一輪的人工智能科技競賽.
為進一步推進以ChatGPT為代表的超大PTM技術的發展和應用, 加速人工智能生成內容(Artificial intelligence-generated content, AIGC)落地, 本文首先梳理了超大PTM的經典模型, 并進行簡要介紹. 其次, 詳細地介紹了ChatGPT中的關鍵技術——Transformer, 探討了ChatGPT的設計與實現, 同時以平行智能的視角解讀了ChatGPT. 在綜合分析ChatGPT和其他PTM的基礎上, 我們進一步從技術、生態、范式以及應用等多個方面探討了超大PTM的發展趨勢.
ChatGPT的設計與實現
如前所述, ChatGPT的出色表現得益于其成功地引入了人類的價值偏好. 不同于其他PTM, ChatGPT采用RLHF的方式將人類的語言習慣引入模型中, ChatGPT實現的基本流程如圖4所示, 可大致分為如下4步:
步驟0: 預訓練GPT. 基于大規模語料庫, 以自監督學習的方式預訓練GPT模型. 使GPT在大規模語料庫上提取自然語言共性特征.
步驟1: 監督微調(Supervised fine-tuning) GPT. 基于真人標注偏好的答案初步引入真人價值偏好, 根據人工示例監督微調GPT.
步驟2: 獎勵模型(Reward model)設計. 基于真人對模型輸出排序的數據, 監督訓練獲得獎勵模型, 使獎勵模型學習到真人的價值偏好.
步驟3: RL反饋優化GPT. 基于獎勵模型并采用近端策略優化(Proximal policy optimization, PPO)算法[38], 閉環反饋優化監督微調后的GPT, 獲得ChatGPT.
經步驟0后的GPT, 在具體任務上表現并不一定出色, 但已具備相當潛力, 通過微調或者上下文學習的模式即可在多種任務中獲得優異表現. 步驟0的介紹可參考上一節. 而步驟1至步驟3是ChatGPT的關鍵步驟, 這些步驟成功地將人類因素引入了GPT中. 換一個角度來看, 步驟1至步驟3也是RL的標準流程.
預訓練模型主要從海量未標注、無結構化的數據中學習,但缺少外部知識指導,存在模型學習效率不高、模型效果不佳和知識推理能力 受限等不足。如何在預訓練模型中引入語言知識、世界知識等外部知識,提升模型效果以及知識記憶和推理能力是一個難題。本文對知識增強預訓練語言模型(KE-PLMs)進行了全面的綜述。
預訓練語言模型通過自監督學習方法在大型文本語料庫上進行訓練,在自然語言處理(NLP)的各種任務中取得了良好的性能。然而,盡管具有大參數的PLM可以有效地擁有從大量訓練文本中獲得的豐富知識,并在調優階段對下游任務有利,但由于缺乏外部知識,它們仍然存在推理能力差等局限性。研究人員致力于將知識整合到PLM中,以解決這些問題。在這篇論文中,我們對知識增強預訓練語言模型(KE-PLMs)進行了全面的綜述,以提供對這一蓬勃發展的領域的清晰洞察。我們分別介紹了自然語言理解(NLU)和自然語言生成(NLG)的適當分類法,以突出自然語言處理的這兩個主要任務。對于NLU,我們將知識類型分為四類:語言知識、文本知識、知識圖譜(KG)和規則知識。用于NLG的KE-PLMs分為基于KG的方法和基于檢索的方法。最后,我們指出了KE-PLMs未來的發展方向。
//www.zhuanzhi.ai/paper/d29c4e105f7150131e1347d799681e73
1.概述
近年來,隨著深度學習技術的不斷發展,在海量文本語料庫上以無監督目標訓練的預訓練語言模型(Pre-trained Language Model, PLM)被廣泛應用于自然語言處理(Natural Language Processing, NLP)領域,并在各種下游任務上取得了最先進的性能。與傳統的監督學習不同的是,基于自監督學習的plm通常先對通用的大規模無標記數據進行預訓練,然后針對特定任務對小規模標記數據進行微調。BERT[1]、GPT[2]、T5[3]等代表工作在眾多自然語言理解(NLU)和自然語言生成(NLG)任務中不斷刷新基準記錄,成功推動了自然語言處理(NLP)的發展。
隨著PLMs的規模越來越大,擁有數億個參數的PLMs已被廣泛認為能夠在某些探測中捕獲豐富的語言[4]、[5]、[6]和事實知識[7]、[8]。然而,由于缺乏原始數據中知識的顯式表示,PLM在下游任務上的性能受到限制。特別是,先前的研究發現,傳統的預訓練目標往往具有較弱的符號推理能力[9],因為PLM傾向于集中于詞共現信息。將知識整合到plm中可以增強他們的記憶力和推理能力。例如,在“the monument to the people 's Heroes莊嚴地坐在[MASK] square”的語言理解問題中,傳統PLM預測蒙面位置的輸出為“the”,而知識增強PLM預測的輸出為“天安門”,準確率更高。
對于語言生成,雖然現有PLMs能夠從文本語料庫中獲取豐富的語言信息并生成正確的句子,但由于忽略了外部世界知識[11],幾乎所有PLMs都無法生成面向捕捉人類常識的輸出。換句話說,PLMs生成的句子往往符合語法規范,但不符合邏輯。例如,給定一個概念集{hand, sink, wash, soap}來生成一個句子,傳統的PLM可能會生成“hands washing soap on the sink”,而具有額外知識的PLM生成“man is wash his hands with soap in a sink”,這更自然、更符合邏輯。
為了解決上述問題,將知識明確地融入PLMs已經成為最近NLP研究的一個新興趨勢。Wei等人[12]從三個方面回顧了知識增強的PLM:知識來源類型、知識粒度和應用。Yin等人總結了基于預訓練語言模型的知識增強模型(PLMKEs)的最新進展,根據PLMKEs的三個關鍵元素: 知識來源、知識密集型NLP任務和知識融合方法。在本研究中,考慮到在語言模型中注入知識可以促進NLU和NLG任務的完成,而這兩個領域的重點不同,我們旨在對這兩個領域的知識增強預訓練語言模型(知識增強預訓練語言模型,KEPLMs)進行綜合綜述,以提供知識增強預訓練語言模型在NLU和NLG中的各自見解。
本綜述的主要貢獻可歸納如下: (1) 在本次綜述中,我們將KE-PLMs 按照下游任務分為兩大類:NLU和NLG。本文分別提出了適當的分類法,以突出說明自然語言處理中這兩種不同任務的重點。
(2) 對于NLU,根據知識類型將KE-PLMs進一步劃分為語言知識、文本知識、知識圖(KG)和規則知識四個子類別。對于NLG,基于知識來源,將KE-PLMs 進一步分為基于檢索的方法和基于KG的方法。圖1顯示了我們為NLU和NLG提出的分類法。
(3) 討論了未來可能解決KE-PLMs存在的問題和挑戰的一些可能的方向。
本文的其余部分安排如下。在第二節中,我們介紹了自然語言處理中訓練范式發展下PLM的背景。在第三節中,我們介紹了NLU領域中KE-PLM的分類。在第4節中,我們介紹了在NLG領域的KE-PLM的分類。對于NLU和NLG領域,我們討論了分類法中每個葉類的代表性工作。在第五部分中,基于現有的局限性和挑戰,我們提出了未來KE-PLM可能的研究方向。最后,我們在第6節中進行總結。
2. 知識增強預訓練語言模型自然語言理解
NLU是NLP的一個組成部分,涉及使機器能夠理解和解釋文本數據內容的所有方法。它從非結構化文本中提取核心語義信息,并將這些信息應用于下游任務,因此在文本分類、關系提取、命名實體識別(NER)和對話系統等應用程序中發揮著重要作用。根據圖1所示的分類法,我們將為NLU任務設計的KE-PLM所包含的知識按照不同的類型分為以下四類: 語言知識、文本知識、知識圖譜和規則知識。對于每一類,我們討論了其代表性的方法。
語言知識
知識圖譜:
3. 知識增強預訓練語言模型自然語言生成****NLG的目標是使機器能夠生成人類能理解的語言文本,并遵循人類表達自己的方式。
在生成模型中加入各種形式的知識,而不是輸入序列,有助于提高文本生成任務的性能。參考知識增強文本生成[32]的綜述,我們進一步將NLG領域的KE-PLM根據其不同的知識來源分為兩類:一類是基于檢索的方法,另一類是基于kg的方法。
4. 未來發展方向
在本節中,我們提出了未來KE-PLMs可能的研究方向,以應對目前存在的問題和挑戰。 * 整合同質源和異構源的知識 * 探索多模態知識 * 提供可解釋性證據 * 持續學習知識 * 優化知識整合到大模型中的效率 * 增加生成結果的多樣性