Firefly-LLaMA2-Chinese: 低资源高效的开源中文大语言模型
在人工智能和自然语言处理领域,大语言模型(Large Language Models, LLMs)的发展日新月异。近期,一个名为Firefly-LLaMA2-Chinese的开源项目引起了广泛关注。这个项目专注于低资源增量预训练,旨在为中文用户提供高效、强大的大语言模型。本文将深入介绍Firefly-LLaMA2-Chinese项目的背景、特点、评测结果以及使用方法。
项目背景与简介
Firefly-LLaMA2-Chinese项目由YeungNLP团队开发,是Firefly项目的延续。该项目的核心目标是通过低资源增量预训练的方式,为用户提供高质量的中英双语大语言模型。
项目的主要特点包括:
- 支持对Baichuan2、Qwen、InternLM等原生中文模型进行增量预训练
- 可对LLaMA2、Falcon等英文模型进行中文词表扩充,然后进行增量预训练
- 开源了Firefly-LLaMA2-Chinese模型,包括7B和13B的Base和Chat版本
- 使用22GB中英文预训练语料对模型进行增量预训练
- 利用大规模中英文多轮对话指令对模型进行训练
- 在多个榜单评测和人工评测中表现优异
模型训练与评测
训练过程
Firefly-LLaMA2-Chinese的训练过程主要包括以下步骤:
-
中文词表扩充: 对LLaMA2进行中文词表扩充,提高模型在中文上的编解码效率。使用Chinese-LLaMA-Alpaca-2项目扩充后的词表。
-
增量预训练: 使用22GB中英文语料,对扩充词表后的模型进行增量预训练,采用自回归任务。
-
指令微调: 使用两百多万条中英文多轮对话指令数据,对增量预训练模型进行指令微调。
值得注意的是,整个训练过程仅使用了最多4V100 GPU,相比其他类似项目(如Ziya的160A100, Linly的32*A100),Firefly-LLaMA2-Chinese的训练资源需求大大降低,体现了其低资源高效的特点。
评测结果
Firefly-LLaMA2-Chinese在多个权威榜单和人工评测中均表现优异:
-
Open LLM Leaderboard:
- Firefly-LLaMA2-13B-Chat模型在Average指标上达到59.05分
- 超越了chinese-alpaca-2-13b、openbuddy-llama2-13b-v8.1等多个知名模型
-
CMMLU榜单:
- Firefly-LLaMA2-13B-Chat模型得分39.47
- Firefly-Baichuan2-13B模型得分高达56.83,在OpenCompass的CMMLU榜单上位列第8
-
人工评测:
- 构建了包含13种评测任务的评测集,每种任务10条数据,共130条
- 与Linly-LLaMA2-13B对比: Firefly-LLaMA2-13B-Chat以33.08%获胜、60.77%平局、6.15%失败的成绩胜出
- 与Llama2-Chat-13B对比: Firefly-LLaMA2-13B-Chat以66.15%获胜、30.77%平局、3.08%失败的成绩大幅领先
这些评测结果充分证明了Firefly-LLaMA2-Chinese模型的强大性能和广泛适用性。
技术细节与创新
Firefly-LLaMA2-Chinese项目在技术实现上有诸多亮点:
-
词表扩充优化:
- 扩充后的词表大大提高了模型对中文的编解码效率
- 在CNews数据集上测试,token数量由2.98亿减少为1.37亿,长度减少约54.11%
- 不仅提高了训练和推理效率,还变相提高了模型的最大长度
-
数据处理:
- 预训练数据集命名为firefly-pretrain-dataset,包含CLUE、ThucNews、CNews、COIG、维基百科等多个开源数据集
- 指令微调数据主要包括UltraChat、Moss、school math等,经过清洗、过滤、采样、合并等处理
-
训练参数:
- 两个阶段的训练长度均为1024
- LoRA rank=64, LoRA alpha=16
- 7B与13B模型,最终参与训练的参数量分别约为612.9M和816.6M
-
训练loss曲线:
- 展现出良好的收敛性
- 7B和13B模型分别对应粉色和橙色曲线
使用指南
对于有兴趣使用或进一步开发Firefly-LLaMA2-Chinese的研究者和开发者,项目提供了详细的使用指南:
-
数据格式与处理:
- 支持jsonl、csv、txt三种格式的预训练数据
- 使用滑动窗口形式截取训练数据,可自定义窗口长度和滑动步长
- 提供数据缓存机制,加速后续训练
-
增量预训练:
- 提供了全量参数微调的命令和参数配置说明
- 可根据需求调整学习率、batch size、训练轮次等参数
-
指令微调:
- 使用Firefly项目的QLoRA流程代码进行指令微调
-
模型推理:
- 提供了多种推理方式,包括命令行交互、Web UI demo等
- 支持多种推理加速技术,如int8量化、FastChat等
结语
Firefly-LLaMA2-Chinese项目为中文自然语言处理领域带来了一个强大而高效的开源工具。通过低资源增量预训练的方式,该项目不仅实现了出色的模型性能,还大大降低了训练成本,使得更多研究者和开发者能够参与到大语言模型的研究与应用中来。
随着项目的不断发展和完善,我们可以期待Firefly-LLaMA2-Chinese在更多领域发挥其潜力,为中文自然语言处理技术的进步做出更大贡献。无论是学术研究还是产业应用,这个开源项目都将是一个值得关注和利用的宝贵资源。
欢迎感兴趣的读者访问Firefly-LLaMA2-Chinese的GitHub仓库以获取更多详细信息,参与项目开发,或在自己的研究和应用中使用这一强大的中文大语言模型。