论文笔记--Baichuan 2: Open Large-scale Language Models

论文笔记--Baichuan 2: Open Large-scale Language Models

  • 1. 文章简介
  • 2. 文章概括
  • 3 文章重点技术
    • 3.1 预训练
      • 3.1.1 预训练数据
      • 3.1.2 模型架构
    • 3.2 对齐
      • 3.2.1 SFT
      • 3.2.2 Reward Model(RM)
      • 3.2.3 PPO
    • 3.3 安全性
  • 4. 文章亮点
  • 5. 原文传送门

1. 文章简介

  • 标题:Baichuan 2: Open Large-scale Language Models
  • 作者:Aiyuan Yang et al.
  • 日期:2023
  • 期刊:arxiv preprint

2. 文章概括

   文章提出了百川2开源大模型,在MMLU、GSM8K等benchmarks上超过了现有的开源模型表现,特别地,百川2在医疗、法律等垂域上表现亮眼。百川2模型包括Baichuan 2-7B 和Baichuan 2-13B 和两个不同大小模型,可以供不同需求、不同预算的研究使用,两个模型的区别如下表所示。
百川1VS2

3 文章重点技术

3.1 预训练

3.1.1 预训练数据

  百川2尝试去提高数据的规模和代表性,为此,文章从网页、数据、研究论文、代码等不同来源构建尽可能丰富的预训练数据。下图为百川2的预训练数据分布情况
数据分布

  百川2希望模型可以接收尽可能高质量的数据集,为此,文章构建了高效的聚类和去重系统。如下图所示,百川2的数据处理程序分为:

  • Exact deduplication:完全相同的重复数据剔除
  • Heuristic approach:一些启发式的算法(文章并没有提到具体方法)
  • Sent-wise quality filter:句子级别的质量过滤(maybe 过滤一些广告、tag之类的,然后再对过滤后的句子、段落去重一遍)
  • Sent-wise, paragraph-wise deduplication:句子、段落级别的去重
  • Document deduplication:文档级别的去重
    数据过滤

3.1.2 模型架构

  • 分词器:为了构建一个大小合适且压缩率高的分词器,文章将词表大小从百川1的64000扩充到125695。分词方法为BPE。特别地,为了更好地处理数字,百川2将数字分隔为单个的digit;为了更高地处理代码,百川2在分词器中增加了空格tokens(单个空格、多个空格分别为一个token?)
  • 位置编码:百川2选择采用AliBi编码,该方法相比于RoPE编码方法表现更好。
  • 激活函数:百川2使用SwiGLU作为激活函数。SwiGLU是当下一些LLMs(PALM,LLaMA等)倾向选择的一种激活函数。由于SwiGLU相当于两个线性变换(其中一个加了Swi函数)的乘积,前馈层SwiFFN包含了三个参数矩阵 ( S w i s h ( x W 1 ) × x V ) W 2 (Swish(xW_1)\times xV) W_2 (Swish(xW1)×xV)W2,为了保持相同的计算量,我们将隐藏层的尺寸从4倍隐藏层大小缩减到8/3倍隐藏层大小(缩减到原来的2/3,这样三个参数的计算量为2/3*3=2,基本和原来2个矩阵的计算量持平),再近似到128的倍数。
  • Optimization:文章采用AdamW为优化器
  • NormHead:文章做了数值实验发现通过使用NormHead,即正则output层(heads),训练动态过程可以更加稳定,此外文章发现语义信息主要由cosine相似度 < a , b > ∥ a ∥ 2 ∥ b ∥ 2 \frac {<a,b>}{\Vert a\Vert_2 \Vert b\Vert_2} a2b2<a,b>进行度量,但线性层是通过计算点积 < a , b > <a,b> <a,b>进行计算的,两者之间相差了 a , b a, b a,b的L2范数,从而通过对输出层进行L2正则,我们可以有效地减轻L2距离对语义信息的影响。
  • Max-z loss:文章发现训练过程中,LLMs的logits可能变得非常大,而softmax很容易被这些非常大的logits所影响。为此,一些研究选择采用惩罚项来对太大的logits进行惩罚,比如repetition penalty,但这样可能会扭曲最后生成的概率。文章类似PALM,增加一项max-z loss来对logits进行正则: L m a x − z = 2 e − 4 ∗ z 2 \mathcal{L}_{max-z} = 2e^{-4} * z^2 Lmaxz=2e4z2,其中 z z z表示logits的最大值,即logits最大值越大,损失 L = L 0 + L m a x − z \mathcal{L} = \mathcal{L_0} + \mathcal{L}_{max-z} L=L0+Lmaxz越大,从而起到对太大的logits的惩罚作用
  • Scaling Laws:当数据规模、模型大小或者两者增加时,模型的error会降低,这就是大名鼎鼎的Scaling law。文章通过训练从10M到3B的不同代奥的模型,得到了拟合比较好的Scaling Law曲线,且该曲线可以比较精准地预测参数量为7B/13B的error:
    scaling law

3.2 对齐

