大型語言模型(LLMs)在自然語言處理領域表現出令人印象深刻的影響,但它們仍然在完整性、時效性、可靠性和適應性等方面存在一些問題。雖然最近的努力集中在將LLMs與外部知識源連接上,但知識庫(KBs)的集成仍未得到充分研究,并面臨一些挑戰。本文介紹了KnowledGPT,一個將LLMs與各種知識庫連接起來的綜合框架,促進知識的檢索和存儲。檢索過程采用思維提示程序,該程序以代碼格式生成用于KB操作的搜索語言。除了檢索外,KnowledGPT還提供了將知識存儲在個性化KB中的能力,以滿足個人用戶的需求。通過廣泛的實驗,我們表明,通過將LLMs與KBs集成,KnowledGPT與普通LLMs相比,能夠適當地回答更廣泛的需要世界知識的問題,利用廣泛存在的KBs中的知識和提取到個性化KB中的知識。
本文提供了一個關于大型語言模型(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顯示了軟件開發活動、研究領域和我們論文結構之間的映射。
近期,自動化機器學習(AutoML)技術被引入,用以根據數據特定方式設計協同過濾(CF)模型。然而,現有的工作或是搜索架構,或是搜索超參數,而忽略了它們之間的內在關系,應該一同考慮。這激發了我們考慮一種結合超參數和架構搜索的方法來設計CF模型。但由于搜索空間巨大和評估成本高昂,這并不容易。為解決這些挑戰,我們通過對單個超參數的全面了解,篩選出有用的超參數選擇來減少搜索空間。接下來,我們提出了一個兩階段搜索算法,從減少的空間中找到合適的配置。在第一階段,我們利用從子樣本數據集中獲取的知識來減少評估成本;在第二階段,我們高效地在整個數據集上對頂級候選模型進行微調。在真實世界數據集上的大量實驗表明,與手工設計的和以前搜索的模型相比,我們的模型可以達到更好的性能。此外,消融和案例研究都證明了我們搜索框架的有效性。
隨著大型語言模型(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上不存在的實體。
低數據環境下的視覺識別需要深度神經網絡從有限的訓練樣本中學習廣義表示。最近,基于CLIP的方法顯示出有希望的少樣本性能,得益于對比性語言-圖像預訓練。提出問題,是否可以通過級聯更多樣化的預訓練知識來進一步輔助少樣本表示學習。本文提出CaFo,一種級聯的基礎模型,融合了各種預訓練范式的各種先驗知識,以實現更好的少樣本學習。CaFo融合了CLIP的語言對比知識、DINO的視覺對比知識、DALL-E的視覺生成知識和GPT-3的語言生成知識。具體來說,CaFo的工作原理是“提示,生成,然后緩存”。首先,利用GPT-3為具有豐富下游語言語義的提示片段產生文本輸入。然后,通過DALL-E生成合成圖像,以在不需要任何人工的情況下擴展少樣本訓練數據。最后,提出一種可學習的緩存模型來自適應地融合CLIP和DINO的預測結果。通過這種合作,CaFo可以充分釋放不同預訓練方法的潛力,并將它們統一起來,以執行最先進的少樣本分類。代碼可以在//github.com/ZrrSkywalker/CaFo上找到。
最近的工作表明,來自在線來源的非結構化文本(文檔)可以作為零樣本圖像分類的有用輔助信息。然而,這些方法需要訪問像維基百科這樣的高質量來源,并且僅限于單一來源的信息。在網絡規模的文本上訓練的大型語言模型(LLM)顯示出令人印象深刻的能力,可以將其所學的知識用于多種任務。本文提供了一種使用LLM為零樣本圖像分類模型提供文本監督的新視角。LLM提供了來自不同注釋器的一些文本描述作為示例。LLM以這些示例為條件,為每個類生成多個文本描述(稱為視圖)。所提出的模型I2MVFormer用這些類視圖學習多視圖語義嵌入,用于零樣本圖像分類。類的每個文本視圖都提供了補充信息,允許模型學習高度區分性的類嵌入。與基線模型相比,I2MVFormer更擅長使用LLM的多視圖文本監督。I2MVFormer在三個公共基準數據集上建立了一種新的無監督語義嵌入的零樣本圖像分類技術。
度量和緩解合成(源)數據與真實場景(目標)數據之間的差異是領域自適應語義分割的核心問題。近年來,已有工作通過在源域引入深度信息來增強幾何和語義知識遷移,但僅基于二維估計深度無法提取物體的位置和形狀等內在三維信息。本文提出一種新的幾何感知域適應網絡(GANDA),利用更緊湊的3D幾何點云表示來縮小域差距。首先,利用源域的輔助深度監督獲取目標域的深度預測,實現結構-紋理解纏;除了深度估計,顯式利用RGB-D圖像生成的點云上的3D拓撲結構,以進一步在目標域中進行坐標顏色解纏和偽標簽細化。此外,為了改進目標域上的二維分類器,我們進行了源域到目標域的域不變幾何自適應,統一了兩個域上的二維語義和三維幾何分割結果。請注意,我們的GANDA在任何現有UDA框架中都是即插即用的。定性和定量的實驗結果表明,該模型在GTA5→Cityscapes和SYNTHIA→Cityscapes數據集上的性能均優于目前的先進水平。
//www.zhuanzhi.ai/paper/e213cce10ef9b5c4515fa8924aa8fd44
知識圖譜嵌入是監督學習模型,學習帶標簽、有向多圖的節點和邊的向量表示。我們描述了它們的設計原理,并解釋了為什么它們在圖表示學習和更廣泛的NLP社區中受到越來越多的關注。我們強調了它們的局限性、開放的研究方向和真實世界的用例。除了理論概述之外,我們還提供了一個handson會議,在那里我們展示了如何在實踐中使用這些模型。
摘要
預訓練語言模型(Pretrained Language Models, PLM)通過在大規模文本語料庫上學習信息語境化表示,建立了一種新的范式。這種新的范式已經徹底改變了整個自然語言處理領域,并為各種NLP任務設置了新的最先進的性能。然而,盡管PLM可以從訓練語料庫中存儲一定的知識/事實,但它們的知識意識還遠遠不能令人滿意。為了解決這個問題,將知識集成到PLM中已經成為一個非常活躍的研究領域,并且已經開發了各種各樣的方法。在本文中,我們對這一新興和快速發展的領域-知識增強的預訓練語言模型(KE-PLMs)提供了一個全面的文獻綜述。我們引入三種分類法來對現有工作進行分類。此外,我們還調研了各種NLU和NLG應用,在這些應用上,KE-PLM表現出了優于普通PLM的性能。最后,討論了KE-PLMs面臨的挑戰和未來的研究方向。
引言
近年來,大規模預訓練語言模型(大規模預訓練語言模型,簡稱PLM)給自然語言處理領域帶來了革命性的變化。預先訓練的模型如BERT [16], RoBERTa [50], GPT2/3[68][7]和T5[69]獲得了巨大的成功,極大地提升了各種NLP應用的最先進性能[67]。前訓練在NLP中的廣泛成功也啟發了自我監督前訓練在其他領域的應用,如圖表示學習[30][31]和推薦系統[81][98]。對大量文本數據的訓練也使這些plm能夠記住訓練語料庫中包含的某些事實和知識。最近的研究表明,這些經過訓練的語言模型可以擁有相當數量的詞匯知識[48][92]和事實知識[63][71][95]。然而,進一步的研究發現,PLM在知識意識方面也存在以下局限性:
對于NLU來說,最近的研究發現PLM傾向于依賴于表面信號/統計線索[62][55][58],并且很容易被否定的信息(例如,“Birds can [MASK]”vs .“Birds cannot [MASK]”)和錯誤啟動的探針[35]所愚弄。此外,已有研究發現,PLM在推理任務中往往會失敗[84]。
對于NLG,盡管PLM能夠生成語法正確的句子,但生成的文本可能不符合邏輯或不合理。例如,在[46]中提到,給定一組概念{dog, frisbee, catch, throw}, GPT2生成“a dog throw a frisbee at a football player”和T5生成“dog catch a frisbee and throw it to a dog”,這兩者都不符合人類的常識。
這些觀察結果促使人們設計更有知識意識的預訓練模型。最近,越來越多的研究致力于明確地將知識納入PLMs[100][108][61][90][96][49][33]。他們利用百科知識、常識知識和語言知識等多種來源,采用不同的注入策略。這種知識集成機制成功地增強了現有PLM的知識意識,提高了包括但不限于實體輸入[100]、問題回答[101][45]、故事生成[22]和知識圖完成[102]在內的各種任務的性能。
本文旨在對這一新興領域的知識增強預訓練語言模型(KE-PLMs)進行全面綜述。現有的KE-PLMs工作已經開發了一套不同的技術,用于在不同的知識來源上進行知識集成。為了深入了解這些模型并促進未來的研究,我們構建了三種分類法來對現有的KE-PLMs進行分類。圖1說明了我們提出的關于知識增強預訓練語言模型(KE-PLMs)的分類法。在現有的KE-PLMs中,已經探索了不同類型的知識來源(如語言學、常識、百科全書、特定應用),以增強PLMs在不同方面的能力。第一種分類法幫助我們理解在構建KE-PLMs時考慮了哪些知識來源。在第二種分類法中,我們認識到一個知識源可以被不同程度地利用,并基于知識粒度對已有的工作進行分類: 基于文本塊、基于實體、基于關系三元和基于子圖。最后,我們介紹了第三種分類法,它根據方法的應用領域對它們進行分組。這種分類法展示了現有的KE-PLMs在知識集成的幫助下旨在改進的一系列應用。通過認識到哪些應用領域已經被KE-PLMs很好地解決了,我們相信這將為未來將KE-PLMs應用于未解決領域的研究機會提供支持。
類別特征(如用戶/商品id)的嵌入學習是矩陣分解和神經協同過濾等各種推薦模型的核心。標準方法創建一個嵌入表,其中每一行代表每個唯一特征值的專用嵌入向量。然而,這種方法不能有效地處理現實世界推薦系統中普遍存在的高基數特征和不可見特征值(如新視頻ID)。在本文中,我們提出了一種替代的嵌入框架深度哈希嵌入(Deep Hash embedding, DHE),用一個深度嵌入網絡代替嵌入表來動態計算嵌入。DHE首先通過多個哈希函數和變換將特征值編碼為唯一的標識向量,然后應用DNN將標識向量轉換為嵌入。編碼模塊具有確定性、不可學習性、無存儲性,而在訓練時更新嵌入網絡以學習生成嵌入。實驗結果表明,DHE在模型尺寸較小的情況下,實現了與標準的一次性全嵌入相比較的AUC。我們的工作為不使用嵌入表查找的基于DNN的分類特征替代嵌入方案的設計提供了思路。
目前流行的圖學習方法需要豐富的標簽和邊信息進行學習。「當新任務的數據稀缺時,元學習允許我們從以前的經驗中學習」,并形成急需的歸納偏見,以便快速適應新任務。
此文介紹了「G-META,一種新的圖的元學習方法:」
G-META 使用局部子圖傳遞特定于子圖的信息,并通過元梯度使模型更快地學習基本知識。 G-META 學習如何僅使用新任務中的少數節點或邊來快速適應新任務,并通過學習其他圖或相關圖(盡管是不相交的標簽集)中的數據點來做到這一點。 G-META 在理論上是合理的,因為「特定預測的證據可以在目標節點或邊周圍的局部子圖中找到。」
現有方法是專門為特定的圖元學習問題和特定的任務設計的專門技術。雖然這些方法為 GNN 中的元學習提供了一種很有前途的方法,但它們的特定策略沒有很好的伸縮性,也不能擴展到其他圖的元學習問題(圖1)。