Home

Awesome

🇨🇳中文 | 🌐English | 📖文档/Docs | ❓提问/Issues | 💬讨论/Discussions | ⚔️竞技场/Arena

<p align="center"> <br> <img src="./pics/banner.png" width="800"/> <br> </p> <p align="center"> <img alt="GitHub" src="https://img.shields.io/github/license/ymcui/Chinese-LLaMA-Alpaca-3.svg?color=blue&style=flat-square"> <img alt="GitHub release (latest by date)" src="https://img.shields.io/github/v/release/ymcui/Chinese-LLaMA-Alpaca-3"> <img alt="GitHub top language" src="https://img.shields.io/github/languages/top/ymcui/Chinese-LLaMA-Alpaca-3"> <a href="https://app.codacy.com/gh/ymcui/Chinese-LLaMA-Alpaca-3/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade"><img src="https://app.codacy.com/project/badge/Grade/142d688425494644b5b156068f55370d"/></a> </p> <p align="center"> <a href="https://huggingface.co/hfl">🤗 Hugging Face</a> • <a href="https://modelscope.cn/profile/ChineseAlpacaGroup">🤖 ModelScope</a> • <a href="https://sota.jiqizhixin.com/project/chinese-llama-alpaca-3">🐿️ 机器之心SOTA!模型</a> • <a href="https://wisemodel.cn/models/ChineseAlpacaGroup/llama-3-chinese-8b-instruct-v3">🟣 wisemodel</a> • <a href="https://huggingface.co/spaces/hfl-rc/llama-3-chinese-8b-instruct-demo">🤗 在线Demo</a> </p>

本项目基于Meta最新发布的新一代开源大模型Llama-3开发,是Chinese-LLaMA-Alpaca开源大模型相关系列项目(一期二期)的第三期。本项目开源了中文Llama-3基座模型和中文Llama-3-Instruct指令精调大模型。这些模型在原版Llama-3的基础上使用了大规模中文数据进行增量预训练,并且使用精选指令数据进行精调,进一步提升了中文基础语义和指令理解能力,相比二代相关模型获得了显著性能提升。

主要内容


中文Mixtral大模型 | 中文LLaMA-2&Alpaca-2大模型 | 中文LLaMA&Alpaca大模型 | 多模态中文LLaMA&Alpaca大模型 | 多模态VLE | 中文MiniRBT | 中文LERT | 中英文PERT | 中文MacBERT | 中文ELECTRA | 中文XLNet | 中文BERT | 知识蒸馏工具TextBrewer | 模型裁剪工具TextPruner | 蒸馏裁剪一体化GRAIN

新闻

[2024/05/30] 发布Llama-3-Chinese-8B-Instruct-v3版指令模型,相比v1/v2在下游任务上获得显著提升。详情查看:📚v3.0版本发布日志

[2024/05/08] 发布Llama-3-Chinese-8B-Instruct-v2版指令模型,直接采用500万条指令数据在 Meta-Llama-3-8B-Instruct 上进行精调。详情查看:📚v2.0版本发布日志

[2024/05/07] 添加预训练脚本、指令精调脚本。详情查看:📚v1.1版本发布日志

[2024/04/30] 发布Llama-3-Chinese-8B基座模型和Llama-3-Chinese-8B-Instruct指令模型。详情查看:📚v1.0版本发布日志

[2024/04/19] 🚀 正式启动Chinese-LLaMA-Alpaca-3项目

内容导引

章节描述
💁🏻‍♂️模型简介简要介绍本项目相关模型的技术特点
⏬模型下载中文Llama-3大模型下载地址
💻推理与部署介绍了如何对模型进行量化并使用个人电脑部署并体验大模型
💯模型效果介绍了模型在部分任务上的效果
📝训练与精调介绍了如何训练和精调中文Llama-3大模型
❓常见问题一些常见问题的回复

模型简介

本项目推出了基于Meta Llama-3的中文开源大模型Llama-3-Chinese以及Llama-3-Chinese-Instruct。主要特点如下:

📖 使用原版Llama-3词表

🚄 长上下文长度由二代4K扩展至8K

⚡ 使用分组查询注意力机制

🗒 全新的指令模板

模型下载

模型选择指引

以下是本项目的模型对比以及建议使用场景。如需聊天交互,请选择Instruct版。

