Firefly-LLaMA2-Chinese: 开源中文LLaMA2大模型
欢迎加入Firefly大模型技术交流群,关注我们的公众号,点击加群按钮即可。
欢迎关注我们的知乎进行交流讨论:红雨瓢泼
目录
项目简介
技术文章:QLoRA增量预训练与指令微调,及汉化Llama2的实践
本项目与Firefly一脉相承,专注于低资源增量预训练,既支持对Baichuan2、Qwen、InternLM等原生中文模型进行增量预训练,也可对LLaMA2、Falcon等英文模型进行中文词表扩充,然后进行增量预训练。
我们开源了Firefly-LLaMA2-Chinese模型,这是中英双语系列模型。我们以LLaMA2🦙为基座模型,对LLaMA2进行中文词表扩充,使用22GB中英文预训练语料对其进行增量预训练。 最后使用大规模中英文多轮对话指令对模型进行训练。我们对模型进行了榜单评测和人工评测,与现有的开源工作相比,具有不错的竞争力。
在Open LLM Leaderboard和CMMLU上,我们的模型超越了Linly、Yayi、FlagAlpha等模型; 在Open LLM Leaderboard上超越Ziya,在CMMLU上比Ziya略低0.43分。在人工测评中,我们的模型以33.08%获胜、60.77%平局、6.15%失败的成绩,超越Linly。 我们还开源了firelfy-baichuan2-13b模型,在OpenCompass的CMMLU榜单上以56.83的分数,位列第8,比百川官方模型略低1.57分。
更重要的是,在整个增量预训练和指令微调阶段,我们最多仅使用了4*V100的GPU,训练更加低资源高效。相较于Ziya的160*A100,Linly的32*A100,Chinese-LLaMA-Alpaca的48*A40,我们所使用的训练资源少得多。
授人以鱼🐟,不如授人以渔🎣,我们不仅开源了模型权重,也开源了项目全流程的训练代码、训练数据,以及训练细节。
主要工作:
- 📗 对LLaMA2进行中文词表扩充,提高编解码效率。与原始LLaMA2相对,中文序列长度减少约54.11%,变相提升了模型在中文域的最大长度。
- 📗 使用大规模中英文语料进行增量预训练,然后进行多轮指令微调。开源7B和13B的Base和Chat的模型权重。
- 📗 收集、整理并开源训练数据,包括22GB中英文预训练语料,以及多轮指令数据。
- 📗 开源增量预训练、指令微调等全流程代码。支持在主流的开源模型上进行增量预训练和指令微调,如Baichuan2、Baichuan、Qwen、InternLM、LLaMA2、LLaMA、Falcon等。
- 📗 对模型进行开源榜单评测和人工评测。构建人工评测集,包含13种评测任务,对模型进行人工评测。
近期我们将会产出技术报告,敬请期待,欢迎持续关注我们的工作。
模型列表 & 数据列表
我们开源了7B和13B的Base与Chat模型。Base模型是基于LLaMA2扩充中文词表后增量预训练得到的模型,Chat模型是在Base模型的基础上进行多轮对话指令微调。
为了探究基座模型对指令微调的影响,我们也微调了baichuan2-base模型,获得firefly-baichuan2-13b,具有不错的效果。更多中文微调,可查看Firefly项目。
模型 | 类型 | 训练任务 | 训练长度 |
---|---|---|---|
🤗Firefly-LLaMA2-7B-Base | 基座模型 | CLM | 1024 |
🤗Firefly-LLaMA2-13B-Base | 基座模型 | CLM | 1024 |
🤗Firefly-LLaMA2-7B-Chat | 指令模型 | 多轮指令微调 | 1024 |
🤗Firefly-LLaMA2-13B-Chat | 指令模型 | 多轮指令微调 | 1024 |
🤗Firefly-Baichuan2-13B | 指令模型 | 多轮指令微调 | 1024 |
🤗Firefly-LLaMA2-7B-Chat-QLoRA | 指令模型 | 多轮指令微调 | 1024 |
🤗Firefly-LLaMA2-13B-Chat-QLoRA | 指令模型 | 多轮指令微调 | 1024 |
本项目使用的数据如下表,其中firefly-pretrain-dataset是我们增量预训练阶段所使用的数据:
数据集 | 介绍 |
---|---|
firefly-pretrain-dataset | Firefly项目整理和使用的22GB预训练数据,主要包含CLUE、ThucNews、CNews、COIG、维基百科等开源数据集,以及我们收集的古诗词、散文、文言文等。 |
moss-003-sft-data | 由复旦大学MOSS团队开源的中英文多轮对话数据,包含100万+数据 |
ultrachat | 由清华大学开源的英文多轮对话数据,包含140万+数据 |
school_math_0.25M | 由BELLE项目组开源的数学运算指令数据,包含25万条数据。 |
模型评测
我们在CMMLU和Open LLM Leaderboard上分别对模型的中文和英文能力进行了客观评测,并且在我们构建的人工评测集上进行了人工评测。 Open LLM Leaderboard和CMMLU榜单倾向于评测大模型的做题能力,不够全面,所以我们进一步进行了人工评测。
Open LLM Leaderboard
模型 | Average | ARC | HellaSwag | MMLU | TruthfulQA |
---|---|---|---|---|---|
chinese-alpaca-2-13b | 60.94 | 58.7 | 79.74 | 55.1 | 50.22 |
openbuddy-llama2-13b-v8.1 | 60.47 | 55.97 | 79.79 | 54.95 | 51.16 |
flagalpha-llama2-13b-chat | 60.41 | 55.97 | 82.05 | 54.74 | 48.9 |
llama-2-13b-chat | 59.93 | 59.04 | 81.94 | 54.64 | 44.12 |
vicuna-13b-v1.1 | 59.22 | 52.73 | 80.13 | 51.94 | 52.08 |
guanaco-13b | 59.18 | 57.85 | 83.84 | 48.28 | 46.73 |
firefly-llama2-13b-chat | 59.05 | 57.51 | 77.94 | 52.56 | 48.18 |
llama-2-7b-chat | 56.34 | 52.9 | 78.55 | 48.32 | 45.57 |
flagalpha-llama2-7b-chat | 56.13 | 52.39 | 77.52 | 47.72 | 46.87 |
yayi-7b-llama2 | 54.45 | 55.03 | 77.84 | 40.92 | 44.02 |
chinese-alpaca-2-7b | 54.33 | 49.57 | 72.62 | 46.5 | 48.63 |
firefly-llama2-7b-chat | 54.19 | 51.19 | 73.32 | 45.47 | 46.78 |
yayi-13b-llama2 | 51.06 | 48.55 | 74.82 | 38.68 | 42.19 |
linly-llama2-7b | 49.06 | 48.04 | 73.25 | 35.04 | 39.92 |
linly-llama2-13b | 38.22 | 33.62 | 39.59 | 33.97 | 45.71 |
ziya-llama-13b* | - | - | 76.9 | 50.3 | - |
*表示分数来源于OpenCompass官方,而非Open LLM Leaderboard官方数据
Conclusion:我们的模型保留了llama2模型优秀的英文能力,在Open LLM Leaderboard上,与llama2-chat、vicuna-v1.1、guanaco等模型的表现及其接近。
CMMLU榜单
模型 | CMMLU | 训练细节 |
---|---|---|
firefly-baichuan2-13b | 56.83 | 4*V100,QLoRA,指令微调 |
chinese-alpaca-2-13b | 45.17 | 48*A40,LoRA,词表扩充 + 增量预训练 + 指令微调 |
openbuddy-llama2-13b-v8.1 | 41.66 | 全量参数训练,词表扩充 + 指令微调 |
belle-llama2-13b | 41.57 | 8*A100,全量参数训练,指令微调 |
chinese-alpaca-2-7b | 40.86 | 48*A40,LoRA,词表扩充 + 增量预训练 + 指令微调 |
ziya-llama-13b* | 39.9 | 160*A100,全量参数训练,词表扩充 + 增量预训练 + 指令微调 + RLHF |
chinese-alpaca-plus-13b* | 39.9 | 48*A40,LoRA,词表扩充 + 增量预训练 + 指令微调 |
firefly-llama2-13b-chat | 39.47 | 4*V100,QLoRA,词表扩充 + 增量预训练 + 指令微调 |
flagalpha-llama2-13b-chat | 39.20 | LoRA,指令微调 |
llama-2-13b-chat | 38.65 | 全量参数训练,预训练 + 指令微调 + RLHF(全流程为英文) |
firefly-llama2-7b-chat | 34.03 | 4*V100,QLoRA,词表扩充 + 增量预训练 + 指令微调 |
llama-2-7b-chat | 33.76 | 全量参数训练,预训练 + 指令微调 + RLHF(全流程为英文) |
flagalpha-llama2-7b-chat | 32.61 | LoRA,指令微调 |
chinese-alpaca-plus-7b* | 32.6 | 48*A40,LoRA,词表扩充 + 增量预训练 + 指令微调 |
yayi-13b-llama2 | 30.73 | 指令微调 |