Llama系列:Llama1, Llama2,Llama3內容概述

前言

參考視頻:大模型修煉之道(三): Llama系列講解 Llama1,Llama2, Llama3_嗶哩嗶哩_bilibili

本博客是基于視頻的學習筆記,以及相關知識點的擴充


?Llama1

1. 動機

  • 使用完全開源數據,性能媲美GPT3
  • 研究開源,禁止商用

?2. scaling law

損失曲線圖的解釋:
圖中顯示了兩個模型(10B和50B)的訓練過程。損失(loss)曲線反映了模型在訓練過程中的性能,損失值的降低表示模型的性能在提升。隨著訓練時間的增加,計算成本也在不斷增加。

隨著計算時間的增加,兩個模型的Loss都在不斷降低,剛開始小模型的Loss下降更快,但隨著訓練的進行,小模型的性能逐漸飽和下降逐漸變慢,大模型下降速度超過了小模型。

當設定一個期望損失值時,如圖,會發現大模型的訓練花費可能會低于小模型。

但是!!Meta不這樣認為!!!

Meta認為在考慮計算成本時,不僅要關注訓練階段的開銷,更要重視推理時的計算成本。因為訓練過程只能進行一次,而推理是一個重復的過程,影響到實際應用的頻率和資源消耗。

所以從推理計算成本來看,小模型的成本是會小于大模型的。

按照原來的scaling law經驗,原來10B的模型,建議用200B的token訓練。

但是Meta對7B的模型使用了1T的token訓練,發現性能還可以一直增長。

增加數據比擴大參數更有效:在后續的LLaMA系列中,Meta持續采納這一觀點,認為在提升模型性能時,增加訓練數據的數量比擴大模型參數的數量更為有效。

3. 訓練數據?

1. CommonCrawl 2017-2020的數據,對非英文數據進行了去重。

2. 將wikipedia引用的網頁作為正例,其他網頁作為負例訓練線性模型。

3. 將books 和 wikiledia 用兩個epoch訓練,其他數據集只用了一個epoch。

4. 總共1.4T token。

5. 訓練時的上下文長度為2048,用了2048個A100 80G的GPU訓練,用時21天。

?4. 模型結構

Llama模型架構和GPT一樣,都是采用Transformer Decoder架構,做了以下修改。

1. 和GPT2,3一樣將Normalization從每個子層的輸出位置移到了輸入位置。

? ?? (左GPT1,右GPT2)? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ?

?2. 將Layer Norm 改為了 RMS Norm

RMS Norm的動機是:

在進行normalization的時候,并不能改變特征的分布,所以可以去掉平移相關部分:

RMS Norm通過計算輸入向量的均方根,進行歸一化處理,消除了Layer Norm中計算均值的過程,簡化計算。

RMSNorm(RMS歸一化)介紹-CSDN博客

3. 采用了旋轉位置編碼?

4. 采用了Silu激活函數


Llama2?

1. 改進

  • 可商用;
  • 加大了數據量;
  • 通過微調訓練了chat model,對標chatgpt

2. 訓練數據

  • Llama2的訓練數據比Llama1 多了40%,達到了2T的token(Llama1是1.4T? token)
  • 上下文token 從2048 翻倍到了4096
  • 使用了10萬條數據進行監督微調(人類提出問題并給出回答數據)
  • 使用了100萬條偏好數據(對同一個問題讓模型給出多個回答,人工給這些回答進行排序)用來強化學習
  • 共三個版本(7B,13B,70B)
  • 70B的模型訓練用了172萬的GPU小時,相當于2048個GPU訓練了35天

3. 訓練流程

  • ?在處理好的無標注文本數據上進行自回歸預訓練;
  • 然后進行監督微調訓練;
  • 接下來通過人類偏好數據訓練兩個模型(安全獎勵模型,有用獎勵模型);
  • 再利用強化學習對模型訓練;
  • 最終得到Llama 2 的chat Model。

4.? Train PPL—Tokens

縱坐標Train PPL-訓練困惑度"(Training Perplexity)

困惑度是一個衡量語言模型預測能力的指標,反映了模型對測試數據的困惑程度。它可以被視為模型在生成文本時的“困惑”程度,數值越低,表示模型對數據的預測能力越強。

PPL = 2^{Cross-Entropy}

交叉熵損失(Cross-Entropy Loss)

Cross-Entropy = -\sum_{i}^{}p(i)log(q(i))

  • p(i)?是真實分布的概率(通常是一個one-hot編碼的真值分布)。
  • q(i)是模型預測的概率分布。