对比项Llama-3-Chinese-8BLlama-3-Chinese-8B-Instruct
模型类型基座模型指令/Chat模型(类ChatGPT)
模型大小8B8B
训练类型Causal-LM (CLM)指令精调
训练方式LoRA + 全量emb/lm-headLoRA + 全量emb/lm-head
初始化模型原版Meta-Llama-3-8Bv1: Llama-3-Chinese-8B<br/>v2: 原版Meta-Llama-3-8B-Instruct<br/>v3: mix of inst/inst-v2/inst-meta
训练语料无标注通用语料(约120GB)有标注指令数据(约500万条)
词表大小原版词表(128,256)原版词表(128,256)
支持上下文长度8K8K
输入模板不需要需要套用Llama-3-Instruct模板
适用场景文本续写:给定上文,让模型生成下文指令理解:问答、写作、聊天、交互等

以下是Instruct版本之间的对比,如无明确偏好,请优先使用Instruct-v3版本。

对比项Instruct-v1Instruct-v2Instruct-v3
发布时间2024/4/302024/5/82024/5/30
基模型原版Meta-Llama-3-8B原版Meta-Llama-3-8B-Instruct(见训练方式)
训练方式第一阶段:120G中文语料预训练<br/>第二阶段:500万指令数据精调直接使用500万指令数据精调使用inst-v1, inst-v2, inst-meta进行模型融合,并经过少量指令数据(~5K条)的精调得到
中文能力<sup>[1]</sup>49.3 / 51.551.6 / 51.655.2 / 54.8 👍🏻
英文能力<sup>[1]</sup>63.2166.6866.81 👍🏻
长文本能力<sup>[1]</sup>29.646.4 👍🏻40.5
大模型竞技场胜率 / Elo评分<sup>[2]</sup>49.4% / 143066.1% / 155983.6% / 1627 👍🏻

[!NOTE] [1] 中文能力效果来自C-Eval (valid);英文能力效果来自Open LLM Leaderboard (avg);长文本能力来自LongBench (avg);详细效果请参阅💯模型效果一节。 [2] 大模型竞技场效果获取时间:2024/5/30,仅供参考。

下载地址

模型名称完整版LoRA版GGUF版
Llama-3-Chinese-8B-Instruct-v3<br/>(指令模型)[🤗Hugging Face]<br/> [🤖ModelScope]<br/>[🟣wisemodel]N/A[🤗Hugging Face]<br/> [🤖ModelScope]
Llama-3-Chinese-8B-Instruct-v2<br/>(指令模型)[🤗Hugging Face]<br/> [🤖ModelScope]<br/>[🟣wisemodel][🤗Hugging Face]<br/> [🤖ModelScope]<br/>[🟣wisemodel][🤗Hugging Face]<br/> [🤖ModelScope]
Llama-3-Chinese-8B-Instruct<br/>(指令模型)[🤗Hugging Face]<br/> [🤖ModelScope]<br/>[🟣wisemodel][🤗Hugging Face]<br/> [🤖ModelScope]<br/>[🟣wisemodel][🤗Hugging Face]<br/> [🤖ModelScope]
Llama-3-Chinese-8B<br/>(基座模型)[🤗Hugging Face]<br/> [🤖ModelScope]<br/>[🟣wisemodel][🤗Hugging Face]<br/> [🤖ModelScope]<br/>[🟣wisemodel][🤗Hugging Face]<br/> [🤖ModelScope]

模型类型说明:

[!NOTE] 若无法访问HF,可考虑一些镜像站点(如hf-mirror.com),具体方法请自行查找解决。

推理与部署

本项目中的相关模型主要支持以下量化、推理和部署方式,具体内容请参考对应教程。

工具特点CPUGPU量化GUIAPIvLLM教程
llama.cpp丰富的GGUF量化选项和高效本地推理[link]
🤗transformers原生transformers推理接口[link]
仿OpenAI API调用仿OpenAI API接口的服务器Demo[link]
text-generation-webui前端Web UI界面的部署方式[link]
LM Studio多平台聊天软件(带界面)[link]
Ollama本地运行大模型推理[link]

模型效果

为了评测相关模型的效果,本项目分别进行了生成效果评测和客观效果评测(NLU类),从不同角度对大模型进行评估。推荐用户在自己关注的任务上进行测试,选择适配相关任务的模型。

生成效果评测

客观效果评测

C-Eval

C-Eval是一个全面的中文基础模型评估套件,其中验证集和测试集分别包含1.3K和12.3K个选择题,涵盖52个学科。C-Eval推理代码请参考本项目:📖GitHub Wiki

