最新亚洲人成无码网站,夜夜操夜夜操夜夜爽,中文字日产幕乱五区,在线成人看片黄a免费看,亚洲自偷自拍另类11p

首頁 >> 今日更新 >

Meta祭出三篇最詳盡Llama微調指南!千字長文,0基礎小白必備

2024-08-26 14:00:04 來源: 用戶: 

相信很多大家對Meta祭出三篇最詳盡Llama微調指南!千字長文,0基礎小白必備還不知道吧,今天菲菲就帶你們一起去了解一下~.~!

【新智元導讀】微調的所有門道,都在這里了。

開源,就要開的徹徹底底。

這不,Meta一連放出三篇技術文章,從大模型適配方法出發(fā),介紹了:

接下來,直接進入正題。

適配大模型

預訓練

預訓練是指,使用數(shù)萬億個token數(shù)據(jù),從頭開始訓練LLM的過程,通常使用自監(jiān)督算法進行訓練。

最常見的情況是,訓練通過自回歸預測下一個token(也稱為因果語言建模)。

預訓練通常需要數(shù)千個GPU小時(105-107個),并分布在多個GPU上進行。

預訓練的輸出模型稱為「基礎模型」。

繼續(xù)預訓練

繼續(xù)預訓練(也稱為第二階段預訓練)將使用全新的、未見過的領域數(shù)據(jù)進一步訓練基礎模型。

這里,同樣使用與初始預訓練相同的自監(jiān)督算法。

通常會涉及所有模型權重,并將一部分原始數(shù)據(jù)與新數(shù)據(jù)混合。

微調

微調是以監(jiān)督方式使用帶注釋的數(shù)據(jù),或使用基于強化學習的技術,來適配預訓練語言模型的過程。

與預訓練相比,微調有兩個主要區(qū)別:

- 在包含正確標簽/答案/偏好的注釋數(shù)據(jù)集上進行監(jiān)督訓練,而不是自監(jiān)督訓練

- 需要較少的token(數(shù)千或數(shù)百萬,而不是預訓練中需要的數(shù)十億或數(shù)萬億),其主要目的是提高能力,如指令遵循、人類對齊、任務執(zhí)行等。

而要了解微調的現(xiàn)狀,可以從兩個方面入手:參數(shù)變化的百分比和微調后新增的能力。

更改的參數(shù)百分比

根據(jù)更改的參數(shù)量,有兩類算法:

- 全面微調:顧名思義,這包括更改模型的所有參數(shù),包括在XLMR和BERT(100-300M參數(shù))等小模型上所做的傳統(tǒng)微調,以及對Llama2、GPT3(1B+參數(shù))等大模型上的微調。

- 參數(shù)高效微調(PEFT):PEFT算法只微調少量額外參數(shù),或更新預訓練參數(shù)的子集,通常是總參數(shù)的1%-6%,而不是對所有LLM權重進行離線微調。

基礎模型新增的能力

微調的目的是為了向預訓練的模型添加功能,比如指令遵循、人類對齊等。

聊天微調Llama2,就是一個具有附加指令遵循和對齊能力的微調模型的例子。

檢索增強生成(RAG)

企業(yè)還可以通過添加特定領域的知識庫來適配LLM,RAG是典型的「搜索驅動的LLM文本生成」。

RAG于2020年推出,它使用動態(tài)提示上下文,通過用戶問題檢索并注入LLM提示,以引導其使用檢索到的內容,而不是預訓練的知識。

Chat LangChain是由RAG支持的、在Lang Chain文檔上流行的Q/A聊天機器人。

上下文學習(ICL)

對于ICL,通過在提示符中放置原型示例來適配LLM。多項研究表明,「舉一反三」是有效的。這些示例可以包含不同類型的信息:

- 僅輸入和輸出文本,也就是少樣本學習

- 推理追蹤:添加中間推理步驟,可參閱思維鏈(COT)提示

