一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

小白學(xué)大模型:構(gòu)建LLM的關(guān)鍵步驟

穎脈Imgtec ? 2025-01-09 12:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文轉(zhuǎn)自:Coggle數(shù)據(jù)科學(xué)


隨著大規(guī)模語言模型(LLM)在性能、成本和應(yīng)用前景上的快速發(fā)展,越來越多的團隊開始探索如何自主訓(xùn)練LLM模型。然而,是否從零開始訓(xùn)練一個LLM,并非每個組織都適合。本文將根據(jù)不同的需求與資源,幫助你梳理如何在構(gòu)建AI算法應(yīng)用時做出合適的決策。


訓(xùn)練LLM的三種選擇

在構(gòu)建AI算法應(yīng)用時,首先需要決定是使用現(xiàn)有的商用API,還是開源模型,或者選擇完全自主訓(xùn)練一個LLM。每種選擇有其獨特的優(yōu)勢與劣勢。

e33c3420-ce3f-11ef-9434-92fbcf53809c.pnge36fbbf6-ce3f-11ef-9434-92fbcf53809c.png

選項一:使用商用LLM API

這種方法最適合缺乏深厚技術(shù)背景的團隊,或者希望盡快構(gòu)建應(yīng)用的組織。商用API的優(yōu)點在于,無需進行繁瑣的模型訓(xùn)練,團隊可以直接使用現(xiàn)成的、高性能的LLM服務(wù)來執(zhí)行推理任務(wù)。它還允許使用最先進的LLM技術(shù),節(jié)省了大量的開發(fā)時間與成本。通過API,你只需為推理計算付費,且不需要處理數(shù)據(jù)集和模型訓(xùn)練過程中的復(fù)雜性。

然而,這種方法也有明顯的缺點。首先,成本問題是一個關(guān)鍵考量,高頻次的推理任務(wù)或微調(diào)可能導(dǎo)致不小的費用。其次,數(shù)據(jù)隱私和合規(guī)性也是商用API的限制之一,某些行業(yè)(如醫(yī)療健康、金融等)可能無法將敏感數(shù)據(jù)上傳至外部服務(wù)。此外,商用API的定制性較差,模型微調(diào)的空間有限,如果需求有所變化,靈活性較低。

選項二:使用開源LLM
與商用API相比,開源LLM提供了更多的定制和控制權(quán)。你可以基于開源模型進行微調(diào),或者在此基礎(chǔ)上繼續(xù)進行預(yù)訓(xùn)練。這種方法適合有一定技術(shù)實力的團隊,尤其是當項目的數(shù)據(jù)隱私要求較高時。使用開源模型,你可以完全控制訓(xùn)練數(shù)據(jù)和模型的演化方向,避免了商用API服務(wù)帶來的依賴風險。

然而,開源LLM的性能通常落后于商用模型,有時需要幾個月甚至更長時間才能趕上最新的商業(yè)技術(shù)。訓(xùn)練和微調(diào)開源模型也需要投入較大的計算資源與專業(yè)知識,因此時間和資源的成本不可忽視。

選項三:完全自主訓(xùn)練LLM

當組織擁有強大的技術(shù)團隊并且預(yù)算充足時,完全從零開始訓(xùn)練一個LLM可以提供最大的靈活性。自主訓(xùn)練不僅可以讓你定制模型架構(gòu)(如選擇不同的tokenizer、調(diào)整模型維度、頭數(shù)、層數(shù)等),還可以完全控制訓(xùn)練數(shù)據(jù),以最大限度地減少模型偏差和毒性問題。這種方法適合那些將LLM作為核心技術(shù)和競爭優(yōu)勢的公司,尤其是在數(shù)據(jù)和算法方面有顯著創(chuàng)新的情況下。

但與此同時,完全自主訓(xùn)練LLM也是最昂貴且風險較高的選擇。模型訓(xùn)練需要大量的計算資源和跨領(lǐng)域的技術(shù)能力,若不慎,可能導(dǎo)致訓(xùn)練失敗,尤其是在訓(xùn)練的后期,錯誤難以修正。而且,與開源模型相比,完全從頭開始訓(xùn)練需要更為龐大的高質(zhì)量、多樣化的數(shù)據(jù)集,否則難以獲得具備廣泛能力的模型。


規(guī)模法則(Scaling Laws)

LLM規(guī)模的歷史演變
自2020年OpenAI首次提出LLM規(guī)模法則以來,關(guān)于如何提高模型性能的觀點經(jīng)歷了顯著的變化。OpenAI的研究表明,增加模型的規(guī)模比增加數(shù)據(jù)量更為重要。這一理論在一定時間內(nèi)是成立的,尤其是在模型訓(xùn)練初期。然而,隨著研究的深入,尤其是2022年DeepMind提出的新見解,關(guān)于模型規(guī)模和數(shù)據(jù)規(guī)模的關(guān)系發(fā)生了根本性的轉(zhuǎn)變。

DeepMind提出,之前的LLM模型訓(xùn)練還遠遠不夠,它們的數(shù)據(jù)量和計算資源未能達到最佳水平。具體來說,現(xiàn)有的LLM模型并沒有在足夠的數(shù)據(jù)上進行充分的訓(xùn)練。這一觀點通過DeepMind提出的模型——Chinchilla得到了驗證。Chinchilla的規(guī)模只有Gopher模型的四分之一,但它的訓(xùn)練數(shù)據(jù)量卻是Gopher的4.6倍。在這種縮小模型規(guī)模的情況下,Chinchilla卻取得了更好的性能,超過了Gopher和其他同類模型。