ModelsValid (0-shot)Valid (5-shot)Test (0-shot)Test (5-shot)
Llama-3-Chinese-8B-Instruct-v355.254.852.152.4
Llama-3-Chinese-8B-Instruct-v251.651.649.749.8
Llama-3-Chinese-8B-Instruct49.351.548.349.4
Llama-3-Chinese-8B47.050.546.149.0
Meta-Llama-3-8B-Instruct51.351.349.551.0
Meta-Llama-3-8B49.351.246.149.4
Chinese-Mixtral-Instruct (8x7B)51.755.050.051.5
Chinese-Mixtral (8x7B)45.854.243.149.1
Chinese-Alpaca-2-13B44.345.942.644.0
Chinese-LLaMA-2-13B40.642.738.041.6

CMMLU

CMMLU是另一个综合性中文评测数据集,专门用于评估语言模型在中文语境下的知识和推理能力,涵盖了从基础学科到高级专业水平的67个主题,共计11.5K个选择题。CMMLU推理代码请参考本项目:📖GitHub Wiki

ModelsTest (0-shot)Test (5-shot)
Llama-3-Chinese-8B-Instruct-v354.454.8
Llama-3-Chinese-8B-Instruct-v251.852.4
Llama-3-Chinese-8B-Instruct49.751.5
Llama-3-Chinese-8B48.050.9
Meta-Llama-3-8B-Instruct53.053.5
Meta-Llama-3-8B47.850.8
Chinese-Mixtral-Instruct (8x7B)50.053.0
Chinese-Mixtral (8x7B)42.551.0
Chinese-Alpaca-2-13B43.245.5
Chinese-LLaMA-2-13B38.942.5

MMLU

MMLU是一个用于评测自然语言理解能力的英文评测数据集,是当今用于评测大模型能力的主要数据集之一,其中验证集和测试集分别包含1.5K和14.1K个选择题,涵盖57个学科。MMLU推理代码请参考本项目:📖GitHub Wiki

ModelsValid (0-shot)Valid (5-shot)Test (0-shot)Test (5-shot)
Llama-3-Chinese-8B-Instruct-v364.765.064.865.9
Llama-3-Chinese-8B-Instruct-v262.163.962.663.7
Llama-3-Chinese-8B-Instruct60.161.359.861.8
Llama-3-Chinese-8B55.558.557.361.1
Meta-Llama-3-8B-Instruct63.464.865.166.4
Meta-Llama-3-8B58.662.560.565.0
Chinese-Mixtral-Instruct (8x7B)65.169.667.569.8
Chinese-Mixtral (8x7B)63.267.165.568.3
Chinese-Alpaca-2-13B49.653.250.953.5
Chinese-LLaMA-2-13B46.850.046.651.8

LongBench

LongBench是一个大模型长文本理解能力的评测基准,由6大类、20个不同的任务组成,多数任务的平均长度在5K-15K之间,共包含约4.75K条测试数据。以下是本项目模型在该中文任务(含代码任务)上的评测效果。LongBench推理代码请参考本项目:📖GitHub Wiki

Models单文档QA多文档QA摘要FS学习代码合成平均
Llama-3-Chinese-8B-Instruct-v320.328.824.528.159.491.940.5
Llama-3-Chinese-8B-Instruct-v257.327.113.930.360.689.546.4
Llama-3-Chinese-8B-Instruct44.124.012.433.551.811.529.6
Llama-3-Chinese-8B16.419.34.328.714.34.614.6
Meta-Llama-3-8B-Instruct55.115.10.124.051.394.540.0
Meta-Llama-3-8B21.222.92.735.865.940.831.6
Chinese-Mixtral-Instruct (8x7B)50.334.216.442.056.189.548.1
Chinese-Mixtral (8x7B)32.023.70.442.527.414.023.3
Chinese-Alpaca-2-13B-16K47.926.713.022.346.621.529.7
Chinese-LLaMA-2-13B-16K36.717.73.129.813.83.017.3
Chinese-Alpaca-2-7B-64K44.728.114.439.044.65.029.3
Chinese-LLaMA-2-7B-64K27.216.46.533.07.85.016.0

Open LLM Leaderboard

Open LLM Leaderboard是由HuggingFaceH4团队发起的大模型综合能力评测基准(英文),包含ARC、HellaSwag、MMLU、TruthfulQA、Winograde、GSM8K等6个单项测试。以下是本项目模型在该榜单上的评测效果。

