【論文筆記】Llama 3 技術報告

在這里插入圖片描述
Llama 3中的頂級模型是一個擁有4050億參數的密集Transformer模型,并且它的上下文窗口長度可以達到128,000個tokens。這意味著它能夠處理非常長的文本,記住和理解更多的信息。Llama 3.1的論文長達92頁,詳細描述了模型的開發階段、優化策略、模型架構、性能比較、新功能等。

在這里插入圖片描述

pre-train(預訓練階段)

訓練的兩個階段,第一個階段是預訓練做詞語預測或者文章總結;第二個階段是后訓練用來做模型的微調,或者是人類偏好對齊。
pre-train(預訓練階段)
模型的預訓練分多階段,第一個階段是初始化的預訓練,第二階段是長上下文預訓練,第三階段是退火模擬。

初始化

● 模型在訓練的初始階段,學習率從一個較低的值逐漸增加(稱為線性預熱)
● 為了提高訓練的穩定性,在訓練初期使用較小的批次大小。在訓練過程中,為了提高效率,逐步增大批次大小。
● 增加非英語數據、數學數據、網絡數據減少了那些在訓練過程中被識別為低質量的數據子集(交叉熵自動計算&人工標注網站)。

長序列訓練

● 目標:最終的預訓練目標是讓模型能夠處理長達128K(128,000)個tokens的上下文序列。
● 逐步增加上下文長度:為了讓模型逐漸適應更長的上下文長度,預訓練過程中按階段逐步增加序列長度。每個階段會先讓模型在新的序列長度下進行預訓練,直到模型適應這個新的長度。
● 成功適應的評估:模型能夠完美解決在這個長度下的“needle in a haystack”(大海撈針)任務。這種任務是指在很長的文本中找到特定的信息或答案。
● 最后階段的長序列預訓練使用了大約8000億(800B)個訓練tokens。

模擬退火

● 預訓練過程的最后階段:在預訓練的最后階段,使用了 4000 萬個文本標記(tokens)來訓練模型。
● 學習率(模型在每次迭代中調整其參數的速度)被線性下降到 0。也就是說,訓練開始時學習率較高,然后逐漸降低,直到最后完全停止調整。
● 模型檢查點的平均:在學習率逐漸降低的過程中,使用了一種叫做“Polyak 平均”的方法(根據 Polyak 在 1991 年提出的方法)。這意味著,取了多個時間點的模型參數的平均值,來得到一個更穩定、性能更好的最終模型。(模型)

post-train(后訓練階段)

在這里插入圖片描述

核心策略是獎勵模型和語言模型。
獎勵模型:這個模型的目的是幫助評估生成的文本是否符合人類的偏好。它基于預訓練好的模型,使用人類注釋的偏好數據進行訓練。
● 訓練獎勵模型:在預訓練好的模型基礎上,使用人類注釋的偏好數據來訓練獎勵模型。人類注釋的偏好數據是指人類標記哪些生成的文本更符合他們的期望或喜好。
● 有監督微調(SFT):接下來,對預訓練好的模型進行有監督微調(SFT),這是利用具體任務的標注數據來進一步訓練模型,使其在特定任務上表現更好。Tricks:使用獎勵模型進行拒絕采樣,提高用于微調的數據質量。
● 直接偏好優化(DPO):最后,使用直接偏好優化(DPO)進一步調整模型。DPO方法通過獎勵模型的反饋,直接優化模型生成的文本,使其更符合人類的偏好。

聊天對話協議

● 定義聊天對話協議:為了讓模型理解人類的指令并執行對話任務,需要定義一個聊天對話協議。
● 工具使用:與前一代模型相比,Llama 3 擁有新功能,例如工具使用,這可能需要在一個對話輪次內生成多個消息并發送到不同的地方(例如,用戶、ipython)。
獎勵模型
● 獎勵模型的訓練:在預訓練好的模型基礎上訓練一個獎勵模型,這個模型用于評估和提升模型的各項能力。
● 使用偏好數據:使用所有的偏好數據來訓練獎勵模型,但會過濾掉那些回應相似的樣本。
● 偏好數據的處理:除了標準的偏好對(即chosen, rejected),還為一些提示創建了第三種“edited”,這些回應是在選中回應的基礎上、人工進一步改進的。因此,每個偏好排序樣本會有兩到三種回應,且有明確的排序(edited > 即chosen > rejected)。

監督訓練

