Baichuan2 技术报告笔记

文章目录

    • 预训练
      • 预训练数据
      • 模型架构
        • Tokenizer
        • Positional Embeddings
        • Acitivations and Normalizations
        • Optimizations
    • 对齐
      • Supervised Fine-Tuning
      • RLHF
    • 安全性
      • 预训练阶段
      • 对齐阶段
    • 参考资料

对Baichuan2技术报告阅读后的笔记

Baichuan2 与其他大模型的对比如下表

在这里插入图片描述

预训练

预训练数据

  • 预训练数据来源包括互联网网页、书籍、研究论文、代码库等,具体分布如下图:

在这里插入图片描述

  • 数据处理:主要关注数据频率和质量。数据频率依赖于聚类和去重。构建了一个支持LSH类特征和稠密向量特征的大规模去重和聚类系统,系统可以在数小时内处理万亿级别的数据。基于聚类,单个文档、段落、句子被去重和评分,这些分数被用于预训练时的数据采样。数据处理不同阶段的训练数据的规模如下图。
    在这里插入图片描述

模型架构

Baichuan2采用Transformer架构

Tokenizer

tokennizer需要平衡两个因素:

  • 为更高效推理的高压缩率
  • 为保证每个词向量得到充分训练的适当大小的词汇表

考虑这两个因素后,Baichuan2将词表大小从Baichuan1的64000扩展到了125696。

  • 使用了SentencePiece包的BPE来tokenize数据
  • 对于输入数据没有应用任何的归一化操作,也没有像Baichuan1一样添加dummy前缀。
  • 为了更好的处理数值数据将整个数字变成单个数字
  • 为了处理代码中的空格,添加了只有空白字符的token
  • 字符覆盖率设为0.9999,罕见的字符则回退到UTF-8字符
  • 为了处理中文长短语,将token的最大长度设为32
  • tokenizer的训练数据来源于Baichuan2的预训练语料,包括了更多代码样例和学术论文。

下表显示对Baichuan2 tokenizer与其他tokenizer的对比

在这里插入图片描述

Positional Embeddings

Baichuan2-7B使用RoPE位置向量,Baichuan2-13B使用AliBi

Acitivations and Normalizations
  • 使用SwiGLU激活函数,并调整隐藏层尺寸从4倍到 8 3 \frac{8}{3} 38,接着取整到128
  • attention层的实现基于xFormers
  • 使用RMSRorm来进行归一化
Optimizations
  • 训练时使用AdamW, β 1 = 0.9 \beta_1=0.9 β1=0.9 β 2 \beta_2 β2=0.95;使用0.1的weight decay,将梯度裁剪到0.5;使用2000的线性warmup使学习率逐渐增加到最大,在应用cosine decay到最小学习率。模型具体参数如下表

在这里插入图片描述

  • 整个模型训练使用BFloat16混合精度,但是因为BFloats对有些操作如位置向量存在问题,对它们使用全精度。

  • 为了训练的稳定性和提升模型性能,将输出向量进行了归一化(即NormHead)

  • 训练中发现LLM的logits非常大, 而大的logis会使Transformers推理时对repetition penalty参数敏感,所以应用了max-z损失来来归一化logits(下式中的z是最大的logit值):
    L m a x − z = 2 e − 4 ∗ z 2 ( 1 ) \mathcal{L}_{max-z} = 2 e^{-4} * z^2 \ \qquad (1) Lmaxz=2e4z2 (1)

  • 训练了一系列的模型来拟合模型的scaling law,结果如下图,拟合的scaling law以很高的准确率预测了haichuan2的最终损失

    在这里插入图片描述

对齐

Baichuan 2 引入了对齐流程生成了两个chat模型:Baichuan2-7B-Chat和Baichuan2-13B-Chat

Supervised Fine-Tuning

prompt的标准与Claude一样被标记为helpful或harmless, 为了验证数据质量,使用交叉验证-由一名可信的标注员检验众包标注员的一批抽样样本,如果不符合质量标准则丢弃整批数据。

标注的SFT的样本超过了100k。

RLHF

RLHF的整个流程如下图

