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.xdnf.cn/news/143090.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】C语言实现对文件的加密算法

异或加密 解密方式是进行第二次加密后自动解密 #define BUF_SIZE (16384) //16k /************************************************************** 功能描述: 加密实现 输入参数: --------------------------------------------------------------- 修改作者: 修改日期…

山西电力市场日前价格预测【2023-09-27】

日前价格预测 预测说明: 如上图所示,预测明日(2023-09-27)山西电力市场全天平均日前电价为342.48元/MWh。其中,最高日前电价为454.24元/MWh,预计出现在18: 30。最低日前电价为171.32元/MWh,预计…

如何永久关闭WPS任务窗口?

1、按住任务窗口上的浮动按钮,将其拖出来成悬浮窗口。 第二步,使用火绒弹窗拦截,选中弹出的窗口,进行拦截。注意:拦截次数为2次。即进行2次操作。 操作两次后,弹窗被拦截,此时Word文档改为双页显…

蓝桥杯每日一题20223.9.26

4407. 扫雷 - AcWing题库 题目描述 分析 此题目使用map等都会超时,所以我们可以巧妙的使用哈希模拟散列表,哈希表初始化为-1首先将地雷读入哈希表,找到地雷的坐标在哈希表中对应的下标,如果没有则此地雷的位置第一次出现&#…

QQ怎么上传大于1G的视频啊?视频压缩这样做

当我们想要在QQ上分享一段大容量的视频时,往往会因为超过1G的限制而感到无助。不过,不用担心,今天我们将为你介绍三种可以压缩视频大小的方法,一起来看看吧~ 一、嗨格式压缩大师 嗨格式压缩大师是一款专业的视频压缩软件&#xf…

全渠道客服体验:Rocket.Chat 的无缝互动 | 开源日报 No.41

RocketChat/Rocket.Chat Stars: 36.9k License: NOASSERTION Rocket.Chat 是一个完全可定制的开源通信平台,适用于具有高标准数据保护要求的组织。我们是团队沟通场景下的最终免费开源解决方案,可以实现同事之间、公司之间或客户之间的实时对话。提高生…

13. ShardingSphere-Proxy 数据库代理

Spring Cloud 微服务系列文章,点击上方合集↑ 1. 简介 ShardingSphere-Proxy是ShardingSphere分布式数据库中间件的一部分,它提供了数据库代理功能。通过引入ShardingSphere-Proxy,可以在无需改动应用程序代码的情况下,实现分库…

使用Process Monitor工具探测日志文件是程序哪个模块生成的

目录 1、问题描述 2、使用Process Monitor监测目标文件是哪个模块生成的思路说明 3、操作Process Monitor监测日志文件是哪个模块生成的 4、通过screenctach.dll库的时间戳,找到其pdb文件,然后去查看详细的函数调用堆栈 5、最后 VC常用功能开发汇总…

用智能文字识别技术赋能古彝文数字化之路

目录 1、前言 2、对古彝文古籍的保护迫在眉睫 3、古彝文识别的难点问题 4、古彝文文字识别的关键技术 4.1、智能高清滤镜技术 4.2、图像矫正 4.3、图像增强 4.4、版面还原 5、合合信息识别技术赋能古彝文数字化 1、前言 古彝文指的是在云南、贵州、四川等地的彝族人之…

uniapp 可输入可选择的........框

安装 uniapp: uni-combox地址 vue页面 <uni-combox :border"false" input"selectname" focus"handleFocus" blur"handleBlur" :candidates"candidates" placeholder"请选择姓名" v-model"name"&g…

yolov5及yolov7实战之剪枝

之前有讲过一次yolov5的剪枝&#xff1a;yolov5实战之模型剪枝_yolov5模型剪枝-CSDN博客 当时基于的是比较老的yolov5版本&#xff0c;剪枝对整个训练代码的改动也比较多。最近发现一个比较好用的剪枝库&#xff0c;可以在不怎么改动原有训练代码的情况下&#xff0c;实现剪枝的…

使用自定义注解发布webservice服务

使用自定义注解发布webservice服务 概要代码自定义注解WebService接口服务发布配置使用 结果 概要 在springboot使用webservice&#xff0c;发布webservice服务的时候&#xff0c;我们经常需要手动在添加一些发布的代码&#xff0c;比如&#xff1a; Bean public Endpoint or…

破信息壁垒,亿发一站式ERP系统建设,打造五金制造信息管理平台

五金制造拥有明显的行业特征&#xff0c;如体量小、品种繁多、颜色多样、加工工艺不断演进等&#xff0c;呈现出一种独特的管理挑战。大多数五金企业仍然依赖人工管理和经验决策&#xff0c;如今需要寻求更合理和科学的决策方法&#xff0c;以实现生产、销售、仓储、采购和财务…

百度SEO优化技巧(选择、网站结构、内容优化、外链建设、数据分析)

百度关键词SEO优化介绍 SEO是搜索引擎优化的缩写&#xff0c;是指通过优化网站结构、内容和外部链接等方式&#xff0c;提高网站在搜索引擎中的排名&#xff0c;从而获取更多的访问量和流量。百度是中国最大的搜索引擎之一&#xff0c;对于企业来说&#xff0c;优化百度关键词…

uniapp 事件委托失败 获取不到dataset

问题&#xff1a; v-for 多个span ,绑定点击事件 代码:view里包着一个span, <view class"status-list" tap"search"><span class"status-item" v-for"(key,index) in statusList" :key"index" :data-key"k…

USB转换方案介绍

随着科技的不断发展&#xff0c;我们的生活中出现了越来越多的电子设备。然而&#xff0c;这些设备通常具有不同的连接端口和协议&#xff0c;这可能会使它们之间的连接变得困难。这时候&#xff0c;使用USB转换就成为了一种非常方便和实用的解决方法。 无论是在家庭、办公室还…

系统集成|第十章(笔记)

目录 第十章 质量管理10.1 项目质量管理概论10.2 主要过程10.2.1 规划质量管理10.2.2 实施质量保证10.2.3 质量控制 10.3 常见问题 上篇&#xff1a;第九章、成本管理 下篇&#xff1a;第十一章、人力资源管理 第十章 质量管理 10.1 项目质量管理概论 质量管理&#xff1a;指确…

创建型设计模式——工厂模式

摘要 本博文主要介绍软件设计模式中工厂模式&#xff0c;其中工厂设计模式的扩展为简单工厂(Simple Factory)、工厂方法(Factory Method)、抽象工厂(Abstract Factory)三种。 一、简单工厂(Simple Factory) 主要分析设计模式 - 简单工厂(Simple Factory)&#xff0c;它把实例…

PHP8的类与对象的基本操作之类的实例化-PHP8知识详解

定义完类和方法后&#xff0c;并不是真正创建一个对象。类和对象可以描述为如下关系。类用来描述具有相同数据结构和特征的“一组对象”&#xff0c;“类”是“对象”的抽象&#xff0c;而“对象”是“类”的具体实例&#xff0c;即一个类中的对象具有相同的“型”&#xff0c;…

【DETR】

https://tianfeng.space/ 前言 论文 代码 DETR&#xff08;Data-efficient Image Transformer&#xff09;是一种用于目标检测任务的深度学习模型。它与传统的目标检测方法不同&#xff0c;采用了Transformer架构&#xff0c;将目标检测问题转化为一个序列到序列的问题。以下…