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-Mixtral.svg?color=blue&style=flat-square"> <img alt="GitHub release (latest by date)" src="https://img.shields.io/github/v/release/ymcui/Chinese-Mixtral"> <img alt="GitHub top language" src="https://img.shields.io/github/languages/top/ymcui/Chinese-Mixtral"> <a href="https://app.codacy.com/gh/ymcui/Chinese-Mixtral/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>

本项目基于Mistral.ai发布的Mixtral模型进行开发,该模型使用了稀疏混合专家模型(Sparse MoE)架构。本项目利用大规模中文无标注数据进行了中文增量训练,得到了中文Mixtral基础模型,并且进一步通过指令精调,得到了中文Mixtral-Instruct指令模型。该模型原生支持32K上下文(实测可达128K),能够有效地处理长文本,同时在数学推理、代码生成等方面获得了显著性能提升。使用llama.cpp进行量化推理时,最低只需16G内存(或显存)。

技术报告[Cui and Yao, 2024] Rethinking LLM Language Adaptation: A Case Study on Chinese Mixtral [论文解读]

本项目主要内容


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

新闻

[2024/04/30] Chinese-LLaMA-Alpaca-3 已正式发布,开源基于Llama-3的Llama-3-Chinese-8B和Llama-3-Chinese-8B-Instruct,请参阅:https://github.com/ymcui/Chinese-LLaMA-Alpaca-3

[2024/03/27] 添加1-bit/2-bit/3-bit量化版GGUF模型:[🤗HF];同时,本项目已入驻机器之心SOTA!模型平台,欢迎关注:https://sota.jiqizhixin.com/project/chinese-mixtral

[2024/03/26] 添加仿OpenAI API部署模式。详情查看:📚v1.2版本发布日志

[2024/03/05] 开源模型训练和精调代码,发布技术报告。详情查看:📚v1.1版本发布日志

[2024/01/29] 🚀 正式发布Chinese-Mixtral(基座模型),Chinese-Mixtral-Instruct(指令/chat模型)。详情查看:📚v1.0版本发布日志

内容导引

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

模型简介

本项目开源了基于Mixtral模型开发的中文Mixtral、中文Mixtral-Instruct模型,其主要特点如下:

📖 稀疏混合专家模型

Mixtral是一个稀疏混合专家模型。该模型与以往的LLaMA等主流大模型结构具有显著差异,主要体现在以下几点:

以下是Mixtral论文中的结构示意图:

<p align="center"> <br> <img src="./pics/mixtral-arch.png" width="600"/> <br> </p>

🚄 原生支持32K上下文(实测支持128K)

Chinese-LLaMA-Alpaca以及Chinese-LLaMA-Alpaca-2项目不同,Mixtral模型原生支持32K上下文(实测可达128K)。用户可使用单一模型来解决不同长度的各类任务。

模型下载

模型选择指引

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

对比项中文Mixtral中文Mixtral-Instruct
模型类型基座模型指令/Chat模型(类ChatGPT)
模型大小8x7B(实际激活约13B)8x7B(实际激活约13B)
专家数量8个(实际激活2个)8个(实际激活2个)
训练类型Causal-LM (CLM)指令精调
训练方式QLoRA + 全量emb/lm-headQLoRA + 全量emb/lm-head
基于什么模型训练原版Mixtral-8x7B-v0.1中文Mixtral
训练语料无标注通用语料有标注指令数据
词表大小原版词表,32000原版词表,32000
支持上下文长度32K(实测可达128K)32K(实测可达128K)
输入模板不需要需要套用Mixtral-Instruct模板
适用场景文本续写:给定上文,让模型生成下文指令理解:问答、写作、聊天、交互等

下载地址

以下提供了3种不同类型的模型:

模型名称类型规格完整版(87 GB)LoRA版(2.4 GB)GGUF版
Chinese-Mixtral基座模型8x7B[Baidu] [🤗HF] <br/>[🤖ModelScope][Baidu] [🤗HF] <br/>[🤖ModelScope][🤗HF]
Chinese-Mixtral-Instruct指令模型8x7B[Baidu] [🤗HF] <br/>[🤖ModelScope][Baidu] [🤗HF] <br/>[🤖ModelScope][🤗HF]

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

