注:本图由stable diffusion生成
① 论文:
https://arxiv.org/pdf/2305.03025.pdf
② github:
https://github.com/dandelionsllm/pandallm/
1.1 摘要
我们的目标是通过定量分析来补充评估,为开源聊天模型的持续发展提供有价值的洞见。
1.2 引言
(1)提出的蒲公英项目(Dandelion Project)旨在部署的大型语言模型不仅准确,而且透明,可信,可定制。
(2)我们的Panda LLM模型已经在Chinese-Wiki-2019,Chinese-News-2016,Chinese-Baike-2018,Chinese-Webtext-2019,以及Translation-2019和COIG数据集上进行了训练,并在LLaMA模型的基础上进行了指导精调(instruction tuning)。
(3)为此,这个项目的贡献是三方面的:
①我们采用了两阶段的训练方法,取得了出色的结果,超越了所有先前可用的具有相同参数数量的开源中文大型语言模型
②我们进行了首次的开源中文大型语言模型的比较评估
③我们已经提供了一系列模型文件和相应的源代码,目的是推动人工智能的民主化。
1.3 训练方法
我们以强大的LLaMA基础模型作为我们的基础,通过对六个中文语料库进行指令精调来进一步优化其性能,使其能够在各种任务上表现良好。
1.3.1 基础模型
(1)我们的Panda LLM建立在各种LLaMA模型的基础上,包括Meta最近发布的LLaMA-7B,LLaMA-13B,LLaMA-33B和LLaMA-65B,作为我们的基础模型。
png-01
(2)利用各种改进来增强模型的容量,包括预归一化(pre-normalization),SwiGLU激活函数和旋转嵌入(SwiGLU activation function,rotary embeddings)。
# pre-normalization
Root mean square layer normalization
https://proceedings.neurips.cc/paper_files/paper/2019/file/1e8a19426224ca89e83cef47f1e7f53b-Paper.pdf
# SwiGLU activation function ,rotary embeddings
Roformer: Enhanced transformer with rotary position embedding
https://arxiv.org/pdf/2104.09864.pdf
png-02
1.3.2 训练数据集
(1)为了使我们的Panda LLM在中文数据集上获得强大的性能,我们利用了强大的指令精调(instruction tuning)技术在五个开源的中文数据集的混合上训练基础LLaMA模型
# 五个开源的中文数据集
https://zenodo.org/record/3402023#.ZFXIAOxBy7M
png-03
2)为了增强Panda LLM的指令(instruction-following)执行能力,我们进一步将中文开放指令通用(COIG)数据集纳入我们的语料库。
# COIG
https://arxiv.org/pdf/2304.07987.pdf
https://github.com/BAAI-Zlab/COIG
1.3.3 训练基础设施
为了便于模型的高效训练,我们使用了DeepSpeed ZERO-1配合bfloat16和梯度checkpointing。
1.4 实验
1.4.1 评估数据集
png-04
1.4.2 结果
我们展示了在不同阶段Panda LLM的性能。
• Panda-7B:在Chinese-Wiki-2019,Chinese-News-2016,Chinese-Baike-2018,Chinese-Webtext-2019和Translation-2019上进行微调的模型。
• Panda-7B-instruction-3k:Panda-7B + 在COIG数据集上进行3k步的指导调整。
• Panda-7B-instruction-6k:Panda-7B + 在COIG数据集上进行6k步的指导调整。
• Panda-7B-instruction-9k:Panda-7B + 在COIG数据集上进行9k步的指导调整。
png-05
png-06
1.4.3 关键发现
(1)在推理任务中取得高性能的关键因素是在各种领域进行调整。
(2)随意混合数据并不能提高性能。
(3)简而言之,一个包含大量预训练,然后在一小部分但是多样性的数据上进行指导调整的流程可以导致一个高效的中文语言模型。