論文修改100遍也別慌! Meta發布全新寫作語言模型PEER:參考文獻都會加
2020年5月至今,GPT-3發布近兩年半的時間裡,在其神奇的文本生成能力加持下,已經能夠很好地輔助人類進行寫作了。
但GPT-3說到底也就是個文本生成模型,與人類的寫作過程可以說是完全不同了。
例如要寫一篇論文或作文,我們需要先在腦海裡建構一個框架,查相關資料,打草稿,再找導師不斷地修改、潤飾文字,期間可能還會修改思路,最終才可能成為一篇好文章。
而生成模型得到的文本也就是能滿足文法要求,在內容編排上就毫無邏輯,也沒有自我修改的能力,所以讓AI獨立寫作文這件事還很遙遠。
最近Meta AI Research和卡內基美隆大學的研究人員提出一個新的文本生成模型PEER(計劃Plan,編輯Edit,解釋Explain,重複Repeat),完全模擬人類寫作文的過程,從打草稿、徵求建議到編輯文本,再不斷迭代。
論文網址:https://arxiv.org/abs/2208.11663
PEER解決了傳統語言模型只會生成最終結果,並且產生文字無法控制的問題,透過輸入自然語言命令,PEER可以對生成文字進行修改。
最重要的是,研究人員訓練了多個PEER的實例,能夠填補寫作過程中的多個環節,藉此可以使用自訓練(self-training )技術提高訓練資料的品質、數量以及多樣性。
能產生訓練數據,也就代表PEER的潛力遠不止寫作文那麼簡單,還可以在其他沒有編輯歷史的領域使用PEER,讓它自己逐漸提高遵循指令、編寫有用評論和解釋其行為的能力。
NLP也來仿生學
大型神經網路在用自然語言進行預訓練後,文本生成的效果已經非常強了,但這些模型的生成方式基本上就是從左到右一次性輸出結果文本,與人類寫作的迭代過程有很大不同。
一次性生成也有很多弊端,例如無法追溯文本中的句子進行修改或完善,也無法解釋某句文本的生成原因,並且檢驗生成文本的正確性也很難,結果中經常會生成幻覺(hallucinate)內容,即不符合事實的文字。這些缺陷也限制了模型與人類合作寫作的能力,因為人類需要的是連貫且符合事實的文本。
PEER模型透過在文本的「編輯歷史」上進行訓練,使得模型能夠模擬人類的寫作過程。
1、PEER模型運行時,需要使用者或模型指定一個計劃(Plan),透過自然語言描述他們想要執行的行動(action),比如說add some information或fix grammar errors;
2、然後透過編輯(Edit)文字來實現這一行動;
3、模型可以用自然語言和指向相關資源來解釋(Explain)該次編輯結果,例如在文末加上一個參考文獻;
4、重複(Repeat)該過程,直到生成的文本不再需要進一步的更新。
這種迭代的方法不僅使該模型可以將寫一個連貫、一致、事實性的文本這一複雜的任務分解成多個較容易的子任務,還允許人類在生成過程中的任何時刻幹預,引導模型朝著正確的方向發展,提供使用者的計劃和評論,或自己上手進行編輯。
透過方法描述就可以看出來,功能實現上最難的並不是用Transformer搭建模型,而是找訓練數據,想要找到能夠以訓練大型語言模型所需的規模來學習這一過程的資料顯然是很困難的,因為大部分網站都沒有提供編輯歷史,所以透過爬蟲獲得的網頁沒辦法作為訓練資料。
即使透過爬蟲取得不同時間相同網頁作為編輯歷史也不可行,因為沒有對該次編輯做出計劃或解釋的相關文本。
PEER與先前的迭代編輯方法類似,使用維基百科作為主要編輯和相關評論的資料來源,因為維基百科提供了完整的編輯歷史,包括對各種主題的評論,而且規模很大,文章中經常包含引文,對尋找相關文件很有幫助。
但僅依靠維基百科作為訓練資料的唯一來源也存在各種缺點:
1、僅使用維基百科訓練得到的模型在預期文本內容的樣子和預測的計劃和編輯方面需要和維基百科相似;
2、維基百科中的評論是有噪音的,因此在許多情況下,評論並不是計劃或解釋的恰當輸入;
3、維基百科中的許多段落不包含任何引文,雖然這種背景資訊的缺乏可以透過使用檢索系統來彌補,但即使這樣的系統也可能無法為許多編輯找到支持性的背景資訊。
研究人員提出了一個簡單的方法來解決因維基百科是唯一的評論編輯歷史來源而產生的所有問題:即訓練多個PEER實例,並用這些實例學習填充編輯過程的各個環節。這些模型可以用來產生合成資料作為訓練語料庫中缺失部分的替代品。
最終訓練得到四個encoder-decoder模型:
# 1、PEER-Edit的輸入為文字x和一組文檔,模型輸出為計劃和編輯後的文本,其中p為計劃文本。
2、PEER-Undo的輸入為編輯後的文字和一組文檔,模型輸出結果為是否撤銷該次編輯。
3、PEER-Explain用來產生該次編輯的解釋,輸入為來源文字、編輯後的文字和一組相關文件。
4、 PEER-Document輸入原始文字、編輯後的文字和計劃,模型輸出為此編輯中最有用的背景資訊。
PEER的所有變體模型都用來產生合成數據,既產生缺失的部分來補充的訓練數據,也用來取代現有數據中的「低質量」部分。
為了能夠對任意文字資料進行訓練,即使該段落文字沒有編輯歷史,也使用PEER-Undo來產生合成的「後向」編輯,即對原始文字反覆應用PEER-Undo直到文字為空,再呼叫PEER-Edit在相反的方向訓練。
在產生計畫時,使用PEER-Explain來修正語料庫中許多低品質的評論,或處理沒有評論的文字。從PEER-Explain的輸出中隨機採樣多個結果作為“潛在的計劃”,透過計算實際編輯的似然機率,並選擇機率最高的作為新計劃。
如果對於特定編輯操作無法找到相關文檔,則使用PEER-Document產生一組合成的文檔,包含執行該次編輯操作的資訊。最關鍵的是,僅在訓練PEER-Edit這麼做,在推理階段並不提供任何合成文件。
為了提高生成的計劃、編輯和文件的品質和多樣性,研究人員還實現了一個控制機制,即在模型被訓練生成的輸出序列中預置特定的控制標記,然後在推理過程中使用這些控制標記來指導模型的生成,標記包括:
1、type用來控制PEER-Explain生成的文本類型,可選值為instructon(輸出必須以不定式開頭to .. ..)和other;
2、length, 控制PEER-Explain的輸出長度,可選值包括s(少於2個字), m(2-3個字),l(4- 5個字)和xl(多於或等於6個字);
3、overlap, 是否PEER-Explain產生的字可以與編輯文字重複,可選值為true和false;
4、words,用來控制PEER-Undo在源文本和編輯後文本之間不同詞的個數,可選值為所有整數;
5、contains,用來確保PEER- Document輸出的文字包含某個substring
PEER沒有對PEER-edit引入控制符,即沒有假定使用者可能會用模型解決編輯任務的類型,使得模型更加通用。
在實驗比較階段,PEER使用LM-Adapted T5的3B參數版本預訓練初始化。
為了評估了PEER在不同領域中遵循一系列計劃、利用所提供的文檔和進行編輯的能力,特別是在沒有編輯歷史的領域中的表現,文中引入了一個新的數據集Natural Edits,一個針對不同文本類型和領域的自然發生的編輯的集合。
資料從三個英文網路資源收集取得:從維基百科收集百科全書式的頁面,從Wikinews收集新聞文章,從StackExchange的烹飪、園藝、法律、電影、政治、旅遊和工作場所子論壇收集問題,所有這些網站都提供了帶有評論的編輯歷史,這些評論詳細說明了編輯的意圖,並將其作為計劃提供給模型。
在Wikinews和StackExchange子集的訓練中,只提供純文字數據,而非實際的編輯,從而測試在沒有編輯歷史的領域的編輯能力。
實驗結果可以看出PEER的表現在一定程度上超過了所有的基線,而計畫和文件提供了模型能夠使用的互補資訊
在Natural Edits的所有子集上評估PEER後可以發現,計劃對各領域都有很大的幫助,這表明理解維基百科編輯中的計劃的能力可以直接轉移到其他領域。重要的是,在Natural Edits的所有子集上,PEER的領域適應性變體明顯優於常規的PEER,尤其是在園藝、政治和電影子集上有很大的改進(分別為84%、71 %和48%的EM-Diff),也顯示了在不同領域中應用PEER時,產生合成編輯的有效性。
以上是論文修改100遍也別慌! Meta發布全新寫作語言模型PEER:參考文獻都會加的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

