自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

給你數(shù)據(jù)和算力,你也成不了 OpenAI

發(fā)布于 2024-10-25 13:24
瀏覽
0收藏

最近在研究大模型訓(xùn)練和微調(diào)相關(guān)的內(nèi)容,聽領(lǐng)導(dǎo)說的最多的一句話“那不是有數(shù)據(jù)有算力就能搞定的嗎”,于是調(diào)研了下 qwen 系列的訓(xùn)練細(xì)節(jié)。

再整理過程中,再次感慨,怪不得有了數(shù)據(jù)和算力,也不是每家公司都是 OpenAI。

Qwen2.5-Math

QWEN2.5-MATH TECHNICAL REPORT: TOWARD MATHEMATICAL EXPERT MODEL VIA SELF- IMPROVEMENT

1. 預(yù)訓(xùn)練階段

Qwen2.5-Math 的預(yù)訓(xùn)練階段是在 Qwen2-Math 的基礎(chǔ)上進(jìn)行改進(jìn)的。這個(gè)階段的主要目標(biāo)是構(gòu)建一個(gè)高質(zhì)量、數(shù)學(xué)內(nèi)容豐富的預(yù)訓(xùn)練數(shù)據(jù)集。

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

  1. 數(shù)據(jù)召回:
  • 使用 FastText 分類器從網(wǎng)絡(luò)源(如 Common Crawl)中召回?cái)?shù)學(xué)相關(guān)數(shù)據(jù)。
  • 采用迭代訓(xùn)練策略,每個(gè) epoch 使用更多數(shù)學(xué)數(shù)據(jù)來不斷提升分類器性能。
  • 利用已召回?cái)?shù)據(jù)的元信息(如 URL)擴(kuò)展數(shù)據(jù)池,以識(shí)別遺漏的數(shù)學(xué)相關(guān)數(shù)據(jù)。
  1. 數(shù)據(jù)去重:
  • 使用 MinHash 等技術(shù)對(duì)相似的數(shù)學(xué)文檔進(jìn)行過濾。
  1. 數(shù)據(jù)質(zhì)量過濾:
  • 使用 Qwen2-0.5B-Instruct 模型評(píng)估潛在數(shù)據(jù)條目的質(zhì)量。
  • 根據(jù)語(yǔ)言模型給出的評(píng)分,優(yōu)先選擇高質(zhì)量數(shù)據(jù)納入最終數(shù)據(jù)集。
  1. 合成數(shù)據(jù)生成:
  • 使用 Qwen2-72B-Instruct 模型生成大量數(shù)學(xué)預(yù)訓(xùn)練語(yǔ)料。
  • 利用已收集的高質(zhì)量數(shù)學(xué)數(shù)據(jù)作為參考材料。
  • 從參考中提取和精煉現(xiàn)有的數(shù)學(xué)問答數(shù)據(jù)。
  • 直接生成新的數(shù)學(xué)問答對(duì)。

訓(xùn)練設(shè)置

  • 數(shù)據(jù)集:Qwen Math Corpus v2,包含超過 1 萬億個(gè) token。
  • 初始化:從 Qwen2.5 系列基礎(chǔ)模型初始化參數(shù)。
  • 上下文長(zhǎng)度:4K tokens。
  • 模型規(guī)模:提供 1.5B、7B 和 72B 三種規(guī)模的模型。

2. 監(jiān)督微調(diào)階段 (Supervised Fine-tuning, SFT)

SFT 階段主要針對(duì)鏈?zhǔn)剿季S (Chain-of-Thought, CoT) 和工具集成推理 (Tool-Integrated Reasoning, TIR) 兩種能力進(jìn)行訓(xùn)練。

CoT 數(shù)據(jù)處理

  1. 數(shù)據(jù)集構(gòu)建:

580K 英文和 500K 中文數(shù)學(xué)問題。

  • 來源包括 GSM8K、MATH、NuminaMath 等標(biāo)注數(shù)據(jù)集和 K-12 數(shù)學(xué)問題集。
  1. 數(shù)據(jù)合成:
  • 使用 MuggleMath 方法從標(biāo)注數(shù)據(jù)演化生成新問題。
  • 使用難度評(píng)分模型對(duì)問題集進(jìn)行分類,以保持不同難度水平的平衡分布。
  1. 回答生成:
  • 采用迭代方法,利用拒絕采樣、獎(jiǎng)勵(lì)建模和標(biāo)注答案指導(dǎo)。
  • 對(duì)于有標(biāo)注答案的問題,從候選池中選擇 top-k 正確答案的推理路徑。
  • 對(duì)于合成問題,使用加權(quán)多數(shù)投票機(jī)制推斷最可能正確的推理路徑。