5. GPA (Group Query Attention)

Multi-Head Attention

  • 每個Token都有多個Query、Key和Value:每個輸入Token會生成多個Query(查詢向量)、Key(鍵向量)和Value(值向量)。例如,如果有8個頭,那么每個Token會有8個不同的Query和8個對應的Key和Value。

  • 計算注意力:每個Query會與所有Token的Keys進行相似度計算,從而生成注意力權重,進而加權所有的Values,產生最終的輸出。這種機制允許模型在不同的子空間中學習信息,從而增強表示能力。

Multi-query Attention

  • 生成的特征不同:每個Token仍然生成多個Query,但只生成一個Key和一個Value。這樣,所有的Query都與同一個Key進行相似度計算。這種機制減少了計算的復雜性,使得模型在處理時更加高效。

  • 注意力計算:所有的Query會與自己唯一的Key進行相似度計算,這在一定程度上簡化了計算過程,并可能提高模型的效率。

分組注意力(Group Attention)

  • Query的分組:在分組注意力中,Query被分為幾個組。例如,可以將每兩個Query分為一組。每組對應一個Key和一個Value。

  • 組合優點:這種方法結合了多頭注意力的優點和Marty Query Attention的計算效率。通過分組,模型可以在保持一定表達能力的同時,減少計算量。

原始Multi-head實現

假設原始的token維度為512,則w_q,w_k,w_v線性層的權重矩陣都為512*512,生成的q,k,v都是512維;

分為八個頭,每個頭的維度就是64:

Group Query Attention的實現

如果每兩個query為1組,那么w_k和w_v矩陣為512*256,這里節省了模型的參數量;

這樣Q有8個頭,K,V只有4個頭:

矩陣乘法的時候,將k,v的頭再復制一份就可以相乘了:

注意:GQA再Llama2中只應用在了70B的模型中

Llama3

1. 性能表現

?2. 改進

  • 字典從3萬2000個Token擴充4倍,達到了12萬8。提高推理效率;

原來一個中文被編碼為多個token,現在只需要一個token。

也就意味著原來需要多次推理才能輸出一個漢字,現在只需要一次推理就可以。

但因為字典的增大,導致embedding層和分類頭層增加,所以最小的模型也從7B到了8B.

  • 所有模型,包括8B模型也用GQA;
  • 序列長度從4096到了8192。

3. 訓練數據

《Llama: The Llama 3 Herd of Models》預訓練數據篇——論文精讀筆記-CSDN博客

  • 15T的訓練Token,全部來自公開數據。是Llama2的7倍大小。代碼數據多了4倍;
  • 5%高質量非英語數據,涵蓋30多種語言;
  • 對數據進行了清洗過濾,llama2生成訓練數據來幫助訓練文本質量分類器;(不是用llama2生成訓練數據)
  • 微調階段除了開源數據集,還人工標注了1000萬樣本。

?4. 訓練技能

?5. 指令微調

指令微調是一種通過在特定的指令數據集上對預訓練模型進行進一步訓練的方法,使得模型能夠更有效地處理和響應各種文本指令。這些指令可以包括問答、生成文本、總結、翻譯等多種任務。

  • SFT
  • 拒接采樣
  • PPO
  • DPO

SFT(Supervised Fine-Tuning)

定義: SFT是指在預訓練模型的基礎上,通過監督學習的方式對模型進行細化調整。這個過程通常利用帶有標簽的數據集來學習模型在特定任務上的表現。

特點:

  • 數據依賴: SFT需要標注數據,通常由人類專家或自動化程序生成。
  • 目標明確: 針對特定任務(如分類、問答等)進行微調,以提高模型的準確性和性能。
  • 適用性廣: 可以應用于各種NLP任務,如文本生成、文本分類等。

拒接采樣(Reject Sampling)

定義: 拒接采樣是一種用于生成樣本的方法,它通過計算生成樣本的概率并根據該概率進行選擇。具體而言,對于每個生成的樣本,決定是否接受該樣本。

特點:

  • 選擇性強: 通過設定閾值來拒絕那些不符合特定條件的樣本,從而提高生成樣本的質量。
  • 靈活性: 可以根據模型的輸出概率進行動態調整,適應不同的應用場景。
  • 應用: 常用于增強生成模型的質量,特別是在對生成內容有明確標準的時候。

?PPO(Proximal Policy Optimization)

定義: PPO是一種強化學習算法,旨在優化策略的同時確保更新的穩定性。它通過限制每次更新的幅度,避免大幅度的策略變化。