新的規(guī)模法則:模型大小與數(shù)據(jù)量的平衡基于Chinchilla的實驗結(jié)果,DeepMind提出了一個新的規(guī)模法則:模型大小和訓(xùn)練數(shù)據(jù)的大小應(yīng)該按相同的比例增加,才能獲得最佳的模型表現(xiàn)。如果你的計算資源增加了10倍,你應(yīng)該將模型的大小增加3.1倍,并且數(shù)據(jù)量也要增加3.1倍;如果計算資源增加了100倍,模型和數(shù)據(jù)的大小都應(yīng)當增加10倍。這種方式能夠更好地平衡計算資源、模型復(fù)雜度和訓(xùn)練數(shù)據(jù)量,從而實現(xiàn)更優(yōu)的訓(xùn)練效果。

簡而言之,當前的最佳實踐建議,在選擇訓(xùn)練數(shù)據(jù)集時,首先要根據(jù)數(shù)據(jù)的大小來確定最適合的模型規(guī)模。DeepMind稱為Chinchilla-Optimal模型的訓(xùn)練方法,是根據(jù)訓(xùn)練數(shù)據(jù)量來優(yōu)化模型的大小。對于數(shù)據(jù)規(guī)模和模型規(guī)模的組合,最佳做法是基于訓(xùn)練計算預(yù)算和推理延遲需求來做出決策。

過小或過大的模型:何時調(diào)整?在規(guī)模法則中,存在著一個最優(yōu)點,即模型的大小和訓(xùn)練數(shù)據(jù)的大小之間的最佳平衡。當模型的大小太?。刺幱谇€的左側(cè))時,增加模型的規(guī)模并減少數(shù)據(jù)量的需求是有益的。而當模型太大(處于曲線的右側(cè))時,減少模型的規(guī)模并增加數(shù)據(jù)量反而會帶來更好的效果。最佳的模型通常位于曲線的最低點——即Chinchilla-Optimal點。在實際訓(xùn)練過程中,你可能會面臨以下幾種情形:

模型過?。?/strong>如果模型規(guī)模過小,而你有充足的訓(xùn)練數(shù)據(jù),那么擴展模型的規(guī)模并且增加數(shù)據(jù)量,會提升性能。

  • 模型過大:如果模型規(guī)模過大,且數(shù)據(jù)量相對不足,則縮小模型規(guī)模并增加數(shù)據(jù)量可能會帶來更好的性能提升。

訓(xùn)練FLOPs和訓(xùn)練tokens的最佳配置DeepMind的研究還提供了一些數(shù)據(jù),展示了不同模型規(guī)模下,訓(xùn)練所需的計算量(FLOPs)和訓(xùn)練tokens的最優(yōu)配置。這些數(shù)據(jù)為開發(fā)者提供了一個參考框架,幫助他們根據(jù)實際計算資源和數(shù)據(jù)集的規(guī)模,選擇最適合的模型。

通過這些數(shù)據(jù),你可以更清晰地理解,不同大小的模型在計算資源與訓(xùn)練數(shù)據(jù)的需求之間的平衡。訓(xùn)練FLOPs(每次操作所需的浮點運算數(shù))與訓(xùn)練tokens(經(jīng)過token化處理后的訓(xùn)練數(shù)據(jù)量)之間的關(guān)系,能夠幫助你更好地預(yù)測訓(xùn)練的需求,合理分配計算資源。

如何應(yīng)用這些Scaling Laws到訓(xùn)練中?理解了這些理論后,如何在實際訓(xùn)練中應(yīng)用這些Scaling Laws呢?以下是幾個關(guān)鍵步驟:

選擇合適的數(shù)據(jù)集:首先需要明確你的應(yīng)用場景和數(shù)據(jù)集。如果數(shù)據(jù)集很小,可能不適合訓(xùn)練一個大規(guī)模的模型;如果數(shù)據(jù)集龐大,可以考慮訓(xùn)練更大規(guī)模的模型,以充分利用數(shù)據(jù)的潛力。

確定模型規(guī)模:根據(jù)數(shù)據(jù)集的大小和計算預(yù)算,使用Chinchilla-Optimal方法來決定模型的規(guī)模。確保你的模型規(guī)模與數(shù)據(jù)量之間保持一致,避免過度或不足的訓(xùn)練。

計算資源預(yù)算:在決定模型規(guī)模和數(shù)據(jù)量之后,你需要確保有足夠的計算資源來支持訓(xùn)練過程。這涉及到計算能力的選擇——從硬件設(shè)備(如TPU或GPU)到實際訓(xùn)練過程中的分布式計算能力。

推理延遲的考慮:如果你的應(yīng)用需要低延遲推理,模型的大小與推理時間之間的關(guān)系也是需要考慮的。通常,大模型的推理速度較慢,因此可能需要對模型進行優(yōu)化或采用更小的模型。

  1. 持續(xù)監(jiān)控與調(diào)優(yōu):訓(xùn)練過程中,需要實時監(jiān)控模型的性能,確保在訓(xùn)練的各個階段都保持最優(yōu)的計算資源和數(shù)據(jù)規(guī)模配置。如果發(fā)現(xiàn)性能沒有預(yù)期的提升,可以調(diào)整模型的規(guī)?;蛟黾訑?shù)據(jù)量進行優(yōu)化。