在这里插入图片描述

  • 奖励模型:对所有的prompt划分了三层分类系统,包括6个主要类别,30个第二类别,超过200个第三层类别,保证每个类别里的prompt有足够的多样性。奖励模型的损失函数与 InstructGPT 一致, 奖励模型的性能结论与Lamma2有一致的结论:两个响应之间的得分差异越大,奖励模型的判别准确率越高。
  • PPO:用PPO来训练模型,包括四个模型:actor模型负责生成相应,reference模型用来计算KL惩罚,reward模型对整个响应提供奖励,critic模型用来学习token维度的价值
  • 训练详情:critic模型先进行了20个训练步的warmup,接着critic和actor模型由基本的PPO算法来更新。所有的模型都是用0.5的梯度裁剪, 5 e − 6 5e-6 5e6的学习率, ϵ = 0.1 \epsilon=0.1 ϵ=0.1的PPO裁剪阈值。 KL惩罚的系数为 β = 0.2 \beta=0.2 β=0.2,并随着训练进行衰减到0.005。chat模型一共训练了350个迭代。

安全性

预训练阶段

设计了一个包含规则和模型的系统来去除到有害内容如暴力、色情、种族歧视、仇恨言论等。

构建了一个中英双语数据集包括了几百万声誉良好的网页内容,并提高了这个数据集的采样率

对齐阶段

构建了一个包括6个攻击类型和100+粒度安全值类别的红队流程

参考资料

  1. Baichuan 2: Open Large-scale Language Models
  2. https://github.com/baichuan-inc/Baichuan2/tree/main

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java开发】Redis位图实现统计日活周活月活

最近研究了使用 Redis 的位图功能统计日活周活等数据,特来和大家分享下,Redis 位图还可用于记录用户签到情况、判断某个元素是否存在于集合中等。 1 Redis 位图介绍 Redis 位图是一种特殊的数据结构,它由一系列位组成,每个位只能…

洛谷P8815:逻辑表达式 ← CSP-J 2022 复赛第3题

【题目来源】https://www.luogu.com.cn/problem/P8815https://www.acwing.com/problem/content/4733/【题目描述】 逻辑表达式是计算机科学中的重要概念和工具,包含逻辑值、逻辑运算、逻辑运算优先级等内容。 在一个逻辑表达式中,元素的值只有两种可能&a…

Appilot发布:打造面向DevOps场景的开源AI助手

今日,数澈软件Seal (以下简称“Seal”)宣布推出面向 DevOps 场景的 AI 助手 Appilot,这款产品将充分利用 AI 大语言模型的能力为用户提供变革性的部署和应用管理体验。Seal 此次发布的 Appilot 项目,可以让用户直接输入…

leetcode 22. 括号生成

2023.9.24 看到组合两个字,想到了回溯。 大致思路是将所有可能的组合列出来,通过中止条件筛选掉无效的括号。 第一个中止条件:如果右括号数量大于左括号,那括号肯定无效。 第二个中止条件:当左右括号数量相等&#x…

古代有没有电子元器件?

手机,电脑,电视等等电子产品,无时无刻充斥在我们的生活中,如果有一天突然没有了这些功能多样的电子产品,估计大部分人都会一时之间难以适应。 这就好比正在上网,结果突然被人断了网,导致无网络连…

Go语言入门篇

目录 一、基础数据类型 1.1 变量的定义方式 1.2 用%T输出变量的类型 二、复合数据类型 2.1 数组 2.1.2、数组的遍历 2.1.3 数组传参 2.2. 切片slice 2.2.1. 初始化切片 2.2.2. append向切片中追加元素 2.2.3. 切片的截取 2.3. map 2.3.1. map初始化 2.3.2. 添加和…

操作系统权限提升(三十)之数据库提权-SQL Server sp_oacreate+sp_oamethod(dba权限)提权

SQL Server sp_oacreate+sp_oamethod(dba权限)提权 sp_oacreate+sp_oamethod介绍 在xp_cmdshell被删除或不能利用是可以考虑利用sp_oacreate,利用前提需要sqlserver sysadmin账户服务器权限为system(sqlserver2019默认被降权为mssql)。sp_oacreate 是一个存储过程,可以…

【无标题】mysql 普通用户连接报错: MySql server has gone away