DMA在C 中是指DirectMemoryAccess,直接內存訪問技術,允許硬件設備直接與內存進行數據傳輸,不需要CPU干預。 1)DMA操作高度依賴於硬件設備和驅動程序,實現方式因係統而異。 2)直接訪問內存可能帶來安全風險,需確保代碼的正確性和安全性。 3)DMA可提高性能,但使用不當可能導致系統性能下降。通過實踐和學習,可以掌握DMA的使用技巧,在高速數據傳輸和實時信號處理等場景中發揮其最大效能。

使用C 中的chrono庫可以讓你更加精確地控制時間和時間間隔,讓我們來探討一下這個庫的魅力所在吧。 C 的chrono庫是標準庫的一部分,它提供了一種現代化的方式來處理時間和時間間隔。對於那些曾經飽受time.h和ctime折磨的程序員來說,chrono無疑是一個福音。它不僅提高了代碼的可讀性和可維護性,還提供了更高的精度和靈活性。讓我們從基礎開始,chrono庫主要包括以下幾個關鍵組件:std::chrono::system_clock:表示系統時鐘,用於獲取當前時間。 std::chron

在C 中測量線程性能可以使用標準庫中的計時工具、性能分析工具和自定義計時器。 1.使用庫測量執行時間。 2.使用gprof進行性能分析,步驟包括編譯時添加-pg選項、運行程序生成gmon.out文件、生成性能報告。 3.使用Valgrind的Callgrind模塊進行更詳細的分析,步驟包括運行程序生成callgrind.out文件、使用kcachegrind查看結果。 4.自定義計時器可靈活測量特定代碼段的執行時間。這些方法幫助全面了解線程性能,並優化代碼。