- 計劃和反思追蹤:添加信息,教LLM計劃和反思其解決問題的策略,可參閱ReACT

選擇正確的適配方法

要決定上述哪種方法適合特定應用,你應該考慮各種因素:所追求任務所需的模型能力、訓練成本、推理成本、數(shù)據(jù)集類型等。

下面的流程圖總結了一些建議,可以幫助你選擇合適的LLM適配方法。

? 預訓練

預訓練是LLM訓練的重要組成部分,它使用token預測變量作為損失函數(shù)。自監(jiān)督算法,使得大量數(shù)據(jù)訓練成為可能。

例如,Llama2接受了2萬億token的訓練。這需要大量的計算基礎設施:Llama270B需要1,720,320個GPU小時。

因此,對于資源有限的團隊,Meta不建議將預訓練作為LLM適配的可行方法。

在預訓練計算成本很高的情況下,更新預預訓練好的模型權重,可能是一種有效的方法,來適配特定任務。

不過,任何更新預訓練模型權重的方法,都容易出現(xiàn)一種「災難性遺忘」的現(xiàn)象。

比如,此前一項研究顯示,在醫(yī)療領域微調訓練后的模型,在遵循指令和常見問答任務上的性能出現(xiàn)下降。

論文地址:https://arxiv.org/pdf/2009.03300

還有很多研究可以佐證,通過預訓練獲得的通用知識,在后續(xù)訓練過程中可能會被遺忘。

? 繼續(xù)預訓練

鑒于災難性的遺忘,最近的研究表明,繼續(xù)預訓練(CPT)可以導致模型性能的進一步提高,而計算成本只是預訓練的一小部分。

對于需要LLM獲得新的轉換技能的任務,CPT可能是有益的。

有研究報告顯示,繼續(xù)預訓練成功地增加了多種語言能力。

但CPT成本極高,需要大量的數(shù)據(jù)和計算資源。

比如,PYTHIA套件經(jīng)歷了第二階段的預訓練,最終得到了FinPYTHIA-6.9B。該模型專為金融數(shù)據(jù)設計的,使用240億token的數(shù)據(jù)集,進行了18天的繼續(xù)預訓練。

此外,CPT也容易導致災難性的遺忘。

因此,對于資源有限的團隊,Meta同樣不建議將繼續(xù)預訓練訓作為LLM適配的可行方法。

總而言之,在預訓練和持續(xù)預訓練中,使用自監(jiān)督算法和未加注釋的數(shù)據(jù)集,微調LLM是資源和成本密集型的,不建議將其作為一種可行的辦法。

? 全參微調和參數(shù)高效微調(PEFT)

與使用未注釋的數(shù)據(jù)集進行預訓相比,使用較小的帶注釋的數(shù)據(jù)集進行微調,是一種更具成本效益的方法。

而且,微調后模型被證明在法律、醫(yī)療或金融等專業(yè)領域的廣泛的應用中,實現(xiàn)了SOTA。

微調,特別是參數(shù)高效微調,只需要預訓練/繼續(xù)預訓練所需計算資源的一小部分。

因此,對于資源有限的團隊來說,這是一個可行的方法來適配LLM。

? 檢索增強生成(RAG)

RAG是另一種流行的LLM適配方法。

如果你的應用程序需要從動態(tài)知識庫(例如QA機器人)中提取,RAG可能是一個很好的解決方案。

RAG的系統(tǒng)的復雜性,主要在于檢索引擎的實現(xiàn)。

這種系統(tǒng)的推理成本可能會更高,因為輸入提示包含了檢索到的文檔,而大多數(shù)服務提供商采用按token計費的模式。

? 上下文學習(ICL)

這是適配LLM最具成本效益的方式。

ICL不需要任何額外的訓練數(shù)據(jù)或計算資源,使其成為一種具有成本效益的方法。然而,與RAG類似,隨著推理時處理更多的token,推理的成本和延遲可能會增加。