TIR 數(shù)據(jù)處理

  1. 數(shù)據(jù)集構(gòu)建:
  • 190K 標(biāo)注問題和 205K 合成問題。
  • 來源包括 GSM8K、MATH、CollegeMath、NuminaMath 等數(shù)據(jù)集。
  1. 數(shù)據(jù)合成:
  • 使用 MuggleMath 和 DotaMath 技術(shù)在 GSM8K 和 MATH 訓(xùn)練集上進(jìn)行查詢演化。
  1. 回答生成:
  • 對(duì)于標(biāo)注問題,使用在線拒絕微調(diào) (RFT) 迭代生成工具集成推理路徑。
  • 在每次 RFT 迭代中,對(duì)當(dāng)前最佳模型進(jìn)行多次核采樣,增加困難問題的樣本大小。
  • 對(duì)于合成問題,使用從在線 RFT 過程中得到的最優(yōu)模型生成推理樣本。

訓(xùn)練設(shè)置

  • 訓(xùn)練周期:3 個(gè) epoch
  • 序列長(zhǎng)度:4,096 tokens
  • 批量大?。?/li>

72B 模型:256

1.5B 和 7B 模型:128

  • 學(xué)習(xí)率:
  • 72B 模型:5 × 10^-6
  • 1.5B 和 7B 模型:2 × 10^-5
  • 學(xué)習(xí)率調(diào)度:逐漸衰減到 7 × 10^-7

3. 獎(jiǎng)勵(lì)模型訓(xùn)練階段 (Reward Model, RM)

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

  • 數(shù)據(jù)集:361K 英文和 257K 中文數(shù)學(xué)問題,每個(gè)問題配對(duì) 6 個(gè)來自 Qwen2.5-Math 的樣本回答。
  • 標(biāo)注策略:

根據(jù)回答的最終答案正確性確定正負(fù)樣本。

正確答案標(biāo)記為正樣本,錯(cuò)誤答案標(biāo)記為負(fù)樣本。

過濾掉所有回答全對(duì)或全錯(cuò)的情況。

通過使用不同規(guī)模和版本的模型生成回答,確保數(shù)據(jù)集難度分布均衡和正負(fù)樣本比例平衡。

訓(xùn)練策略

  • 初始化:從監(jiān)督微調(diào)模型初始化。
  • 模型架構(gòu)調(diào)整:

將語(yǔ)言建模頭替換為標(biāo)量值頭(兩個(gè)線性層)。

  • 損失函數(shù):獎(jiǎng)勵(lì)模型使用列表式排序損失:

給你數(shù)據(jù)和算力,你也成不了 OpenAI -AI.x社區(qū)

其中, 表示獎(jiǎng)勵(lì)模型的輸出, 是問題, 是對(duì)應(yīng)的回答。

4. 強(qiáng)化學(xué)習(xí)階段 (Reinforcement Learning, RL)

訓(xùn)練策略

采用群組相對(duì)策略優(yōu)化 (Group Relative Policy Optimization, GRPO)

目標(biāo)函數(shù)

群組相對(duì)策略優(yōu)化 (Group Relative Policy Optimization, GRPO) 的目標(biāo)函數(shù):

給你數(shù)據(jù)和算力,你也成不了 OpenAI -AI.x社區(qū)

獎(jiǎng)勵(lì)塑型

結(jié)合規(guī)則驗(yàn)證器和獎(jiǎng)勵(lì)模型的獎(jiǎng)勵(lì):

其中, 是獎(jiǎng)勵(lì)模型的輸出, 是規(guī)則驗(yàn)證器的稀疏獎(jiǎng)勵(lì), 設(shè)置為 0.5。

這樣的格式化使公式更加清晰,并且符合 LaTeX 語(yǔ)法,可以在支持 LaTeX 渲染的 Markdown 環(huán)境中正確顯示。

實(shí)現(xiàn)細(xì)節(jié)

  • 基于開源 RLHF 框架 ChatLearn
  • 查詢選擇:從獎(jiǎng)勵(lì)模型的訓(xùn)練集中選擇,保留 2 到 5 個(gè)正確回答的查詢
  • 采樣策略:每個(gè)查詢采樣 32 個(gè)回應(yīng)
  • 訓(xùn)練設(shè)置:
  • 7B 模型:每個(gè) episode 4,096 個(gè)樣本,學(xué)習(xí)率 1 × 10^-5
  • 72B 模型:每個(gè) episode 2,048 個(gè)樣本,學(xué)習(xí)率 5 × 10^-6
  • 全局 batch size:512
  • KL 系數(shù):1 × 10^-3

Qwen2.5-Coder

Technical Report Qwen2.5-Coder Technical Report