高效使用硬件資源

數(shù)據(jù)并行(Data Parallelism)數(shù)據(jù)并行是處理無法裝入單一計算節(jié)點的數(shù)據(jù)集時最常見的方式。具體來說,數(shù)據(jù)并行將訓(xùn)練數(shù)據(jù)劃分為多個數(shù)據(jù)分片(shards),并將這些分片分配到不同的計算節(jié)點上。每個節(jié)點在其本地數(shù)據(jù)上訓(xùn)練一個子模型,然后與其他節(jié)點通信,定期合并它們的結(jié)果,從而獲得全局模型。數(shù)據(jù)并行的參數(shù)更新可以是同步的或異步的。同步數(shù)據(jù)并行中,各個節(jié)點會在每個步驟后同步梯度,并將更新后的模型參數(shù)發(fā)送回所有節(jié)點。而異步數(shù)據(jù)并行則允許各個節(jié)點在不同步的情況下更新模型,通??梢约铀儆?xùn)練,但也可能引入更多的不一致性,導(dǎo)致模型收斂較慢。

數(shù)據(jù)并行的優(yōu)點在于它提高了計算效率,并且相對容易實現(xiàn)。然而,缺點在于反向傳播時,需要將整個梯度傳遞給所有其他GPU,這會導(dǎo)致較大的內(nèi)存開銷。同時,模型和優(yōu)化器的復(fù)制會占用較多的內(nèi)存,降低內(nèi)存效率。

張量并行(Tensor Parallelism)張量并行是將大模型的張量運算分割到多個設(shè)備上進行的一種并行方式。不同于數(shù)據(jù)并行在數(shù)據(jù)維度上的劃分,張量并行通過分割模型的不同層或張量來并行化計算。每個GPU只計算模型的一部分(例如,一層神經(jīng)網(wǎng)絡(luò)或一個張量片段),然后通過跨設(shè)備通信將其結(jié)果匯總。張量并行能夠有效解決單個GPU內(nèi)存不足以加載完整模型的問題,但它的挑戰(zhàn)在于跨設(shè)備的通信開銷較大。隨著模型尺寸的增加,模型并行的開銷也隨之增加,這要求更加高效的算法和硬件架構(gòu)。

Megatron-LM是張量并行的一個典型應(yīng)用,通過將模型的張量分布到多個GPU上,從而能夠訓(xùn)練大規(guī)模模型,如GPT-3、PaLM等。結(jié)合數(shù)據(jù)并行和張量并行的方式,模型的訓(xùn)練效率和規(guī)模都得到了顯著提升。

流水線并行(Pipeline Parallelism)流水線并行是一種將模型的不同階段分布到多個設(shè)備上進行訓(xùn)練的策略。不同于數(shù)據(jù)并行和張量并行,流水線并行將模型劃分為不同的部分,每個設(shè)備只處理某個階段的任務(wù),并將輸出傳遞給下一個階段的設(shè)備。這樣,多個設(shè)備可以并行工作,每個設(shè)備處理不同的任務(wù),但最終目標是加速模型的訓(xùn)練過程。例如,如果一個模型有5個階段,流水線并行會將每個階段分配到一個GPU上,允許GPU并行工作,每個GPU處理模型的一部分任務(wù)。這種方法在長時間的訓(xùn)練過程中非常有效,尤其是在非常深的網(wǎng)絡(luò)架構(gòu)中。

流水線并行的挑戰(zhàn)在于,需要有效地同步不同階段之間的數(shù)據(jù)流,而且每個設(shè)備只能在前一個設(shè)備完成計算后才開始工作,這可能會帶來延遲。然而,通過合理設(shè)計流水線,延遲可以降到最低,從而提高訓(xùn)練效率。

訓(xùn)練優(yōu)化策略在訓(xùn)練LLM時,除了并行化策略,硬件和算法的優(yōu)化同樣至關(guān)重要。以下是一些重要的訓(xùn)練優(yōu)化策略:

梯度累積(Gradient Accumulation)
梯度累積是一種將訓(xùn)練批次分割為微批次,并在每個微批次的訓(xùn)練過程中累積梯度,直到所有微批次完成后再進行一次參數(shù)更新的技術(shù)。這種方式可以有效降低內(nèi)存需求,并使得大批次的訓(xùn)練成為可能,從而加速模型訓(xùn)練。

混合精度訓(xùn)練(Mixed Precision Training)
混合精度訓(xùn)練使用16位和32位浮動精度的結(jié)合來訓(xùn)練神經(jīng)網(wǎng)絡(luò)。通過使用低精度的計算,可以顯著減少內(nèi)存占用和計算開銷,同時又不會損失太多的模型精度。這種技術(shù)在處理大規(guī)模模型時尤其有用。

