本文提供了一個關于大型語言模型(LLMs)在軟件工程(SE)中應用的新興領域的調查。它還提出了將LLMs應用于軟件工程師面臨的技術問題的開放性研究挑戰。LLMs的新興屬性帶來了創新性和創造力,其應用覆蓋了軟件工程活動的全譜,包括編碼、設計、需求、修復、重構、性能提升、文檔和分析。然而,這些同樣的新興屬性也帶來了重大的技術挑戰;我們需要能夠可靠地剔除錯誤的解決方案,如幻覺。我們的調查揭示了混合技術(傳統的SE與LLMs相結合)在開發和部署可靠、高效和有效的基于LLM的SE中的關鍵作用。本文調查了基于LLM的SE的最近發展、進展和實證結果;即大型語言模型(LLMs)在軟件工程(SE)應用的應用。我們使用這次調查來突出這個迅速發展但尚屬初級階段的研究文獻中的空白。基于文獻中的空白和技術機會,我們還確定了軟件工程研究社區的開放問題和挑戰。盡管對這樣一個迅速擴張的領域的任何調查都既不能渴望也不能聲稱是全面的,但我們希望這次調查能為這個令人興奮的新軟件工程子學科——基于LLM的軟件工程提供一個有用且相對完整的早期概述。盡管該領域的科學和技術結構仍在形成中,但我們已經可以識別出趨勢、對未來研究的有益方向以及需要解決的重要技術挑戰。特別是,我們已經能夠辨別出與軟件工程內的現有趨勢和既定方法及子學科的重要連接(和共鳴)。盡管總的來說,我們找到了很多樂觀的理由,但仍然存在重要的技術挑戰,這些挑戰很可能在未來幾年內影響研究議程。許多作者都從科學和軼事的角度指出,LLMs普遍存在幻覺問題[1],而且它對基于LLM的SE也帶來了特定的問題[2]。與人類智慧一樣,幻覺意味著LLM可以產生虛構的輸出。在軟件工程的背景下,這意味著創造的工程制品可能是錯誤的,但看起來是合理的;LLMs可能引入錯誤。然而,與LLMs的許多其他應用不同,軟件工程師通常有可自動化的真實依據(軟件執行),大部分軟件工程制品都可以基于此進行評估。此外,軟件工程研究社區已經花了很多時間開發自動化和半自動化技術,以檢查人類可能產生的錯誤結果。這意味著,對于這個學科和研究社區,當面對像幻覺這樣的問題所帶來的挑戰時,有大量的經驗和專業知識可以借鑒。
顯然,自動化測試技術 [3]–[5] 將在確保正確性中發揮核心作用,就像它們已經為人工設計的制品所做的那樣。在生成全新的功能和系統時,由于缺乏可自動化的oracle [6](一種自動技術,用于確定給定輸入刺激的輸出行為是否正確),自動測試數據生成受到限制。考慮到LLMs的幻覺傾向,Oracle問題仍然非常相關,對它的解決方案將變得更加有影響力。但是,一些SE應用關心現有軟件系統的適應、改進和開發,對于這些應用,有一個現成的可自動化的oracle:原始系統的功能行為。在本文中,我們稱其為“自動回歸Oracle”,這種方法已在遺傳改進領域得到證明是有益的 [7]。自動回歸Oracle簡單地使用軟件系統的現有版本作為參考,以對任何后續的適應和更改的輸出進行基準測試。當然,有“烘焙”功能錯誤的風險,因為自動回歸Oracle無法檢測系統應該做什么,只能捕捉它當前做什么。因此,自動回歸Oracle只能測試功能退化,所以它最適合于需要保持現有功能的用例。例如,對于性能優化和語義保持不變的重構。LLM的輸入將成為越來越多研究的焦點,我們可以預期關于prompt工程和prompt優化文獻的迅速發展 [8]。在這次調查中,我們突出了關于軟件工程的幾個特定方面的prompt工程的現有工作和開放挑戰。LLM的輸出不僅可以限于代碼,還可以包括其他軟件工程制品,如需求、測試用例、設計圖和文檔。總的來說,LLM的基于語言的特性使其能夠生成任何語言定義的軟件工程制品。我們通常認為軟件工程制品是LLM的主要輸出,但它不是唯一的輸出。與主要輸出一起提供的解釋也是LLM的重要輸出。我們的調查突出了需要進行更多的研究的需求,不僅要優化prompt工程(專注于LLM的輸入),還要優化與主要輸出一起提供的解釋的工作。LLMs本質上是非確定性的:相同的prompt在不同的推斷執行中產生不同的答案(除非溫度設為零,這在多次執行中經常被發現是次優的)[9]。此外,無論溫度設置如何,prompt的微妙變化都可能導致非常不同的輸出[9]。除了激勵‘prompt工程’和輸出處理,這種非確定性行為為基于LLM的軟件工程的科學評估帶來了挑戰:如果每次我們運行整個工程過程時結果都會變化,我們如何確定所提議的技術是否超越了現有的技術?這是一個在經驗軟件工程[10]和基于搜索的軟件工程(SBSE)[11]的背景下已經被深入研究的問題。特別是,SBSE與基于LLM的軟件工程有很多相似之處,在存在嘈雜、非確定性和不完整的結果[12]、[13]的情況下實現穩健的科學評估都與之有關。因此,已經有一個成熟的軟件工程文獻專門研究適用于基于LLM的科學評估所需的穩健的科學評估技術。例如,參數和非參數的推斷統計技術現在經常被用來在SBSE學科中提供在高度非確定性算法存在的情況下的穩健的科學結論。為了找出與LLM相關的計算機科學論文,我們過濾了出版物,將其細分為以下子類別:人工智能 (cs.AI)、機器學習 (cs.LG)、神經和進化計算 (cs.NE)、軟件工程 (cs.SE) 和編程語言 (cs.PL)。我們使用查詢“Large Language Model”、“LLM”和“GPT”在標題或摘要中進行篩選(我們手動排除了重載縮寫,例如將GPT誤認為是通用規劃工具),結果是L列。最后,我們使用相同的查詢來識別基于LLM的軟件工程論文,這些論文位于軟件工程 (cs.SE) 和編程語言 (cs.PL) 類別中。這些查詢本質上是近似的,因此我們只局限于基于總體趨勢得出的結論,而這些總體趨勢有強有力的證據支持,而不是觀察到的數字的具體細節。盡管如此,我們報告了觀察到的原始數字,以支持其他人的復制。
圖2展示了arXiv上發布的計算機科學論文數量(|A|,以藍色表示)和LLM相關論文的數量(|L|,以橙色表示)的增長。特別是與軟件工程和LLM相關的論文以綠色表示(|L ∩ S|)。考慮到總體發表量的快速增長,我們為縱軸使用了對數刻度。不出所料,我們看到了計算機科學出版物數量的整體增長。同時,鑒于LLM最近受到的關注增多,LLM相關論文數量的指數增長也相對不足為奇。或許更有趣的是LLM在軟件工程應用中的快速采納,如圖中的綠色所示。為了更詳細地檢查這一趨勢,我們在圖3中畫出了LLM出版物(L)與所有計算機科學出版物(A)的比例(以藍色表示),以及基于LLM的軟件工程出版物(L ∩ S)與所有LLM出版物的比例(以橙色表示)。如圖所示,自2019年以來,基于LLM的軟件工程論文的比例已經急劇上升。目前,所有關于LLM的論文中已有超過10%與基于LLM的軟件工程有關。由于這一增長,我們可以預期將有更多其他的基于LLM的軟件工程調查。文獻的快速擴展使得進一步的全面軟件工程研究不太可能適應單篇論文的空間限制,但我們可以預期會有許多關于感興趣的子領域的全面調查,以及針對系統評審中的主要文獻提出具體研究問題的系統文獻回顧(SLRs)。例如,Hou等人[14]提供了一個出色的最新SLR,涵蓋了2017年至2023年的229篇研究論文,報告了所處理的軟件工程任務、數據收集和預處理技術,以及優化LLM性能的策略(例如提示工程)。本文的其余部分按照主要的頂級軟件開發活動和研究領域進行組織。圖1顯示了軟件開發活動、研究領域和我們論文結構之間的映射。
大型語言模型(LLMs)在自然語言處理方面展示了令人印象深刻的能力。然而,它們的內部機制仍然不清楚,這種不透明性對下游應用帶來了不希望的風險。因此,理解和解釋這些模型對于闡明它們的行為、局限性和社會影響至關重要。在本文中,我們引入了可解釋性技術的分類體系,并提供了關于解釋基于Transformer的語言模型方法的結構化概述。我們根據LLMs的訓練范式對技術進行分類:傳統的微調范式和基于提示的范式。對于每個范式,我們總結了生成個體預測的局部解釋和總體模型知識的全局解釋的目標和主要方法。我們還討論了用于評估生成解釋的度量標準,并討論了如何利用解釋來調試模型和提高性能。最后,我們比較了LLMs時代解釋技術面臨的關鍵挑戰和新興機會與傳統機器學習模型。
大型語言模型(LLMs),如BERT(Devlin等,2019a)、GPT-3(Brown等,2020)、GPT-4(Bubeck等,2023)、LLaMA-2(Touvron等,2023b)和Claude(AnthropicAI,2023),在各種自然語言處理(NLP)任務中展示出了令人印象深刻的性能。主要科技公司,如微軟、谷歌和百度,已在其商業產品和服務中部署了LLMs以增強功能。例如,微軟利用GPT-3.5來改善新Bing的搜索相關性排名(Mehdi,2023)。由于LLMs通常是復雜的“黑盒子”系統,其內部工作機制是不透明的,高復雜性使模型解釋變得更加具有挑戰性。這種模型不透明性的缺乏有時會導致生成有害內容或幻覺的產生(Weidinger等,2021)。因此,開發解釋能力以揭示這些強大模型的工作方式至關重要。
可解釋性指的是以人類可理解的方式解釋或呈現模型行為的能力(Doshi-Velez和Kim,2017;Du等,2019a)。提高LLMs的可解釋性至關重要,有兩個關鍵原因。首先,對于一般終端用戶,可解釋性通過以可理解的方式闡明模型預測背后的推理機制來建立適當的信任,無需技術專業知識。通過這種方式,終端用戶能夠理解LLMs的能力、局限性和潛在缺陷。其次,對于研究人員和開發人員,解釋模型行為提供了洞察力,以識別意外偏見、風險和性能改進的領域。換句話說,可解釋性充當了一個調試輔助工具,可以快速提高下游任務上的模型性能(Strobelt等,2018;Bastings等,2022;Yuksekgonul等,2023)。它有助于追蹤模型能力隨時間的變化,進行不同模型之間的比較,并開發可靠、道德和安全的模型,以供實際部署使用。 由于LLMs的獨特屬性,其可解釋性技術與傳統機器學習(ML)模型的技術有所不同。LLMs和傳統ML模型之間的差異可以歸因于多個方面。從數據的角度來看,ML模型以監督方式依賴人工構建的特征,而LLMs旨在自動從原始輸入數據中學習特征(Chai和Li,2019)。解釋LLMs捕捉了哪些特征以及這些特征中包含了什么知識是重要的。從模型的角度來看,傳統ML模型通常是針對具體任務設計的,具有不同的模型架構(Liu和Sun,2023)。相比之下,經過廣泛數據集的預訓練的LLMs可以通過微調泛化到各種下游任務(Yang等,2023)。此外,LLMs的注意力機制已被廣泛用于通過為輸入的相關部分分配更高的值來確定輸入的重要性(Hu,2020)。由于注意力權重中編碼的知識和模式可能提示了模型的理解,注意力權重可以被認為是精細調校模型的另一個重要解釋標準。此外,由于LLMs的性能更好,還應進一步研究transformer的組件,包括神經元、層和模塊,學到了什么以及它們是否有不同的功能。從應用的角度來看,傳統ML模型專注于低級模式識別任務,如解析和形態分析,而LLMs可以處理高級推理任務,如回答問題和常識推理(Lauriola等,2022)。特別是,理解LLMs在上下文學習和思維鏈提示以及幻覺現象方面的獨特能力對于解釋和改進模型至關重要。為了更好地理解和改進LLMs,有必要回顧和總結專為LLMs定制的解釋技術。 在本文中,我們提供了一種解釋基于Transformer的語言模型的方法的全面概述。在第2節中,我們介紹了應用LLMs的兩個主要范式:1)傳統的下游微調范式和2)提示范式。基于這一分類,我們在第3節中回顧了適用于微調LLMs的解釋方法,并在第4節中回顧了適用于提示LLMs的解釋方法。在第5節中,我們討論了解釋方法的評估。最后,在第6節中,我們進一步討論了與傳統機器學習模型相比解釋LLMs所面臨的研究挑戰,并提供了有關潛在未來研究方向的見解。本文旨在全面整理關于解釋復雜語言模型的最新研究進展。 LLMs的訓練范式
LLMs的訓練可以基本分為兩個范式,傳統微調和提示,根據它們如何用于適應下游任務。由于這兩個范式之間存在重大區別,因此分別提出了各種類型的解釋(如圖1所示)。 傳統微調范式
在這個范式中,首先對語言模型進行了大規模無標簽文本數據的預訓練,然后在特定下游領域的一組標記數據上進行微調,例如GLUE基準測試中的SST-2、MNLI和QQP(Wang等人,2019)。在微調過程中,很容易在語言模型的最終編碼器層上方添加完全連接的層,使其適應各種下游任務(Rogers等人,2021)。這個范式已經在包含多達十億參數的中型語言模型上取得了成功。例如,包括BERT(Devlin等人,2019a)、RoBERTa(Liu等人,2019)、ELECTRA(Clark等人,2020)、DeBERTa(He等人,2021)等。對于這個范式的解釋重點在于兩個關鍵領域:1)理解自監督預訓練如何使模型獲得語言的基礎理解(例如句法、語義和上下文關系);以及2)分析微調過程如何賦予這些預訓練模型有效解決下游任務的能力。
**提示范式 **
提示范式涉及使用提示,例如自然語言句子中的空白,以便模型填充,實現零樣本學習或少樣本學習,而無需額外的訓練數據。根據其開發階段,這個范式下的模型可以分為兩種類型: 基礎模型:隨著LLMs的規模和訓練數據的增加,它們展示了令人印象深刻的新能力,無需額外的訓練數據。其中一種能力是通過提示實現少樣本學習。這種類型的范式通常適用于大規模語言模型(擁有數十億參數)(例如GPT-3(Brown等人,2020)、OPT(Zhang等人,2022b)、LLaMA-1(Touvron等人,2023a)、LLaMA-2(Touvron等人,2023b)、Falcon(Almazrouei等人,2023))。這些模型被稱為基礎模型或基礎模型,它們可以與用戶進行對話,無需進一步與人類喜好對齊。大規模模型通常適用于這種范式,規模超過10億。例如,LLaMA-2(Touvron等人,2023b)擁有高達700億個參數。基礎模型的解釋旨在理解模型如何學習在回應提示時利用其預訓練知識。 助手模型:基礎模型存在兩個主要限制:1)它們不能按照用戶的指令進行操作,因為預訓練數據包含少量指令-響應示例,2)它們傾向于生成有偏見和有毒的內容(Carlini等人,2023)。為了解決這些限制,基礎模型通過監督微調進一步進行微調(見圖2),以實現人類級別的能力,例如開放域對話。關鍵思想是通過將模型的響應與人類反饋和喜好對齊來實現。這個過程最典型的方式是通過(提示,響應)演示對和來自人類反饋的強化學習(RLHF)進行指導調整。模型通過自然語言反饋進行訓練,以進行復雜的多輪對話。屬于這一類別的模型包括OpenAI的GPT-3.5和GPT4(Bubeck等人,2023)、Anthropic的Claude(AnthropicAI,2023)以及一些開源模型,如Meta的LLaMA-2-Chat(Touvron等人,2023b)、Alpaca(Taori等人,2023)和Vicuna(Chiang等人,2023)。這些模型也可以稱為助手模型、聊天助手或對話模型。助手模型的解釋重點在于理解模型如何從對話中學習開放式互動行為。
**傳統微調范式的解釋 **
在本節中,我們回顧了針對采用預訓練和下游微調范式訓練的LLMs的解釋技術。首先,我們介紹了提供局部解釋(第3.1節)和全局解釋(第3.2節)的方法。在這里,局部解釋旨在提供對語言模型如何對特定輸入實例進行預測的理解,而全局解釋旨在提供對LLM整體工作方式的廣泛理解。接下來,我們討論了如何利用解釋來調試和改進模型(第3.3節)。
局部解釋
解釋的第一類別涉及解釋LLMs生成的預測。讓我們考慮這樣一種情景,我們有一個語言模型,并將特定文本輸入模型。模型隨后產生分類輸出,例如情感分類或下一個標記的預測。在這種情景下,解釋的作用是闡明模型生成特定分類或標記預測的過程。由于目標是解釋LLM如何為特定輸入做出預測,我們將其稱為局部解釋。這個類別包括四個主要方法流,包括基于特征歸因的解釋、基于注意力的解釋、基于示例的解釋和自然語言解釋。
**全局解釋 **
不同于旨在解釋模型的個體預測的局部解釋,全局解釋有助于從模型的角度理解LLMs的工作方式。全局解釋旨在理解個體組件(神經元、隱藏層和較大模塊)編碼了什么,以及解釋了個體組件所學習的知識/語言屬性。我們考察了三種主要的全局解釋方法:探測方法,用于分析模型表示和參數;神經元激活分析,用于確定模型對輸入的響應性;以及基于概念的方法。
**提示范式的解釋 **
在本節中,我們介紹了解釋屬于提示范式的模型的技術,包括1)解釋基礎模型,如LLaMA-2(第4.1節),2)解釋助手模型,如LLaMA-2-Chat(第4.2節),以及3)如何利用LLMs的推理和解釋能力生成用戶友好的解釋(第4.3節)。
基礎模型解釋
隨著語言模型的規模增大,它們展示出了新的能力,如少樣本學習,即僅從少量示例中學習概念的能力。它們還展示了一種思維鏈(CoT)提示能力。鑒于這些新興屬性,解釋性研究有三個主要目標:1)研究提供解釋是否實際有助于模型自身更快地從僅有少量示例中“理解”新任務,2)理解這些大型語言模型如何能夠迅速從有限示例中掌握新任務,從而幫助終端用戶解釋模型的推理,以及3)解釋思維鏈提示。
**助手模型解釋 **
由于大規模無監督預訓練和有監督對齊微調,屬于這一范式的LLMs具有強大的推理能力。然而,它們的巨大規模也使它們容易生成問題輸出,如幻覺。解釋性研究旨在:1)闡明對齊微調的作用,2)分析幻覺產生的原因。
結論
在本文中,我們提供了對LLMs的可解釋性技術的全面概述。我們總結了基于模型訓練范式的局部和全局解釋方法。我們還討論了如何利用解釋來改進模型、評估以及主要挑戰。未來的重要發展選項包括開發針對不同LLMs的解釋方法、評估解釋的忠實性,以及提高人類可解釋性。隨著LLMs的不斷進步,可解釋性將變得極其重要,以確保這些模型具有透明性、公平性和益處。我們希望這份調查為這一新興研究領域提供了有用的組織,同時突顯了未來工作的開放性問題。
大型語言模型(LLMs)在自然語言處理領域表現出令人印象深刻的影響,但它們仍然在完整性、時效性、可靠性和適應性等方面存在一些問題。雖然最近的努力集中在將LLMs與外部知識源連接上,但知識庫(KBs)的集成仍未得到充分研究,并面臨一些挑戰。本文介紹了KnowledGPT,一個將LLMs與各種知識庫連接起來的綜合框架,促進知識的檢索和存儲。檢索過程采用思維提示程序,該程序以代碼格式生成用于KB操作的搜索語言。除了檢索外,KnowledGPT還提供了將知識存儲在個性化KB中的能力,以滿足個人用戶的需求。通過廣泛的實驗,我們表明,通過將LLMs與KBs集成,KnowledGPT與普通LLMs相比,能夠適當地回答更廣泛的需要世界知識的問題,利用廣泛存在的KBs中的知識和提取到個性化KB中的知識。
隨著大型語言模型(LLM)發展的日益普及,吸引了大量關注,各種應用領域的模型不斷涌現。然而,將大型語言模型與語義技術相結合以進行推理和推斷仍然是一項具有挑戰性的任務。本文分析了當前在基礎LLM方面的進展,如ChatGPT,如何與專用預訓練模型,如REBEL,進行比較,以實現實體和關系的聯合提取。為了評估這種方法,我們使用與可持續性相關的文本作為案例,進行了多個實驗。我們創建了從原始文本自動生成知識圖譜的流程,并發現使用先進的LLM模型可以提高從非結構化文本創建這些圖譜的過程的準確性。此外,我們還探討了使用基礎LLM模型進行自動本體創建的潛力,從而生成更相關且準確的知識圖譜。本節描述了本研究中使用的方法,包括數據收集過程以及用于分析收集到的數據的實體-關系提取算法。
**A. 數據收集過程 **為了對實體-關系提取的兩種方法進行實驗性比較,我們從網絡上收集了有關可持續性主題的新聞數據。為此,我們使用了News API [21]系統。News API是一個HTTP REST API,用于從網絡上搜索和檢索實時文章。它提供了通過指定以下選項在網絡上發布的文章中進行搜索的功能:關鍵詞或短語、發布日期、來源域名和語言。通過使用News API,我們收集了2023-02-15至2023-03-19關于可持續性主題的94篇新聞文章。收集到的文本包含各種字數,從50個到超過4200個不等。由于輸入到語言模型中的令牌數量受到限制,因此需要進行額外的預處理步驟來處理包含大量單詞的文本。
**B. 關系提取方法 **關系提取是自然語言處理(NLP)中的一項基本任務,旨在識別句子或文檔中實體之間的語義關系。這項任務具有挑戰性,因為它需要理解實體出現的上下文以及它們之間存在的關系類型。在本小節中,我們將介紹如何利用REBEL和ChatGPT進行關系提取任務。1) REBEL:我們首先嘗試使用REBEL從非結構化新聞文章中提取關系。為了讓REBEL能夠使用提供的文本,需要使用相應的分詞器功能對其進行分詞。分詞是將原始文本分割成稱為令牌的較小單位的過程。令牌可以是單詞、字符或子詞。模型對令牌的限制為512個令牌,這意味著在將較長的收集到的文章發送到模型進行三元組提取之前,需要對其進行預處理。為了解決這個限制,我們將原始文本進行分詞,并將令牌劃分為256個令牌的批次。這些批次分別由REBEL模型處理,然后合并結果以提取較長文本的關系。還向提取的關系添加元數據,引用生成關系的令牌批次。采用這種方法,由于令牌批次可能在句子的中間開始或結束,某些關系可能無法準確提取。然而,這種情況發生的次數微乎其微。因此,我們將其處理留給未來的工作。實體-關系提取過程完成后,提取的信息存儲在三元組結構中。為了進一步規范提取的實體,我們執行實體鏈接[22]。實體鏈接是指將原始文本中提到的實體與知識庫中相應實體進行識別和關聯的過程。實體鏈接過程不屬于REBEL模型的一部分,它是用于優化提取關系的額外后處理步驟。在本研究中,我們使用DBpedia作為知識庫,并認為如果兩個實體具有相同的DBpedia URL,則它們是相同的。這方法不適用于DBpedia上不存在的實體。
本文探索了一類新的基于transformer架構的擴散模型。訓練圖像的潛在擴散模型,用一個在潛在塊上操作的transformer取代常用的U-Net骨干。通過Gflops測量的前向傳遞復雜性來分析擴散transformer (DiTs)的可擴展性。具有較高Gflops的DiTs——通過增加transformer深度/寬度或增加輸入tokens 數量——始終具有較低的FID。除了具有良好的可擴展性,最大的DiT-XL/2模型在類條件ImageNet 512x512和256x256基準上的性能優于所有先驗的擴散模型,在后者上實現了最先進的FID 2.27。 //www.wpeebles.com/DiT
1. 引言
在transformers的推動下,機器學習正在復興。在過去的五年中,自然語言處理[8,39]、視覺[10]和其他幾個領域的神經架構在很大程度上被transformer[57]所涵蓋。然而,許多類別的圖像級生成模型仍然堅持這一趨勢,盡管transformer在自回歸模型中被廣泛使用[3,6,40,44],但在其他生成模型框架中被采用的較少。例如,擴散模型一直處于圖像級生成模型最新進展的前沿[9,43];然而,它們都采用卷積U-Net架構作為事實上的骨干選擇。
Ho等人的開創性工作[19]首先為擴散模型引入了U-Net主干。設計選擇繼承自PixelCNN++[49,55],一個自回歸生成模型,有一些架構上的變化。該模型是卷積的,主要由ResNet[15]塊組成。與標準的U-Net[46]相比,額外的空間自注意力塊(transformer中的重要組成部分)在較低的分辨率下穿插。Dhariwal和Nichol[9]消除了U-Net的幾個架構選擇,例如使用自適應歸一化層[37]來注入條件信息和卷積層的通道計數。然而,Ho等人提出的U-Net的高層設計在很大程度上保持不變。
**本文旨在揭開擴散模型中結構選擇的意義,并為未來的生成式建模研究提供經驗基線。**U-Net歸納偏差對擴散模型的性能不是至關重要的,可以很容易地被transformer等標準設計取代。因此,擴散模型很好地從最近的架構統一趨勢中獲益。通過繼承其他領域的最佳實踐和訓練秘訣,以及保留可擴展性、魯棒性和效率等良好特性。標準化的架構也將為跨領域研究開辟新的可能性。
本文關注一類新的基于transformer的擴散模型。我們稱它們為擴散transformer,或簡稱DiTs。DiTs遵循視覺transformer (vit)[10]的最佳實踐,已被證明比傳統卷積網絡(如ResNet[15])更有效地擴展視覺識別。
本文研究了transformer的擴展行為,即網絡復雜性與樣本質量之間的關系。通過在潛擴散模型(LDMs)[45]框架下構建DiT設計空間并對其進行基準測試,其中擴散模型是在VAE的潛空間中訓練的,可以成功地用transformer取代U-Net主干。DiTs是擴散模型的可擴展架構:網絡復雜性(由Gflops衡量)與樣本質量(由FID衡量)之間有很強的相關性。通過簡單地擴大DiT并訓練具有高容量骨干(118.6 Gflops)的LDM,能夠在有類條件的256 × 256 ImageNet生成基準上取得2.27 FID的最新結果。
在過去的一年里,擴散模型在圖像生成方面取得了驚人的成果。幾乎所有這些模型都使用卷積U-Net作為骨干。這有點令人驚訝!在過去的幾年里,深度學習的主要故事是transformer在各個領域的主導地位。U-Net或卷積是否有什么特別之處——使它們在擴散模型中工作得如此好?
本文將潛在擴散模型(LDMs)中的U-Net骨干替換為transformer。我們稱這些模型為擴散transformer,或簡稱DiTs。DiT架構非常類似于標準的視覺Transformer (ViT),有一些小但重要的調整。擴散模型需要處理條件輸入,如擴散時間步或類標簽。我們嘗試了一些不同的模塊設計來注入這些輸入。最有效的是具有自適應層norm層(adaLN)的ViT塊。重要的是,這些adaLN層還調制塊內任何殘差連接之前的激活,并被初始化為每個ViT塊都是identity函數。簡單地改變注入條件輸入的機制就會在FID方面產生巨大的差異。這是我們獲得良好性能所需的唯一更改;除此之外,DiT是一個相當標準的transformer模型。
可視化放大DiT的效果。我們使用相同的采樣噪聲,在400K訓練步驟中從所有12個DiT模型生成圖像。計算密集型的DiT模型具有更高的樣本質量。 眾所周知,transformer在各種領域都具有良好的擴展性。那么作為擴散模型呢?本文將DiT沿兩個軸進行縮放:模型大小和輸入標記數量。
*擴展模型大小。我們嘗試了四種不同模型深度和寬度的配置:DiT-S、DiT-B、DiT-L和DiT-XL。這些模型配置范圍從33M到675M參數和0.4到119 Gflops。它們是從ViT文獻中借來的,該文獻發現聯合放大深度和寬度效果很好。
擴展標記。DiT中的第一層是patchify層。Patchify將每個patch線性嵌入到輸入圖像(或在我們的例子中,input latent)中,將它們轉換為transformer token。較小的patch大小對應于大量的transformer token。例如,將patch大小減半會使transformer的輸入token數量增加四倍,從而使模型的總Gflops至少增加四倍。盡管它對Gflops有巨大的影響,但請注意,patch大小對模型參數計數沒有意義的影響。
對于我們的四個模型配置中的每一個,我們訓練三個模型,潛塊大小為8、4和2(共12個模型)。Gflop 最高的模型是DiT-XL/2,它使用最大的XL配置,patch大小為2。
通過Fréchet Inception Distance (FID)測量,擴展模型大小和輸入tokens 數量可以大大提高DiT的性能。正如在其他領域觀察到的那樣,計算(而不僅僅是參數)似乎是獲得更好模型的關鍵。例如,雖然DiT-XL/2獲得了優秀的FID值,但XL/8表現不佳。XL/8的參數比XL/2多一些,但Gflops少得多。較大的DiT模型相對于較小的模型是計算效率高的;較大的模型比較小的模型需要更少的訓練計算來達到給定的FID(詳細信息請參見論文)。
根據我們的擴展分析,當訓練時間足夠長時,DiT-XL/2顯然是最佳模型。在本文的其余部分,我們將專注于XL/2。
與最新擴散模型的比較
從我們的DiT-XL/2模型中選擇的樣本,以512x512分辨率(頂部行)和256x256分辨率(底部)進行訓練。在這里,我們使用無分類器指導規模,對512模型使用6.0,對256模型使用4.0。 我們在ImageNet上訓練了兩個版本的DiT-XL/2,分辨率分別為256x256和512x512,步驟分別為7M和3M。當使用無分類器指導時,DiT-XL/2優于所有先驗擴散模型,將LDM (256x256)取得的3.60的之前最好的FID-50K降低到2.27;這是所有生成模型中最先進的。XL/2在512x512分辨率下再次優于所有先前的擴散模型,將ADM-U之前獲得的最佳FID 3.85提高到3.04。
除了獲得良好的FIDs外,DiT模型本身相對于基線仍然是計算高效的。例如,在256x256分辨率下,LDM-4模型是103 Gflops, ADM-U是742 Gflops, DiT-XL/2是119 Gflops。在512x512分辨率下,ADM-U是2813 Gflops,而XL/2只有525 Gflops。
知識圖譜嵌入是監督學習模型,學習帶標簽、有向多圖的節點和邊的向量表示。我們描述了它們的設計原理,并解釋了為什么它們在圖表示學習和更廣泛的NLP社區中受到越來越多的關注。我們強調了它們的局限性、開放的研究方向和真實世界的用例。除了理論概述之外,我們還提供了一個handson會議,在那里我們展示了如何在實踐中使用這些模型。
強化學習(RL)為數據驅動決策提供了一個通用框架。然而,正是這種通用性使得這種方法適用于廣泛的問題,也導致了眾所周知的效率低下。在這篇論文中,我們考慮了有趣的決策類所共有的不同屬性,這些屬性可以用來設計計算效率和數據效率都很高的學習算法。具體來說,這項工作研究了決策問題的各個方面的低秩結構和經典確定性規劃的效果稀疏性,以及基于端到端模型的方法所依賴的性能。我們首先展示了后繼表示中的低秩結構如何使高效在線學習算法的設計成為可能。類似地,我們展示了如何在Bellman算子中找到相同的結構,我們使用Bellman算子來制定最小二乘時間差分學習算法的有效變體。我們進一步探索狀態特征中的低秩結構,以學習完全允許在低維空間中進行高效規劃的有效轉換模型。然后,我們進一步了解基于模型的端到端方法,以便更好地理解它們的屬性。我們通過約束優化和隱式微分的視角來研究這類方法。通過隱式視角,我們得到了這些方法的屬性,這些屬性使我們能夠確定它們執行良好的條件。在本文的最后,探索了如何利用經典規劃問題的效果的稀疏性來定義一般的領域無關啟發式方法,通過使用基于潛在的獎勵塑造和提升函數近似,可以用來大大加快領域相關啟發式方法的學習。
//dspace.mit.edu/handle/1721.1/144562
在理論計算機科學、概率、機器學習、離散數學、優化和壓縮感知等各個領域,對統計物理方法和概念的興趣正在迅速增長。本課程將涵蓋這一豐富而活躍的跨學科研究領域。
具體地說,我們將回顧統計物理方法對問題的處理,從圖論(滲透、社區檢測)到離散優化和約束滿足(可滿足性、著色性、二分法),再到推理和學習問題(神經網絡中的學習、數據和網絡的聚類、壓縮感知或稀疏線性回歸、低秩矩陣和張量分解等)。
本課程面向具有概率論和分析基礎知識的所有自然科學和工程學科的研究生和研究人員。
這套課程將討論概率模型,并關注來自統計、機器學習和使用統計物理工具和技術的約束優化的問題。重點將更多的是理論而不是實際,所以你已經被警告!我們的目標是展示一些統計物理學的方法是如何得到許多數學問題的精確答案的。正如阿基米德所指出的那樣,一旦給出了這些答案,即使它們是通過啟發式方法得到的,嚴格地證明它們也是一種更簡單(但仍然不平凡)的方法。在過去的幾十年里,理論物理和應用數學之間的興趣和方法日益趨同,許多統計物理和計算機科學的理論和應用工作都依賴于自旋玻璃統計物理的聯系。本講座的目的是介紹進入這個快速發展的領域所必需的背景知識。
持續學習變得越來越重要,因為它使NLP模型能夠隨著時間的推移不斷地學習和獲取知識。以往的持續學習方法主要是為了保存之前任務的知識,并沒有很好地將模型推廣到新的任務中。在這項工作中,我們提出了一種基于信息分解的正則化方法用于文本分類的持續學習。我們提出的方法首先將文本隱藏空間分解為對所有任務都適用的表示形式和對每個單獨任務都適用的表示形式,并進一步對這些表示形式進行不同的規格化,以更好地約束一般化所需的知識。我們還介紹了兩個簡單的輔助任務:下一個句子預測和任務id預測,以學習更好的通用和特定表示空間。在大規模基準上進行的實驗證明了我們的方法在不同序列和長度的連續文本分類任務中的有效性。
//cea.ceaj.org/CN/abstract/abstract39198.shtml
近年來,深度學習技術被廣泛應用于各個領域,基于深度學習的預處理模型將自然語言處理帶入一個新時代。預訓練模型的目標是如何使預訓練好的模型處于良好的初始狀態,在下游任務中達到更好的性能表現。對預訓練技術及其發展歷史進行介紹,并按照模型特點劃分為基于概率統計的傳統模型和基于深度學習的新式模型進行綜述;簡要分析傳統預訓練模型的特點及局限性,重點介紹基于深度學習的預訓練模型,并針對它們在下游任務的表現進行對比評估;梳理出具有啟發意義的新式預訓練模型,簡述這些模型的改進機制以及在下游任務中取得的性能提升;總結目前預訓練的模型所面臨的問題,并對后續發展趨勢進行展望。