3.2.1 SFT

  在SFT阶段,百川2请人类标注员对不同来源的prompts进行标注,每个prompt 被标记为是否有帮助、是否无害,标注原则和Claude类似。文章收集了100k个SFT数据样本,并将这些样本在base model上进行训练,然后通过RLHF方法进一步提升结果:
RLHF

3.2.2 Reward Model(RM)

  文章对所有的prompts构建了三层的分类系统:6个主要的类别,第二层为30个二级类别,第三层为200个三级类别。我们希望reward model训练的prompts尽可能覆盖每个类别,且每个类别的prompts尽可能多样。
  给定prompt,首先通过百川2不同size和不同阶段的模型产生尽可能不同的回答。这些回答被打分,然后用于reward model的训练。

3.2.3 PPO

  得到RM之后,我们采用PPO策略训练语言模型,文章采用4个模型:actor model)用于生成不同的回答,reference model(用于计算KL惩罚),reward model(提供reward),critic model(学习每个token的value)
整个RLHF的过程如下图:

3.3 安全性

  随着LLMs的发展,大模型的安全性问题越来越受到学术界和工业界的重视。为了提高百川2的安全性,文章在预训练阶段设计了一系列规则和模型确预训练数据的安全,此外,文章精心选择了中英双语攻击7百万高质量网页,在预训练数据上提升了这些网页的采样概率。
  在对齐阶段,文章设计了6种不同形式的攻击和100+安全分类,来自传统物联网安全的专家组生成200K的攻击attacks,然后通过一种监督采样方法,我们使用这些数据生成不同安全level的回答。在RL最优化结算,我们通过DPO方法提升具体问题上的表现,此外RM模型也会将helpful和harmless目标结合考虑来增强模型的安全性和帮助性。

4. 文章亮点

  文章提出了百川2-7B/13B开源大模型,模型在多个benchmarks上表现突出,在大部分测试的中文benchmarks上达到SOTA表现,且在医疗、法律等广泛应用的垂域上有显著的提升。

5. 原文传送门

Baichuan 2: Open Large-scale Language Models

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/135088.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IP-guard Webserver view 远程命令执行漏洞【2023最新漏洞】

IP-guard Webserver view 远程命令执行漏洞【2023最新漏洞】 一、漏洞描述二、漏洞影响三、漏洞危害四、FOFA语句五、漏洞复现1、手动复现yaml pocburp发包 2、自动化复现小龙POC检测工具下载地址 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传…

【小沐学写作】PPT、PDF文件添加水印(Python)

文章目录 1、简介2、ppt添加水印2.1 PowerPoint幻灯片母版2.2 iSlide插件&#xff08;收费&#xff09;2.2.1 iSlide简介2.2.2 iSlide定价2.2.3 iSlide水印 2.3 Python代码2.3.1 Aspose.Slides for Python&#xff08;收费&#xff09; 3、pdf添加水印3.1 Python代码3.1.1 PyPD…

头歌答案--数据持久化(非数据库)

目录 ​编辑 数据持久化&#xff08;非数据库&#xff09; 第1关&#xff1a;数据持久化&#xff08;非数据库&#xff09; 任务描述 多线程、多进程爬虫 第1关&#xff1a;多线程、多进程爬虫 任务描述 Scrapy爬虫基础 任务描述 MySQL数据库编程 第1关&#xff1a;…

【视觉SLAM十四讲学习笔记】第二讲——初识SLAM

专栏系列文章如下&#xff1a; 【视觉SLAM十四讲学习笔记】第一讲 一个机器人&#xff0c;如果想要探索某一块区域&#xff0c;它至少需要知道两件事&#xff1a; 我在什么地方——定位周围环境是什么样——建图 一方面需要明白自身的状态&#xff08;即位置&#xff09;&#…

八种架构设计模式优缺点

目录 1、软件架构 2、架构设计模式 2.1、单库单应用模式 2.2、内容分发模式 2.3、查询分离模式 2.4 微服务模式 2.5 多级缓存模式 1、软件架构 软件架构是指对软件系统整个结构和组成部分之间的关系进行抽象和定义的过程&#xff0c;旨在解决系统设计和实现过程中的复杂…

2023年【汽车驾驶员(高级)】找解析及汽车驾驶员(高级)复审考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 汽车驾驶员&#xff08;高级&#xff09;找解析是安全生产模拟考试一点通总题库中生成的一套汽车驾驶员&#xff08;高级&#xff09;复审考试&#xff0c;安全生产模拟考试一点通上汽车驾驶员&#xff08;高级&#…

作业类型7333RG没有为成本中心7333+7000501在年度2023

创建 作业类型KP26 更改成本中心为生产部。 查看作业类型KL02, 可以看到这个有效期已超期&#xff0c;重新创建有效期KL01 但是创建成本要素时报错&#xff0c; 用KA06创建成本要素 返回KL01更正成本要素 这个有效期要注意不要重叠&#xff0c;否则无法创建新的有效期

【博士每天一篇文献-模型】A mechanistic model of connector hubs, modularity and cognition

