作為人工智能領域最先進的技術之一,檢索增強生成(RAG) 技術能夠提供可靠且最新的外部知識,為眾多任務帶來了巨大的便利。特別是在AI生成內容(AIGC)時代,RAG強大的檢索能力可以提供額外的知識,幫助現有的生成式AI生成高質量的輸出。最近,大型語言模型(LLMs)在語言理解和生成方面展現了革命性的能力,但它們仍面臨固有的局限性,如幻覺和過時的內部知識。鑒于RAG在提供最新且有用的輔助信息方面的強大能力,檢索增強的大型語言模型(RA-LLMs) 應運而生,利用外部的權威知識庫,而不是單純依賴模型的內部知識,從而增強LLMs的生成質量。
在本教程中,我們全面回顧了現有的關于檢索增強大型語言模型(RA-LLMs)的研究工作,涵蓋了三個主要技術視角:架構、訓練策略和應用。作為基礎知識,我們簡要介紹了LLMs的基本原理及其最近的進展。接著,為了展示RAG對LLMs的實際意義,我們按應用領域對主流相關工作進行分類,詳細說明了每個領域面臨的挑戰及RA-LLMs的對應能力。最后,為了提供更深刻的見解,我們討論了當前的局限性以及未來研究的幾個有前景的方向。
我們的綜述論文:《RAG-Meets-LLMs: 邁向檢索增強的大型語言模型》
每天都會生成大量的非結構化文本數據,涵蓋從新聞文章到科學論文等內容。如何從這些文本數據中挖掘結構化知識依然是一個關鍵的研究問題。最近,大語言模型(LLMs)憑借其卓越的文本理解能力和指令跟隨能力,為文本挖掘領域帶來了新的希望。通常有兩種利用LLMs的方法:一是通過人工標注的訓練數據對LLMs進行微調,這需要大量的人工投入,難以擴展;二是在零樣本或少樣本的情況下提示LLMs,這種方法無法充分利用海量文本數據中的有用信息。因此,在大語言模型時代,如何從海量文本數據中自動挖掘結構化知識仍然是一個挑戰。在本教程中,我們將介紹使用語言模型進行結構化知識挖掘的最新進展,重點介紹弱監督學習方法。我們將涵蓋以下主題:
大型語言模型(LLMs)在幫助人們獲取信息方面越來越重要,從“世界上最大的冰蓋在哪里”這樣簡單的事實性問題到需要獲取實時信息和推理的復雜問題,如“計劃一次邁阿密的度假”。有兩種處理需要事實知識的問題的范式:參數化方法將知識存儲在LLMs的參數中,并通過提示來引出這些知識;非參數化方法將知識檢索外包給外部的非參數化數據存儲。在本論文中,我們旨在研究、比較并增強這兩種范式的能力。 由于LLMs通過在多樣的語料庫上進行預訓練,已經在其參數中積累了大量知識,因此可以在被提示提問時直接生成答案。在論文的第一部分中,我們重點關注利用LLMs參數中包含的事實性知識的參數化方法。我們首先研究通過組合從不同提示中得出的多種預測來提取更多知識的方法。然后,我們校準LLMs,使其在回答超出其知識范圍的問題時變得更加可信。我們發現,即使LLMs完全記住文檔并能夠逐字復述它們,仍然常常無法回答有關這些文檔的問題。為了增強LLMs從文檔中吸收知識的能力,我們提出了在預訓練文檔之前進行問題回答任務教學的預指令調整方法。
參數化方法提供了一個簡單的接口,但它們存在幻覺問題,并且無法訪問實時的外部信息。在論文的第二部分中,我們重點關注通過非參數化數據存儲擴展LLMs的非參數化方法,這通常由一個文檔語料庫和一個檢索器構建。標準的檢索增強生成(RAG)流程包括基于嵌入的檢索器和基于LLM的生成器,通常需要單獨的訓練程序,并且往往受限于檢索器的性能。我們引入了一種將檢索與生成融合在單個變換器中的端到端解決方案,并直接使用注意力機制進行檢索。為了解決需要詳細回答的復雜問題,我們引入了Active RAG,它在生成過程中動態和主動地檢索信息。最后,我們通過比較和調和兩種范式并提供對未來方向的見解來總結我們的研究。
大型語言模型(LLM)和擴散模型(如ChatGPT和Stable Diffusion)具有前所未有的潛力。由于它們在互聯網上的所有公開文本和圖像上進行了訓練,它們可以為各種任務做出有用的貢獻。今天,進入門檻大大降低,幾乎任何開發人員都可以利用LLM和擴散模型來解決以前不適合自動化的問題。 通過這本書,您將獲得生成式AI的堅實基礎,包括如何在實踐中應用這些模型。當首次將LLM和擴散模型整合到他們的工作流程中時,大多數開發人員會發現很難從它們中獲得足夠可靠的結果以用于自動化系統。作者James Phoenix和Mike Taylor向您展示了一套名為提示工程的原則,這些原則可以幫助您有效地與AI合作。 學習如何讓AI為您服務。這本書解釋了:
大型語言模型(LLMs)和擴散模型,如ChatGPT和Stable Diffusion,具有前所未有的潛力。由于它們經過了對互聯網公開文本和圖像的訓練,它們可以為各種任務做出有用的貢獻。隨著入門門檻的顯著降低,幾乎任何開發者都可以利用LLMs和擴散模型來解決以前不適合自動化的問題。通過本書,您將獲得生成式AI的堅實基礎,包括如何在實踐中應用這些模型。大多數開發者在首次將LLMs和擴散模型集成到他們的工作流程中時,往往難以從中獲得足夠可靠的結果以用于自動化系統。作者James Phoenix和Mike Taylor向您展示了一套稱為提示工程的原則,這些原則可以使您有效地與AI合作。學習如何讓AI為您服務。本書解釋了:
“《生成式AI的提示工程》可能是未來保障您技術職業的最具前瞻性的方法。這無疑是任何從事AI實際應用工作的人的最佳資源。這里面豐富、精煉的原則將幫助新老AI工程師在未來可預見的競爭中保持領先。” ——Ellis Crosby,Incremento CTO兼聯合創始人“這是代理和服務專業人員的必備指南。將AI與服務和客戶交付結合起來,利用自動化管理,加快解決方案的速度,將設定新的行業標準。您會在書中找到有用、實用的信息和策略,使您能夠充分理解和利用AI的潛力。” ——Byron Tassoni-Resch,WeDiscover CEO兼聯合創始人作者的話自2020年GPT-3測試版以來,我們一直在做提示工程,當GPT-4推出時,我們發現許多我們曾使用的技巧和竅門已不再必要。這促使我們定義了一套可跨模型和模態轉移的面向未來的原則,這些原則在使用GPT-5或未來的任何模型時仍然有用。提示的五項原則是:1. 提供方向:詳細描述所需的風格,或參考相關的角色。2. 指定格式:定義要遵循的規則和響應的必要結構。3. 提供示例:插入一組多樣的測試案例,其中任務已正確完成。4. 評估質量:識別錯誤并評價響應,測試驅動性能的因素。5. 分工:將任務分成多個步驟,鏈式連接以實現復雜目標。我們首次在2022年7月以博客文章的形式發布了這些原則,它們經受住了時間的考驗,包括與OpenAI自己一年后發布的提示工程指南高度契合。任何與生成式AI密切合作的人都可能會收斂到一組類似的策略來解決常見問題,但這本書旨在更快地讓您達到這一點。在本書中,您將看到數百個提示技術的示例,包括文本和圖像提示,以及使用Python構建AI自動化腳本和產品。這不是一個尋找正確魔法詞組組合的提示技巧列表,而是一個構建系統的實用指南,提供AI應用所需的正確上下文,以及如何測試和擴展生產環境中的AI系統。如果您符合以下情況,這本書將對您有用:- 您的時間價值超過每小時40美元,閱讀這本書節省的幾個小時,而不是從多個來源拼湊一切,對您來說是值得的。- 您不僅是隨便使用AI,而是實際在構建一個AI應用或內部模板,許多人每天將使用數百或數千次。- 您希望通過學習數百個如何解決AI常見問題的真實案例來減少幻覺并提高AI的可靠性。- 您希望比較OpenAI與其他模型的優缺點,以及LangChain等常見框架、不同的向量數據庫選項和AUTOMATIC1111。- 您想看到從一個天真的提示到一個完整AI代理,包括使用Gradio構建基本用戶界面的端到端AI應用構建過程。
網絡應用程序是用戶訪問信息、執行各種任務和與內容互動的重要界面。傳統的網絡設計主要關注用戶界面和靜態體驗。隨著大型語言模型(LLM)的出現,我們正在這些平臺中整合由LLM驅動的智能體,這標志著一種范式轉變。這些智能體引入了類似人類的關鍵能力,如記憶和計劃,使其在完成各種任務時表現得更像人類,有效地增強用戶參與度并在網絡應用程序中提供定制化的互動體驗。 在本教程中,我們將介紹在各種網絡應用中使用LLM驅動的智能體的前沿技術,如網絡挖掘、社交網絡、推薦系統和對話系統。我們還將探索在這些代理中無縫整合的現有挑戰,并暗示可能徹底改變我們與網絡平臺互動方式的未來研究方向。
根據選定參考文獻中列出的代表性論文集,本教程大約有25%的內容涉及六位主講人中至少一位的工作。教程的其他部分將通過盡可能多地討論其他研究人員的相關工作,提供對教程主題的全面概述。
自主人工智能智能體長期被視為通向人工通用智能(AGI)的墊腳石,具有自主執行任務的能力。傳統方法采用啟發式策略函數,這些函數通常缺乏在開放域場景中的人類水平的熟練度,主要是由于啟發式的限制和訓練數據的約束。最近,大型語言模型在向人類智能邁進方面取得了令人印象深刻的進展[32]。這一進展促使將大型語言模型作為開發自主人工智能智能體的核心組件的趨勢日益增長[34, 35, 37, 52]。 * 基于LLM的智能體架構。現有基于LLM的人工智能智能體的架構可以歸納為一個整合框架,最近的綜述文獻[39]對人工智能智能體進行了廣泛的覆蓋。這種統一結構包括四個主要模塊:分析、記憶、規劃和行動。分析模塊確定智能體的角色,而記憶和規劃模塊使智能體置身于動態環境中,促進回憶和未來行動的策略制定。然后,行動模塊將決策轉化為具體輸出。值得注意的是,分析模塊同時影響記憶和規劃模塊,進而指導行動模塊。 * 基于LLM的工具學習。基于LLM的工具學習旨在融合專業工具的能力和大型語言模型,使基于LLM的智能體能夠使用外部工具,從而帶來更好的自主問題解決能力。最近的研究突出了基礎模型在工具利用方面的熟練度,如網頁搜索自動化[31]、在線購物[45]、神經模型整合[37]、計算機任務執行[23]以及具體化機器人學習[2, 20]。
社交網絡通過允許人們分享觀點和交換信息來連接不同的人。近年來,許多人工智能技術被用來解決社交網絡問題,如用戶連接預測[47]和社會信息傳播[4],其關鍵挑戰在于理解人類內在的認知過程和行為模式。最近,通過學習大量的網絡知識,大型語言模型在實現人類水平智能方面取得了顯著成功。這為解決社交網絡問題提供了新的思路,已有幾次嘗試將基于LLM的智能體引入這一領域。
社交網絡模擬與基于LLM的智能體。社交網絡模擬是一個基本問題。如果能準確模擬社交網絡,那么其底層機制和運行規則就可以輕松理解和利用。然而,由于人類思維的內在性質,預測人們在社交網絡中的行為相當困難。最近有幾次嘗試[16, 26, 33]利用基于LLM的智能體解決這一問題。這些論文的關鍵在于利用大型語言模型作為用戶的大腦,并設計分析、記憶和規劃模塊,使大型語言模型表現得像人類。
社交網絡問題解決與基于LLM的智能體。另一研究方向是將基于LLM的智能體與社交網絡相結合,解決特定問題。人們利用智能體發現社會系統動態[17],分析不同智能體之間的社會原則[3]等。這一方向仍在迅速發展中,我們預見未來將有更多有前景的工作出現。
推薦系統在當今信息傳播中扮演著關鍵角色,主動塑造個體偏好[25]。隨著大型語言模型的最新進展,由大型語言模型驅動的智能體在自主互動和用戶偏好理解方面取得了顯著成就[29]。這種印象深刻的能力一方面可以用來在推薦系統中模擬真實的人類行為,無論是在個體還是人群層面,通過擴大其部署范圍。另一方面,它為利用大型語言模型驅動的智能體構建新一代個性化推薦者開辟了可能性[44]。
用戶行為模擬與大型語言模型驅動的智能體。在推薦系統中模擬用戶行為是一個復雜的任務,需要深入理解人類的偏好和行為模式[5, 40, 49]。彌合這一差距不僅需要整合針對推薦環境量身定制的智能體模塊,還需要適應這種環境的多模態本質[27, 48]。因此,由大型語言模型驅動的智能體必須配備并進一步微調以實現多模態理解,以逼近真實世界用戶互動的真實度。
推薦智能體。雖然現代推薦系統擅長利用用戶行為數據預測特定領域的推薦,但它們通常缺乏解釋其推薦、參與用戶對話和整合豐富用戶數據的能力[21]。為了創建一個動態和互動的推薦系統,大型語言模型作為“大腦”,而推薦模型則充當工具[30, 42]。這一研究方向致力于為推薦生態系統開發面向用戶的推薦智能體[38]。
大型語言模型驅動的對話智能體[13]不僅重新定義了用戶互動,還引入了推動傳統網絡互動邊界的創新功能。
如何探索CV中的AGI?華為這篇論文進行了論述
人工智能社區一直在追求被稱為通用人工智能(AGI)的算法,這些算法可以應用于任何類型的現實世界問題。最近,由大型語言模型(LLMs)驅動的聊天系統嶄露頭角,并迅速成為在自然語言處理(NLP)中實現AGI的有力候選,但是在計算機視覺(CV)中實現AGI的道路仍然不明朗。這種困境可能歸因于視覺信號比語言信號更復雜,但我們對尋找具體原因以及吸取來自GPT和LLMs的經驗以解決問題充滿了興趣。在這篇論文中,我們從AGI的概念定義開始,簡要回顧了NLP如何通過聊天系統解決各種任務。這個分析啟示我們,統一性是CV的下一個重要目標。但是,盡管在這個方向上做出了各種努力,CV仍然遠離像GPT那樣自然集成所有任務的系統。我們指出,CV的根本弱點在于缺乏從環境中學習的范式,然而NLP已經在文本世界中完成了這項任務。然后,我們設想了一個流程,將一個CV算法(即,一個代理)放置在世界級的、可交互的環境中,預先訓練它根據其行動預測未來的幀,然后對其進行細化訓練以完成各種任務。我們期望通過大量的研究和工程努力推動這個想法向前發展并進行擴大,對此,我們分享了我們對未來研究方向的觀點。
1. 引言
世界正在見證向人工通用智能(AGI)的史詩般的奧德賽,我們按照慣例將AGI定義為可以復制人類或其他動物可以做的任何智能任務的計算機算法。特別是,在自然語言處理(NLP)中,已經開發出了一些可以通過與人類聊天來解決各種任務的計算機算法。一些研究人員認為,這樣的系統可以被看作是AGI的早期火花。這些系統大多是基于大型語言模型(LLMs)建立的,并通過指令調優進行增強。它們配備了外部知識庫和專門設計的模塊,可以完成諸如解決數學問題、生成視覺內容等復雜任務,反映了它強大的理解用戶意圖和進行初步思維鏈的能力。盡管在某些方面(例如,講述科學事實和命名人物之間的關系)存在已知的弱點,但這些開創性的研究已經顯示出一個明確的趨勢,即將NLP中的大多數任務統一到一個系統中,這反映了對AGI的追求。 與自然語言處理(NLP)中統一化的快速進展相比,計算機視覺(CV)領域離統一所有任務的目標還很遠。常規的CV任務,如視覺識別、追蹤、字幕、生成等,大多使用大不相同的網絡架構和/或特別設計的流程進行處理。研究人員期待有一個像GPT那樣的系統,可以用統一的提示機制處理各種CV任務,但在實現個別任務的良好實踐與在多種任務中實現泛化之間存在著權衡。例如,為了在物體檢測和語義分割中報告高識別準確率,最好的策略是在強大的骨干網絡上設計特定的頭部模塊,但這種設計一般不適用于圖像字幕或視覺內容生成等其他問題。顯然,統一化是CV的趨勢。近年來,這個方向有許多努力,我們大致將它們分為五個研究主題,即(i) 基于視覺-語言對齊的開放世界視覺識別,(ii) 用于通用視覺識別的“分割任何物體”任務,(iii) 統一視覺任務的通用視覺編碼,(iv) LLM引導的視覺理解,以增強CV中的邏輯,以及(v) 多模態對話,以促進視覺-語言交互。這些工作都顯示出統一化的希望,但是,它們還不能組成一個像GPT那樣可以解決現實世界中通用CV任務的系統。
因此,產生了兩個問題:(1)為什么在CV中實現統一如此困難?(2)我們可以從GPT和LLMs中學到什么來實現這個目標?為了回答這些問題,我們重新審視GPT,將其理解為在文本世界中建立一個環境,并允許一個算法(或代理)通過交互學習。計算機視覺研究缺乏這樣的環境。因此,算法無法模擬世界,所以它們只能采樣世界,并學習在所謂的代理任務中實現良好的性能。在深度學習的史詩般的十年之后,代理任務不再能夠表示CV算法的能力;越來越明顯的是,繼續追求它們的高精度可能會使我們遠離AGI。基于上述分析,我們提出了一個朝向CV中的AGI的想象流程。它涉及三個階段。第一階段是建立一組忠實的、豐富的、可交互的環境。第二階段的目標是通過迫使代理探索環境并預測未來幀來訓練代理:這對應于NLP中的自回歸預訓練階段。第三階段涉及教代理完成各種任務:在這個階段,可能需要引入人類的指令,這對應于NLP中的指令微調階段。可選地,可以通過簡單和統一的提示來調整代理以執行代理任務。這個想法與一些現有的研究主題有關,包括3D環境建立、視覺預訓練、強化學習和具身CV。但是,現有的工作大多是初步的,我們預期需要大量的努力,才能使它成為解決現實世界問題的有效范式。
本文的其余部分組織如下。首先,在第2部分,我們簡要介紹了AGI的歷史和思想,并繼承了AGI是一種最大化獎勵的算法的定義。接著是第3部分,我們展示了GPT的能力,這是一種最先進的NLP算法,被認為是AGI的火花。然后,在第4部分,我們根據CV研究的當前狀態,分析了在計算機視覺中實現AGI為什么困難,并指出了基本的困難在于過時的學習范式。這個分析引導我們到了第5部分,我們在那里設想了一種將CV推向AGI的流程,并基于此對未來的研究方向進行了一些評論。最后,在第6部分,我們對本文進行了總結并分享了我們的思考。
2. CV:AGI的下一個戰場
人類基于多種數據模式感知世界。我們都知道,我們學到的大約85%的東西是通過我們的視覺系統。因此,鑒于NLP社區已經展現了AGI的前景,自然而然地將計算機視覺(CV)或多模態(至少包括視覺和語言領域)視為AGI的下一個戰場。在此,我們提供兩個額外的評論來補充上述陳述。首先,顯然,CV是NLP的超集,因為人們閱讀文章是首先通過識別捕獲圖像中的字符,然后理解內容。換句話說,CV(或多模態)的AGI應該覆蓋NLP的所有AGI能力。其次,我們認為在許多情況下,僅依靠語言是不夠的。例如,當人們試圖找到關于一個未知對象(例如,動物、時尚等)的詳細信息時,最好的方式是拍攝一張圖片并用它進行在線搜索;純粹依賴文本描述可能會引入不確定性和不準確性。另一個例子,如我們將在第4.3節中看到,不總是容易指出場景中的細粒度語義(用于識別或圖像編輯),并且以視覺友好的方式思考更有效,例如,使用一個點或框來定位一個對象,而不是說一些像“穿著黑色夾克,在黃色汽車前站著和另一個人交談”的人這樣的話。
我們期望有一個CV算法能解決一般性任務,可能通過與環境的交互。注意,這個要求不僅限于識別所有事物或者基于圖像或視頻片段進行對話。它應該是一個全面的系統,接收來自人類的通用命令并產生所需的結果。但是,當前的CV狀態還很初級。如圖7所示,CV社區一直在為不同的視覺任務使用不同的模塊甚至系統。
**統一化是趨勢 **
下面,我們將朝向計算機視覺統一化的最近研究主題總結為五個類別。
**開放世界視覺識別 **
在很長一段時間里,大多數CV算法只能識別出現在訓練數據中的概念,導致了一個“封閉世界”的視覺概念。相反,“開放世界”的概念指的是CV算法能夠識別或理解任何概念,無論它是否以前出現過。開放世界的能力往往通過自然語言引入,因為這是人類理解新概念的自然方式。這解釋了為什么與語言相關的任務,如圖像字幕 [73],[74] 和視覺問題回答 [91],[92],[93] 對視覺識別的開放世界設定做出了最早的貢獻。最近,隨著視覺語言預訓練(例如 CLIP [13] 和 ALIGN [94])的出現,將視覺和語言領域的特征對齊變得更容易。統一的特征空間不僅為圖像字幕 [75],[76],[77] 和視覺問題回答 [11],[76],[95] 提供了更簡單的管道,而且創造了一種新的方法 [13] 用于傳統的視覺識別任務。例如,圖像分類可以通過簡單地將查詢圖像與一組模板(也被稱為“提示”)匹配來完成,說一張{某物}的照片,其中某物可以是任何(因此是開放世界的)概念,比如貓或西伯利亞雪橇犬,并將結果設置為匹配得分最高的候選者。除了原始版本之外,研究人員開發了名為“學習提示”的算法 [96],[97] 來提高分類準確性。后來,該方法從圖像分類繼承到物體檢測 [87],[98],語義分割 [88],[99],實例分割 [100],全景分割 [101],[102],并進一步擴展到視覺接地 [103] 和復合視覺識別 [90] 任務。這些任務可以從視覺語言模型中受益,這些模型經過增強的定位預訓練 [103],[104]。開放世界視覺識別與零樣本視覺識別密切相關,因為它們都試圖將識別能力泛化到訓練集中未出現的概念。
"分割任何事物"任務
"分割任何事物"任務 [14] 最近被引入作為一個通用模塊,將原始圖像像素聚類為多個組,其中許多對應于圖像中的基本視覺單元。該任務支持包括點、輪廓、文本等在內的多種提示,并為每個提示或每個提示的組合產生一些掩碼和分數。該模型,SAM,在一個包含約1000萬圖像的大規模數據集上進行了訓練,能夠轉移到廣泛的分割任務,包括醫學圖像分析 [111],[112],[113],偽裝對象分割 [110],[114],3D對象分割 [108],對象跟蹤 [115],以及應用場景如圖像修復 [109]。SAM也可以與最先進的視覺識別算法一起使用,例如將視覺接地 [116] 算法產生的邊界框精煉為掩碼,并將分割的單元輸入到開放集分類算法中進行圖像標記 [107],[117]。
技術上,SAM的關鍵在于提示機制和數據閉合,即通過標注者的少量反饋來閉合分割任務。提示的統一形式使SAM看起來像是視覺基礎模型或管道的一部分,但仍然存在許多未解決的問題。例如,關于SAM的上游和下游模塊(如果SAM確實是管道的一部分)仍然不清楚,而且SAM可能會嚴重受到像素級外觀的影響,例如,手臂可以精確地在衣服的邊界處從軀干上分割出來,這意味著顏色是分割的主導因素。總的來說,SAM可能已經過度適應了"分割任何事物"任務本身,從而削弱了其分類能力。
通用視覺編碼
另一種統一計算機視覺任務的方式是為它們提供一個通用的視覺編碼。有幾種方法可以實現這個目標。一個關鍵的困難在于視覺任務之間的巨大差異,例如,對象檢測需要一組邊界框,而語義分割需要對整個圖像進行密集預測,這兩者都與圖像分類所需的單個標簽非常不同。正如我們都能理解的,自然語言提供了一種統一的形式來表示所有事物。一個名為 pix2seq [15] 的早期工作顯示,對象檢測結果(即邊界框)可以被形式化為自然語言和坐標,然后轉換為視覺模型的輸出標記。在稍后的版本,pix2seq-v2 中,他們將表示形式一般化,以統一對象檢測、實例分割、關鍵點檢測和圖像字幕的輸出。類似的想法也被用于其他的圖像識別 [120]、視頻識別 [121] 和多模態理解 [16],[122],[123] 任務。
LLM指導的視覺理解
視覺識別可以非常復雜,尤其是當涉及到組合概念和/或視覺實例之間的關系時。對于端到端模型(視覺-語言預訓練模型用于視覺問題回答[11],[76],[95])來說,按照人類容易理解的程序生成答案是困難的。為了緩解這個問題,一個實際的方法是生成可解釋的邏輯來協助視覺識別。這個想法并不新鮮。幾年前,在Transformer架構出現之前,研究人員提出使用長短期記憶模型(LSTM)[72]生成程序,以便將視覺模塊作為復雜問題回答的模塊[126]。在那個時候,LSTM的能力在很大程度上將這個想法限制在相對簡單和模板化的問題范圍內。最近,大型語言模型(尤其是GPT系列)的出現使得任意問題的轉換成為可能。具體來說,GPT可以以不同的方式與人類交互。例如,它可以將基本識別結果總結為最終答案[125],或者生成代碼[18],[124]或自然語言腳本[19]來調用基本視覺模塊。因此,視覺問題可以被分解為基本模塊。這對于邏輯問題特別有效,例如,詢問對象之間的空間關系或依賴于對象數量的問題。LLMs可能理解這種邏輯,但它們尚未展示出協助基本視覺識別模塊的能力。也就是說,一旦基本的識別結果錯誤(例如,檢測算法錯過了一些小的和/或部分遮擋的對象),答案仍然會是錯誤的。我們期望在未來形成一種基本的視覺邏輯(例如,算法可以按照順序算法來檢測每個對象,或者被常識[127]指導來解決難題),可能是在LLMs的幫助下,從而提升基本的視覺識別。
多模態對話
多模態對話將基于文本的對話擴展到視覺領域。早期的工作涉及到視覺問題回答,其中構建了各種簡單問題的數據集 [128],[129],[130]。隨著LLMs的快速發展,通過對預訓練的視覺和語言模型進行微調,實現了多輪問答 [11],[95]。還展示了在多模態中可以通過上下文學習 [76] 或使用GPT作為邏輯控制器 [131] 來回答各種問題。最近,在GPT系列中開發的一種新的范式,稱為指導學習 [4],已被繼承用于提高多模態對話的質量 [20],[46]。其思想是提供一些參考數據(例如,對象、描述)來自于基準標注或識別結果,并要求GPT模型生成指導數據(即,豐富的問答對)。通過這些數據(無需參考),用于視覺和語言的基礎模型可以通過輕量級的網絡模塊(例如,Q-former [11])相互交互。多模態對話為計算機視覺提供了一個初步的交互性基準,但作為一個由語言引導的任務,它也具有開放世界視覺識別中分析的弱點(見第4.2.1節)。我們期望豐富查詢形式的方法(例如,使用通用的視覺編碼方法,參見第4.2.3節)可以將多模態對話推向更高的水平。
3 未來:從環境中學習
上述分析要求我們為計算機視覺(CV)的強大代理制定一個新的范式。在本節中,我們將我們的觀點和洞見轉化為一個假想的流程,回顧與這個流程相關的現有工作,并基于這個流程對未來的研究方向提出評論。
圖14展示了我們的想法。這個流程包括三個階段:第0階段建立環境,第1階段進行預訓練,第2階段進行微調。在需要的時候,微調后的模型可以被用于傳統的視覺識別任務。下面,我們將詳細描述每個階段。
?** 第0階段:建立環境**。正如前面的分析,高質量的環境對于計算機視覺(CV)中的人工通用智能(AGI)是非常必要的。這里的"高質量"概念包括但不限于豐富性(應該有充足和多樣化的環境)、真實性(視覺外觀和其他代理的行為應接近真實世界)以及交互性的豐富性(代理可以通過與環境交互來執行廣泛的任務)。
?** 第1階段:生成式預訓練**。算法被要求探索環境并預訓練以預測未來的幀。這與自然語言處理(NLP)中的 GPT 任務(預測下一個詞元)的最大區別在于,未來的幀取決于代理的行動(在 NLP 中,預訓練的文本語料庫保持不變),所以模型試圖學習狀態和行動的聯合分布。這個策略在已經建立的環境集無法近似世界分布時特別有用。需要注意的是,由于計算機視覺(CV)是自然語言處理(NLP)的超集(參見第4.1節前的段落),預訓練的計算機視覺模型的大小(例如,參數的數量)應該比自然語言處理模型大幾個數量級。
第2階段:指導微調。預訓練模型被指導完成真實世界的任務,遵循人類的指示。直觀上說,代理與環境之間允許的交互類型有很多,包括探索、導航、使用語言、執行物理動作等等。一個合理的推測是,應該收集更多的指示數據,這也對應于基礎計算機視覺模型的大小。
? 可選:下游感知。我們期望計算機視覺算法可以從前一階段學習到所有需要的感知能力,例如,為了完成一個非常簡單的任務,比如"給我買一杯咖啡",模型必須至少學會(i) 安全地四處探索,(ii) 識別咖啡店在哪里,(iii) 用語言與店員交流,并且(iv) 抓取買到的咖啡。這樣的模型,當適當地提供提示時,應該輸出期望的感知結果,包括追蹤另一個代理(以避免與其碰撞),開放集的視覺識別(用于找到酒吧和買到的咖啡)等等。這與通過合成進行分析的想法[136]有關。
4 結論
在這篇論文中,我們討論了如何推動計算機視覺(CV)算法向人工通用智能(AGI)發展。我們首先回顧了計算機視覺為統一而進行的當前狀態和最近的努力,然后我們繼承了來自自然語言處理(NLP),尤其是 GPT 系列的想法和洞見。我們的結論是,計算機視覺缺乏一個可以從環境中學習的范式,為此我們提出了一個假想的流程。我們期望需要實質性的技術進化來使這個流程成為現實。
隨著大型語言模型(LLMs)能力的不斷提高,語境學習( in-context learning,ICL)已經成為自然語言處理(NLP)的一種新范式,其中LLMs僅根據由少量訓練樣本增強的上下文進行預測。探索ICL來評估和推斷LLM的能力已經成為一個新的趨勢。文中對ICL的研究進展、面臨的挑戰以及未來的研究方向進行了綜述和總結。
本文首先給出了ICL的形式化定義,并闡明了其與相關研究的相關性。然后,我們組織討論了ICL的先進技術,包括訓練策略、激勵策略等;最后,指出了ICL面臨的挑戰,并指出了進一步研究的方向。希望我們的工作能夠促進更多關于揭示ICL工作原理和改進ICL的研究。1. 引言隨著模型規模和語料庫規模的擴大(Devlin et al., 2019; Radford et al., 2019; Brown et al., 2020; Chowdhery et al., 2022),大型語言模型展示了從由上下文中的幾個示例組成的演示中學習的新能力(簡稱語境學習)。許多研究表明,LLMs可以使用ICL執行一系列復雜的任務,如解決數學推理問題(Wei et al., 2022c)。這些強大的能力已經被廣泛驗證為大型語言模型的新興能力(Wei等人,2022b)。
語境學習的核心思想是類比學習。圖1給出了一個示例,描述了語言模型如何使用ICL進行決策。首先,ICL需要一些示例來形成演示上下文。這些示例通常使用自然語言模板編寫。然后,ICL將一個查詢問題和一個演示上下文連接在一起形成一個提示,然后將其輸入到語言模型中進行預測。與監督學習需要一個使用后向梯度更新模型參數的訓練階段不同,ICL不需要參數更新,而是直接對預訓練語言模型進行預測。該模型被期望學習隱藏在演示中的模式,并相應地做出正確的預測。ICL作為一種新的范式,具有許多吸引人的優勢。首先,由于演示是用自然語言格式編寫的,它提供了一個可解釋的接口來與大型語言模型通信(Brown et al., 2020)。這種范式通過更改演示和模板使將人類知識納入語言模型變得容易得多(Liu等人,2022;陸等人,2022;吳等人,2022;Wei等,2022c)。第二,上下文學習類似于人類的類比決策過程。第三,與有監督學習相比,ICL是一種無訓練學習框架。這不僅可以大大降低使模型適應新任務的計算成本,還可以使語言模型即服務(Sun等人,2022)成為可能,并且可以很容易地應用于大規模的現實世界任務。盡管前景看好,但ICL中還有一些有趣的問題和有趣的性質需要進一步研究。雖然普通的GPT-3模型本身顯示出有希望的ICL能力,但一些研究觀察到,通過預訓練期間的自適應,能力可以顯著提高(Min et al., 2022b; Chen et al., 2022c)。此外,ICL的性能對特定的設置很敏感,包括提示模板、上下文示例的選擇和示例順序等(Zhao et al., 2021)。此外,盡管從直觀上看是合理的,但ICL的工作機制仍然不明確,很少有研究提供初步解釋(Dai et al., 2022; von Oswald et al., 2022)。我們提供了一份詳細的論文綜述,并將不斷更新論文列表,對ICL的相關研究進行深入討論。本文強調了面臨的挑戰和潛在的方向,希望所做的工作可以為對該領域感興趣的初學者提供有用的路線圖,并為未來的研究提供啟發。2. 概述ICL的強大性能依賴于兩個階段:(1)訓練階段,訓練LLM的ICL能力,(2)推理階段,LLM根據特定任務的演示進行預測。在訓練階段,語言模型直接在語言建模目標上進行訓練,如從左到右的生成。雖然這些模型并沒有針對上下文學習進行特別優化,但ICL仍然具有令人驚訝的能力。現有的ICL研究基本上以訓練有素的語言模型為骨干,因此本綜述不會涵蓋預訓練語言模型的細節。在推理階段,由于輸入和輸出標簽都在可解釋的自然語言模板中表示,因此有多個方向來提高ICL的性能。本文將給出詳細的描述和比較,如選擇合適的示例進行演示,針對不同的任務設計具體的評分方法等。本文按照上述分類法(如圖2所示)組織ICL目前的進展,給出了ICL的正式定義(§3),詳細討論了熱身方法(§4)、演示設計策略(§5)和主要評分功能(§6)。§7對揭開ICL背后秘密的當前探索進行了深入討論。進一步為ICL(§8)提供了有用的評估和資源,并介紹了ICL顯示其有效性的潛在應用場景(§9)。最后,總結了挑戰和潛在的方向(§10),希望這可以為該領域的研究人員鋪平道路。
ICL的主要流程如圖3所示。預訓練對于發展LLM的ICL能力具有重要意義,而可選的預熱階段可以進一步提高其能力。對于演示來說,最重要的步驟是演示設計。通過預訓練的LLM和精心設計的演示,適當的評分策略最終產生任務輸出。
推薦系統在我們的日常生活中發揮著越來越重要的作用,尤其是在許多面向用戶的在線服務中,它在緩解信息過載方面發揮著重要的作用。推薦系統旨在識別一組最能匹配用戶顯性或隱性偏好的對象(即物品),通過利用用戶和物品的交互來提高匹配精度。隨著深度神經網絡(DNNs)在過去幾十年的快速發展,推薦技術取得了良好的性能。然而,我們在設計深度推薦系統(DRS)時面臨三個內在挑戰: 1) 現有的大多數DRS是基于手工組件開發的,這需要大量的機器學習和推薦系統的專家知識; 2) 人為誤差和偏見會導致次優,降低推薦有效性; 3) 在不同的推薦場景中,通常需要非平凡的時間和工程努力來設計特定于任務的組件。
在本教程中,我們將全面介紹高級自動機器學習(AutoML)技術在深度推薦系統中解決上述問題的最新進展。希望相關領域的學術研究者和行業從業者能夠對空間有深刻的理解和準確的洞察,激發更多的想法和討論,并在推薦中推動技術的發展
歸一化方法可以提高深度神經網絡(DNN)的訓練穩定性、優化效率和泛化能力,已成為目前最先進的DNN體系結構的基本組成部分。它們還成功地擴散到深度學習的各個領域,包括但不限于計算機視覺、自然語言處理和語音識別。然而,盡管歸一化技術發揮了豐富和越來越重要的作用,我們注意到沒有一個統一的視角來描述、比較和分析它們。此外,我們對這些方法成功的理論基礎仍然難以理解。
本教程涵蓋了標準化方法、分析和應用程序,并將解決以下問題: (1) DNN中不同規范化方法背后的主要動機是什么?我們如何提出一種分類法來理解各種方法之間的異同? (2) 如何縮小標準化技術的經驗成功與我們對它們的理論理解之間的差距? (3) 針對不同任務設計/裁剪標準化技術的最新進展是什么?它們背后的主要見解是什么?
過去的一年里,深度神經網絡開創了自然語言處理的激動人心的時代。 使用預訓練模型的領域的研究已經導致許多NLP任務的最新結果的巨大飛躍,例如文本分類,自然語言推理和問答。一些關鍵的里程碑是ELMo,ULMFiT和OpenAI Transformer。 這些方法都允許我們在大型數據庫(例如所有維基百科文章)上預先訓練無監督語言模型,然后在下游任務上微調這些預先訓練的模型。也許這一領域今年最激動人心的事件是BERT的發布,這是一種基于多語言Transformer的模型,它在各種NLP任務中取得了最先進的成果。 BERT是一種基于Transformer架構的雙向模型,它以更快的基于注意的方法取代了RNN(LSTM和GRU)的順序特性。 該模型還預訓練了兩個無監督的任務,掩模語言建模和下一個句子預測。 這允許我們使用預先訓練的BERT模型,通過對下游特定任務(例如情緒分類,意圖檢測,問答等)進行微調。
我們將使用Kaggle的垃圾評論分類挑戰來衡量BERT在多標簽文本分類中的表現。
我們從哪里開始?
Google Research最近公開了BERT的張量流實現,并發布了以下預先訓練的模型:
BERT-Base, Uncased: 12層, 768個隱層, 12-heads, 110M 個參數
BERT-Large, Uncased: 24層, 1024個隱層, 16-heads, 340M 個參數
BERT-Base, Cased: 12層, 768個隱層, 12-heads , 110M 個參數
BERT-Large, Cased: 24層, 1024個隱層, 16-heads, 340M 個參數
BERT-Base, Multilingual Cased (New, recommended): 104 種語言, 12層, 768個隱層, 12-heads, 110M 個參數
BERT-Base, Chinese: Chinese Simplified and Traditional, 12層, 768個隱層, 12-heads, 110M 個參數
我們將使用較小的Bert-Base,無框架模型來完成此任務。 Bert-Base模型有12個層,所有文本都將由分詞器轉換為小寫。
我們將使用HuggingFace的優秀PyTorch BERT端口,可在//github.com/huggingface/pytorch-pretrained-BERT獲得。 我們已經使用HuggingFace的repo中提供的腳本將預先訓練的TensorFlow檢查點轉換為PyTorch權重。
我們的實現很大程度上受到BERT原始實現中提供的run_classifier示例的啟發。
數據準備
我們在類InputExample 準備數據:
分詞
BERT-Base,無監督模型使用30,522個單詞的詞匯。 分詞過程涉及將輸入文本拆分為詞匯表中可用的標記列表。 為了處理詞匯表中不可用的單詞,BERT使用一種稱為基于BPE的WordPiece標記化技術。 在這種方法中,詞匯表之外的詞逐漸被分成子詞,然后該詞由一組子詞表示。 由于子詞是詞匯表的一部分,我們已經學習了表示這些子詞的上下文,并且該詞的上下文僅僅是子詞的上下文的組合。 有關此方法的更多詳細信息,請參閱使用子字詞單位的稀有單詞的神經機器翻譯模型。 https://arxiv.org/pdf/1508.07909。
訓練
訓練循環與run_classifier.py中原始BERT實現中提供的循環相同。 我們訓練了4個時期的模型,批量大小為32,序列長度為512,即預訓練模型的最大可能性。 根據原始論文的建議,學習率保持在3e-5。
我們有機會使用多個GPU。 所以我們將Pytorch模型包裝在DataParallel模塊中。 這使我們能夠在所有可用的GPU上傳播我們的訓練工作。
由于某種原因我們沒有使用半精度FP16技術,具有logits loss函數的二進制crosss熵不支持FP16處理。 這并不會影響最終結果,只需要更長的時間訓練。
評估指標
我們調整了精度度量函數以包括閾值,默認設置為0.5。
對于多標簽分類,更重要的指標是ROC-AUC曲線。 這也是Kaggle比賽的評估指標。 我們分別計算每個標簽的ROC-AUC。 我們還在個別標簽的roc-auc分數上使用微觀平均。
我們進行了一些實驗,只有一些變化,但更多的實驗得到了類似的結果。
實驗結果
訓練損失:0.022,驗證損失:0.018,驗證準確度:99.31%
各個標簽的ROC-AUC分數:
代碼下載鏈接:提取碼:nm5t