1. 預(yù)訓(xùn)練階段

Qwen2.5-Coder的預(yù)訓(xùn)練分為兩個(gè)主要階段:文件級(jí)預(yù)訓(xùn)練和倉(cāng)庫(kù)級(jí)預(yù)訓(xùn)練。

1.1 數(shù)據(jù)處理

1.1.1 數(shù)據(jù)來源
  • 源代碼數(shù)據(jù):來自GitHub的92種編程語(yǔ)言的公共倉(cāng)庫(kù),包括Pull Requests、Commits、Jupyter Notebooks和Kaggle數(shù)據(jù)集。
  • 文本-代碼對(duì)應(yīng)數(shù)據(jù):從Common Crawl中提取,包括代碼相關(guān)的文檔、教程、博客等。
  • 合成數(shù)據(jù):使用CodeQwen1.5生成的大規(guī)模合成數(shù)據(jù)集。
  • 數(shù)學(xué)數(shù)據(jù):來自Qwen2.5-Math的預(yù)訓(xùn)練語(yǔ)料庫(kù)。
  • 文本數(shù)據(jù):來自Qwen2.5模型的高質(zhì)量通用自然語(yǔ)言數(shù)據(jù)。
1.1.2 數(shù)據(jù)清洗
  • 對(duì)GitHub數(shù)據(jù)應(yīng)用了一系列基于規(guī)則的過濾方法。
  • 對(duì)文本-代碼混合數(shù)據(jù)集采用了粗到細(xì)的層級(jí)過濾方法,使用較小的模型(如fastText)構(gòu)建清洗管道。
  • 對(duì)合成數(shù)據(jù)引入執(zhí)行器進(jìn)行驗(yàn)證,確保只保留可執(zhí)行的代碼。
1.1.3 數(shù)據(jù)混合比例

經(jīng)過實(shí)驗(yàn),最終選擇了70%代碼、20%文本和10%數(shù)學(xué)的數(shù)據(jù)混合比例。最終的預(yù)訓(xùn)練數(shù)據(jù)集包含5.2萬億個(gè)token。

1.2 文件級(jí)預(yù)訓(xùn)練

1.2.1 訓(xùn)練目標(biāo)
  • 下一個(gè)token預(yù)測(cè)
  • 填空任務(wù)(Fill-in-the-Middle, FIM)
1.2.2 FIM格式

<|fim_prefix|>{code_pre}<|fim_suffix|>{code_suf}<|fim_middle|>{code_mid}<|endoftext|>
1.2.3 訓(xùn)練參數(shù)
  • 最大訓(xùn)練序列長(zhǎng)度:8,192 tokens
  • 位置編碼:RoPE (Rotary Position Embedding)

1.3 倉(cāng)庫(kù)級(jí)預(yù)訓(xùn)練

1.3.1 目的

增強(qiáng)模型的長(zhǎng)文本理解能力。

1.3.2 訓(xùn)練參數(shù)
  • 訓(xùn)練序列長(zhǎng)度:從8,192 tokens擴(kuò)展到32,768 tokens
  • RoPE基頻:從10,000調(diào)整為1,000,000
  • 使用YARN機(jī)制,使模型能夠處理長(zhǎng)達(dá)131,072 (132K) tokens的序列
1.3.3 數(shù)據(jù)

使用了約300B的高質(zhì)量長(zhǎng)代碼數(shù)據(jù)。

1.3.4 FIM格式

<|repo_name|>{repo_name}
<|file_sep|>{file_path1}
{file_content1}
<|file_sep|>{file_path2}
{file_content2}
<|file_sep|>{file_path3}
<|fim_prefix|>{code_pre}<|fim_suffix|>{code_suf}<|fim_middle|>{code_fim}<|endoftext|>

2. 指令微調(diào)階段

2.1 數(shù)據(jù)準(zhǔn)備

2.1.1 多語(yǔ)言編程代碼識(shí)別
  • 微調(diào)CodeBERT模型以識(shí)別近100種編程語(yǔ)言。
  • 保留主流編程語(yǔ)言的指令數(shù)據(jù),隨機(jī)丟棄長(zhǎng)尾語(yǔ)言的部分指令數(shù)據(jù)。
  • 移除大部分不包含代碼片段的樣本。
2.1.2 GitHub指令合成
  • 使用LLM從代碼片段生成指令。
  • 使用代碼LLM生成響應(yīng)。
  • 使用LLM評(píng)分器過濾低質(zhì)量樣本。
2.1.3 多語(yǔ)言代碼指令數(shù)據(jù)

