背景

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运用更宽松的开源协议,允许用于商业意图。

数据收集

  • 原始数据包含开源的中英文数据和自行抓取的中文互联网数据,以及部分高质量知识性数据。
  • 参阅相关数据工作,频率和质量是数据处理环节重点考虑的两个维度。 我们依据启发式规则和质量模型打分,对原始数据集进行篇章和语句粒度的过滤。在全量数据上,利用局部敏感哈希方法,对篇章和语句粒度做滤重。

baichuan-7B: 开源可商用支持中英文的最好大模型

模型结构

全体模型依据规范的 Transformer 结构,选用了和 LLaMA 一样的模型规划。

  • 方位编码:rotary-embedding

    是现阶段被大多模型选用的方位编码方案,具有更好的外延作用。虽然练习进程中最大长度为4096,但是实践测验中模型可以很好的扩展到 5000 tokens 上,如下图:

    baichuan-7B: 开源可商用支持中英文的最好大模型

  • 激活层:SwiGLU, Feedforward 变化为(8/3)倍的隐含层巨细,即11008。

  • Layer-Normalization: 依据 RMSNorm 的 Pre-Normalization。

预练习

选用 DeepSpeed 结构进行练习,在原本的LLaMA结构进步行诸多修改以提升练习时的吞吐,具体包含:

  1. 算子优化技能:选用更高效算子,如 Flash-attention,NVIDIA apex 的 RMSNorm 等。
  2. 算子切分技能:将部分核算算子进行切分,减小内存峰值。
  3. 混合精度技能:降低在不损失模型精度的情况下加速核算进程。
  4. 练习容灾技能:练习平台和练习结构联合优化,IaaS + PaaS 实现分钟级的故障定位和使命恢复。
  5. 通讯优化技能,具体包含:
    1. 选用拓扑感知的集合通讯算法,防止网络拥塞问题,进步通讯效率。
    2. 依据卡数自适应设置 bucket size,进步带宽利用率。
    3. 依据模型和集群环境,调优通讯原语的触发机遇,然后将核算和通讯堆叠。

依据上述的几个优化技能,在千卡A800机器上到达了7B模型182Tflops的吞吐,GPU峰值算力利用率高达58.3% 。

终究的loss如下图:

baichuan-7B: 开源可商用支持中英文的最好大模型

实验作用

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 模型来源于智源官方网站(model.baai.ac.cn/model-detai…) 仅做参阅

英文榜单

除了中文之外,也测验了模型在英文上的作用。

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进阶。

个人网站:Jincheng’s Blog。

知乎:无忌。

References

  • github.com/baichuan-in…
  • huggingface.co/baichuan-in…