動態(tài)學(xué)習率(Dynamic Learning Rates)
在訓(xùn)練過程中,根據(jù)模型的表現(xiàn)動態(tài)調(diào)整學(xué)習率,可以提高收斂速度并減少過擬合的風險。常見的學(xué)習率調(diào)整策略包括基于訓(xùn)練輪次的衰減、基于梯度的自適應(yīng)調(diào)整等。

  1. 模型剪枝與蒸餾(Model Pruning and Distillation)
    在訓(xùn)練后期,通過剪枝減少不必要的模型參數(shù),或者通過蒸餾技術(shù)將大模型的知識轉(zhuǎn)移到小模型中,從而提升推理效率。這些技術(shù)可以幫助減輕大模型部署的資源壓力,并加速推理。

數(shù)據(jù)集收集

“壞數(shù)據(jù)導(dǎo)致壞模型。” 這一點在訓(xùn)練大型語言模型(LLM)時尤為重要。高質(zhì)量、具有高多樣性和大規(guī)模的訓(xùn)練數(shù)據(jù)集,不僅能提高下游任務(wù)的模型表現(xiàn),還能加速模型的收斂過程。

數(shù)據(jù)集的多樣性對于LLM尤其關(guān)鍵。這是因為數(shù)據(jù)的多樣性能有效提升模型在跨領(lǐng)域的知識涵蓋能力,從而提高其對各種復(fù)雜任務(wù)的泛化能力。通過訓(xùn)練多樣化的示例,能夠增強模型在處理各種細微任務(wù)時的表現(xiàn)。在數(shù)據(jù)集收集過程中,一般的數(shù)據(jù)可以由非專家收集,但對于特定領(lǐng)域的數(shù)據(jù),通常需要由專業(yè)領(lǐng)域的專家(SMEs,Subject Matter Experts)來進行收集和審查。

NLP工程師在這個階段也應(yīng)當深度參與,原因在于他們熟悉LLM如何“學(xué)習表示數(shù)據(jù)”的過程,因此能發(fā)現(xiàn)專家可能遺漏的數(shù)據(jù)異?;蛉笨凇<液蚇LP工程師之間的協(xié)作非常重要,可以確保數(shù)據(jù)的質(zhì)量和代表性。


數(shù)據(jù)預(yù)處理

  1. 數(shù)據(jù)采樣(Data Sampling):
  • 某些數(shù)據(jù)組件可以進行過采樣(up-sampling),以獲得更平衡的數(shù)據(jù)分布。例如,一些研究會對低質(zhì)量的數(shù)據(jù)集(如未過濾的網(wǎng)頁爬取數(shù)據(jù))進行下采樣(down-sampling)。而其他研究則會根據(jù)模型目標對特定領(lǐng)域的數(shù)據(jù)進行過采樣。
  • 對于預(yù)訓(xùn)練數(shù)據(jù)集而言,其組成通常來源于高質(zhì)量的科學(xué)資源,例如學(xué)術(shù)論文、教科書、講義和百科全書。數(shù)據(jù)集的質(zhì)量通常非常高,并且會根據(jù)任務(wù)需要進行特定的篩選,比如使用任務(wù)特定的數(shù)據(jù)集來幫助模型學(xué)習如何將這些知識融入到新的任務(wù)上下文中。
  • 數(shù)據(jù)清理(Data Cleaning):

通常在訓(xùn)練之前,需要對數(shù)據(jù)進行清理和重新格式化。一些常見的清理步驟包括去除樣板文本(boilerplate text)、去除HTML代碼或標記。對于某些項目,還需要修復(fù)拼寫錯誤、處理跨領(lǐng)域的同形異義詞(homographs),或者去除有偏見或有害的言論,以提高模型的表現(xiàn)。

  • 非標準文本組件的處理(Handling Non-Standard Textual Components):

在某些情況下,將非標準的文本組件轉(zhuǎn)換成標準文本非常重要。例如,emoji表情可以轉(zhuǎn)換為其對應(yīng)的文本表示:可以轉(zhuǎn)換為“snowflake”。這種轉(zhuǎn)換通??梢酝ㄟ^編程實現(xiàn)。

數(shù)據(jù)去重(Data Deduplication):

  • 一些研究者發(fā)現(xiàn),去重訓(xùn)練數(shù)據(jù)能夠顯著提高模型的表現(xiàn)。常用的去重方法包括局部敏感哈希(LSH, Locality-Sensitive Hashing)。通過這種方法,可以識別并移除重復(fù)的訓(xùn)練數(shù)據(jù),從而減少模型學(xué)習到的冗余信息。

預(yù)訓(xùn)練

訓(xùn)練一個數(shù)十億參數(shù)的LLM(大規(guī)模語言模型)通常是一個高度實驗性的過程,充滿了大量的試驗與錯誤。通常,團隊會從一個較小的模型開始,確保其具有潛力,然后逐步擴展到更多的參數(shù)。需要注意的是,隨著模型規(guī)模的擴大,會出現(xiàn)一些在訓(xùn)練小規(guī)模數(shù)據(jù)時不會遇到的問題。