ModelsARCHellaSMMLUTQAWinoGGSM8K平均
Llama-3-Chinese-8B-Instruct-v363.4080.5167.9053.5776.2459.2166.81
Llama-3-Chinese-8B-Instruct-v262.6379.7266.4853.9376.7260.5866.68
Llama-3-Chinese-8B-Instruct61.2680.2463.1055.1575.0644.4363.21
Llama-3-Chinese-8B55.8879.5363.7041.1477.0337.9859.21
Meta-Llama-3-8B-Instruct60.7578.5567.0751.6574.5168.6966.87
Meta-Llama-3-8B59.4782.0966.6943.9077.3545.7962.55
Chinese-Mixtral-Instruct (8x7B)67.7585.6771.5357.4683.1155.6570.19
Chinese-Mixtral (8x7B)67.5885.3470.3846.8682.000.0058.69

注:MMLU结果与不同的主要原因是评测脚本不同导致。

量化效果评测

在llama.cpp下,测试了Llama-3-Chinese-8B(基座模型)的量化性能,如下表所示。实测速度相比二代Llama-2-7B略慢。

F16Q8_0Q6_KQ5_KQ5_0Q4_KQ4_0Q3_KQ2_K
Size (GB)14.977.956.145.345.214.584.343.742.96
BPW16.008.506.565.705.574.894.644.003.16
PPL5.1305.1355.1485.1815.2225.3125.5495.75511.859
PP Speed5.996.107.177.346.656.386.006.856.43
TG Speed44.0326.0821.6122.3320.9318.9317.0922.5019.21

[!NOTE]

训练与精调

手动训练与精调

指令模板

本项目Llama-3-Chinese-Instruct沿用原版Llama-3-Instruct的指令模板。以下是一组对话示例:

<|begin_of_text|><|start_header_id|>system<|end_header_id|>

You are a helpful assistant. 你是一个乐于助人的助手。<|eot_id|><|start_header_id|>user<|end_header_id|>

你好<|eot_id|><|start_header_id|>assistant<|end_header_id|>

你好!有什么可以帮助你的吗?<|eot_id|>

指令数据

以下是本项目开源的部分指令数据。详情请查看:📚 指令数据

数据名称说明数量
alpaca_zh_51k使用gpt-3.5翻译的Alpaca数据51K
stem_zh_instruction使用gpt-3.5爬取的STEM数据,包含物理、化学、医学、生物学、地球科学256K
ruozhiba_gpt4使用GPT-4o和GPT-4T获取的ruozhiba问答数据2449

常见问题

请在提交Issue前务必先查看FAQ中是否已存在解决方案。具体问题和解答请参考本项目 📖GitHub Wiki

问题1:为什么没有像一期、二期项目一样做词表扩充?
问题2:会有70B版本发布吗?
问题3:为什么指令模型不叫Alpaca了?
问题4:本仓库模型能否商用?
问题5:为什么不对模型做全量预训练而是用LoRA?
问题6:为什么Llama-3-Chinese对话效果不好?
问题7:为什么指令模型会回复说自己是ChatGPT?
问题8:Instruct模型的v1(原版)和v2有什么区别?

引用

如果您使用了本项目的相关资源,请参考引用本项目的技术报告:https://arxiv.org/abs/2304.08177

@article{chinese-llama-alpaca,
    title={Efficient and Effective Text Encoding for Chinese LLaMA and Alpaca},
    author={Cui, Yiming and Yang, Ziqing and Yao, Xin},
    journal={arXiv preprint arXiv:2304.08177},
    url={https://arxiv.org/abs/2304.08177},
    year={2023}
}

针对是否扩充词表的分析,可参考引用:https://arxiv.org/abs/2403.01851

@article{chinese-mixtral,
      title={Rethinking LLM Language Adaptation: A Case Study on Chinese Mixtral}, 
      author={Cui, Yiming and Yao, Xin},
      journal={arXiv preprint arXiv:2403.01851},
      url={https://arxiv.org/abs/2403.01851},
      year={2024}
}

免责声明

本项目基于由Meta发布的Llama-3模型进行开发,使用过程中请严格遵守Llama-3的开源许可协议。如果涉及使用第三方代码,请务必遵从相关的开源许可协议。模型生成的内容可能会因为计算方法、随机因素以及量化精度损失等影响其准确性,因此,本项目不对模型输出的准确性提供任何保证,也不会对任何因使用相关资源和输出结果产生的损失承担责任。如果将本项目的相关模型用于商业用途,开发者应遵守当地的法律法规,确保模型输出内容的合规性,本项目不对任何由此衍生的产品或服务承担责任。

问题反馈

如有疑问,请在GitHub Issue中提交。礼貌地提出问题,构建和谐的讨论社区。

Footnotes

  1. Cui and Yao, 2024. Rethinking LLM Language Adaptation: A Case Study on Chinese Mixtral