阅读时间&#xff1a;2023-11-10 1 介绍 年份&#xff1a;2018 作者&#xff1a;Maxwell A. Bertolero, B. T. Thomas Yeo 期刊&#xff1a; nature human behaviour 引用量&#xff1a;180 2 创新点 作者提出了一个机制模型&#xff0c;解释了连接中枢的功能以及其对认知表…

Linux内核有什么之内存管理子系统有什么第七回 —— 小内存分配(5)

接前一篇文章&#xff1a;Linux内核有什么之内存管理子系统有什么第六回 —— 小内存分配&#xff08;4&#xff09; 本文内容参考&#xff1a; linux进程虚拟地址空间 《趣谈Linux操作系统 核心原理篇&#xff1a;第四部分 内存管理—— 刘超》 4.6 深入理解 Linux 虚拟内存…

手把手带你创建一个自己的GPTs

大家好&#xff0c;我是五竹。 最近GPT又进行了大升级&#xff0c;这一下又甩了国内AI几条街&#xff0c;具体更新了哪些内容之前的一篇文章中其实已经说过了&#xff1a;ChatGPT 王炸升级&#xff01;更强版 GPT-4 上线&#xff01; 其中最重要的一点就是支持自定义GPT&…

【博士每天一篇文献-算法】A pseudo-inverse decomposition-based self-organizing modular echo

阅读时间&#xff1a;2023-11-6 1 介绍 年份&#xff1a;2022 作者&#xff1a;王雷&#xff0c;北京信息科技大学自动化学院 期刊&#xff1a; Applied Soft Computing 引用量&#xff1a;12 提出了一种基于伪逆分解的自组织模块化回声状态&#xff08;PDSM-ESN&#xff09…

代码随想录算法训练营第四十九天丨 动态规划part12

309.最佳买卖股票时机含冷冻期 思路 相对于动态规划&#xff1a;122.买卖股票的最佳时机II (opens new window)&#xff0c;本题加上了一个冷冻期 在动态规划&#xff1a;122.买卖股票的最佳时机II (opens new window)中有两个状态&#xff0c;持有股票后的最多现金&#xf…

一文搞懂设计模式之单例模式

大家好&#xff0c;我是晴天&#xff0c;本周我们一起来学习单例模式。本文将介绍单例模式的基本属性&#xff0c;两种构造单例的方法&#xff08;饿汉模式和懒汉模式&#xff09;以及golang自带的sync.Once()方法。 什么是单例模式 GoF对单例模式的定义是&#xff1a;保证一个…

【Linux】WSL安装Kali及基本操作

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍WSL安装Kali及基本操作。 学其所用&#xff0c;用其所学。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c;下次更新不迷路…

<C++> stack queue模拟实现

目录 前言 一、stack的使用 1. 接口说明 2. 例题 二、模拟实现stack 三、queue的使用 四、模拟实现queue 五、deque 总结 前言 LIFO stack 1. 栈是一种容器适配器&#xff0c;专门设计用于在后进先出上下文&#xff08;后进先出&#xff09;中运行&#xff0c;其中元素仅从容器…

Linux之基本指令操作

1、whoami whoami&#xff1a;查看当前账号是谁 2、who who&#xff1a;查看当前我的系统当中有哪些用户&#xff0c;当前有哪些人登录了我的机器 3、 pwd pwd&#xff1a;查看我当前所处的目录&#xff0c;就好比Windows下的路径 4、ls ls&#xff1a;查看当前目录下的文件信…

算法导论6:摊还分析,显式与隐式

P258 摊还分析概念 聚合分析&#xff0c;利用它&#xff0c;我们证明对于n&#xff0c;一个n个操作的序列最坏情况下的花费的总时间为T(n)&#xff0c;因此&#xff0c;在最坏情况下&#xff0c;每个操作的平均代价&#xff08;摊还代价&#xff09;为T(n)/n 举了例子来形容这…

头歌答案Python——JSON基础

目录 ​编辑 Python——JSON基础 第1关&#xff1a;JSON篇&#xff1a;JSON基础知识 任务描述 第2关&#xff1a;JSON篇&#xff1a;使用json库 任务描述 Python——XPath基础 第1关&#xff1a;XPath 路径表达式 任务描述 第2关&#xff1a;XPath 轴定位 任务描述…

SOME/IP 协议介绍(四)RPC协议规范

RPC协议规范 本章描述了SOME/IP的RPC协议。 传输协议绑定 为了传输不同传输协议的SOME/IP消息&#xff0c;可以使用多种传输协议。SOME/IP目前支持UDP和TCP。它们的绑定在以下章节中进行了解释&#xff0c;而第[SIP_RPC_450页&#xff0c;第36页]节讨论了选择哪种传输协议。…

[C国演义] 第十八章

第十八章 最长斐波那契子序列的长度最长等差数列等差序列划分II - 子序列 最长斐波那契子序列的长度 力扣链接 子序列 ⇒ dp[i] — — 以 arr[i] 结尾的所有子序列中, 斐波那契子序列的最长长度子序列 ⇒ 状态转移方程 — — 根据最后一个位置的组成来划分 初始化 — — 根…