大模型 | Stable LM 2 1.6B 技术报告个人摘要

AI人工智能初学者

共 4851字,需浏览 10分钟

 · 2024-04-11

Stability.AI 二月底发的技术报告,干货蛮多的,随便记录一些我关注的信息。

技术报告地址:https://arxiv.org/pdf/2402.17834.pdf

Pretraining

  • 模型:1.6B
  • 数据量:2T
    • 全部来自于商业可用的开源数据集,以确保可复现性
    • 除了英语以外,包含德语、西班牙语、法语、意大利语、荷兰语、葡萄牙语
  • Tokenizer:Arcade100k
  • 词表大小:100289(实际训练时 padding 到 64 的倍数,100352,来获得更好的硬件加速)
  • 上下文长度:4K
  • 损失函数:
    • PaLM 论文中除了标准交叉熵以外,额外添加了一个辅助正则化项 来鼓励 趋近于 0,PaLM 和 DeepMind 的论文均表示该方法有助于提升训练的稳定性
    • 然而 StableLM2 尝试后发现加入 z_loss 虽然对性能不会有损害,但对训练稳定性也没什么帮助,所以最终版本的模型训练时没有加这个
  • 位置编码:采用了 RoPE,但是只对前 25% 的 embedding dimensions 应用,以获得更好的性能与计算效率 trade-off(该 trick 来自 GPT-NeoX-20B 论文),毕竟是轻量的 1.6B 模型,trade-off 比追上限重要

  • 数据集采样比例细节:

  • 提了一个新的学习率调度策略,不过感觉看看就好了:

Finetuning & Alignment

  • 进行了三个阶段的训练对齐:
    1. SFT
    2. DPO
    3. Self-knowledge learning
  • 微调对齐阶段用到的数据集:

SFT

  • SFT 阶段数据集:
    • UnltraChat
    • WizardLM
    • SlimOrca
    • ShareGPT
    • Capybara
    • Deita
    • MetaMathQA
  • SFT 训练集数据量:0.8M 条样本
    • 删除了 SFT 数据集中大于 8 轮的训练样本(这里没给出具体的解释,推测是为了不超过 4K 上下文)
    • 训练了 3 个 epoch

DPO

  • DPO 阶段数据集:
  • UltraFeedback
  • Intel Orca Pairs
  • 过滤掉平手、重复的,以及评分低于 8 分(满分 10 分)的数据
  • 基本上跟随 Zephyr 做法

Self-knowledge learning

  • DPO 之后的模型欠缺一些重要的知识,比如:
    • 死记硬背型:谁创造了它
    • 硬性要求型:对大语言模型的限制
  • 采用 RLCD 方法生成数据集 D_c
    • 用 base 模型随机生成 10k 条(去重)数据作为第一条信息
    • 把这些信息作为初始对话送给对话模型,生成对话回复
    • 把需要学习的 self-knowledge 以 few-shot 的形式加到 system prompt 里,这样一来对话模型生成的回复就可以作为正样本
    • 用不带 few-shot 生成的 response 则作为负样本(在 RLCD 原文中,则是人工构造了一系列的负面 prompt,来得到更加负面的 response)
  • 补充:标准 RLCD 里的正负 prompt 长这样:
  • 采用 C-RLFT 方法基于 D_c 进行训练
    • 该方法是一种不依赖偏好标注的离线强化学习微调方法,核心思想是通过对已有的 SFT 数据进行分类(比如按来源是 GPT-3.5 和 GPT-4 生成,分为低质量和高质量两类),对每一类采用不同的粗粒度评分(人工设定权重),然后加上 KL 散度约束补充监督信号,具体细节可以自行查阅论文
    • 正样本训练格式跟 SFT 保持一致(这一步跟 Context Distillation 做法类似),但是有加 KL 散度
    • 负样本的格式中使用一个特殊的 negative token 来标明这是负样本,让模型学会区分正负样本,以及学会如何区别对待
  • C-RLFT 训练公式如下,其中 是基于 D_c 训练出来的参考模型:
  • 训练 6 epoch

  • 三个阶段的训练流程我画了张图帮助理解:

参考文献

  • PaLM: https://arxiv.org/pdf/2204.02311.pdf
  • DeepMind 的论文: https://arxiv.org/pdf/2309.14322.pdf
  • GPT-NeoX-20B: https://arxiv.org/pdf/2204.06745.pdf
  • RLCD: https://arxiv.org/pdf/2307.12950.pdf
  • C-RLFT: https://arxiv.org/pdf/2309.11235.pdf


浏览 6
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报