背景
baichuan-7B 是由百川智能开发的一个开源可商用的大规模预训练语言模型。
基于 Transformer 构造,在大概 1.2 万亿 tokens 上训练的 70 亿参数模型,反对中英双语,上下文窗口长度为 4096。
在规范的中文和英文权威 benchmark(C-EVAL/MMLU)上均获得了同参数规模下的最好成果。
baichuan-7B 的长处
- 在同尺寸模型中 baichuan-7B 达到了目前 SOTA 的程度。
- baichuan-7B 应用自有的中英文双语语料进行训练,在中文上进行优化,在 C -Eval 达到 SOTA 程度。
- 不同于 LLaMA 齐全禁止商业应用,baichuan-7B 应用更宽松的开源协定,容许用于商业目标。
数据收集
- 原始数据包含开源的中英文数据和自行抓取的中文互联网数据,以及局部高质量知识性数据。
- 参考相干数据工作,频率和品质是数据处理环节重点思考的两个维度。咱们基于启发式规定和品质模型打分,对原始数据集进行篇章和句子粒度的过滤。在全量数据上,利用部分敏感哈希办法,对篇章和句子粒度做滤重。
模型构造
整体模型基于规范的 Transformer 构造,采纳了和 LLaMA 一样的模型设计。
-
地位编码:rotary-embedding
是现阶段被大多模型采纳的地位编码方案,具备更好的内涵成果。尽管训练过程中最大长度为 4096,然而理论测试中模型能够很好的扩大到 5000 tokens 上,如下图:
- 激活层:SwiGLU, Feedforward 变动为 (8/3) 倍的隐含层大小,即 11008。
- Layer-Normalization: 基于 RMSNorm 的 Pre-Normalization。
预训练
采纳 DeepSpeed 框架进行训练,在本来的 LLaMA 框架上进行诸多批改以晋升训练时的吞吐,具体包含:
- 算子优化技术:采纳更高效算子,如 Flash-attention,NVIDIA apex 的 RMSNorm 等。
- 算子切分技术:将局部计算算子进行切分,减小内存峰值。
- 混合精度技术:升高在不损失模型精度的状况下减速计算过程。
- 训练容灾技术:训练平台和训练框架联结优化,IaaS + PaaS 实现分钟级的故障定位和工作复原。
-
通信优化技术,具体包含:
- 采纳拓扑感知的汇合通信算法,防止网络拥塞问题,进步通信效率。
- 依据卡数自适应设置 bucket size,进步带宽利用率。
- 依据模型和集群环境,调优通信原语的触发机会,从而将计算和通信重叠。
基于上述的几个优化技术,在千卡 A800 机器上达到了 7B 模型 182Tflops 的吞吐,GPU 峰值算力利用率高达 58.3%。
最终的 loss 如下图:
试验成果
C-Eval
C-Eval 数据集是一个全面的中文根底模型评测数据集,涵盖了 52 个学科和四个难度的级别。
应用该数据集的 dev 集作为 few-shot 的起源,在 test 集上进行了 5-shot 测试。
先批改 evaluate_zh.py
中的 OPENMODEL_PATH 和 CEVAL_DATA_PATH 两个值,别离是模型(文件夹)寄存的门路和 C-Eval 数据集的门路。再执行上面的脚本。
shot=5 # few-shot
gpu=0 # 显卡 id
split=test # 评估测试集
model_id=baichuan-7b # 待评估的模型
task=ceval # 工作名称:ceval
echo gpu_idx-${gpu}-${model_id}_${task}_${split}_${shot}-shot
nohup python evaluate_zh.py --gpu_idx ${gpu} --model_id ${model_id} --task ${task} --shot ${shot} --split ${split} --show_detail > ${model_id}_${task}_${split}_${shot}-shot_record.txt 2>&1 &
后果
Model 5-shot | Average | Avg(Hard) | STEM | Social Sciences | Humanities | Others |
---|---|---|---|---|---|---|
GPT-4 | 68.7 | 54.9 | 67.1 | 77.6 | 64.5 | 67.8 |
ChatGPT | 54.4 | 41.4 | 52.9 | 61.8 | 50.9 | 53.6 |
Claude-v1.3 | 54.2 | 39.0 | 51.9 | 61.7 | 52.1 | 53.7 |
Claude-instant-v1.0 | 45.9 | 35.5 | 43.1 | 53.8 | 44.2 | 45.4 |
moss-moon-003-base (16B) | 27.4 | 24.5 | 27.0 | 29.1 | 27.2 | 26.9 |
Ziya-LLaMA-13B-pretrain | 30.2 | 22.7 | 27.7 | 34.4 | 32.0 | 28.9 |
LLaMA-7B-hf | 27.1 | 25.9 | 27.1 | 26.8 | 27.9 | 26.3 |
ChatGLM-6B | 34.5 | 23.1 | 30.4 | 39.6 | 37.4 | 34.5 |
Falcon-7B | 25.8 | 24.3 | 25.8 | 26.0 | 25.8 | 25.6 |
Open-LLaMA-v2-pretrain (7B) | 24.0 | 22.5 | 23.1 | 25.3 | 25.2 | 23.2 |
TigerBot-7B-base | 25.7 | 27.0 | 27.3 | 24.7 | 23.4 | 26.1 |
Aquila-7B* | 25.5 | 25.2 | 25.6 | 24.6 | 25.2 | 26.6 |
BLOOM-7B | 22.8 | 20.2 | 21.8 | 23.3 | 23.9 | 23.3 |
BLOOMZ-7B | 35.7 | 25.8 | 31.3 | 43.5 | 36.6 | 35.6 |
baichuan-7B | 42.8 | 31.5 | 38.2 | 52.0 | 46.2 | 39.3 |
Gaokao
Gaokao 是一个以中国高考题作为评测大语言模型能力的数据集,用以评估模型的语言能力和逻辑推理能力。
只保留了其中的单项选择题,随机划分后对所有模型进行对立 5-shot 测试。
后果
以下是测试的后果。
Model | Average |
---|---|
Open-LLaMA-v2-pretrain | 21.41 |
Ziya-LLaMA-13B-pretrain | 23.17 |
Falcon-7B | 23.98 |
TigerBot-7B-base | 25.94 |
LLaMA-7B | 27.81 |
ChatGLM-6B | 21.41 |
BLOOM-7B | 26.96 |
BLOOMZ-7B | 28.72 |
Aquila-7B* | 24.39 |
baichuan-7B | 36.24 |
AGIEval
AGIEval 旨在评估模型的认知和解决问题相干的工作中的个别能力。
只保留了其中的四选一单项选择题,随机划分后对所有模型进行了对立 5 -shot 测试。
后果
Model | Average |
---|---|
Open-LLaMA-v2-pretrain | 23.49 |
Ziya-LLaMA-13B-pretrain | 27.64 |
Falcon-7B | 27.18 |
TigerBot-7B-base | 25.19 |
LLaMA-7B | 28.17 |
ChatGLM-6B | 23.49 |
BLOOM-7B | 26.55 |
BLOOMZ-7B | 30.27 |
Aquila-7B* | 25.58 |
baichuan-7B | 34.44 |
- 其中 Aquila 模型来源于智源官方网站(https://model.baai.ac.cn/model-detail/100098) 仅做参考
英文榜单
除了中文之外,也测试了模型在英文上的成果。
MMLU 是蕴含 57 个多选工作的英文评测数据集,涵盖了初等数学、美国历史、计算机科学、法律等,难度笼罩高中程度到专家程度,是目前支流的 LLM 评测数据集。
采纳了开源 的评测计划,最终 5-shot 后果如下所示:
后果
Model | Humanities | Social Sciences | STEM | Other | Average |
---|---|---|---|---|---|
LLaMA-7B2 | 34.0 | 38.3 | 30.5 | 38.1 | 35.1 |
Falcon-7B1 | – | – | – | – | 35.0 |
mpt-7B1 | – | – | – | – | 35.6 |
ChatGLM-6B0 | 35.4 | 41.0 | 31.3 | 40.5 | 36.9 |
BLOOM-7B0 | 25.0 | 24.4 | 26.5 | 26.4 | 25.5 |
BLOOMZ-7B0 | 31.3 | 42.1 | 34.4 | 39.0 | 36.1 |
moss-moon-003-base (16B)0 | 24.2 | 22.8 | 22.4 | 24.4 | 23.6 |
moss-moon-003-sft (16B)0 | 30.5 | 33.8 | 29.3 | 34.4 | 31.9 |
baichuan-7B0 | 38.4 | 48.9 | 35.6 | 48.1 | 42.3 |
总结
baichuan-7B 模型基于规范的 Transformer 构造,采纳了和 LLaMA 一样的模型设计,外围劣势如下:
- 在同尺寸模型中 baichuan-7B 达到了目前 SOTA 的程度。
- baichuan-7B 应用自有的中英文双语语料进行训练,在中文上进行优化,在 C -Eval 达到 SOTA 程度。
- 不同于 LLaMA 齐全禁止商业应用,baichuan-7B 应用更宽松的开源协定,容许用于商业目标。
文章和示例代码开源在 GitHub: GPT 实战教程,理解所有支流的开源 LLM。
公众号:coding 进阶。关注公众号能够获取最新 GPT 实战内容。
集体网站:Jincheng’s Blog。
知乎:无忌。
References
- https://github.com/baichuan-inc/baichuan-7B
- https://huggingface.co/baichuan-inc/baichuan-7B