特點:

  • 穩定性: 通過使用剪切目標函數(clipped objective function)來限制策略更新,從而增大了訓練的穩定性。
  • 易于實現: 相較于其他強化學習算法,PPO的實現較為簡單,且在多種任務上表現良好。
  • 廣泛應用: 常用于訓練對話系統、游戲AI等需要動態學習的場景。

DPO(Direct Preference Optimization)

定義: DPO是一種直接優化策略,通常用于模型輸出的偏好學習。DPO通過優化模型對不同輸出的偏好,使模型能夠更好地滿足用戶需求。

特點:

  • 直接優化: 通過直接調整模型輸出的偏好,優化模型的生成質量。
  • 用戶反饋: DPO通常使用用戶反饋或排序信息來指導模型學習,從而提高用戶體驗。
  • 應用場景: 常用于推薦系統和對話系統等需要考慮用戶偏好的任務。

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

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

相關文章

Docker 搭建本地Harbor私有鏡像倉庫

Docker 搭建本地Harbor私有鏡像倉庫 一、Harbor 核心價值與企業級特性解析 在容器化技術普及的背景下,鏡像倉庫作為容器生命周期的核心組件,其可靠性直接影響開發效率與生產穩定性。Docker 官方的 Registry 雖能實現基礎鏡像存儲,但存在明顯短…

AI 助力:如何批量提取 Word 表格字段并導出至 Excel

在日常辦公中,我們經常需要處理大量的 Word 文檔中的表格數據,如學生登記表、客戶信息表、報名表等。然而這些表格往往格式各異、字段命名不統一(如“姓名”“名字”“Name”),甚至含有合并單元格或多余空白行&#xf…

在 Azure Linux 上安裝 RustFS

本文分享在 Azure Linux 上安裝并使用對象存儲 RustFS 的過程。 關于 RustFS RustFS 是一款用 Rust 語言編寫的分布式存儲系統,兼容 S3 協議,是 MinIO 的國產化平替。詳情可以前往 RustFS 官網。目前,RustFS 支持二進制、Docker 安裝方式&am…

實現在線預覽pdf功能,后臺下載PDF

<!-- PDF預覽模態框 --><n-modalv-model:show"pdfModalVisible"title"投訴統計報告預覽":closable"false":mask-closable"false"positive-click"closePdfModal"positive-text"關閉":width"900"…

華為VS格行VS中興VS波導隨身WIFI6怎么選?流量卡OR隨身WIFI,長期使用到底誰更香?

在移動互聯時代&#xff0c;流量焦慮成為現代人的通病。面對"辦流量卡還是隨身WiFi"的抉擇&#xff0c;許多人陷入兩難。本文從實際需求出發&#xff0c;用數據和場景幫你精準決策&#xff0c;尤其這五類人群建議直接選擇正規隨身WiFi。一、這五類人&#xff0c;隨身…

AI網絡搜索

作為AI應用程序開發人員在了解函數調用&#xff08;Function Calling&#xff09;特性調用本地函數時可能注意到列表型參數tools中每一個元素都攜帶有一個type值。而在大多數函數調用示例程序中&#xff0c;這個type值一直被設定為“function”&#xff0c;這意味著它還可能存在…

39.Sentinel微服務流量控制組件

雪崩問題 微服務調用鏈路中某個服務故障,引起整個鏈路中的所有微服務都不可用。 解決方案 1.超時處理:設置一個超時時間,請求超過一定時間沒有響應就返回錯誤信息,不會無休止的等待。(只能起到緩解作用,并不能從根本上解決問題) 2.艙壁模式:限定每個業務能使用的線程…

基于hadoop的競賽網站日志數據分析與可視化(下)

【基于hadoop的競賽網站日志數據分析與可視化&#xff08;上&#xff09;】講解了如何用hadoop對數據進行初步處理&#xff0c;本篇主要講解用python對結果數據進行可視化分析。 ------------------------------------------------------------------------------------------…

Python爬蟲打怪升級:數據獲取疑難全解析

一、引言 **??? 在大數據時代,數據就是價值的源泉。而 Python 爬蟲,作為數據獲取的得力助手,憑借 Python 簡潔的語法和豐富強大的庫,在眾多領域發揮著重要作用。無論是電商領域的價格監測、市場調研中的數據收集,還是學術研究里的文獻獲取,Python 爬蟲都能大顯身手。…

基于R語言的極值統計學及其在相關領域中的實踐技術應用