交易所內置量化工具包括:1. Binance(幣安):提供Binance Futures量化模塊,低手續費,支持AI輔助交易。 2. OKX(歐易):支持多賬戶管理和智能訂單路由,提供機構級風控。獨立量化策略平台有:3. 3Commas:拖拽式策略生成器,適用於多平台對沖套利。 4. Quadency:專業級算法策略庫,支持自定義風險閾值。 5. Pionex:內置16 預設策略,低交易手續費。垂直領域工具包括:6. Cryptohopper:雲端量化平台,支持150 技術指標。 7. Bitsgap:

在C 中處理高DPI顯示可以通過以下步驟實現:1)理解DPI和縮放,使用操作系統API獲取DPI信息並調整圖形輸出;2)處理跨平台兼容性,使用如SDL或Qt的跨平台圖形庫;3)進行性能優化,通過緩存、硬件加速和動態調整細節級別來提升性能;4)解決常見問題,如模糊文本和界面元素過小,通過正確應用DPI縮放來解決。

C 在實時操作系統(RTOS)編程中表現出色,提供了高效的執行效率和精確的時間管理。 1)C 通過直接操作硬件資源和高效的內存管理滿足RTOS的需求。 2)利用面向對象特性,C 可以設計靈活的任務調度系統。 3)C 支持高效的中斷處理,但需避免動態內存分配和異常處理以保證實時性。 4)模板編程和內聯函數有助於性能優化。 5)實際應用中,C 可用於實現高效的日誌系統。

在MySQL中,添加字段使用ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column,刪除字段使用ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop。添加字段時,需指定位置以優化查詢性能和數據結構;刪除字段前需確認操作不可逆;使用在線DDL、備份數據、測試環境和低負載時間段修改表結構是性能優化和最佳實踐。

C 中使用字符串流的主要步驟和注意事項如下:1.創建輸出字符串流並轉換數據,如將整數轉換為字符串。 2.應用於復雜數據結構的序列化,如將vector轉換為字符串。 3.注意性能問題,避免在處理大量數據時頻繁使用字符串流,可考慮使用std::string的append方法。 4.注意內存管理,避免頻繁創建和銷毀字符串流對象,可以重用或使用std::stringstream。
