Baichuan系列大语言模型升级到第二代,百川开源的Baichuan2系列大模型详解,能力提升明显,依然免费商用授权
百川智能是前搜狗创始人王小川创立的一个大模型创业公司,主要的目标是提供大模型底座来提供各种服务。虽然成立很晚(在2023年4月份成立),但是三个月后便发布开源了Baichuan系列开源模型,并上架了Baichun-53B的大模型聊天服务。这些模型受到了广泛的关注和很高的平均。而2个月后,百川智能再次开源第二代baichuan系列大模型,其能力提升明显。

Baichuan2系列模型在各项评测中提升明显:

Baichuan2系列开源模型简介
Baichuan2系列开源模型包含2个参数规模的版本,分别是7B和13B,但是官方开源的模型包含6个:
模型名称 | 模型说明 | 模型信息卡地址 |
---|---|---|
Baichuan2-7B-Base | 70亿参数的基础大模型 | https://www.datalearner.com/ai-models/pretrained-models/Baichuan2-7B-Base |
Baichuan2-7B-Chat | 70亿参数,基于Baichuan2-7B-Base对齐微调后的聊天优化大模型 | https://www.datalearner.com/ai-models/pretrained-models/Baichuan2-7B-Chat |
Baichuan2-7B-Chat-4bits | Baichuan2-7B-Chat的4bit量化版本 | |
Baichuan2-13B-Base | 130亿参数的基础大模型 | https://www.datalearner.com/ai-models/pretrained-models/Baichuan2-13B-Base |
Baichuan2-13B-Chat | 130亿参数,基于Baichuan2-13B-Base对齐微调后的聊天优化大模型 | https://www.datalearner.com/ai-models/pretrained-models/Baichuan2-13B-Chat |
Baichuan2-13B-Chat-4bits | Baichuan2-13B-Chat的4bit量化版本 |
可以看到,官方开源的模型版本很丰富,包含基础模型Baichuan2-7B-Base/Baichuan2-13B-Base,这是在2.6万亿tokens的高质量数据集上预训练得到的。而在这2个模型基础上,Baichuan还针对对话进行对齐和微调得到了Baichuan2-7B-Chat/Baichuan2-13B-Chat两个聊天优化大模型,此外,还针对模型的显存占用问题发布了2个量化版本的模型,可以在更低的显存资源上运行。
总结一下,Baichuan2系列模型的特点如下:
- Baichuan 2 是百川智能推出的新一代开源大语言模型,采用了2.6万亿Tokens的高质量语料进行训练。
- 该模型在多个权威的中文、英文和多语言的通用、领域benchmark上取得了同尺寸最佳的效果。
- 本次发布包括了7B、13B的Base和Chat版本,并提供了Chat版本的4bits量化。
- 所有版本对学术研究完全开放,开发者可以通过邮件申请并获得官方商用许可后,即可免费商用。
Baichuan2系列模型的训练细节
本次官方还提供了一个技术报告,详细描述了Baichuan2系列模型的训练细节。
Baichuan2大模型训练数据集
关于Baichuan 2的训练数据集和处理方式,可以概括以下几点:
- 数据来源:训练数据来自多种渠道,包括常规网页、书籍、研究论文、代码库等,以求最大程度覆盖不同领域的知识。
- 数据量:原始数据量约为4.6万亿字,经过处理后用于预训练的数据量为2.6万亿字(2.6 trillion tokens)。
- 频率处理:通过集群和去重提高数据频率,构建大规模的近似去重系统,对文本按句、段、文档级别进行聚类和去重。
- 质量处理:对每个文档、段落、句子进行打分,采样时根据质量分数进行加权。
- 清洗处理:设计了一套规则和模型对有害内容进行过滤,如暴力、色情等。
- 采样策略:除常规随机采样外,也提高某些积极价值观数据集的采样概率。
- Token化:使用基于BPE的SentencePiece,扩展词表规模至12.5万,不添加虚拟前缀。
Baichuan2大模型训练数据集组成
数据类型 | 占比 |
---|---|
网页数据 | 67% |
书籍 | 8% |
论文 | 3% |
代码 | 5% |
专业数据 | 10% |
其他数据 | 7% |
可以看出,Baichuan 2在训练数据的选取、处理和采样方面进行了精心设计,旨在构建一个高质量、高覆盖率的多语种预训练语料库。这为模型性能的提升奠定了数据基础。
Baichuan2大模型的架构细节
在原有的技术文档中,Baichuan解释了Baichuan2的训练过程和一些训练细节设置,我们总结如下:
以下是修正后的段落:
好的,我将详细总结论文2.2到2.7章节中Baichuan 2的模型架构和训练细节,并简单解释每一步的设计动机:
- Tokenizer
Baichuan 2的分词器需要平衡两个关键因素:高压缩率以实现高效的推断,以及适当大小的词汇表以确保每个词嵌入的充分训练。为了实现这一平衡,Baichuan 2的词汇表大小从Baichuan 1的64,000扩展到125,696,具体如下:- 扩大词表规模到125K,增加词汇覆盖范围,提高稀有词表达能力。
- 不添加虚拟前缀,保持输入原始信息。
- 分解数字,增强处理数字语料的能力。
Baichuan2模型与其它模型的词汇对比:
Tokenizer | Vocab Size | Compression Rate ↓ |
---|---|---|
LLaMA 2 | 32,000 | 1.037 |
Bloom | 250,680 | 0.501 |
ChatGLM 2 | 64,794 | 0.527 |
Baichuan 1 | 64,000 | 0.570 |
Baichuan 2 | 125,696 | 0.498 |
可以看到,baichuan2的词汇表非常丰富!
模型结构
Baichuan 2采用了SwiGLU激活函数并对Transformer块的输入使用了Layer Normalization,以提高模型的稳健性和效率。具体如下:- 使用RoPE或ALiBi位置编码,提高序列外推能力。
- 采用SwiGLU激活函数,效果优于ReLU和GELU。
LayerNorm
- 在Transformer块输入使用LayerNorm,与warm-up计划配合效果更佳。
优化器
Baichuan 2使用AdamW优化器进行训练,并采用了BFloat16混合精度来提高训练的稳定性和效率。- 使用AdamW优化器,相比Adam更稳定。
- weight decay可缓解过拟合。
- 梯度裁剪防止异常梯度破坏训练。
混合精度
- 使用BFloat16加速训练,相比FP16动态范围更宽。
- 关键操作使用FP32避免数值精度问题。
NormHead
- 标准化输出embedding,训练更稳定,分类也更准确。
Max-z loss
- 限制最大logit值,使训练和推理都更稳定。
分布式训练
- 采用各种通信优化手段,提升分布式大规模训练的时间和性能。
推理优化
- 使用转置注意力、张量分割等方式减少内存消耗。
总体来看,Baichuan 2在各个方面都进行了精心设计,这些优化策略提升了模型训练效率、稳定性以及最终性能。
Baichuan2的训练细节
Baichuan 2模型在RLHF训练过程中首先对Critic模型进行了20个training steps的预热。随后,Critic和actor模型都通过标准的PPO算法进行了更新。整个训练过程中,使用了0.5的梯度裁剪、5e-6的恒定学习率和0.1的PPO裁剪阈值。此外,设置了从0.2递减至0.005的KL惩罚系数,并进行了350次的训练迭代,最终得到了Baichuan 2-7B-Chat和Baichuan 2-13B-Chat两个模型。
以下是Baichuan 2模型的训练细节总结:
训练细节项 | 值或描述 |
---|---|
RLHF训练过程 | Critic模型首先进行20个训练步的预热。 |
更新方式 | Critic和actor模型都通过标准的PPO算法进行更新。 |
梯度裁剪 | 0.5 |
学习率 | 5e-6 |
PPO裁剪阈值 | ϵ = 0.1 |
KL惩罚系数 | β = 0.2,随步骤递减至0.005 |
训练迭代次数 | 350次 |
结果模型 | Baichuan 2-7B-Chat 和 Baichuan 2-13B-Chat |
这是根据3.4小节的内容制作的训练细节表格。如果您需要更多的详细信息或其他部分的概述,请告诉我。
Baichuan2大模型的对齐方法
Baichuan 2的模型对齐方式包括两个主要组成部分:监督微调(Supervised Fine-Tuning, SFT)和基于人类反馈的强化学习(Reinforcement Learning from Human Feedback, RLHF)。在监督微调阶段,使用人类标注员对从各种数据源收集的提示进行标注,每个提示都根据其是否有助于或无害于关键原则进行标记。接着,通过RLHF方法进一步改进结果。此外,还设计了一个三层分类系统,包括6个主要类别、30个次要类别和超过200个三级类别,以确保从用户的角度全面覆盖所有类型的用户需求。
Baichuan2在各个任务的评测结果
Baichuan2给出了非常详细的评测结果,在传统的MMLU、C-Eval、GMS8K等的理解可以参考DataLearner大模型综合评测排行:https://www.datalearner.com/ai-models/llm-evaluation
在代码方面的评测也可以参考DataLearner大模型编程排行:https://www.datalearner.com/ai-models/llm-coding-evaluation
论文的一些具体有意思的对比我们也可以看看。
Baichuan2在医疗和法律领域的评测结果:
Model | JEC-QA | CMC | USMLE | MCMLE | MedMCQA |
---|---|---|---|---|---|
GPT-4 | 59.32 | 77.16 | 80.28 | 74.58 | 72.51 |
GPT-3.5 Turbo | 42.31 | 61.17 | 53.81 | 52.92 | 56.25 |
LLaMA-7B | 27.45 | 33.34 | 24.12 | 21.72 | 27.45 |
LLaMA 2-7B | 29.20 | 36.75 | 27.49 | 24.78 | 37.93 |
MPT-7B | 27.45 | 26.67 | 16.97 | 19.79 | 31.96 |
Falcon-7B | 23.66 | 25.33 | 21.29 | 18.07 | 33.88 |
ChatGLM 2-6B | 28.89 | 44.54 | 26.24 | 45.53 | 30.22 |
Baichuan 1-7B | 34.64 | 42.37 | 27.42 | 39.46 | 31.39 |
Baichuan 2-7B-Base | 44.46 | 56.39 | 32.68 | 54.93 | 41.73 |
LLaMA-13B | 27.54 | 35.14 | 28.83 | 23.38 | 39.52 |
LLaMA 2-13B | 34.08 | 47.42 | 35.04 | 29.74 | 42.12 |
Vicuna-13B | 28.38 | 40.99 | 34.80 | 27.67 | 40.66 |
Chinese-Alpaca-Plus-13B | 35.32 | 46.31 | 27.49 | 32.66 | 35.87 |
XVERSE-13B | 46.42 | 58.08 | 32.99 | 58.76 | 41.34 |
Baichuan 1-13B-Base | 41.34 | 51.77 | 29.07 | 43.67 | 39.60 |
Baichuan 2-13B-Base | 47.40 | 59.33 | 40.38 | 61.62 | 42.86 |
Baichuan2在数学和编程能力的评测结果对比:
Model | GSM8K | MATH | HumanEval | MBPP |
---|---|---|---|---|
GPT-4 | 89.99 | 40.20 | 69.51 | 63.60 |
GPT-3.5 Turbo | 57.77 | 13.96 | 52.44 | 61.40 |
LLaMA-7B | 9.78 | 3.02 | 11.59 | 14.00 |
LLaMA 2-7B | 16.22 | 3.24 | 12.80 | 14.80 |
MPT-7B | 8.64 | 2.90 | 14.02 | 23.40 |
Falcon-7B | 5.46 | 1.68 | - | 10.20 |
ChatGLM 2-6B | 28.89 | 6.40 | 9.15 | 9.00 |
Baichuan 1-7B | 9.17 | 2.54 | 9.20 | 6.60 |
Baichuan 2-7B-Base | 24.49 | 5.58 | 18.29 | 24.20 |
LLaMA-13B | 20.55 | 3.68 | 15.24 | 21.40 |
LLaMA 2-13B | 28.89 | 4.96 | 15.24 | 21.40 |
Vicuna-13B | 24.49 | 4.96 | 15.24 | 21.40 |
Chinese-Alpaca-Plus-13B | 28.89 | 4.96 | 15.24 | 21.40 |
XVERSE-13B | 28.89 | 4.96 | 15.24 | 21.40 |
Baichuan 1-13B-Base | 28.89 | 4.96 | 15.24 | 21.40 |
Baichuan 2-13B-Base | 28.89 | 4.96 | 15.24 | 21.40 |
Baichuan2系列模型的推理硬件(显存)资源要求和限制地址
话不多说,模型资源(包括下载地址、开源协议等)参考DataLearner模型信息卡,评测结果也可以参考DataLearner评测排名收集结果:
模型名称 | 模型信息卡地址 |
---|---|
Baichuan2-7B-Base | https://www.datalearner.com/ai-models/pretrained-models/Baichuan2-7B-Base |
Baichuan2-7B-Chat | https://www.datalearner.com/ai-models/pretrained-models/Baichuan2-7B-Chat |
Baichuan2-13B-Base | https://www.datalearner.com/ai-models/pretrained-models/Baichuan2-13B-Base |
Baichuan2-13B-Chat | https://www.datalearner.com/ai-models/pretrained-models/Baichuan2-13B-Chat |
而Baichuan2模型所需的硬件资源(显存需求)如下:
Precision | Baichuan2-7B | Baichuan2-13B |
---|---|---|
bf16 / fp16 | 15.3 GB | 27.5 GB |
8bits | 8.0 GB | 16.1 GB |
4bits | 5.1 GB | 8.6 GB |
可以看到,量化后的模型显存占用极低,Baichuan2-13B的4bit量化仅需8.6GB。
量化后的性能如下:
Model 5-shot | C-Eval | MMLU | CMMLU |
---|---|---|---|
Baichuan2-13B-Chat | 56.74 | 57.32 | 59.68 |
Baichuan2-13B-Chat-4bits | 56.05 | 56.24 | 58.82 |
Baichuan2-7B-Chat | 54.35 | 52.93 | 54.99 |
Baichuan2-7B-Chat-4bits | 53.04 | 51.72 | 52.84 |
可以看到,区别并不明显~
欢迎大家关注DataLearner官方微信,接受最新的AI技术推送