模型架構(gòu)為了減少訓(xùn)練不穩(wěn)定的風險,實踐者通常會選擇從流行的前身模型(如GPT-2或GPT-3)中借鑒架構(gòu)和超參數(shù),并在此基礎(chǔ)上做出調(diào)整,以提高訓(xùn)練效率、擴展模型的規(guī)模(包括深度和寬度),并增強模型的性能。正如前面提到的,預(yù)訓(xùn)練過程通常涉及大量的實驗,以找到模型性能的最佳配置。實驗可以涉及以下內(nèi)容之一或全部:

  • 權(quán)重初始化(Weight Initialization)
  • 位置嵌入(Positional Embeddings)
  • 優(yōu)化器(Optimizer)
  • 激活函數(shù)(Activation)
  • 學(xué)習率(Learning Rate)
  • 權(quán)重衰減(Weight Decay)
  • 損失函數(shù)(Loss Function)
  • 序列長度(Sequence Length)
  • 層數(shù)(Number of Layers
  • 注意力頭數(shù)(Number of Attention Heads)
  • 參數(shù)數(shù)量(Number of Parameters)
  • 稠密與稀疏層(Dense vs. Sparse Layers)
  • 批量大?。˙atch Size)

Dropout等。

通常,人工試錯與自動超參數(shù)優(yōu)化(HPO)相結(jié)合,用來找到最優(yōu)的配置組合。常見的超參數(shù)包括:學(xué)習率、批量大小、dropout率等。超參數(shù)搜索是一個高昂的過程,尤其是對于數(shù)十億參數(shù)的模型來說,往往過于昂貴,不容易在完整規(guī)模下進行。通常會根據(jù)先前的小規(guī)模實驗結(jié)果和已發(fā)布的工作,來選擇超參數(shù),而不是從零開始。此外,某些超參數(shù)在訓(xùn)練過程中也需要進行動態(tài)調(diào)整,以平衡學(xué)習效率和訓(xùn)練收斂。例如:

學(xué)習率(Learning Rate):在訓(xùn)練的早期階段可以線性增加,之后再衰減。

批量大小(Batch Size):通常會從較小的批量大小開始,逐步增加。

硬件故障與訓(xùn)練不穩(wěn)定

硬件故障(Hardware Failure):在訓(xùn)練過程中,計算集群可能會發(fā)生硬件故障,這時需要手動或自動重啟訓(xùn)練。在手動重啟時,訓(xùn)練會暫停,并進行一系列診斷測試來檢測有問題的節(jié)點。標記為有問題的節(jié)點應(yīng)該被隔離,然后從最后保存的檢查點繼續(xù)訓(xùn)練。

訓(xùn)練不穩(wěn)定(Training Instability):訓(xùn)練不穩(wěn)定性是一個根本性的挑戰(zhàn)。在訓(xùn)練過程中,超參數(shù)(如學(xué)習率和權(quán)重初始化)直接影響模型的穩(wěn)定性。例如,當損失值發(fā)散時,降低學(xué)習率并從較早的檢查點重新啟動訓(xùn)練,可能會幫助恢復(fù)訓(xùn)練并繼續(xù)進行。此外,模型越大,訓(xùn)練過程中發(fā)生損失峰值(loss spikes)的難度也越大,這些峰值可能在訓(xùn)練的后期出現(xiàn),并且不規(guī)則。盡管沒有很多系統(tǒng)性的方法來減少這種波動,但以下是一些行業(yè)中的最佳實踐:

批量大?。˙atch Size):通常,使用GPU能夠支持的最大批量大小是最好的選擇。

批量歸一化(Batch Normalization):對mini-batch中的激活進行歸一化可以加速收斂并提高模型性能。

學(xué)習率調(diào)度(Learning Rate Scheduling):高學(xué)習率可能會導(dǎo)致?lián)p失波動或發(fā)散,從而導(dǎo)致?lián)p失峰值。通過調(diào)整學(xué)習率的衰減,逐步減小模型參數(shù)更新的幅度,可以提高訓(xùn)練穩(wěn)定性。常見的調(diào)度方式包括階梯衰減(step decay)**和**指數(shù)衰減(exponential decay)。

權(quán)重初始化(Weight Initialization):正確的權(quán)重初始化有助于模型更快收斂并提高性能。常見的方法包括隨機初始化、高斯噪聲初始化以及Transformers中的T-Fixup初始化。

模型訓(xùn)練起點(Model Training Starting Point):使用在相關(guān)任務(wù)上預(yù)訓(xùn)練過的模型作為起點,可以幫助模型更快收斂并提高性能。

正則化(Regularization):使用dropout、權(quán)重衰減(weight decay)和L1/L2正則化等方法可以減少過擬合并提高模型的泛化能力。

數(shù)據(jù)增強(Data Augmentation):通過對訓(xùn)練數(shù)據(jù)應(yīng)用轉(zhuǎn)換,可以幫助模型更好地泛化,減少過擬合。

訓(xùn)練過程中熱交換(Hot-Swapping):在訓(xùn)練過程中根據(jù)需要更換優(yōu)化器或激活函數(shù),幫助解決出現(xiàn)的問題。


模型評估

通常,預(yù)訓(xùn)練的模型會在多種語言模型數(shù)據(jù)集上進行評估,以評估其在邏輯推理、翻譯、自然語言推理、問答等任務(wù)中的表現(xiàn)。機器學(xué)習領(lǐng)域的實踐者已經(jīng)對多種標準評估基準達成共識。另一個評估步驟是n-shot學(xué)習。它是一個與任務(wù)無關(guān)的維度,指的是在推理時提供給模型的監(jiān)督樣本(示例)數(shù)量。n-shot通常通過“提示(prompting)”技術(shù)來提供。評估通常分為以下三類:

零樣本(Zero-shot):不向模型提供任何監(jiān)督樣本進行推理任務(wù)的評估。

一-shot(One-shot):類似于少樣本(few-shot),但n=1,表示在推理時向模型提供一個監(jiān)督樣本。

  • 少樣本(Few-shot):評估中向模型提供少量監(jiān)督樣本(例如,提供5個樣本 -> 5-shot)。

偏見與有害語言

在基于網(wǎng)頁文本訓(xùn)練的大規(guī)模通用語言模型中,存在潛在的風險。這是因為:人類本身有偏見,這些偏見會通過數(shù)據(jù)傳遞到模型中,模型在學(xué)習這些數(shù)據(jù)時,也會繼承這些偏見。除了加劇或延續(xù)社會刻板印象之外,我們還需要確保模型不會記住并泄露私人信息。

仇恨言論檢測(Hate Speech Detection)

社會偏見檢測(Social Bias Detection)

有害語言生成(Toxic Language Generation)

對話安全評估(Dialog Safety Evaluations)

截至目前,大多數(shù)對現(xiàn)有預(yù)訓(xùn)練模型的分析表明,基于互聯(lián)網(wǎng)訓(xùn)練的模型會繼承互聯(lián)網(wǎng)規(guī)模的偏見。此外,預(yù)訓(xùn)練模型通常容易生成有害語言,即使給出相對無害的提示,且對抗性提示也容易找到。那么,如何修復(fù)這些問題呢?以下是一些在預(yù)訓(xùn)練過程中以及訓(xùn)練后緩解偏見的方法:

  1. 訓(xùn)練集過濾(Training Set Filtering)
  2. 訓(xùn)練集修改(Training Set Modification)
  3. 訓(xùn)練后偏見緩解方法
  • 提示工程(Prompt Engineering)
  • 微調(diào)(Fine-tuning)

輸出引導(dǎo)(Output Steering)


Instruction Tuning(指令微調(diào))

假設(shè)我們現(xiàn)在擁有一個預(yù)訓(xùn)練的通用大型語言模型(LLM)。如果我們之前的工作做得足夠好,那么模型已經(jīng)能夠在零-shot和少量-shot的情況下執(zhí)行一些特定領(lǐng)域的任務(wù)。然而,盡管零-shot學(xué)習可以在某些情況下有效,許多任務(wù)(如閱讀理解、問答、自然語言推理等)中,零-shot學(xué)習的效果通常要遜色于少量-shot學(xué)習的表現(xiàn)。一個可能的原因是,在沒有少量示例的情況下,模型很難在格式與預(yù)訓(xùn)練數(shù)據(jù)不同的提示下取得好的表現(xiàn)。為了應(yīng)對這個問題,我們可以使用指令微調(diào)(Instruction Tuning)。指令微調(diào)是一種先進的微調(diào)技術(shù),它通過對預(yù)訓(xùn)練模型進行微調(diào),使其能更好地響應(yīng)各種任務(wù)指令,從而減少在提示階段對少量示例的需求(即顯著提高零-shot性能)。

指令微調(diào)在2022年大受歡迎,因為這一技術(shù)能顯著提高模型性能,同時不會影響其泛化能力。通常,預(yù)訓(xùn)練的LLM會在一組語言任務(wù)上進行微調(diào),并通過在微調(diào)過程中未見過的任務(wù)來評估其泛化能力和零-shot能力。

與預(yù)訓(xùn)練–微調(diào)和提示的比較

預(yù)訓(xùn)練–微調(diào)(Pretrain–Finetune):在預(yù)訓(xùn)練模型的基礎(chǔ)上,進行特定任務(wù)的微調(diào)。模型通常在特定領(lǐng)域數(shù)據(jù)上進行微調(diào),能顯著提升該任務(wù)的性能,但對其他任務(wù)的泛化能力可能較差。

提示(Prompting):使用適當?shù)奶崾驹~(prompt)引導(dǎo)模型執(zhí)行特定任務(wù),但在某些任務(wù)中(如閱讀理解和問答),零-shot學(xué)習的效果往往較差。

指令微調(diào):通過對模型進行全面微調(diào),使其能夠更加有效地理解和執(zhí)行各種任務(wù)指令,從而減少了對少量示例的依賴,并顯著提升零-shot性能。

思維鏈(Chain-of-Thought)在指令微調(diào)中的作用

思維鏈是一種技術(shù),通過這種方式,模型在執(zhí)行任務(wù)時會顯式地推理每一個步驟,幫助模型更好地理解問題的背景并給出合理的推理過程。對于某些復(fù)雜的推理任務(wù),使用思維鏈的示例可以顯著提高模型的推理能力,并提升其在這些任務(wù)上的表現(xiàn)。在指令微調(diào)過程中,若包含思維鏈示例(例如步驟分解、推理過程的寫作等),模型會學(xué)會按照邏輯推理的步驟逐步完成任務(wù),而非直接給出答案。這對像數(shù)學(xué)推理、常識推理等復(fù)雜任務(wù)尤其有效。

提高零-shot能力:通過對預(yù)訓(xùn)練模型進行指令微調(diào),模型能更好地理解和執(zhí)行未見過的任務(wù),提升其在零-shot任務(wù)上的表現(xiàn)。

