ymcui / Chinese-LLaMA-Alpaca-3
- четверг, 2 мая 2024 г. в 00:00:06
中文羊驼大模型三期项目 (Chinese Llama-3 LLMs) developed from Meta Llama 3
🇨🇳中文 | 🌐English | 📖文档/Docs | ❓提问/Issues | 💬讨论/Discussions | ⚔️竞技场/Arena
本项目基于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/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。主要特点如下:
以下是本项目的模型对比以及建议使用场景。如需聊天交互,请选择Instruct版。
对比项 | Llama-3-Chinese | Llama-3-Chinese-Instruct |
---|---|---|
模型类型 | 基座模型 | 指令/Chat模型(类ChatGPT) |
模型大小 | 8B | 8B |
训练类型 | Causal-LM (CLM) | 指令精调 |
训练方式 | LoRA + 全量emb/lm-head | LoRA + 全量emb/lm-head |
初始化模型 | 原版Meta-Llama-3-8B | 中文Llama-3 |
训练语料 | 无标注通用语料(约120GB) | 有标注指令数据(约500万条) |
词表大小 | 原版词表(128,256) | 原版词表(128,256) |
支持上下文长度 | 8K | 8K |
输入模板 | 不需要 | 需要套用Llama-3-Instruct模板 |
适用场景 | 文本续写:给定上文,让模型生成下文 | 指令理解:问答、写作、聊天、交互等 |
模型名称 | 类型 | 完整版 | LoRA版 | GGUF版 |
---|---|---|---|---|
Llama-3-Chinese-8B | 基座模型 | [🤗Hugging Face] [🤖ModelScope] |
[🤗Hugging Face] [🤖ModelScope] |
[🤗Hugging Face] [🤖ModelScope] |
Llama-3-Chinese-8B-Instruct | 指令模型 | [🤗Hugging Face] [🤖ModelScope] |
[🤗Hugging Face] [🤖ModelScope] |
[🤗Hugging Face] [🤖ModelScope] |
模型类型说明:
-im
表示使用了importance matrix进行量化,通常具有更低的PPL,建议使用(用法与常规版相同)Note
若无法访问HF,可考虑一些镜像站点(如hf-mirror.com),具体方法请自行查找解决。
本项目中的相关模型主要支持以下量化、推理和部署方式,具体内容请参考对应教程。
工具 | 特点 | CPU | GPU | 量化 | GUI | API | vLLM | 教程 |
---|---|---|---|---|---|---|---|---|
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是一个全面的中文基础模型评估套件,其中验证集和测试集分别包含1.3K和12.3K个选择题,涵盖52个学科。C-Eval推理代码请参考本项目:📖GitHub Wiki
Models | 参数量 | 类型 | Valid (0-shot) | Valid (5-shot) | Test (0-shot) | Test (5-shot) |
---|---|---|---|---|---|---|
Llama-3-Chinese-8B-Instruct | 8B | 指令 | 49.3 | 51.5 | 48.3 | 49.4 |
Llama-3-Chinese-8B | 8B | 基座 | 47.0 | 50.5 | 46.1 | 49.0 |
Llama-3-8B | 8B | 基座 | 49.3 | 51.2 | 46.1 | 49.4 |
Chinese-Mixtral-Instruct | 8x7B | 指令 | 51.7 | 55.0 | 50.0 | 51.5 |
Chinese-Mixtral | 8x7B | 基座 | 45.8 | 54.2 | 43.1 | 49.1 |
Chinese-Alpaca-2-13B | 13B | 指令 | 44.3 | 45.9 | 42.6 | 44.0 |
Chinese-LLaMA-2-13B | 13B | 基座 | 40.6 | 42.7 | 38.0 | 41.6 |
CMMLU是另一个综合性中文评测数据集,专门用于评估语言模型在中文语境下的知识和推理能力,涵盖了从基础学科到高级专业水平的67个主题,共计11.5K个选择题。CMMLU推理代码请参考本项目:📖GitHub Wiki
Models | 参数量 | 类型 | Test (0-shot) | Test (5-shot) |
---|---|---|---|---|
Llama-3-Chinese-8B-Instruct | 8B | 指令 | 49.7 | 51.5 |
Llama-3-Chinese-8B | 8B | 基座 | 48.0 | 50.9 |
Llama-3-8B | 8B | 基座 | 47.8 | 50.8 |
Chinese-Mixtral-Instruct | 8x7B | 指令 | 50.0 | 53.0 |
Chinese-Mixtral | 8x7B | 基座 | 42.5 | 51.0 |
Chinese-Alpaca-2-13B | 13B | 指令 | 43.2 | 45.5 |
Chinese-LLaMA-2-13B | 13B | 基座 | 38.9 | 42.5 |
MMLU是一个用于评测自然语言理解能力的英文评测数据集,是当今用于评测大模型能力的主要数据集之一,其中验证集和测试集分别包含1.5K和14.1K个选择题,涵盖57个学科。MMLU推理代码请参考本项目:📖GitHub Wiki
Models | 参数量 | 类型 | Valid (0-shot) | Valid (5-shot) | Test (0-shot) | Test (5-shot) |
---|---|---|---|---|---|---|
Llama-3-Chinese-8B-Instruct | 8B | 指令 | 60.1 | 61.3 | 59.8 | 61.8 |
Llama-3-Chinese-8B | 8B | 基座 | 55.5 | 58.5 | 57.3 | 61.1 |
Llama-3-8B | 8B | 基座 | 58.6 | 62.5 | 60.5 | 65.0 |
Chinese-Mixtral-Instruct | 8x7B | 指令 | 65.1 | 69.6 | 67.5 | 69.8 |
Chinese-Mixtral | 8x7B | 基座 | 63.2 | 67.1 | 65.5 | 68.3 |
Chinese-Alpaca-2-13B | 13B | 指令 | 49.6 | 53.2 | 50.9 | 53.5 |
Chinese-LLaMA-2-13B | 13B | 基座 | 46.8 | 50.0 | 46.6 | 51.8 |
LongBench是一个大模型长文本理解能力的评测基准,由6大类、20个不同的任务组成,多数任务的平均长度在5K-15K之间,共包含约4.75K条测试数据。以下是本项目模型在该中文任务(含代码任务)上的评测效果。LongBench推理代码请参考本项目:📖GitHub Wiki
Models | 参数量 | 单文档QA | 多文档QA | 摘要 | FS学习 | 代码 | 合成 | 平均 |
---|---|---|---|---|---|---|---|---|
Llama-3-Chinese-8B-Instruct | 8B | 44.1 | 24.0 | 12.4 | 33.5 | 51.8 | 11.5 | 29.6 |
Llama-3-Chinese-8B | 8B | 16.4 | 19.3 | 4.3 | 28.7 | 14.3 | 4.6 | 14.6 |
Llama-3-8B | 8B | 21.2 | 22.9 | 2.7 | 35.8 | 65.9 | 40.8 | 31.6 |
Chinese-Mixtral-Instruct | 8x7B | 50.3 | 34.2 | 16.4 | 42.0 | 56.1 | 89.5 | 48.1 |
Chinese-Mixtral | 8x7B | 32.0 | 23.7 | 0.4 | 42.5 | 27.4 | 14.0 | 23.3 |
Chinese-Alpaca-2-13B-16K | 13B | 47.9 | 26.7 | 13.0 | 22.3 | 46.6 | 21.5 | 29.7 |
Chinese-LLaMA-2-13B-16K | 13B | 36.7 | 17.7 | 3.1 | 29.8 | 13.8 | 3.0 | 17.3 |
Chinese-Alpaca-2-7B-64K | 7B | 44.7 | 28.1 | 14.4 | 39.0 | 44.6 | 5.0 | 29.3 |
Chinese-LLaMA-2-7B-64K | 7B | 27.2 | 16.4 | 6.5 | 33.0 | 7.8 | 5.0 | 16.0 |
在llama.cpp下,测试了Llama-3-Chinese-8B(基座模型)的量化性能,如下表所示。实测速度相比二代Llama-2-7B略慢。
F16 | Q8_0 | Q6_K | Q5_K | Q5_0 | Q4_K | Q4_0 | Q3_K | Q2_K | |
---|---|---|---|---|---|---|---|---|---|
Size (GB) | 14.97 | 7.95 | 6.14 | 5.34 | 5.21 | 4.58 | 4.34 | 3.74 | 2.96 |
BPW | 16.00 | 8.50 | 6.56 | 5.70 | 5.57 | 4.89 | 4.64 | 4.00 | 3.16 |
PPL | 5.130 | 5.135 | 5.148 | 5.181 | 5.222 | 5.312 | 5.549 | 5.755 | 11.859 |
PP Speed | 5.99 | 6.10 | 7.17 | 7.34 | 6.65 | 6.38 | 6.00 | 6.85 | 6.43 |
TG Speed | 44.03 | 26.08 | 21.61 | 22.33 | 20.93 | 18.93 | 17.09 | 22.50 | 19.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_turbo | 使用gpt-4-turbo-2024-04-09 获取的ruozhiba问答数据 |
2449 |
请在提交Issue前务必先查看FAQ中是否已存在解决方案。具体问题和解答请参考本项目 📖GitHub Wiki
问题1:为什么没有像一期、二期项目一样做词表扩充?
问题2:会有70B版本发布吗?
问题3:为什么指令模型不叫Alpaca了?
问题4:本仓库模型能否商用?
问题5:为什么不对模型做全量预训练而是用LoRA?
问题6:为什么Llama-3-Chinese对话效果不好?
问题7:为什么指令模型会回复说自己是ChatGPT?
问题8:为什么没有在Meta-Llama-3-Instruct上训练?
本项目基于由Meta发布的Llama-3模型进行开发,使用过程中请严格遵守Llama-3的开源许可协议。如果涉及使用第三方代码,请务必遵从相关的开源许可协议。模型生成的内容可能会因为计算方法、随机因素以及量化精度损失等影响其准确性,因此,本项目不对模型输出的准确性提供任何保证,也不会对任何因使用相关资源和输出结果产生的损失承担责任。如果将本项目的相关模型用于商业用途,开发者应遵守当地的法律法规,确保模型输出内容的合规性,本项目不对任何由此衍生的产品或服务承担责任。
如有疑问,请在GitHub Issue中提交。礼貌地提出问题,构建和谐的讨论社区。