極值統計學就是專門研究自然界和人類社會中很少發生&#xff0c;然而發生之后有著巨大影響的極端現象的統計建模及分析方法&#xff1b;在水文、氣象、環境、生態、保險和金融等領域都有著廣泛的應用。一&#xff1a;獨立假設下的極值統計建模 1.廣義極值模型. 2.極小值的處理.…

前端面試十一之TS

TS 是 TypeScript 的縮寫&#xff0c;是一種由微軟開發的開源編程語言&#xff0c;它是 JavaScript 的一個超集&#xff0c;為 JavaScript 添加了類型系統和對 ES6 的支持。以下是關于 TypeScript 的詳細介紹&#xff1a;一、特點類型系統&#xff1a;TypeScript 引入了類型注解…

Excel快捷鍵

Excel快捷鍵可以快速提高使用Excel的效率&#xff0c;下面將Excel快捷鍵進行整理匯總以備不時之需 標注顏色的為需要經常使用并可以顯著提高效率的快捷鍵 Ctrl相關快捷鍵【Ctrl】【1】 顯示【單元格格式】設置窗口,可以設置選中的格式【Ctrl】【2】 應用或取消加粗…

Windows 10/11安裝WSL、Ubuntu、Docker Desktop

WSL&#xff0c;Windows Subsystem for Linux&#xff0c;是微軟開發的輕量級虛擬機環境&#xff0c;允許用戶在 Windows上運行完整的Linux內核和用戶空間&#xff0c;適用于Windows的Linux子系統。能實現&#xff1a; 運行原生的Linux命令和程序&#xff08;如apt&#xff0c…

React之旅-06 Ref

當你想讓一個組件“記住”一些信息&#xff0c;但又不想這些信息觸發新的渲染時&#xff0c;你可以使用 ref。使用 Ref 前&#xff0c;需要導入useRef&#xff0c;代碼如下&#xff1a;import { useRef } from react;在您的組件內部&#xff0c;調用 useRef 并將您想要引用的初…

stm32-Modbus主機移植程序理解以及實戰

目錄一、背景二、代碼理解&#xff08;一&#xff09;main()函數例程代碼功能遇到的問題解決方式分析&#xff08;二&#xff09;eMBMasterPoll( void )函數例程代碼1. 變量聲明2. 協議棧狀態檢查3. 獲取事件4. 事件處理&#xff08;switch-case&#xff09;4.1 EV_MASTER_READ…

c++判斷文件或目錄是否存在

#include<sys/stat.h>#include<fstream>#include<string>#include<stdio.h>#include<stdlib.h>#include<vector>#include<io.h>#include<iostream>bool IsFileGood(string strFileName, book bFile){if(bFile) \\文件{ifstrea…

Java設計模式之行為型模式(命令模式)

一、核心定義與設計思想 命令模式通過對象化請求&#xff0c;將操作的具體實現細節封裝在命令對象中&#xff0c;使得調用者&#xff08;Invoker&#xff09;無需直接依賴接收者&#xff08;Receiver&#xff09;&#xff0c;僅需通過命令對象間接調用。這種設計支持以下能力&a…

大數據領域開山鼻祖組件Hadoop核心架構設計

一、Hadoop的整體架構 Hadoop是一個專為大數據設計的架構解決方案&#xff0c;歷經多年開發演進&#xff0c;已逐漸發展成為一個龐大且復雜的系統。其內部工作機制融合了分布式理論與具體工程開發的精髓&#xff0c;構成了一個整體架構。 Hadoop最樸素的原理在于&#xff0c;它…

OneCode3.0 VFS分布式文件管理API速查手冊

&#x1f4da; 前言&#xff1a;OneCode 3.0微內核引擎架構解析 在云原生與分布式系統日益普及的今天&#xff0c;文件管理系統面臨著前所未有的挑戰——海量數據存儲、跨節點協同、多租戶隔離以及彈性擴展等需求推動著傳統文件系統向分布式架構演進。OneCode 3.0作為新一代企業…

UI前端與數字孿生結合實踐探索:智慧物流的倉儲自動化管理系統

hello寶子們...我們是艾斯視覺擅長ui設計、前端開發、數字孿生、大數據、三維建模、三維動畫10年經驗!希望我的分享能幫助到您!如需幫助可以評論關注私信我們一起探討!致敬感謝感恩!一、引言&#xff1a;傳統倉儲的 “效率黑洞” 與數字孿生的破局當倉庫管理員在數萬平的庫房中…