總之,創(chuàng)建一個基于LLM的系統(tǒng)是迭代的,上面的流程圖概述了這一迭代過程,并為LLM適配戰(zhàn)略奠定了堅實的基礎。

微調還是不微調?

在第二部分中,Meta又談了談什么情況下,需要微調。

在大模型興起之前,微調通常用于參數(shù)比較少的模型(100M –300M)。

而且,最先進領域應用程序,也是使用監(jiān)督微調(SFT)構建的,即使用自己專業(yè)領域和下有任務的注釋數(shù)據(jù),進一步訓練預訓練的模型。

然而,隨著更大參數(shù)模型的出現(xiàn)(>1B),微調的問題變得微妙了起來。

最重要的是,大模型需要更大的資源和商業(yè)硬件來進行微調。

下表1列出了三種情況下,微調Llama27B和Llama213B模型的峰值GPU內存使用量。

你可能會注意到,QLoRA等算法使得利用有限資源,對大模型進行微調變得更加容易。

例如,表1顯示了Llama27B上三種微調模式(全面微調、LORA和QLoRA)的峰值GPU內存。

在Llama1中,由于參數(shù)高效微調(PEFT)或量化,內存也有類似的減少。

除計算資源外,災難性遺忘(詳見本系列第一部分)也是全參數(shù)微調的常見隱患。

PEFT技術旨在通過對少量參數(shù)進行訓練來解決這些缺陷。

微調可能有益的原型

研究人員將以下場景確定為可從微調中受益的常見用例:

- 語氣、風格、形式定制:使用案例可能會尋求反映特定角色或服務特定受眾的LLM。

通過使用定制數(shù)據(jù)集對LLM進行微調,可以塑造聊天機器人的響應,使其更符合受眾的特定需求或預期的體驗。

另外,研究者可能還希望它能以特定的方式組織輸出,例如,JSON、YAML或Markdown格式的輸出。

- 提高精度并處理邊緣情況:微調可以用于糾正幻覺或錯誤,這些錯誤很難通過prompt和上下文學習來糾正。

它還可以增強模型執(zhí)行新技能或任務的能力,這些技能或任務很難在提示中表達。

這個過程可以幫助糾正模型沒有遵循復雜提示的錯誤,并提高其產(chǎn)生所需輸出的可靠性。

以下是兩個案例:

- Phi-2對金融數(shù)據(jù)情緒分析準確率,從34%提高到85%。

- 僅用100個示例,ChatGPT對Reddit評論情緒分析的準確率從48%提高到73%。

通常來說,對于較小的初始精度(<50%),微調是一個巨大的障礙,需要用幾百個示例。

- 處理代表性不足的領域:盡管LLM接受了大量通用數(shù)據(jù)的訓練,但它們可能并不總是精通每一個特定領域的細微差別的行話、術語或具體情況。

對于不同的領域,如法律、醫(yī)療或金融,微調已被證明有助于提高下游任務的準確性。

以下是兩個案例:

- 正如本文中指出的,患者的病歷包含高度敏感的數(shù)據(jù),這些數(shù)據(jù)通常不會在公共領域中找到。因此,基于LLM的病歷摘要系統(tǒng)需要進行微調。

- 對于印地語等代表性較少的語言,使用PEFT進行微調有助于完成這些語言的所有任務。

- 降低成本:微調可以將較大參數(shù)模型(如Llama270B/GPT-4)中的技能,提煉成小模型(如Llama27B)中的技能,從而在不影響質量的情況下降低成本和延遲。

此外,微調減少了對冗長或特定提示的需要,從而節(jié)省了象征性成本并進一步降低了成本。

- 新的任務/能力:通常,新的能力可以通過微調來實現(xiàn)。以下是三個案例:

1微調LLM,以便更好地利用特定檢索器的上下文,或完全忽略它

2微調LLM「法官」,以評估其他LLM的指標,如接地性、合規(guī)性或有用性

3微調LLM以增加上下文窗口

與其他領域適配技術的比較

微調與上文學習(少樣本)