泛化性強:與只針對特定任務(wù)微調(diào)的模型相比,指令微調(diào)的模型具有更強的泛化能力,能夠適應(yīng)多種下游任務(wù)。

  1. 減少對少量示例的需求:經(jīng)過指令微調(diào)的模型在零-shot和少-shot任務(wù)中表現(xiàn)更為優(yōu)秀,減少了對示例輸入的依賴。

強化學(xué)習與人類反饋 (RLHF)

RLHF(Reinforcement Learning with Human Feedback)是一種在指令微調(diào)的基礎(chǔ)上,通過引入人類反饋來進一步提升模型與用戶期望對齊的技術(shù)。預(yù)訓(xùn)練的LLM(大型語言模型)通常會表現(xiàn)出一些不良行為,例如編造事實、生成偏見或有毒的回復(fù),或者由于訓(xùn)練目標和用戶目標之間的錯位,未能按照指令執(zhí)行任務(wù)。RLHF 通過利用人類反饋來對模型的輸出進行精細調(diào)整,從而解決這些問題。例如,OpenAI 的 InstructGPT 和 ChatGPT 就是 RLHF 的實際應(yīng)用案例。InstructGPT 是在 GPT-3 上使用 RLHF 進行微調(diào)的,而 ChatGPT 基于 GPT-3.5 系列,這些模型在提升真實度和減少有毒輸出方面取得了顯著進展,同時性能回歸(也稱為“對齊稅”)保持在最低水平。

以下是 RLHF 流程的概念圖,展示了三個主要步驟:

  1. 監(jiān)督微調(diào)(SFT):對預(yù)訓(xùn)練模型進行指令微調(diào)。
  2. 獎勵模型(RM)訓(xùn)練:通過人類反饋訓(xùn)練獎勵模型。
  3. 通過近端策略優(yōu)化(PPO)進行強化學(xué)習:使用獎勵模型優(yōu)化模型的行為策略。

參考文獻

What Language Model Architecture and Pre-training Objective Work Best for Zero-Shot Generalization?GPT-3 Paper – Language Models are Few-Shot LearnersGPT-NeoX-20B: An Open-Source Autoregressive Language ModelOPT: Open Pre-trained Transformer Language ModelsEfficient Large-Scale Language Model Training on GPU Clusters Using Megatron-LMHow To Build an Efficient NLP ModelEmergent Abilities of Large Language ModelsBeyond the Imitation Game Benchmark (BIG-bench)Talking About Large Language ModelsGalactica: A Large Language Model for ScienceState of AI Report 2022Finetuned Language Models are Zero-Shot LearnersScaling Instruction-Fine Tuned Language ModelsTraining Language Models to Follow Instructions with Human FeedbackScalable Deep Learning on Distributed Infrastructures: Challenges, Techniques, and ToolsNew Scaling Laws for Large Language Models by DeepMindNew Scaling Laws for Large Language Models

