/pandallm

Panda: 海外中文开源大语言模型,基于 Llama-7B, -13B, -33B, -65B 进行中文领域上的持续预训练。

Primary LanguagePythonApache License 2.0Apache-2.0

Panda

Code License Data License

Panda: 海外中文开源大语言模型

欢迎来到我们的海外中文大语言模型开源项目—— Panda!Panda 系列语言模型目前基于 Llama-7B, -13B, -33B, -65B 进行中文领域上的持续预训练, 使用了接近 15M 条数据, 并针对推理能力在中文 benchmark 上进行了评测, 希望能够为中文自然语言处理领域提供具有泛用性的通用基础工具.

我们的 Panda 模型以及训练涉及的中文数据集将以开源形式发布,任何人都可以免费使用并参与开发。我们欢迎来自全球的开发者一起参与到该项目中,共同推动中文自然语言处理技术的发展。我们后续会进一步完善针对中文语言模型基础能力的评测,同时开放更大规模的模型。

目录

  1. 最近更新

  2. 项目内容

  3. 实验测评

  4. 如何参与

  5. 鸣谢

最近更新

发布了大模型 PandaFlan-LLaMA 的 technical report!

论文链接: https://arxiv.org/pdf/2305.03025

如何引用我们:

@article{jiao2023panda,
  title={Panda {LLM}: Training Data and Evaluation for Open-Sourced Chinese Instruction-Following Large Language Models},
  author={Jiao, Fangkai and Ding, Bosheng and Luo, Tianze and Mo, Zhanfeng},
  journal={arXiv preprint arXiv:2305.03025},
  year={2023},
  url={https://arxiv.org/pdf/2305.03025.pdf}
}

项目内容

Panda 模型

详见 Panda/train,我们集成了 Deepspeed 加速框架,支持模型 pretrain,finetune,lora 以及 distillation (后续推出).

我们目前开放基于中英文语料库的训练与调优模型:Panda-7B 和 Panda-13B。

模型版本:

模型名称 模型大小 下载链接
Panda-7B 7B https://huggingface.co/chitanda/llama-panda-zh-7b-delta
Panda-Instruct-7B 7B https://huggingface.co/chitanda/llama-panda-zh-coig-7b-delta
Panda-13B 13B Coming soon
Panda-Instruct-13B 13B
Flan-LLaMA-7B 7B

Notes:

  1. 因为 LLaMA 权重 License 的存在,我们无法直接发布完整的模型权重,因此我们放出了训练后模型的权重与原始 LLaMA 权重的差,保证能够获得 LLaMA 权重的用户能够同样使用这些模型。我们提供了一个脚本来帮助转换。
  2. 由于模型训练期间使用了 bfloat16,在非安培架构的显卡上直接使用 fp16 格式进行微调时可能会出现无法收敛的情况,需要额外注意。

数据

模型数据现阶段均采用开源的公开中英文语料数据集:

中文 instruction-tuning

Notes

  1. 对于除维基百科和新闻语料外的其他语料,用 Conditional Generation 的方式优化,即 instruction 部分与输入部分不计算损失,只计算输出部分的损失。除 COIG 外的语料中的 instruction 为固定模板。
  2. 一开始我们将以上所有语料混合在一起进行训练,但发现最终的模型在 instruction following 方面的能力并不好,因此我们决定单独在 COIG 数据集上进行指令微调,并得到最终模型。推测原因可能是 COIG 在整体训练数据中的占比过小,可选的解决方案是对 COIG 加大采样的概率。

英文 instruction-tuning

为了提升模型的基础能力,我们选择使用 FLAN Collection 进行训练。由于 FLAN collection 语料规模过于庞大,我们按比例抽取了 7M 的语料用于训练,且最终性能仍远落后于 FLAN-T5-3B,因此目前我们决定暂时停止该方向的训练,并思考其他可能的构建较小的同时具有较强基础能力的语言模型的方向。

训练框架

Deepspeed Zero-1 + Gradient Checkpointing

模型训练

对应模型的训练时超参数见:

# LLaMA-7b pretrain on general Chinese Corpus
conf/llama/zh/llama_7b_zh_instruct_v1_0_ds.yaml

# LLaMA-7b instruction tuning on COIG
conf/llama/zh/llama_7b_zh_instruct_coig_sft_v1_0_ds.yaml

# LLaMA-13b pretrain on general Chinese Corpus (Ongoing)
conf/llama/zh/llama_13b_zh_instruct_v1_0_ds.yaml

Command:

HYDRA_FULL_ERROR=1 deepspeed --include localhost:0,1,2,3,4,5,6,7 trainer_base_ds_mul.py -cp conf/llama/zh -cn <file name of yaml config> 

我们的训练使用了 2 * 8 * A100 80G GPU。如使用更少的显卡,请相应的调整 gradient_accumulation_stepsper_gpu_train_batch_size.

实验测评

基础能力测评

测评数据集

复杂推理

其他能力

测试进行中(欢迎数据集PR)

Baseline

Results

LogiQA-v2​ C3-d​ C3-m​
BELLE-LLaMA-Ext-7B​ 26.41​ 29.52​ ​28.87​
Linly-Chinese-LLaMA-7b-hf​ 25.91​ 32.28​ 34.52​
Panda-7B​ (ours) 27.41​ 43.02​ 43.66​
Panda-Instruct-7B 3k steps​ (ours) 26.22​ 39.05​ 42.11​
Panda-Instruct-7B 6k steps​ (ours) 30.30​ 47.14​ ​56.94​
Panda-Instruct-7B 9k steps (ours)​ 31.93 47.30 57.04

Notes

  1. 由于模型对 instruction 的敏感性不同测评结果可能会有较大波动,测评结果仅供参考,并且可能无法完全反应模型之间的优劣。我们对于所有模型采用了最简单的 instruction(可以在对应数据集配置文件中找到)。

  2. Linly-Chinese 在训练时可能在 instruction 中添加了额外的前缀(如用 assistant 和 user 去区分对话中的角色),在测试时对齐这一点可能会进一步提升性能,但我们目前为了统一instruction 并没有对齐。后续我们考虑收集多样化的 instruction 进行评测并汇报平均值。

如何参与

开发者可以通过贡献有用的代码、数据、论文和计算资源等方式成为贡献者。

代码:包括算法实现、训练优化、推理优化和模型部署。

数据:每个研究领域和版本迭代都需要高质量的数据,包括指令-答案、预训练、多模态、多语言和用户反馈等数据。

论文:我们将维护一个 Panda 论文列表,并使用 Panda 作为优化、完全测试和显著改进的学术论文的基础模型。

计算资源:我们希望通过协调一些开发者的冗余计算能力或从大学/企业获得非营利性赞助来帮助加速模型迭代速度。

鸣谢

我们非常感谢国内的一些大企业支持,为我们提供大量 GPU 来支持我们的模型训练。这些 GPU 的高性能计算能力为我们在 Panda 模型的研究和开发工作提供了强大的支持。

开发者

Fangkai Jiao
Bosheng Ding
Tianze Luo
Zhanfeng Mo
Chengwei Qin

项目总负责人

Bosheng Ding

联系我们

dandelionsllm@gmail.com

项目总部

新加坡

免责声明

我们要求开发者不得将我们开源的代码、数据、模型及后续用此项目生成的衍生物用于任何商业以及为社会带来危害的用途。由 Panda 和 Flan-LLaMA 任何模型生成的内容均受随机性和不可控因素的影响,本项目无法保证其准确性。本项目不承担任何关于模型输出内容的法律责任,也不对使用相关资源和输出结果可能导致的任何损失承担责任。

Star History

Star History Chart