實(shí)施了一個(gè)多語(yǔ)言多代理協(xié)作框架:

  • 創(chuàng)建特定語(yǔ)言的智能代理。
  • 實(shí)施協(xié)作討論協(xié)議。
  • 使用自適應(yīng)內(nèi)存系統(tǒng)。
  • 進(jìn)行跨語(yǔ)言討論。
  • 開發(fā)協(xié)同評(píng)估指標(biāo)。
  • 實(shí)施自適應(yīng)指令生成。
2.1.4 基于清單的指令數(shù)據(jù)評(píng)分

評(píng)估以下方面:

  1. 問題與答案的一致性
  2. 問題與答案的相關(guān)性
  3. 問題與答案的難度
  4. 代碼是否存在
  5. 代碼正確性
  6. 代碼清晰度
  7. 代碼注釋
  8. 易學(xué)性

最終得分計(jì)算:

其中是一系列預(yù)定義的權(quán)重。

2.1.5 多語(yǔ)言沙箱進(jìn)行代碼驗(yàn)證

包括以下模塊:

  1. 語(yǔ)言支持模塊
  2. 樣本代碼庫(kù)
  3. 單元測(cè)試生成器
  4. 代碼執(zhí)行引擎
  5. 結(jié)果分析器

2.2 訓(xùn)練策略

2.2.1 粗到細(xì)微調(diào)
  • 首先使用數(shù)千萬低質(zhì)量但多樣化的指令樣本進(jìn)行微調(diào)。
  • 然后使用數(shù)百萬高質(zhì)量指令樣本進(jìn)行監(jiān)督微調(diào)。
  • 對(duì)于同一查詢,使用LLM生成多個(gè)候選答案,然后用LLM評(píng)分選擇最佳答案進(jìn)行監(jiān)督微調(diào)。
2.2.2 混合調(diào)優(yōu)
  • 構(gòu)造帶有FIM格式的指令對(duì),以保持模型的長(zhǎng)文本理解能力。
  • 使用tree-sitter-languages解析代碼片段,提取基本邏輯塊作為中間代碼進(jìn)行填充。
  • 優(yōu)化指令模型時(shí),主要使用標(biāo)準(zhǔn)SFT數(shù)據(jù),輔以少量FIM指令樣本。

3. 數(shù)據(jù)去污染

  • 使用10-gram重疊方法進(jìn)行數(shù)據(jù)去污染。
  • 移除了關(guān)鍵數(shù)據(jù)集,如HumanEval、MBPP、GSM8K和MATH。
  • 移除了與測(cè)試數(shù)據(jù)有10-gram字符串級(jí)別重疊的任何訓(xùn)練數(shù)據(jù)。

4. 模型架構(gòu)

Qwen2.5-Coder有兩種規(guī)模的模型:1.5B和7B參數(shù)。它們的主要特征如下:

配置

Qwen2.5-Coder 1.5B

Qwen2.5-Coder 7B

隱藏層大小

1,536

3,584

層數(shù)

28

28

查詢頭數(shù)

12

28

鍵值頭數(shù)

2

4

頭大小

128

128

中間層大小

8,960

18,944

詞嵌入綁定

True

False

詞匯表大小

151,646

151,646

訓(xùn)練token數(shù)

5.5T

5.5T

4.1 特殊token

模型引入了幾個(gè)特殊token來更好地理解代碼:

給你數(shù)據(jù)和算力,你也成不了 OpenAI -AI.x社區(qū)


1. 預(yù)訓(xùn)練階段

1.1 數(shù)據(jù)處理

Qwen2 使用了一個(gè)新的大規(guī)模、高質(zhì)量的多語(yǔ)言數(shù)據(jù)集進(jìn)行預(yù)訓(xùn)練,相比 Qwen 和 Qwen1.5,主要改進(jìn)包括:

  1. 質(zhì)量提升:

使用更復(fù)雜的啟發(fā)式和基于模型的方法進(jìn)行過濾

利用 Qwen 模型篩選低質(zhì)量數(shù)據(jù)和合成高質(zhì)量預(yù)訓(xùn)練數(shù)據(jù)

  1. 數(shù)據(jù)擴(kuò)展:
  • 收集了更大量的高質(zhì)量代碼、數(shù)學(xué)和多語(yǔ)言數(shù)據(jù)
  • 支持約 30 種語(yǔ)言
  1. 分布優(yōu)化:
  • 對(duì)縮小版模型進(jìn)行實(shí)驗(yàn),優(yōu)化不同來源和領(lǐng)域數(shù)據(jù)的混合比例

最終的預(yù)訓(xùn)練數(shù)據(jù)集從 Qwen1.5 的 3 萬億 tokens 擴(kuò)展到了 7 萬億 tokens。

1.2 模型架構(gòu)