上下文學習(ICL)是提高基于LLM的系統(tǒng)性能的有效方法。

使用ICL時的常見注意事項包括:

- 隨著需要展示的示例數(shù)量的增加,推理的成本和延遲也會增加。

- 隨著例子越來越多,LLM忽略一些例子是很常見的。這意味著你可能需要一個基于RAG的系統(tǒng),根據(jù)輸入找到最相關的示例。

- LLM可以吐出提供給他們的知識作為例子。這一擔憂在微調時也存在。

微調和RAG

普遍的共識是,當LLM基本性能不盡如人意時,可以先從RAG開始,衡量其性能,如果發(fā)現(xiàn)不足,再轉向微調。

或者說,與微調相比,RAG可能更有優(yōu)勢。

然而,Meta認為這種范式過于簡單化,因為在多種情況下,RAG不僅不是微調的替代方案,而且更像是微調的補充方案。

根據(jù)問題的特點,應該嘗試一種方法,或者兩種方法。

根據(jù)本文的框架,你可以提出以下問題,以確定微調或 RAG(或兩者)是否適用:

- 你的應用程序需要外部知識嗎?微調通常對注入新知識沒什么幫助

- 你的應用程序是否需要自定義語氣/行為/詞匯或風格?對于這些類型的需求,微調通常是正確的方法。

- 你的應用程序對幻覺的容忍度如何?在抑制虛假和想象力編造至關重要的應用中,RAG系統(tǒng)提供內置機制,最大限度地減少幻覺。

- 有多少已標記的訓練數(shù)據(jù)可用?

- 數(shù)據(jù)的靜態(tài)/動態(tài)程度如何?如果問題需要訪問動態(tài)數(shù)據(jù)語料庫,微調可能不是正確的方法,因為對LLM的知識可能很快就會過時。

- LLM應用程序需要有多透明/可解釋?RAG本身可以提供引用,這些引用對于解釋LLM輸出非常有用。

- 成本和復雜性:團隊是否擁有構建搜索系統(tǒng)的專業(yè)知識或之前的微調經(jīng)驗?

- 您的應用程序中的任務種類有多少?

在大多數(shù)情況下,微調和RAG的混合解決方案,將產(chǎn)生最好的結果,問題就在于兩者的成本、時間和額外的獨立效益。

最后,微調中的探索,確實需要一個強大的數(shù)據(jù)收集和數(shù)據(jù)改進策略,Meta建議將其作為開始微調的前奏。

如何微調?

到了第三部分就步入真正關鍵的內容——如何去微調,先要關注數(shù)據(jù)集。

微調LLM可以說,是藝術和科學的結合,最佳做法仍在不斷涌現(xiàn)。

在這部分,Meta將重點介紹微調的設計變量,并就資源受限的情況下,微調模型的最佳實踐提供方向性指導。

全面微調與參數(shù)高效微調

在學術和實際應用中,當應用于新領域時,全面微調和PEFT都顯示出下游性能的提升。

選擇其中一種方法,可歸結為可用計算量(GPU小時數(shù)和GPU內存)、目標下游任務以外的任務性能(學習和遺忘權衡)以及人工注釋成本。

全面微調更容易出現(xiàn)兩個問題:模型崩潰和災難性遺忘。

一些早期的實證研究表明,與PEFT技術相比,全面微調更容易出現(xiàn)上述問題,但還需要做更多的研究。

PEFT技術本質上,是作為微調的自然正則化器。

PEFT通常需要相對較少的計算資源來訓練下游模型,并且在數(shù)據(jù)集規(guī)模有限的資源受限場景下,更易于使用。

在某些情況下,全面微調在特定任務上表現(xiàn)更好,但代價往往是遺忘原始模型的一些能力。

在資源受限的情況下,PEFT可能會比全面微調提供更好的性能提升/成本比。

如果在資源受限的情況下,下游性能至關重要,那么全面微調將是最有效的。