推理与部署

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

工具特点CPUGPU量化GUIAPIvLLM教程
llama.cpp丰富的量化选项和高效本地推理[link]
🤗Transformers原生transformers推理接口[link]
仿OpenAI API调用仿OpenAI API接口的服务器Demo[link]
text-generation-webui前端Web UI界面的部署方式[link]
LangChain适合二次开发的大模型应用开源框架[link]
privateGPT多文档本地问答框架[link]
LM Studio多平台聊天软件(带界面)[link]

模型效果

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

生成效果评测

客观效果评测

C-Eval

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

Models类型Valid (0-shot)Valid (5-shot)Test (0-shot)Test (5-shot)
Chinese-Mixtral-Instruct指令51.755.050.051.5
Chinese-Mixtral基座45.854.243.149.1
Mixtral-8x7B-Instruct-v0.1指令51.654.048.750.7
Mixtral-8x7B-v0.1基座47.354.646.150.3
Chinese-Alpaca-2-13B指令44.345.942.644.0
Chinese-LLaMA-2-13B基座40.642.738.041.6

CMMLU

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

Models类型Test (0-shot)Test (5-shot)
Chinese-Mixtral-Instruct指令50.053.0
Chinese-Mixtral基座42.551.0
Mixtral-8x7B-Instruct-v0.1指令48.251.6
Mixtral-8x7B-v0.1基座44.351.6
Chinese-Alpaca-2-13B指令43.245.5
Chinese-LLaMA-2-13B基座38.942.5

MMLU

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

Models类型Valid (0-shot)Valid (5-shot)Test (0-shot)Test (5-shot)
Chinese-Mixtral-Instruct指令65.169.667.569.8
Chinese-Mixtral基座63.267.165.568.3
Mixtral-8x7B-Instruct-v0.1指令68.570.468.270.2
Mixtral-8x7B-v0.1基座64.969.067.069.5
Chinese-Alpaca-2-13B指令49.653.250.953.5
Chinese-LLaMA-2-13B基座46.850.046.651.8

LongBench

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

Models单文档QA多文档QA摘要FS学习代码补全合成任务平均
Chinese-Mixtral-Instruct50.334.216.442.056.189.548.1
Chinese-Mixtral32.023.70.442.527.414.023.3
Mixtral-8x7B-Instruct-v0.156.535.715.446.063.698.052.5
Mixtral-8x7B-v0.135.59.516.446.557.283.541.4
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

量化效果评测

在llama.cpp下,测试了Chinese-Mixtral量化版模型的性能,如下表所示。

F16Q8_0Q6_KQ5_KQ5_0Q4_KQ4_0Q3_KIQ3_XXSQ2_KIQ2_XSIQ2_XXS
Size (GB)87.046.235.730.030.024.624.619.017.116.112.711.4
BPW16.08.506.575.695.524.874.533.863.142.962.342.10
PPL-4.40764.40924.41924.42244.44884.49174.55454.59905.18466.97848.5981
M3 Max Speed--36.036.935.731.227.837.6-29.1--
A100 Speed--29.922.620.521.717.121.720.620.323.722.5

[!NOTE]

以Chinese-Mixtral-Q4_0为例,下图展示了不同上下文长度下的PPL变化趋势,选取了2组不同的纯文本数据。实验结果表明Mixtral模型支持的上下文长度已超过标称的32K,在64K+上下文下仍然具有较好的表现(实测可达128K)。

<p align="center"> <br> <img src="./pics/chinese-mixtral-ppl.png" width="800"/> <br> </p>

训练与精调

预训练

指令精调

指令模板

<s> [INST] Instruction [/INST] Model answer</s> [INST] Follow-up instruction [/INST]

注意:<s></s>是表示序列开始和结束的特殊token,而[INST][/INST]则是普通字符串。

常见问题

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

问题1:后续会不会用更多数据进行训练?会不会做RLHF/DPO对齐?
问题2:为什么本次的模型没有做中文词表扩展?
问题3:是否支持Mixtral的下游生态?

引用

@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}
}

免责声明

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

问题反馈

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