Qwen2 采用基于 Transformer 的架構(gòu),主要特點(diǎn)包括:

  1. 使用 Grouped Query Attention (GQA)
  2. 實(shí)現(xiàn) Dual Chunk Attention (DCA)
  3. 采用 YARN 機(jī)制
  4. 使用 SwiGLU 作為激活函數(shù)
  5. 采用 Rotary Positional Embeddings (RoPE)
  6. 使用 QKV bias
  7. 采用 RMSNorm 和 pre-normalization

1.3 訓(xùn)練細(xì)節(jié)

報(bào)告中對(duì)預(yù)訓(xùn)練階段的具體超參數(shù)配置沒有詳細(xì)說明。但提到了以下細(xì)節(jié):

  • 序列長(zhǎng)度:在預(yù)訓(xùn)練的最后階段,將上下文長(zhǎng)度從 4,096 tokens 擴(kuò)展到 32,768 tokens
  • RoPE 基頻:從 10,000 修改為 1,000,000
  • 采用 YARN 機(jī)制和 Dual Chunk Attention 機(jī)制,使模型能夠處理長(zhǎng)達(dá) 131,072 tokens 的序列

2. 后訓(xùn)練階段

2.1 數(shù)據(jù)處理

后訓(xùn)練數(shù)據(jù)包括兩部分:

  1. 示范數(shù)據(jù)
  2. 偏好數(shù)據(jù)

數(shù)據(jù)構(gòu)建過程包括協(xié)作數(shù)據(jù)標(biāo)注和自動(dòng)數(shù)據(jù)合成。

2.2 監(jiān)督微調(diào) (SFT)

  • 數(shù)據(jù)集:超過 500,000 個(gè)示例
  • 訓(xùn)練輪數(shù):2 epochs
  • 序列長(zhǎng)度:32,768 tokens
  • 學(xué)習(xí)率:從 逐漸降低到
  • 權(quán)重衰減:0.1
  • 梯度裁剪:最大值為 1.0

2.3 基于人類反饋的強(qiáng)化學(xué)習(xí) (RLHF)

RLHF 訓(xùn)練包括離線訓(xùn)練和在線訓(xùn)練兩個(gè)階段:

  1. 離線訓(xùn)練:
  • 使用預(yù)編譯的偏好數(shù)據(jù)集 P
  • 采用 Direct Preference Optimization (DPO)
  1. 在線訓(xùn)練:
  • 使用獎(jiǎng)勵(lì)模型進(jìn)行實(shí)時(shí)反饋
  • 每個(gè) episode 中,從當(dāng)前策略模型采樣多個(gè)回復(fù)
  • 使用 DPO 進(jìn)行優(yōu)化

采用 Online Merging Optimizer 來緩解對(duì)齊稅。

3. 模型配置

以 Qwen2-72B 為例的主要配置:

  • Hidden Size: 8,192
  • 層數(shù): 80
  • Query Heads: 64
  • KV Heads: 8
  • Head Size: 128
  • Intermediate Size: 29,568
  • 詞匯表大?。?151,646
  • 預(yù)訓(xùn)練 tokens: 7T

4. 長(zhǎng)上下文處理

為增強(qiáng)長(zhǎng)上下文能力,Qwen2 采取了以下策略:

  1. 在預(yù)訓(xùn)練最后階段將上下文長(zhǎng)度從 4,096 tokens 擴(kuò)展到 32,768 tokens
  2. 引入大量高質(zhì)量的長(zhǎng)文本數(shù)據(jù)
  3. 將 RoPE 的基頻從 10,000 修改為 1,000,000
  4. 采用 YARN 機(jī)制和 Dual Chunk Attention 機(jī)制

這些策略使模型能夠處理長(zhǎng)達(dá) 131,072 tokens 的序列,同時(shí)保持高性能。

5. 詞匯表和分詞器

Qwen2 使用與 Qwen 相同的基于字節(jié)級(jí)字節(jié)對(duì)編碼的分詞器:

  • 詞匯表大?。?51,643 個(gè)常規(guī) token 和 3 個(gè)控制 token
  • 有效嵌入大小略大于詞匯表大?。ǔ鲇诜植际接?xùn)練考慮)

技術(shù)報(bào)告提供了 Qwen2 模型訓(xùn)練的整體框架和一些關(guān)鍵細(xì)節(jié),但對(duì)于預(yù)訓(xùn)練階段的具體超參數(shù)配置并沒有詳細(xì)說明。報(bào)告更多地關(guān)注了模型的架構(gòu)創(chuàng)新、數(shù)據(jù)處理策略、以及后訓(xùn)練階段的具體實(shí)施細(xì)節(jié)。

Qwen

1. 預(yù)訓(xùn)練階段