Understanding the Difficulty of Training Transformers


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 語言模型
    +關(guān)注

    關(guān)注

    0

    文章

    561

    瀏覽量

    10797
  • 大模型
    +關(guān)注

    關(guān)注

    2

    文章

    3146

    瀏覽量

    4076
  • LLM
    LLM
    +關(guān)注

    關(guān)注

    1

    文章

    325

    瀏覽量

    844
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    小白學(xué)模型:從零實現(xiàn) LLM語言模型

    ://github.com/FareedKhan-dev/train-llm-from-scratch本文將為你提供一個簡單直接的方法,從下載數(shù)據(jù)到生成文本,帶你一步步構(gòu)建大院模型。步
    的頭像 發(fā)表于 04-30 18:34 ?515次閱讀
    <b class='flag-5'>小白</b><b class='flag-5'>學(xué)</b>大<b class='flag-5'>模型</b>:從零實現(xiàn) <b class='flag-5'>LLM</b>語言<b class='flag-5'>模型</b>

    詳解 LLM 推理模型的現(xiàn)狀

    2025年,如何提升大型語言模型LLM)的推理能力成了最熱門的話題之一,大量優(yōu)化推理能力的新策略開始出現(xiàn),包括擴展推理時間計算、運用強化學(xué)習、開展監(jiān)督微調(diào)和進行提煉等。本文將深入探討LLM推理優(yōu)化
    的頭像 發(fā)表于 04-03 12:09 ?509次閱讀
    詳解 <b class='flag-5'>LLM</b> 推理<b class='flag-5'>模型</b>的現(xiàn)狀

    攝像機EMC電磁兼容性測試整改:影像設(shè)備關(guān)鍵步驟

    深圳南柯電子|攝像機EMC電磁兼容性測試整改:影像設(shè)備關(guān)鍵步驟
    的頭像 發(fā)表于 03-05 10:55 ?487次閱讀
    攝像機EMC電磁兼容性測試整改:影像設(shè)備<b class='flag-5'>關(guān)鍵步驟</b>

    無法在OVMS上運行來自Meta的大型語言模型LLM),為什么?

    無法在 OVMS 上運行來自 Meta 的大型語言模型LLM),例如 LLaMa2。 從 OVMS GitHub* 存儲庫運行 llama_chat Python* Demo 時遇到錯誤。
    發(fā)表于 03-05 08:07

    EMC電機控制器測試整改:確保產(chǎn)品可靠性關(guān)鍵步驟

    深圳南柯電子|EMC電機控制器測試整改:確保產(chǎn)品可靠性關(guān)鍵步驟
    的頭像 發(fā)表于 01-13 14:25 ?840次閱讀
    EMC電機控制器測試整改:確保產(chǎn)品可靠性<b class='flag-5'>關(guān)鍵步驟</b>

    電動工具EMC測試整改:確保電磁兼容性的關(guān)鍵步驟

    深圳南柯電子|電動工具EMC測試整改:確保電磁兼容性的關(guān)鍵步驟
    的頭像 發(fā)表于 12-02 11:25 ?544次閱讀
    電動工具EMC測試整改:確保電磁兼容性的<b class='flag-5'>關(guān)鍵步驟</b>

    什么是LLMLLM在自然語言處理中的應(yīng)用

    隨著人工智能技術(shù)的飛速發(fā)展,自然語言處理(NLP)領(lǐng)域迎來了革命性的進步。其中,大型語言模型LLM)的出現(xiàn),標志著我們對語言理解能力的一次飛躍。LLM通過深度學(xué)習和海量數(shù)據(jù)訓(xùn)練,使得機器能夠以前
    的頭像 發(fā)表于 11-19 15:32 ?3665次閱讀

    如何訓(xùn)練自己的LLM模型

    訓(xùn)練自己的大型語言模型LLM)是一個復(fù)雜且資源密集的過程,涉及到大量的數(shù)據(jù)、計算資源和專業(yè)知識。以下是訓(xùn)練LLM模型的一般步驟,以及一些
    的頭像 發(fā)表于 11-08 09:30 ?1529次閱讀

    理解LLM中的模型量化

    在本文中,我們將探討一種廣泛采用的技術(shù),用于減小大型語言模型LLM)的大小和計算需求,以便將這些模型部署到邊緣設(shè)備上。這項技術(shù)稱為模型量化。它使得人工智能
    的頭像 發(fā)表于 10-25 11:26 ?707次閱讀
    理解<b class='flag-5'>LLM</b>中的<b class='flag-5'>模型</b>量化

    深圳南柯電子 EMC測試整改:確保產(chǎn)品電磁兼容性的關(guān)鍵步驟

    深圳南柯電子|EMC測試整改:確保產(chǎn)品電磁兼容性的關(guān)鍵步驟
    的頭像 發(fā)表于 10-22 15:06 ?574次閱讀
    深圳南柯電子 EMC測試整改:確保產(chǎn)品電磁兼容性的<b class='flag-5'>關(guān)鍵步驟</b>

    建設(shè)智慧醫(yī)院的關(guān)鍵步驟都有哪幾點

    、醫(yī)患互動、醫(yī)療質(zhì)量提升等目標,從而為醫(yī)護人員和患者提供更便捷、高效、安全、舒適的醫(yī)療服務(wù)。 建設(shè)智慧醫(yī)院的關(guān)鍵步驟包括: 需求分析與規(guī)劃:在開始建設(shè)智慧醫(yī)院之前,首要任務(wù)是充分了解醫(yī)院的業(yè)務(wù)需求、技術(shù)需求和未
    的頭像 發(fā)表于 10-15 14:48 ?632次閱讀

    光伏行業(yè)數(shù)字化轉(zhuǎn)型的關(guān)鍵步驟有哪些?

    光伏行業(yè)數(shù)字化轉(zhuǎn)型是利用信息技術(shù)和數(shù)字化工具來提高光伏領(lǐng)域的效率、可靠性和可持續(xù)性。以下是一些實現(xiàn)光伏行業(yè)數(shù)字化轉(zhuǎn)型的關(guān)鍵步驟:數(shù)據(jù)采集和監(jiān)測:在光伏發(fā)電過程中,收集和監(jiān)測關(guān)鍵數(shù)據(jù)是實現(xiàn)數(shù)字化轉(zhuǎn)型
    的頭像 發(fā)表于 09-19 16:32 ?533次閱讀
    光伏行業(yè)數(shù)字化轉(zhuǎn)型的<b class='flag-5'>關(guān)鍵步驟</b>有哪些?

    【飛凌嵌入式OK3576-C開發(fā)板體驗】rkllm模型量化構(gòu)建

    .load_huggingface(model = modelpath) if ret != 0: print(\'Load model failed!\') exit(ret) 模型量化構(gòu)建 # Build model ret
    發(fā)表于 08-27 22:50

    組合邏輯電路設(shè)計的關(guān)鍵步驟是什么

    組合邏輯電路設(shè)計的關(guān)鍵步驟主要包括以下幾個方面: 1. 邏輯抽象 任務(wù) :根據(jù)實際邏輯問題的因果關(guān)系,確定輸入、輸出變量,并定義邏輯狀態(tài)的含義。 內(nèi)容 :明確問題的邏輯要求,找出自變量(輸入條
    的頭像 發(fā)表于 08-11 11:28 ?1828次閱讀

    LLM模型推理加速的關(guān)鍵技術(shù)

    LLM(大型語言模型)大模型推理加速是當前人工智能領(lǐng)域的一個研究熱點,旨在提高模型在處理復(fù)雜任務(wù)時的效率和響應(yīng)速度。以下是對LLM
    的頭像 發(fā)表于 07-24 11:38 ?1826次閱讀