無論在哪種情況下,關鍵是要牢記以下幾個關鍵原則來創(chuàng)建高質量的數(shù)據(jù)集。

數(shù)據(jù)集管理

在各種文獻的微調實驗中,數(shù)據(jù)集對于獲得微調的好處至關重要。

除了「更好的質量和更多的示例」之外,還有更多的細微差別,你可以明智地投資數(shù)據(jù)集收集,以在資源受限的微調實驗中提高性能。

數(shù)據(jù)質量/數(shù)量

- 質量是最重要的:一個大趨勢是質量比數(shù)量更重要。也就是說,擁有一小部分高質量的數(shù)據(jù),比擁有一大批低質量的數(shù)據(jù)更好。

質量的關鍵原則是一致的注釋,沒有錯誤、沒有錯誤標簽的數(shù)據(jù)、有噪音的輸入/輸出,以及與總體相比具有代表性的分布。

在微調時,幾千個精選的LIMA數(shù)據(jù)集示例,比50K機器生成的Llama數(shù)據(jù)集具有更好的性能。

OpenAI微調文檔表明,即使是50-100個示例的數(shù)據(jù)集也可能產(chǎn)生影響。

- 更困難的語言任務需要更多數(shù)據(jù):相對困難的任務,如文本生成和摘要,更難微調,比起更容易的任務,如分類和實體提取,需要更多數(shù)據(jù)。

「更難」可以指多個:輸出中有更多的token,需要更高級別的人類能力,多個正確答案。

- 有效的高質量數(shù)據(jù)收集:由于數(shù)據(jù)收集成本較高,建議使用以下策略來獲得更高的樣本效率和成本

1觀察失效模式:觀察先前機器學習能力失敗的例子,并添加針對這些失效模式的樣例。

2人機協(xié)作:這是一種更經(jīng)濟的數(shù)據(jù)標注擴展方式。可以使用LLM自動生成基礎回答,人類標注者可以基于此更快地進行標注。

數(shù)據(jù)多樣性

簡單來說,如果你用特定類型的回應過度訓練模型,它會傾向于給出那種回應,即使不是最合適的答案。

這里的經(jīng)驗法則是,盡可能確保訓練數(shù)據(jù)反映模型在現(xiàn)實世界中應該如何表現(xiàn)。

- 重復:無論是在微調還是預訓練中,這都被發(fā)現(xiàn)是導致模型性能下降的原因。通過去重實現(xiàn)多樣性,往往會提高性能指標。

- 輸入多樣性:通過改述來增加輸入的多樣性。

- 數(shù)據(jù)集多樣性:當為更通用的下游任務微調時(例如,多語言適配),使用多樣化的數(shù)據(jù)集已被證明,可以改善模型在遺忘原始能力和學習新能力之間的權衡。

- 標準化輸出:移除輸出中的空白和其他格式技巧被證明是有幫助的。如果你想要回答中有特定的語氣,比如「服務臺聊天機器人是...」,那么就為每個例子在數(shù)據(jù)集中添加這些內容。

基于LLM的數(shù)據(jù)管道

為了整理高質量、多樣化的數(shù)據(jù)集,數(shù)據(jù)管道經(jīng)常使用大語言模型來降低標注成本。

以下是實踐中觀察到的技術:

- 評估:用高質量數(shù)據(jù)集訓練一個模型,然后用它來標注較大數(shù)據(jù)集,以篩選出高質量的樣例。

- 生成:用高質量示例來引導大模型,并通過提示生成類似的高質量樣例。合成數(shù)據(jù)集的最佳實踐正在逐漸形成。

- 人機協(xié)作:使用大模型生成初始輸出集,然后由人類通過編輯或選擇偏好來提高質量。

調試數(shù)據(jù)集

- 評估數(shù)據(jù)集中的不良輸出:如果模型在某些方面仍然表現(xiàn)不佳,添加直接向模型展示如何正確處理這些方面的訓練示例。