1.1 數(shù)據(jù)處理

  • Qwen 使用了多樣化的數(shù)據(jù)集,包括公開網(wǎng)頁(yè)文檔、百科全書、書籍、代碼等
  • 數(shù)據(jù)集是多語(yǔ)言的,主要包含英語(yǔ)和中文
  • 對(duì)公開網(wǎng)頁(yè)數(shù)據(jù)進(jìn)行了以下處理:

從 HTML 中提取文本

使用語(yǔ)言識(shí)別工具確定語(yǔ)言

進(jìn)行精確匹配和模糊匹配的去重

使用規(guī)則和機(jī)器學(xué)習(xí)方法過濾低質(zhì)量數(shù)據(jù)

使用多個(gè)模型對(duì)內(nèi)容進(jìn)行評(píng)分,包括語(yǔ)言模型、文本質(zhì)量評(píng)分模型和不當(dāng)內(nèi)容識(shí)別模型

人工抽樣審核確保質(zhì)量

有選擇地上采樣某些來源的數(shù)據(jù)

  • 納入了高質(zhì)量的指令數(shù)據(jù)以提高零樣本和少樣本性能
  • 移除了與測(cè)試集有 13-gram 重疊的指令樣本
  • 最終構(gòu)建了一個(gè)包含多達(dá) 3 萬億 tokens 的數(shù)據(jù)集

1.2 分詞

  • 使用字節(jié)對(duì)編碼(BPE)作為分詞方法
  • 基于開源的 fast BPE tokenizer tiktoken,選擇 cl100k_base 詞表作為起點(diǎn)
  • 增加了常用中文字符和詞,以及其他語(yǔ)言的詞匯
  • 將數(shù)字分割成單個(gè)數(shù)字
  • 最終詞表大小約為 152K

1.3 模型架構(gòu)

Qwen 采用修改版的 Transformer 架構(gòu):

  • 嵌入層和輸出投影層:權(quán)重不共享
  • 位置編碼:使用 RoPE(Rotary Positional Embedding)
  • 偏置:在大多數(shù)層移除偏置,但在注意力的 QKV 層添加偏置以增強(qiáng)外推能力
  • 歸一化:使用 pre-norm 和 RMSNorm 代替?zhèn)鹘y(tǒng)的 layer normalization
  • 激活函數(shù):使用 SwiGLU,將前饋網(wǎng)絡(luò)的維度從 4 倍隱藏層大小減少到 8/3 倍

1.4 訓(xùn)練細(xì)節(jié)

  • 使用自回歸語(yǔ)言建模作為訓(xùn)練目標(biāo)
  • 訓(xùn)練上下文長(zhǎng)度為 2048
  • 使用 Flash Attention 以提高計(jì)算效率和減少內(nèi)存使用
  • 優(yōu)化器:AdamW

β1 = 0.9

β2 = 0.95

? = 10^-8

  • 學(xué)習(xí)率:使用余弦衰減調(diào)度,衰減到峰值學(xué)習(xí)率的 10%
  • 使用 BFloat16 混合精度訓(xùn)練以保證訓(xùn)練穩(wěn)定性

不同規(guī)模模型的具體參數(shù)如下:

參數(shù)數(shù)量

隱藏層大小

注意力頭數(shù)

層數(shù)

學(xué)習(xí)率

批次大小

訓(xùn)練 tokens

1.8B

2048

16

24

3.0e-4

4M

2.2T

7B

4096

32

32

3.0e-4

4M

2.4T

14B

5120

40

40

3.0e-4

4M

3.0T

1.5 上下文長(zhǎng)度擴(kuò)展

為了在推理時(shí)擴(kuò)展模型的上下文長(zhǎng)度,Qwen 采用了以下技術(shù):

  • NTK-aware interpolation:通過調(diào)整 RoPE 的基礎(chǔ)來防止高頻信息丟失
  • Dynamic NTK-aware interpolation:動(dòng)態(tài)地按塊改變尺度,避免性能嚴(yán)重下降
  • LogN-Scaling:根據(jù)上下文長(zhǎng)度與訓(xùn)練長(zhǎng)度的比例重新縮放查詢和鍵的點(diǎn)積
  • Window attention:限制注意力范圍,防止模型關(guān)注過遠(yuǎn)的 tokens

2. 監(jiān)督微調(diào)(SFT)階段

2.1 數(shù)據(jù)處理

  • 注釋了多種風(fēng)格的對(duì)話數(shù)據(jù)
  • 關(guān)注自然語(yǔ)言生成以提高模型的有用性
  • 避免使用可能限制模型能力的提示模板
  • 注釋了與安全相關(guān)的數(shù)據(jù),如暴力、偏見和色情等
  • 使用 ChatML 格式描述元數(shù)據(jù)(如角色)和內(nèi)容

