1.introduction
baichuan2基于2.6万亿个token进行训练。
2.pre-training
2.1 pre-training data
数据处理:关注数据频率和质量。数据频率依赖于聚类和去重,构建了一个支持LSH型特征和稠密embedding特征的大规模去重和聚类系统,单个文档、段落和句子被去重评分,这些评分然后用于预训练中的数据采样。
2.3 Tokenizer
分词器需要平衡两个关键因素:高压缩率以实现高效的推理,并适当大小的词汇表以确保每个词embedding的充分训练。词表从baichuan1中的64000扩展到125696,使用SentencePiece字节对编码。
2.4 Positional embeddings
Baichuan2-7B采用RoPE,Baichuan2-13B采用ALiBi。
2.5 Activations and Normalizations
SwiGLU,attention使用的是xformers,pre-RmsNorm
2.6 Optimizations
AdamW;BFloat16;NormHead:对输出embedding进行归一化;Max-z损失;
2.7 Scaling laws
在训练具有数十亿参数的大型语言模型之前,首先训练一些小模型,并为训练更大的模型拟合一个缩放定律。
2.8 infrastructure
1024块A800 GPU
3.alignment
baichuan2-7B-chat,baichuan2-13B-chat,对齐包括sft和rlhf。
3.1 sft
收集了超过10w个样本。
3.2 reward model
为所有的提示设计了一个三层分类系统,包括6个一级分类、30个二级分类和200多个三级分类。给定一个prompt,通过不同大小和阶段的baichuan2生成回复,已增加回复多样性。
4.safety