1、mysql 普通用户连接报错: MySql server has gone away 2、进入mysql错误日志位置查看输出日志显示错误为: [Warning] [MY-013130] [Server] Aborted connection 47 to db: unconnected user: tjcx host: 10.195.11.4 (init_connect command failed; …

基于docker进行Grafana + prometheus实现服务监听

基于docker进行Grafana Prometheus实现服务监听 Grafana安装Prometheus安装Jvm监控配置服务器主机监控(基础cpu,内存,磁盘,网络) Grafana安装 docker pull grafana/grafanamkdir /server/grafanachmod 777 /server/grafanadocker run -d -p…

汽车OTA

汽车OTA(Over-The-Air)技术是指通过无线网络对汽车进行软件升级、数据传输和远程诊断等功能的技术。随着汽车行业的数字化和智能化发展,OTA技术在汽车领域的应用越来越广泛,对于提高汽车性能、降低维修成本和提升用户体验具有重要…

Linux(ubuntu)系统更新后不能进入图形界面

最近需要跑一个深度学习的程序,把许久没用的ubuntu系统调了出来,手欠的我更新了一下系统,结果再启动,系统就只停留在光标闪动那里,不能看到图形界面了。网上查了一下,说是因为更新后,显卡驱动没…

Scrapy+Selenium自动化获取个人CSDN文章质量分

前言 本文将介绍如何使用Scrapy和Selenium这两个强大的Python工具来自动获取个人CSDN文章的质量分数。我们将详细讨论Scrapy爬虫框架的使用,以及如何结合Selenium浏览器自动化工具来实现这一目标。无需手动浏览每篇文章,我们可以轻松地获取并记录文章的…

MySQL常见join关联查询分析

1、join关联查询七大类型结构图 2、建表语句 CREATE TABLE t_dept (id INT(11) NOT NULL AUTO_INCREMENT,deptName VARCHAR(30) DEFAULT NULL,address VARCHAR(40) DEFAULT NULL,PRIMARY KEY (id) ) ENGINEINNODB AUTO_INCREMENT1 DEFAULT CHARSETutf8;CREATE TABLE t_emp (id…

Go 并发可视化解释 - sync.Mute

在学习 Go 编程语言时,您可能会遇到这句著名的格言:“不要通过共享内存来进行通信;相反,通过通信来共享内存。” 这句话构成了 Go 强大并发模型的基础,其中通道(channels)作为协程之间的主要通信…

搭建安信可小安派Windows 开发环境

搭建小安派Windows 开发环境 Ai-Pi-Eyes 系列是安信可开源团队专门为Ai-M61-32S设计的开发板,支持WiFi6、BLE5.3。所搭载的Ai-M61-32S 模组具有丰富的外设接口,具体包括 DVP、MJPEG、Dispaly、AudioCodec、USB2.0、SDU、以太网 (EMAC)、SD/MMC(SDH)、SP…

操作系统真象还原_访问vaddr对应的pte

须知: 只要开启了分页机制,不管物理地址还是虚拟地址在CPU面前都按照分页处理,也就是即便给出物理地址CPU也按虚拟地址对待。 为什么没有出现页目录表结构体,也没有页目录项结构体。页目录表在某一块内存中,页表也在某…

存储管理详解

目录 存储管理(1) 第一节 存储管理概述(内存管理) 一、存储体系 二、存储管理的任务 三、地址转换 存储管理(2) 第二节 分区管理方案 一、固定分区 二、可变分区 三、分区管理方案的优缺点 第…

docker openjdk:8-jdk-alpine 修改时区、添加字体

新建Dockerfile文件,制作新镜像 FROM openjdk:8-jdk-alpine 1、解决字体问题 RUN apk add --update ttf-dejavu fontconfig && rm -rf /var/cache/apk/* 2、解决时差问题 # 解决时差8小时问题ENV TZAsia/ShanghaiRUN ln -snf /usr/share/zoneinfo/$TZ /et…

Docker部署Nacos注册中心

文章目录 一、部署MySQL数据库并导入Nacos初始化SQL二、部署Nacos注册中心三、验证Nacos 一、部署MySQL数据库并导入Nacos初始化SQL 1、准备工作 docker pull mysql:8.0.27 Pwd"/data/software/mysql" mkdir ${Pwd}/{data,logs} -p chmod 777 ${Pwd}/logs2、添加配…

metinfo_5.0.4 EXP Python脚本编写

文章目录 metinfo_5.0.4EXP编写SQL注入漏洞 metinfo_5.0.4EXP编写 SQL注入漏洞 漏洞点:/about/show.php?langcn&id22 http://10.9.75.142/metInfo_5.0.4/about/show.php?langcn&id22验证漏洞(数字型注入) 状态码区分正确与错误 做比较的时候不能采用…