2.2 訓(xùn)練細(xì)節(jié)

  • 訓(xùn)練目標(biāo):下一個(gè) token 預(yù)測(cè)
  • 對(duì)系統(tǒng)和用戶輸入應(yīng)用損失掩碼
  • 優(yōu)化器:AdamW

β1 = 0.9

β2 = 0.95

? = 10^-8

  • 序列長(zhǎng)度:2048
  • 批次大小:128
  • 總訓(xùn)練步數(shù):4000
  • 學(xué)習(xí)率:
  • 在前 1430 步逐漸增加
  • 峰值為 2e-6
  • 權(quán)重衰減:0.1
  • Dropout:0.1
  • 梯度裁剪:1.0

3. 強(qiáng)化學(xué)習(xí)(RLHF)階段

3.1 偏好模型預(yù)訓(xùn)練(PMP)

  • 構(gòu)建了包含約 6600 個(gè)詳細(xì)標(biāo)簽的分類系統(tǒng)
  • 實(shí)現(xiàn)了考慮多樣性和復(fù)雜性的平衡采樣算法
  • 使用不同大小的 Qwen 模型和不同的采樣策略生成多樣化的響應(yīng)
  • 根據(jù)標(biāo)注指南評(píng)估響應(yīng),并根據(jù)分?jǐn)?shù)形成比較對(duì)

3.2 獎(jiǎng)勵(lì)模型訓(xùn)練

  • 使用相同大小的預(yù)訓(xùn)練語(yǔ)言模型 Qwen 初始化
  • 在原始 Qwen 模型基礎(chǔ)上添加了一個(gè)池化層,用于基于特定結(jié)束 token 提取句子獎(jiǎng)勵(lì)
  • 學(xué)習(xí)率:固定為 3e-6
  • 批次大?。?4
  • 序列長(zhǎng)度:2048
  • 訓(xùn)練輪數(shù):1 輪

3.3 PPO 訓(xùn)練

  • 使用四個(gè)模型:策略模型、價(jià)值模型、參考模型和獎(jiǎng)勵(lì)模型
  • 在開始 PPO 之前,先更新價(jià)值模型 50 步
  • 對(duì)每個(gè)查詢同時(shí)采樣兩個(gè)響應(yīng)
  • KL 散度系數(shù):0.04
  • 基于運(yùn)行平均值歸一化獎(jiǎng)勵(lì)
  • 策略模型學(xué)習(xí)率:1e-6
  • 價(jià)值模型學(xué)習(xí)率:5e-6
  • 價(jià)值損失裁剪:0.15
  • 推理時(shí)策略 top-p:0.9
  • 使用預(yù)訓(xùn)練梯度緩解對(duì)齊稅

4. 代碼專用模型訓(xùn)練(CODE-QWEN)

4.1 代碼預(yù)訓(xùn)練

  • 基于 QWEN 基礎(chǔ)模型繼續(xù)預(yù)訓(xùn)練
  • 在約 900 億 tokens 的代碼數(shù)據(jù)上訓(xùn)練
  • 上下文長(zhǎng)度擴(kuò)展到 8192
  • 優(yōu)化器:AdamW

β1 = 0.9

β2 = 0.95

? = 10^-8

  • 學(xué)習(xí)率:
  • CODE-QWEN-14B: 6.0e-5
  • CODE-QWEN-7B: 3.0e-5
  • 3% 預(yù)熱迭代,無學(xué)習(xí)率衰減

4.2 代碼監(jiān)督微調(diào)

  • 采用多階段 SFT 策略
  • 優(yōu)化器:AdamW

β1 = 0.9

β2 = 0.95

? = 10^-8

  • 學(xué)習(xí)率:
  • 14B 模型: 2.0e-6
  • 7B 模型: 1.0e-5
  • 使用余弦學(xué)習(xí)率調(diào)度(3% 預(yù)熱步數(shù)),然后保持恒定

5. 數(shù)學(xué)專用模型訓(xùn)練(MATH-QWEN-CHAT)

  • 在增強(qiáng)的數(shù)學(xué)指令數(shù)據(jù)集上進(jìn)行數(shù)學(xué) SFT
  • 序列長(zhǎng)度:1024
  • 掩蔽系統(tǒng)和用戶輸入以加速收斂
  • 優(yōu)化器:AdamW

與 SFT 相同的超參數(shù)

  • 峰值學(xué)習(xí)率:2e-5
  • 訓(xùn)練步數(shù):50,000

Baichuan2

1. 預(yù)訓(xùn)練階段