● 使用獎勵模型進行拒絕采樣:使用之前訓練的獎勵模型對人工標注的數據進行拒絕采樣。這意味著會根據獎勵模型的評分來篩選出高質量的回應。
● 監督微調階段:這一階段稱為監督微調(SFT),盡管很多訓練目標是模型生成的。這意味著用高質量的訓練數據對模型進行進一步調整,使其性能更好。

直接偏好優化

● DPO:一種優化算法,用于調整模型以更好地符合人類偏好。相比其他算法(如PPO),DPO在大規模模型上的計算需求更少,性能更好,尤其是在遵循指令的基準測試上表現出色。
● 訓練數據:使用最新收集的偏好數據,這些數據來自于之前優化輪次中表現最好的模型。這樣,訓練數據更符合正在優化的策略模型的分布。

實驗結果

改進了一些具體的能力,以提升模型的整體表現。
● 代碼能力:提升模型理解和生成代碼的能力。
● 多語言能力(:讓模型能夠處理多種語言,而不僅限于一種語言。
● 數學和推理能力:提高模型進行數學計算和邏輯推理的準確性和能力。
● 長上下文處理能力:增強模型處理長文本的能力,使其在面對長篇文章時表現更好。
● 工具使用能力:提升模型使用各種工具和接口的能力。
● 事實性:確保模型提供的信息準確且基于事實。
● 可引導性:增強模型按照用戶指令進行操作和回答的能力。

參考文獻

arxiv-pdf:https://arxiv.org/pdf/2407.21783v3
llama官方主頁:https://llama.meta.com/

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/75463.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/75463.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/75463.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JVM深入原理(一+二):JVM概述和JVM功能

目錄 1. JVM概述 1.1. Java程序結構 1.2. JVM作用 1.3. JVM規范和實現 2. JVM功能 2.1. 功能-編譯和運行 2.2. 功能-內存管理 2.3. 功能-即時編譯 1. JVM概述 1.1. Java程序結構 1.2. JVM作用 JVM全稱是Java Virtual Machine-Java虛擬機 JVM作用:本質上是一個運行在…

SQL Server Integration Services (SSIS) 服務無法啟動

問題現象: 安裝 SQL Server 2022 后,SQL Server Integration Services (SSIS) 服務無法啟動,日志報錯 “服務無法響應控制請求”(錯誤代碼 1067)或 “依賴服務不存在或已標記為刪除”。 快速診斷 檢查服務狀態與依賴項…

Spring Boot 定時任務的多種實現方式

🌟 前言 歡迎來到我的技術小宇宙!🌌 這里不僅是我記錄技術點滴的后花園,也是我分享學習心得和項目經驗的樂園。📚 無論你是技術小白還是資深大牛,這里總有一些內容能觸動你的好奇心。🔍 &#x…

Java基礎之反射的基本使用

簡介 在運行狀態中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調用它的任意屬性和方法;這種動態獲取信息以及動態調用對象方法的功能稱為Java語言的反射機制。反射讓Java成為了一門動…

AI產品的上層建筑:提示詞工程、RAG與Agent

上節課我們拆解了 AI 產品的基礎設施建設,這節課我們聊聊上層建筑。這部分是產品經理日常工作的重頭戲,包含提示詞、RAG 和 Agent 構建。 用 AI 客服產品舉例,這三者的作用是這樣的: 提示詞能讓客服很有禮貌。比如它會說&#x…

藍橋杯刷題記錄【并查集001】(2024)

主要內容:并查集 并查集 并查集的題目感覺大部分都是模板題,上板子!! class UnionFind:def __init__(self, n):self.pa list(range(n))self.size [1]*n self.cnt ndef find(self, x):if self.pa[x] ! x:self.pa[x] self.fi…

海外SD-WAN專線網絡部署成本分析

作為支撐企業國際業務的重要基石,海外SD-WAN專線以其獨特的成本優勢和技術特性,正成為企業構建高效穩定的全球網絡架構的首選方案。本文將從多維度解構海外SD-WAN專線部署的核心成本要素,為企業的全球化網絡布局提供戰略參考。 一、基礎資源投…

操作系統(二):實時系統介紹與實例分析

目錄 一.概念 1.1 分類 1.2 主要指標 二.實現原理 三.主流實時系統對比 一.概念 實時系統(Real-Time System, RTS)是一類以時間確定性為核心目標的計算機系統,其設計需確保在嚴格的時間約束內完成任務響應。 1.1 分類 根據時間約束的嚴…

Golang的消息中間件選型

# Golang的消息中間件選型 消息中間件的作用 消息中間件是一種用于分布式系統中應用程序之間進行通信的基礎架構工具,它能夠有效地解耦發送者和接收者,并提供高可用性和可靠性的消息傳遞機制。在Golang應用程序中,選擇適合的消息中間件對于構…

大模型中的參數規模與顯卡匹配

在大模型訓練和推理中,顯卡(GPU/TPU)的選擇與模型參數量緊密相關,需綜合考慮顯存、計算能力和成本。以下是不同規模模型與硬件的匹配關系及優化策略: 一、參數規模與顯卡匹配參考表 模型參數量訓練階段推薦顯卡推理階…

帶頭結點 的單鏈表插入方法(頭插法與尾插法)

帶頭結點的單鏈表插入方法(頭插法與尾插法) 在單鏈表的操作中,插入是最常見的操作之一,本文介紹 帶頭結點的單鏈表 如何實現 后插法 和 前插法(包括 插入法 和 后插數據交換法),并提供完整的 C …

Prometheus的工作流程

Prometheus 是一個開源的監控和告警系統,專為監控分布式系統而設計。它的工作流程主要包括以下幾個關鍵步驟: 1. 數據采集 (Scraping) 目標發現 (Service Discovery): Prometheus 自動或手動配置監控目標,通過 DNS、Kubernetes、…

軟件工程面試題(二十二)

1、常用的設計模式有哪些?并寫出一段程序代碼 Factory(工廠模式),Adapter(適配器模式),Singleton(單例模式),State(狀態模式),Observer(觀察者模式) 等。 單例模式 public class Singleton{ private static Singleton …

【Pandas】pandas DataFrame select_dtypes

Pandas2.2 DataFrame Attributes and underlying data 方法描述DataFrame.index用于獲取 DataFrame 的行索引DataFrame.columns用于獲取 DataFrame 的列標簽DataFrame.dtypes用于獲取 DataFrame 中每一列的數據類型DataFrame.info([verbose, buf, max_cols, …])用于提供 Dat…

如何利用ATECLOUD測試平臺的芯片測試解決方案實現4644芯片的測試?

作為多通道 DC-DC 電源管理芯片的代表產品,4644 憑借 95% 以上的轉換效率、1% 的輸出精度及多重保護機制,廣泛應用于航天航空(衛星電源系統)、醫療設備(MRI 梯度功放)、工業控制(伺服驅動單元&a…

Python 編程實戰:打造高效便捷的目錄結構生成器

Python 編程實戰:打造高效便捷的目錄結構生成器 相關資源文件已經打包成EXE文件,可雙擊直接運行程序,且文章末尾已附上相關源碼,以供大家學習交流,博主主頁還有更多Python相關程序案例,秉著開源精神的想法&…

移動端六大語言速記:第6部分 - 錯誤處理與調試

移動端六大語言速記:第6部分 - 錯誤處理與調試 本文將對比Java、Kotlin、Flutter(Dart)、Python、ArkTS和Swift這六種移動端開發語言在錯誤處理與調試方面的特性,幫助開發者理解和掌握各語言的異常處理機制。 6. 錯誤處理與調試 6.1 異常處理 各語言異常處理的語法對比:…

PyTorch優化器

PyTorch 提供了多種優化算法用于神經網絡的參數優化。以下是對 PyTorch 中主要優化器的全面介紹,包括它們的原理、使用方法和適用場景。 一、基本優化器 1. SGD (隨機梯度下降) torch.optim.SGD(params, lr0.01, momentum0, dampening0, weight_decay0, nesterov…

C++的UDP連接解析域名地址錯誤

背景 使用c開發一個udp連接功能的腳本,可以接收發送數據,而且地址是經過內網穿透到外網的 經過 通常發送數據給目標地址,需要把目的地址結構化,要么使用inet_addr解析ip地址,要么使用inet_pton sockaddr_in target…

Spark,上傳文件

上傳文件 1.上傳 先使用命令打開HDFS的NameNode [roothadoop100 hadoop-3.1.3]$ sbin/start-dfs.sh [roothadoop100 hadoop-3.1.3]$ sbin/stop-dfs.sh 和YARN的Job [roothadoop101 hadoop-3.1.3]$ sbin/start-yarn.sh [roothadoop101 hadoop-3.1.3]$ sbin/stop-yarn.sh 在Nam…