如果你的模型存在語法、邏輯或風格問題,檢查數(shù)據(jù)是否存在相同的問題。

例如,如果模型現(xiàn)在說「我會為你安排這個會議」(實際上它不應該這樣做),看看現(xiàn)有的例子是否教導模型說它可以做一些它實際上不能做的新事情。

- 仔細檢查正面/負面類別的平衡:如果數(shù)據(jù)中60%的助手回應說「我無法回答這個問題」,但在推理時只有5%的回應應該這樣說,你可能會得到過多的拒絕回應。

- 全面性和一致性:確保你的訓練示例包含回應所需的所有信息。

如果希望模型基于用戶的個人特征來贊美用戶,而訓練示例中包含了助手對前面對話中沒有出現(xiàn)的特征的贊美,模型可能會學會虛構信息。

確保所有的訓練示例,都采用與推理時預期相同的格式,查看訓練示例中的一致性和協(xié)調性。

總而言之,微調是大模型開發(fā)中的一個關鍵方面,需要在藝術和科學之間取得微妙的平衡。

數(shù)據(jù)集的質量和篩選,對微調的成功起著重要作用。

經(jīng)過微調的小型LLM在特定任務上,往往表現(xiàn)優(yōu)于更大的模型。

一旦決定進行微調,Llama微調指南提供了一個良好的起點。

參考資料:

https://ai.meta.com/blog/when-to-fine-tune-llms-vs-other-techniques/

https://ai.meta.com/blog/how-to-fine-tune-llms-peft-dataset-curation/

https://ai.meta.com/blog/adapting-large-language-models-llms/

以上就是關于【Meta祭出三篇最詳盡Llama微調指南!千字長文,0基礎小白必備】的相關內容,希望對大家有幫助!

  免責聲明:本文由用戶上傳,與本網(wǎng)站立場無關。財經(jīng)信息僅供讀者參考,并不構成投資建議。投資者據(jù)此操作,風險自擔。 如有侵權請聯(lián)系刪除!

 
分享:
最新文章
  • 【空調外機聲音大是什么問題】空調在使用過程中,如果發(fā)現(xiàn)外機發(fā)出異常的噪音,可能會讓人感到困擾??照{外機...瀏覽全文>>
  • 【空調外機聲音大如何解決】空調在使用過程中,外機發(fā)出較大的噪音是很多用戶遇到的常見問題。這不僅影響居住...瀏覽全文>>
  • 【空調外機清洗方法是什么】空調外機是空調系統(tǒng)中非常重要的組成部分,它的清潔程度直接影響到空調的制冷效果...瀏覽全文>>
  • 【空調突然不制冷的原因】當家中的空調突然不再制冷時,不僅影響使用體驗,還可能帶來一定的安全隱患。了解空...瀏覽全文>>
  • 【空調銅管什么作用】空調在現(xiàn)代生活中扮演著越來越重要的角色,尤其是在夏季高溫時,它為我們提供了舒適的室...瀏覽全文>>
  • 【空調銅管結霜怎么回事】空調在使用過程中,有時會出現(xiàn)銅管結霜的現(xiàn)象,這不僅影響制冷效果,還可能對設備造...瀏覽全文>>
  • 【空調銅管結霜是什么原因】當空調運行時,如果發(fā)現(xiàn)室內機的銅管出現(xiàn)結霜現(xiàn)象,這不僅影響制冷效果,還可能對...瀏覽全文>>
  • 【空谷幽蘭是什么意思】“空谷幽蘭”是一個富有詩意的成語,常用來形容在偏僻、冷清的地方生長的蘭花。它不僅...瀏覽全文>>
  • 【空格怎么打出來】在日常使用電腦或手機輸入文字時,經(jīng)常會遇到需要輸入“空格”的情況。雖然看似簡單,但很...瀏覽全文>>
  • 【空格怎么打】在日常使用電腦或手機時,很多人會遇到“空格怎么打”的問題。其實,“空格”是一個非常基礎的...瀏覽全文>>