1.1 數(shù)據(jù)處理

  • 數(shù)據(jù)來源:網(wǎng)頁(yè)、書籍、研究論文、代碼庫(kù)等多樣化來源
  • 數(shù)據(jù)量:總計(jì)2.6萬億tokens
  • 數(shù)據(jù)處理:

使用大規(guī)模去重和聚類系統(tǒng),支持LSH和密集嵌入特征

對(duì)文檔、段落和句子進(jìn)行去重和評(píng)分

評(píng)分用于預(yù)訓(xùn)練中的數(shù)據(jù)采樣

1.2 模型架構(gòu)

  • 基于Transformer架構(gòu),但做了一些修改:

7B模型使用RoPE位置編碼,13B模型使用ALiBi位置編碼

使用SwiGLU激活函數(shù)

使用xFormers實(shí)現(xiàn)的內(nèi)存高效注意力機(jī)制

輸入前使用Layer Normalization

使用RMSNorm實(shí)現(xiàn)

1.3 訓(xùn)練超參數(shù)

  • 優(yōu)化器:AdamW

β1 = 0.9, β2 = 0.95

權(quán)重衰減:0.1

梯度裁剪:0.5

  • 學(xué)習(xí)率:
  • 7B模型:2e-4
  • 13B模型:1.5e-4
  • 2000步線性預(yù)熱,然后余弦衰減
  • 批量大?。何疵鞔_說明
  • 訓(xùn)練步數(shù):未明確說明,但提到訓(xùn)練了2.6萬億tokens

1.4 其他訓(xùn)練細(xì)節(jié)

  • 使用BFloat16混合精度訓(xùn)練
  • 使用NormHead穩(wěn)定訓(xùn)練:歸一化輸出嵌入
  • 使用max-z loss限制logits大?。?/li>

L_max-z = 2e-4 * z^2

其中z是最大logit值

2. 對(duì)齊階段

2.1 監(jiān)督微調(diào)(SFT)

  • 數(shù)據(jù):超過10萬個(gè)人類標(biāo)注的提示樣本
  • 標(biāo)注原則:類似Claude的有幫助性和無害性原則
  • 質(zhì)量控制:使用交叉驗(yàn)證

2.2 強(qiáng)化學(xué)習(xí)(RLHF)

2.2.1 獎(jiǎng)勵(lì)模型訓(xùn)練
  • 數(shù)據(jù):按6個(gè)主類別、30個(gè)次級(jí)類別和200多個(gè)三級(jí)類別對(duì)提示進(jìn)行分類
  • 損失函數(shù):與InstructGPT相同
  • 評(píng)估:不同響應(yīng)分?jǐn)?shù)差異越大,獎(jiǎng)勵(lì)模型區(qū)分準(zhǔn)確率越高
2.2.2 PPO訓(xùn)練
  • 使用4個(gè)模型:
  • Actor模型:生成響應(yīng)
  • Reference模型:計(jì)算KL懲罰(參數(shù)固定)
  • Reward模型:提供整體獎(jiǎng)勵(lì)(參數(shù)固定)
  • Critic模型:學(xué)習(xí)每個(gè)token的價(jià)值
  • 訓(xùn)練細(xì)節(jié):
  • Critic模型預(yù)熱20步
  • 梯度裁剪:0.5
  • 學(xué)習(xí)率:5e-6(恒定)
  • PPO clip閾值ε = 0.1
  • KL懲罰系數(shù)β = 0.2,衰減到0.005
  • 訓(xùn)練350輪迭代

3. 安全性增強(qiáng)

  • 預(yù)訓(xùn)練階段:

數(shù)據(jù)過濾去除有害內(nèi)容

增加正面價(jià)值領(lǐng)域數(shù)據(jù)的采樣概率

  • 對(duì)齊階段:
  • 構(gòu)建紅隊(duì)測(cè)試程序
  • 使用多值監(jiān)督采樣方法生成不同安全級(jí)別的響應(yīng)
  • 使用DPO方法高效利用有限標(biāo)注數(shù)據(jù)
  • 使用整合Helpful和Harmless目標(biāo)的Reward Model進(jìn)行PPO訓(xùn)練

Baichuan 2模型的訓(xùn)練過程涵蓋了預(yù)訓(xùn)練、監(jiān)督微調(diào)和強(qiáng)化學(xué)習(xí)等多個(gè)階段,每個(gè)階段都有其特定的數(shù)據(jù)處理、模型架構(gòu)和訓(xùn)練策略。論文還特別強(qiáng)調(diào)了在整個(gè)訓(xùn)練過程中對(duì)模型安全性的關(guān)注和改進(jìn)。

 

本文轉(zhuǎn)載自 ??芝士AI吃魚??,作者: 芝士AI吃魚

標(biāo)簽
已于2024-10-25 13:26:03修改
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