Chinese-LLaMA-Alpaca-2

ymcuiApache-2.0更新放缓

中文 LLaMA-2 与 Alpaca-2 大模型二期项目,提供支持 64K 超长上下文的中文预训练和指令微调模型,可直接用于长文本理解与对话。

中文LLaMA-2 & Alpaca-2大模型二期项目 + 64K超长上下文模型 (Chinese LLaMA-2 & Alpaca-2 LLMs with 64K long context models)

v4.1发布于 2024-01-23 05:51 UTC7,098star557fork同步于 2026-11-10 17:34 UTC

怎么上手

由 README 提炼,执行前请确认
git clone https://github.com/ymcui/Chinese-LLaMA-Alpaca-2.git
硬件要求按 README 说明

README未给出具体显存要求;模型提供1.3B/7B/13B多规格,并支持在个人电脑CPU/GPU上量化部署,也提供GGUF与AWQ量化版本。

24G 显存可跑支持 Apple Silicon
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

基于Llama-2扩充中文词表的中文LLaMA-2/Alpaca-2模型,支持最长64K上下文

中文 LLaMA-2 与 Alpaca-2 大模型二期项目,提供支持 64K 超长上下文的中文预训练和指令微调模型,可直接用于长文本理解与对话。

核心能力

  • 重新设计55296大小中文词表,统一LLaMA与Alpaca词表
  • 全部模型使用FlashAttention-2训练,降低长上下文显存占用
  • 用PI与YaRN扩展上下文,提供16K与64K长上下文版模型
  • 开源预训练与指令精调脚本,可继续自行训练
  • 提供RLHF偏好对齐版Alpaca-2,强化正确价值观输出

容易踩的坑

模型权重需从HuggingFace/ModelScope/百度网盘单独下载,仓库不含权重;一代与二代词表不同不可混用,Alpaca-2需套用Llama-2-Chat模板而非一代模板;1.3B模型不建议单独使用,宜通过投机采样搭配7B/13B。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v4.1
  1. v4.1中文羊驼大模型二期 v4.1最新正式版2024-01-23 · 2024-01-23 05:51 UTC

    本次更新添加了新版GGUF模型(with imatrix)、AWQ模型,以及对YaRN模型的支持。

    What's Changed

    Full Changelog: https://github.com/ymcui/Chinese-LLaMA-Alpaca-2/compare/v4.0...v4.1

  2. v4.0中文羊驼大模型二期 v4.02023-12-29 · 2023-12-29 02:28 UTC
    查看更新说明

    本次更新推出长上下文版模型Chinese-LLaMA-2-7B-64K和Chinese-Alpaca-2-7B-64K,可直接应用于各类长文本下游任务。推出人类偏好对齐版模型Chinese-Alpaca-2-1.3B-RLHF和Chinese-Alpaca-2-7B-RLHF,大幅提升正确价值观表达能力。

    🚀 Chinese-LLaMA-2-7B-64K、Chinese-Alpaca-2-7B-64K

    • 通过YaRN方法,在增量数据上进行训练,使模型获得长文本处理能力
    • 在长文本评测LongBench(中文+代码任务)上,64K版模型相比标准版有显著的性能提升,甚至优于16K版本模型,效果参阅长上下文版模型评测
    • Chinese-Alpaca-2-7B-64K已加入到⚔️ 模型竞技场,欢迎体验评测

    👮 Chinese-Alpaca-2-1.3B-RLHF、Chinese-Alpaca-2-7B-RLHF

    • 以Chinese-Alpaca-2系列模型为基础,利用偏好数据和PPO算法进行人类偏好对齐精调,显著提升模型传递正确价值观的能力
    • 在人类偏好对齐评测方面,RLHF模型表现显著超越对应的SFT模型,小模型(1.3B)超越大模型(7B),具体参阅人类偏好对齐(RLHF)版本评测
    • Chinese-Alpaca-2-1.3B-RLHF、Chinese-Alpaca-2-7B-RLHF已加入到⚔️ 模型竞技场,欢迎体验评测
    温馨提示
    • 64K版长上下文模型已支持🤗HuggingFace、llama.cpp、langchain等生态
    • 使用长上下文版模型之前,务必参阅推理与部署表格,查看相关方法是否支持
    • 建议:主要处理长文本任务时,使用长上下文版模型;其他场景建议使用标准版模型

    其他更新

    • 更新了对高版本依赖的支持,通过参数设置选择全量训练或LoRA训练 (#393)
    • 添加可直接下载使用的GGUF模型权重 (#411)
    • 修复了开源peft版本与requirements冲突的BUG (#468)

    For English release note, please refer to Discussion.

  3. v3.2中文羊驼大模型二期 v3.22023-10-26 · 2023-10-26 08:05 UTC
    查看更新说明

    本次更新推出小参数量基座/聊天模型Chinese-LLaMA-2-1.3B和Chinese-Alpaca-2-1.3B,以及对投机采样解码策略的支持

    🚀 Chinese-LLaMA-2-1.3B、Chinese-Alpaca-2-1.3B,投机采样解码策略

    • 推出4层的小参数量中文LLaMA/Alpaca模型,使用和大模型相同数据量进行了中文预训练(Chinese-LLaMA-2-1.3B)和指令精调训练(Chinese-Alpaca-2-1.3B)。
    • 投机采样是一种解码加速策略,借助能力稍弱但速度较快的小模型加速大模型的推理。其理论细节可查看相关论文。本次更新实现了投机采样解码策略,可使用小模型加速大模型的解码,并在gradio_demo.py和inference_hf.py中添加了使用投机采样的参数。
    • 经测试,A40-48G GPU上使用Chinese-Alpaca-2-1.3B模型加速Chinese-Alpaca-2-7B/13B模型推理,平均推理速度提升了1.3~1.6倍。详细用法和加速效果请参考wiki

    注意事项:小参数量模型可以像7B/13B模型一样直接用于推理,但结果会比大模型差,建议用于投机采样加速大模型推理。

    其他更新

    • 添加了对kbits训练的支持 (#229)
    • Peft相关更新和修复 (#246, #251)
    • FAQ:添加了问题12、13 (#249)
    • C-Eval: 更新了prompt模板 (#255)
    • LongBench: 更新了测试结果 (#259)
    • LangChain: 更新了示例中的超参设置 (#271)
    • 修复了推理脚本中量化推理相关问题 (#302)
    • 适配了FlashAttention对推理的优化,现在可以在推理时搭配FlashAttention进行加速。使用方法参考wiki (#367)
  4. v3.1中文羊驼大模型二期 v3.12023-09-01 · 2023-09-01 02:36 UTC
    查看更新说明

    本次更新推出长上下文版聊天/指令模型Chinese-Alpaca-2-7B-16K和Chinese-Alpaca-2-13B-16K,可直接应用于各类长文本下游任务。

    🚀 Chinese-Alpaca-2-7B-16K、Chinese-Alpaca-2-13B-16K

    • 与Chinese-LLaMA-2-16K类似,通过位置插值方法,在增量数据上进行训练,使模型获得长文本处理能力
    • 长上下文版模型(Chinese-LLaMA-2-16K、Chinese-Alpaca-2-16K)支持16K,且均可通过NTK方法进一步扩展
    • 在长文本评测LongBench(中文+代码任务)上,16K版模型相比标准版均有显著的性能提升,其中Chinese-Alpaca-2-7B-16K和Chinese-Alpaca-2-13B-16K分别获得28.3和29.5的平均分,在同类模型中具有一定优势
    • Chinese-Alpaca-2-7B-16K、Chinese-Alpaca-2-13B-16K已加入到⚔️ 模型竞技场,欢迎体验评测
    温馨提示
    • transformers 4.31.0以上版本可直接加载16K模型;llama.cpp下则需要在推理时添加--rope-scale 4参数
    • 使用长上下文版模型之前,务必参阅推理与部署表格,查看相关方法是否支持
    • 建议:主要处理长文本任务时,使用16K版模型;其他场景建议使用标准版模型

    其他更新

    • 修复了训练脚本中gradient_checkpointing相关问题(#175) by @Qznan
    • privateGPT:添加了对16K模型的支持(#195)
    • LangChain, TGW, API:添加了对16K模型的支持(#196)
    • FAQ:添加了问题9、10、11(#197)
    • LongBench:添加了推理脚本(#198、#217)

    For English release note, please refer to Discussion.

  5. v3.0中文羊驼大模型二期 v3.02023-08-25 · 2023-08-25 04:35 UTC
    查看更新说明

    本次更新推出长上下文版模型Chinese-LLaMA-2-7B-16K和Chinese-LLaMA-2-13B-16K。

    🚀 Chinese-LLaMA-2-7B-16K、Chinese-LLaMA-2-13B-16K

    • 通过位置插值方法,在增量数据上进行训练,使模型获得长文本处理能力
    • 标准版模型支持4K上下文,而新推出的长上下文版模型支持16K,且均可通过NTK方法进一步扩展(无需训练)
    • 在长文本评测LongBench上,16K版模型相比标准版均有显著的性能提升,效果参阅长上下文版模型评测
    • 主要处理长文本时,建议使用16K版;日常使用请选择标准版模型
    注意事项
    • transformers 4.31.0以上版本可直接加载16K模型;llama.cpp下则需要在推理时添加--rope-scale 4参数
    • 使用长上下文版模型之前,务必参阅推理与部署表格,查看相关方法是否支持
    • 与其他LLaMA模型一样,目前的Chinese-LLaMA-2-16K不适合直接拿来用于对话
    • Chinese-Alpaca-2-16K将在下一个版本推出,敬请关注

    其他更新

    • 添加了Alpaca-2-13B输出样例(#131)
    • llama.cpp:删除了中的-eps选项以适配GGUF新版模型(#162)
    • llama.cpp:更新了新版k-quant模型PPL结果(#172)
    • 更新训练策略(#150)
    • 更新openai_api_server_vllm.py(#176)
    • 修复一处typo(#177) contributed by @touale
    • 添加了CMMLU推理脚本,使用方法请参考CMMLU推理脚本

    For English release note, please refer to Discussion.

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Chinese-LLaMA-Alpaca-3项目启动!

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

    本项目基于Meta发布的可商用大模型Llama-2开发,是中文LLaMA&Alpaca大模型的第二期项目,开源了中文LLaMA-2基座模型和Alpaca-2指令精调大模型。这些模型在原版Llama-2的基础上扩充并优化了中文词表,使用了大规模中文数据进行增量预训练,进一步提升了中文基础语义和指令理解能力,相比一代相关模型获得了显著性能提升。相关模型支持FlashAttention-2训练。标准版模型支持4K上下文长度,长上下文版模型支持16K、64k上下文长度。RLHF系列模型为标准版模型基础上进行人类偏好对齐精调,相比标准版模型在正确价值观体现方面获得了显著性能提升。

    本项目主要内容
    • 🚀 针对Llama-2模型扩充了新版中文词表,开源了中文LLaMA-2和Alpaca-2大模型
    • 🚀 开源了预训练脚本、指令精调脚本,用户可根据需要进一步训练模型
    • 🚀 使用个人电脑的CPU/GPU快速在本地进行大模型量化和部署体验
    • 🚀 支持🤗transformers, llama.cpp, text-generation-webui, LangChain, privateGPT, vLLM等LLaMA生态
    已开源的模型
    • 基座模型(4K上下文):Chinese-LLaMA-2 (1.3B, 7B, 13B)
    • 聊天模型(4K上下文):Chinese-Alpaca-2 (1.3B, 7B, 13B)
    • 长上下文模型(16K/64K):
      • Chinese-LLaMA-2-16K (7B, 13B) 、Chinese-Alpaca-2-16K (7B, 13B)
      • Chinese-LLaMA-2-64K (7B)、Chinese-Alpaca-2-64K (7B)
    • 偏好对齐模型:Chinese-Alpaca-2-RLHF (1.3B, 7B)


    中文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] 本项目已入驻机器之心SOTA!模型平台,欢迎关注:https://sota.jiqizhixin.com/project/chinese-llama-alpaca-2

    [2024/01/23] 添加新版GGUF模型(imatrix量化)、AWQ量化模型,支持vLLM下加载YaRN长上下文模型。详情查看📚 v4.1版本发布日志

    [2023/12/29] 发布长上下文模型Chinese-LLaMA-2-7B-64K和Chinese-Alpaca-2-7B-64K,同时发布经过人类偏好对齐(RLHF)的Chinese-Alpaca-2-RLHF(1.3B/7B)。详情查看📚 v4.0版本发布日志

    [2023/09/01] 发布长上下文模型Chinese-Alpaca-2-7B-16K和Chinese-Alpaca-2-13B-16K,该模型可直接应用于下游任务,例如privateGPT等。详情查看📚 v3.1版本发布日志

    [2023/08/25] 发布长上下文模型Chinese-LLaMA-2-7B-16K和Chinese-LLaMA-2-13B-16K,支持16K上下文,并可通过NTK方法进一步扩展至24K+。详情查看📚 v3.0版本发布日志

    [2023/08/14] 发布Chinese-LLaMA-2-13B和Chinese-Alpaca-2-13B,添加text-generation-webui/LangChain/privateGPT支持,添加CFG Sampling解码方法等。详情查看📚 v2.0版本发布日志

    [2023/08/02] 添加FlashAttention-2训练支持,基于vLLM的推理加速支持,提供长回复系统提示语模板等。详情查看📚 v1.1版本发布日志

    [2023/07/31] 正式发布Chinese-LLaMA-2-7B(基座模型),使用120G中文语料增量训练(与一代Plus系列相同);进一步通过5M条指令数据精调(相比一代略微增加),得到Chinese-Alpaca-2-7B(指令/chat模型)。详情查看📚 v1.0版本发布日志

    [2023/07/19] 🚀启动中文LLaMA-2、Alpaca-2开源大模型项目

    内容导引

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

    模型简介

    本项目推出了基于Llama-2的中文LLaMA-2以及Alpaca-2系列模型,相比一期项目其主要特点如下:

    📖 经过优化的中文词表
    • 在一期项目中,我们针对一代LLaMA模型的32K词表扩展了中文字词(LLaMA:49953,Alpaca:49954)
    • 在本项目中,我们重新设计了新词表(大小:55296),进一步提升了中文字词的覆盖程度,同时统一了LLaMA/Alpaca的词表,避免了因混用词表带来的问题,以期进一步提升模型对中文文本的编解码效率
    ⚡ 基于FlashAttention-2的高效注意力
    • FlashAttention-2是高效注意力机制的一种实现,相比其一代技术具有更快的速度和更优化的显存占用
    • 当上下文长度更长时,为了避免显存爆炸式的增长,使用此类高效注意力技术尤为重要
    • 本项目的所有模型均使用了FlashAttention-2技术进行训练
    🚄 基于PI和YaRN的超长上下文扩展技术
    • 在一期项目中,我们实现了基于NTK的上下文扩展技术,可在不继续训练模型的情况下支持更长的上下文
    • 基于位置插值PI和NTK等方法推出了16K长上下文版模型,支持16K上下文,并可通过NTK方法最高扩展至24K-32K
    • 基于YaRN方法进一步推出了64K长上下文版模型,支持64K上下文
    • 进一步设计了方便的自适应经验公式,无需针对不同的上下文长度设置NTK超参,降低了使用难度
    🤖 简化的中英双语系统提示语
    • 在一期项目中,中文Alpaca系列模型使用了Stanford Alpaca的指令模板和系统提示语
    • 初步实验发现,Llama-2-Chat系列模型的默认系统提示语未能带来统计显著的性能提升,且其内容过于冗长
    • 本项目中的Alpaca-2系列模型简化了系统提示语,同时遵循Llama-2-Chat指令模板,以便更好地适配相关生态
    👮 人类偏好对齐
    • 在一期项目中,中文Alpaca系列模型仅完成预训练和指令精调,获得了基本的对话能力
    • 通过基于人类反馈的强化学习(RLHF)实验,发现可显著提升模型传递正确价值观的能力
    • 本项目推出了Alpaca-2-RLHF系列模型,使用方式与SFT模型一致

    下图展示了本项目以及一期项目推出的所有大模型之间的关系。

    模型下载

    模型选择指引

    以下是中文LLaMA-2和Alpaca-2模型的对比以及建议使用场景。如需聊天交互,请选择Alpaca而不是LLaMA。

    对比项中文LLaMA-2中文Alpaca-2
    模型类型基座模型指令/Chat模型(类ChatGPT)
    已开源大小1.3B、7B、13B1.3B、7B、13B
    训练类型Causal-LM (CLM)指令精调
    训练方式7B、13B:LoRA + 全量emb/lm-head1.3B:全量7B、13B:LoRA + 全量emb/lm-head1.3B:全量
    基于什么模型训练原版Llama-2(非chat版)中文LLaMA-2
    训练语料无标注通用语料(120G纯文本)有标注指令数据(500万条)
    词表大小[1]55,29655,296
    上下文长度[2]标准版:4K(12K-18K)长上下文版(PI):16K(24K-32K)长上下文版(YaRN):64K标准版:4K(12K-18K)长上下文版(PI):16K(24K-32K)长上下文版(YaRN):64K
    输入模板不需要需要套用特定模板[3],类似Llama-2-Chat
    适用场景文本续写:给定上文,让模型生成下文指令理解:问答、写作、聊天、交互等
    不适用场景指令理解 、多轮聊天等文本无限制自由生成
    偏好对齐无RLHF版本(1.3B、7B)

    [!NOTE] [1] 本项目一代模型和二代模型的词表不同,请勿混用。二代LLaMA和Alpaca的词表相同。 [2] 括号内表示基于NTK上下文扩展支持的最大长度。 [3] Alpaca-2采用了Llama-2-chat系列模板(格式相同,提示语不同),而不是一代Alpaca的模板,请勿混用。 [4] 不建议单独使用1.3B模型,而是通过投机采样搭配更大的模型(7B、13B)使用。

    完整模型下载

    以下是完整版模型,直接下载即可使用,无需其他合并步骤。推荐网络带宽充足的用户。

    模型名称类型大小下载地址GGUF
    Chinese-LLaMA-2-13B基座模型24.7 GB[🤗HF] [🤖ModelScope] [Baidu][🤗HF]
    Chinese-LLaMA-2-7B基座模型12.9 GB[🤗HF] [🤖ModelScope] [Baidu][🤗HF]
    Chinese-LLaMA-2-1.3B基座模型2.4 GB[🤗HF] [🤖ModelScope][Baidu][🤗HF]
    Chinese-Alpaca-2-13B指令模型24.7 GB[🤗HF] [🤖ModelScope] [Baidu][🤗HF]
    Chinese-Alpaca-2-7B指令模型12.9 GB[🤗HF] [🤖ModelScope] [Baidu][🤗HF]
    Chinese-Alpaca-2-1.3B指令模型2.4 GB[🤗HF] [🤖ModelScope] [Baidu][🤗HF]
    长上下文版模型

    以下是长上下文版模型,推荐以长文本为主的下游任务使用,否则建议使用上述标准版。

    模型名称类型大小下载地址GGUF
    Chinese-LLaMA-2-7B-64K 🆕基座模型12.9 GB[🤗HF] [🤖ModelScope] [Baidu][🤗HF]
    Chinese-Alpaca-2-7B-64K 🆕指令模型12.9 GB[🤗HF] [🤖ModelScope] [Baidu][🤗HF]
    Chinese-LLaMA-2-13B-16K基座模型24.7 GB[🤗HF] [🤖ModelScope] [Baidu][🤗HF]
    Chinese-LLaMA-2-7B-16K基座模型12.9 GB[🤗HF] [🤖ModelScope] [Baidu][🤗HF]
    Chinese-Alpaca-2-13B-16K指令模型24.7 GB[🤗HF] [🤖ModelScope] [Baidu][🤗HF]
    Chinese-Alpaca-2-7B-16K指令模型12.9 GB[🤗HF] [🤖ModelScope] [Baidu][🤗HF]
    RLHF版模型

    以下是人类偏好对齐版模型,对涉及法律、道德的问题较标准版有更优的价值导向。

    模型名称类型大小下载地址GGUF
    Chinese-Alpaca-2-7B-RLHF 🆕指令模型12.9 GB[🤗HF] [🤖ModelScope] [Baidu][🤗HF]
    Chinese-Alpaca-2-1.3B-RLHF 🆕指令模型2.4 GB[🤗HF] [🤖ModelScope] [Baidu][🤗HF]
    AWQ版模型

    AWQ(Activation-aware Weight Quantization)是一种高效的模型量化方案,目前可兼容🤗transformers、llama.cpp等主流框架。

    本项目模型的AWQ预搜索结果可通过以下链接获取:https://huggingface.co/hfl/chinese-llama-alpaca-2-awq

    LoRA模型下载

    以下是LoRA模型(含emb/lm-head),与上述完整模型一一对应。需要注意的是LoRA模型无法直接使用,必须按照教程与重构模型进行合并。推荐网络带宽不足,手头有原版Llama-2且需要轻量下载的用户。

    模型名称类型合并所需基模型大小LoRA下载地址
    Chinese-LLaMA-2-LoRA-13B基座模型Llama-2-13B-hf1.5 GB[🤗HF] [🤖ModelScope] [Baidu]
    Chinese-LLaMA-2-LoRA-7B基座模型Llama-2-7B-hf1.1 GB[🤗HF] [🤖ModelScope] [Baidu]
    Chinese-Alpaca-2-LoRA-13B指令模型Llama-2-13B-hf1.5 GB[🤗HF] [🤖ModelScope] [Baidu]
    Chinese-Alpaca-2-LoRA-7B指令模型Llama-2-7B-hf1.1 GB[🤗HF] [🤖ModelScope] [Baidu]

    以下是长上下文版模型,推荐以长文本为主的下游任务使用,否则建议使用上述标准版。

    模型名称类型合并所需基模型大小LoRA下载地址
    Chinese-LLaMA-2-LoRA-7B-64K 🆕基座模型Llama-2-7B-hf1.1 GB[🤗HF] [🤖ModelScope] [Baidu]
    Chinese-Alpaca-2-LoRA-7B-64K 🆕指令模型Llama-2-7B-hf1.1 GB[🤗HF] [🤖ModelScope] [Baidu]
    Chinese-LLaMA-2-LoRA-13B-16K基座模型Llama-2-13B-hf1.5 GB[🤗HF] [🤖ModelScope] [Baidu]
    Chinese-LLaMA-2-LoRA-7B-16K基座模型Llama-2-7B-hf1.1 GB[🤗HF] [🤖ModelScope] [Baidu]
    Chinese-Alpaca-2-LoRA-13B-16K指令模型Llama-2-13B-hf1.5 GB[🤗HF] [🤖ModelScope] [Baidu]
    Chinese-Alpaca-2-LoRA-7B-16K指令模型Llama-2-7B-hf1.1 GB[🤗HF] [🤖ModelScope] [Baidu]

    [!IMPORTANT] LoRA模型无法单独使用,必须与原版Llama-2进行合并才能转为完整模型。请通过以下方法对模型进行合并。

    • 在线转换:Colab用户可利用本项目提供的notebook进行在线转换并量化模型
    • 手动转换:离线方式转换,生成不同格式的模型,以便进行量化或进一步精调

    推理与部署

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

    工具特点CPUGPU量化GUIAPIvLLM§16K‡64K‡投机采样教程
    llama.cpp丰富的量化选项和高效本地推理✅✅✅❌✅❌✅✅✅link
    🤗Transformers原生transformers推理接口✅✅✅✅❌✅✅✅✅link
    Colab Demo在Colab中启动交互界面✅✅✅✅❌✅✅✅✅link
    仿OpenAI API调用仿OpenAI API接口的服务器Demo✅✅✅❌✅✅✅✅❌link
    text-generation-webui前端Web UI界面的部署方式✅✅✅✅✅†❌✅❌❌link
    LangChain适合二次开发的大模型应用开源框架✅†✅✅†❌❌❌✅✅❌link
    privateGPT基于LangChain的多文档本地问答框架✅✅✅❌❌❌✅❌❌link

    [!NOTE] † 工具支持该特性,但教程中未实现,详细说明请参考对应官方文档 ‡ 指是否支持长上下文版本模型(需要第三方库支持自定义RoPE) § vLLM后端不支持长上下文版本模型

    系统效果

    为了评测相关模型的效果,本项目分别进行了生成效果评测和客观效果评测(NLU类),从不同角度对大模型进行评估。需要注意的是,综合评估大模型能力仍然是亟待解决的重要课题,单个数据集的结果并不能综合评估模型性能。推荐用户在自己关注的任务上进行测试,选择适配相关任务的模型。

    生成效果评测

    为了更加直观地了解模型的生成效果,本项目仿照Fastchat Chatbot Arena推出了模型在线对战平台,可浏览和评测模型回复质量。对战平台提供了胜率、Elo评分等评测指标,并且可以查看两两模型的对战胜率等结果。题库来自于一期项目人工制作的200题,以及在此基础上额外增加的题目。生成回复具有随机性,受解码超参、随机种子等因素影响,因此相关评测并非绝对严谨,结果仅供晾晒参考,欢迎自行体验。部分生成样例请查看examples目录。

    ⚔️ 模型竞技场:http://llm-arena.ymcui.com

    系统对战胜率(无平局) ↓Elo评分
    Chinese-Alpaca-2-13B-16K86.84%1580
    Chinese-Alpaca-2-13B72.01%1579
    Chinese-Alpaca-Pro-33B64.87%1548
    Chinese-Alpaca-2-7B64.11%1572
    Chinese-Alpaca-Pro-7B62.05%1500
    Chinese-Alpaca-2-7B-16K61.67%1540
    Chinese-Alpaca-Pro-13B61.26%1567
    Chinese-Alpaca-Plus-33B31.29%1401
    Chinese-Alpaca-Plus-13B23.43%1329
    Chinese-Alpaca-Plus-7B20.92%1379

    [!NOTE] 以上结果截至2023年9月1日。最新结果请进入⚔️竞技场进行查看。

    客观效果评测:C-Eval

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

    LLaMA ModelsValidTestAlpaca ModelsValidTest
    Chinese-LLaMA-2-13B40.6 / 42.738.0 / 41.6Chinese-Alpaca-2-13B44.3 / 45.942.6 / 44.0
    Chinese-LLaMA-2-7B28.2 / 36.030.3 / 34.2Chinese-Alpaca-2-7B41.3 / 42.940.3 / 39.5
    Chinese-LLaMA-Plus-33B37.4 / 40.035.7 / 38.3Chinese-Alpaca-Plus-33B46.5 / 46.344.9 / 43.5
    Chinese-LLaMA-Plus-13B27.3 / 34.027.8 / 33.3Chinese-Alpaca-Plus-13B43.3 / 42.441.5 / 39.9
    Chinese-LLaMA-Plus-7B27.3 / 28.326.9 / 28.4Chinese-Alpaca-Plus-7B36.7 / 32.936.4 / 32.3

    客观效果评测:CMMLU

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

    LLaMA ModelsTest (0/few-shot)Alpaca ModelsTest (0/few-shot)
    Chinese-LLaMA-2-13B38.9 / 42.5Chinese-Alpaca-2-13B43.2 / 45.5
    Chinese-LLaMA-2-7B27.9 / 34.1Chinese-Alpaca-2-7B40.0 / 41.8
    Chinese-LLaMA-Plus-33B35.2 / 38.8Chinese-Alpaca-Plus-33B46.6 / 45.3
    Chinese-LLaMA-Plus-13B29.6 / 34.0Chinese-Alpaca-Plus-13B40.6 / 39.9
    Chinese-LLaMA-Plus-7B25.4 / 26.3Chinese-Alpaca-Plus-7B36.8 / 32.6

    长上下文版模型评测

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

    Models单文档QA多文档QA摘要Few-shot学习代码补全合成任务Avg
    Chinese-Alpaca-2-7B-64K44.728.114.439.044.65.029.3
    Chinese-LLaMA-2-7B-64K27.216.46.533.07.85.016.0
    Chinese-Alpaca-2-13B-16K47.926.713.022.346.621.529.7
    Chinese-Alpaca-2-13B38.420.011.917.346.58.023.7
    Chinese-Alpaca-2-7B-16K46.423.314.329.049.69.028.6
    Chinese-Alpaca-2-7B34.017.411.821.350.34.523.2
    Chinese-LLaMA-2-13B-16K36.717.73.129.813.83.017.3
    Chinese-LLaMA-2-13B28.314.44.616.310.45.413.2
    Chinese-LLaMA-2-7B-16K33.215.96.523.510.35.315.8
    Chinese-LLaMA-2-7B19.013.96.411.011.04.711.0

    量化效果评测

    以Chinese-LLaMA-2-7B为例,对比不同精度下的模型大小、PPL(困惑度)、C-Eval效果,方便用户了解量化精度损失。PPL以4K上下文大小计算,C-Eval汇报的是valid集合上zero-shot和5-shot结果。

    精度模型大小PPLC-Eval
    FP1612.9 GB9.37328.2 / 36.0
    8-bit量化6.8 GB9.47626.8 / 35.4
    4-bit量化3.7 GB10.13225.5 / 32.8

    特别地,以下是在llama.cpp下不同量化方法的评测数据,供用户参考,速度以ms/tok计,测试设备为M1 Max。具体细节见📖GitHub Wiki

    llama.cppF16Q2_KQ3_KQ4_0Q4_1Q4_KQ5_0Q5_1Q5_KQ6_KQ8_0
    PPL9.12811.1079.5769.4769.5769.2409.1569.2139.1689.1339.129
    Size12.91G2.41G3.18G3.69G4.08G3.92G4.47G4.86G4.59G5.30G6.81G
    CPU Speed11742513944434851505465
    GPU Speed531921171820xx2526x

    投机采样加速效果评测

    通过投机采样方法并借助Chinese-LLaMA-2-1.3B和Chinese-Alpaca-2-1.3B,可以分别加速7B、13B的LLaMA和Alpaca模型的推理速度。以下是使用投机采样脚本在1*A40-48G上解码生成效果评测中的问题测得的平均速度(速度以ms/token计,模型均为fp16精度),供用户参考。详细说明见📖GitHub Wiki。

    草稿模型草稿模型速度目标模型目标模型速度投机采样速度(加速比)
    Chinese-LLaMA-2-1.3B7.6Chinese-LLaMA-2-7B49.336.0(1.37x)
    Chinese-LLaMA-2-1.3B7.6Chinese-LLaMA-2-13B66.047.1(1.40x)
    Chinese-Alpaca-2-1.3B8.1Chinese-Alpaca-2-7B50.234.9(1.44x)
    Chinese-Alpaca-2-1.3B8.2Chinese-Alpaca-2-13B67.041.6(1.61x)

    人类偏好对齐(RLHF)版本评测

    对齐水平

    为评估中文模型与人类价值偏好对齐程度,我们自行构建了评测数据集,覆盖了道德、色情、毒品、暴力等人类价值偏好重点关注的多个方面。实验结果以价值体现正确率进行呈现(体现正确价值观题目数 / 总题数)。

    Alpaca ModelsAccuracyAlpaca ModelsAccuracy
    Chinese-Alpaca-2-1.3B79.3%Chinese-Alpaca-2-7B88.3%
    Chinese-Alpaca-2-1.3B-RLHF95.8%Chinese-Alpaca-2-7B-RLHF97.5%
    客观效果评测:C-Eval & CMMLU
    Alpaca ModelsC-Eval (0/few-shot)CMMLU (0/few-shot)
    Chinese-Alpaca-2-1.3B23.8 / 26.824.8 / 25.1
    Chinese-Alpaca-2-7B42.1 / 41.040.0 / 41.8
    Chinese-Alpaca-2-1.3B-RLHF23.6 / 27.124.9 / 25.0
    Chinese-Alpaca-2-7B-RLHF40.6 / 41.239.5 / 41.0

    训练与精调

    预训练

    • 在原版Llama-2的基础上,利用大规模无标注数据进行增量训练,得到Chinese-LLaMA-2系列基座模型
    • 训练数据采用了一期项目中Plus版本模型一致的数据,其总量约120G纯文本文件
    • 训练代码参考了🤗transformers中的run_clm.py,使用方法见📖预训练脚本Wiki

    指令精调

    • 在Chinese-LLaMA-2的基础上,利用有标注指令数据进行进一步精调,得到Chinese-Alpaca-2系列模型
    • 训练数据采用了一期项目中Pro版本模型使用的指令数据,其总量约500万条指令数据(相比一期略增加)
    • 训练代码参考了Stanford Alpaca项目中数据集处理的相关部分,使用方法见📖指令精调脚本Wiki

    RLHF精调

    • 在Chinese-Alpaca-2系列模型基础上,利用偏好数据和PPO算法进行人类偏好对齐精调,得到Chinese-Alpaca-2-RLHF系列模型
    • 训练数据基于多个开源项目中的人类偏好数据和本项目指令精调数据进行采样,奖励模型阶段、强化学习阶段分别约69.5K、25.6K条样本
    • 训练代码基于DeepSpeed-Chat开发,具体流程见📖奖励模型Wiki和📖强化学习Wiki

    常见问题

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

    问题1:本项目和一期项目的区别?
    问题2:模型能否商用?
    问题3:接受第三方Pull Request吗?
    问题4:为什么不对模型做全量预训练而是用LoRA?
    问题5:二代模型支不支持某些支持一代LLaMA的工具?
    问题6:Chinese-Alpaca-2是Llama-2-Chat训练得到的吗?
    问题7:为什么24G显存微调Chinese-Alpaca-2-7B会OOM?
    问题8:可以使用16K长上下文版模型替代标准版模型吗?
    问题9:如何解读第三方公开榜单的结果?
    问题10:会出34B或者70B级别的模型吗?
    问题11:为什么长上下文版模型是16K,不是32K或者100K?
    问题12:为什么Alpaca模型会回复说自己是ChatGPT?
    问题13:为什么pt_lora_model或者sft_lora_model下的adapter_model.bin只有几百k?
    

    引用

    如果您使用了本项目的相关资源,请参考引用本项目的技术报告: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}
    }
    

    致谢

    本项目主要基于以下开源项目二次开发,在此对相关项目和研究开发人员表示感谢。

    同时感谢Chinese-LLaMA-Alpaca(一期项目)的contributor以及关联项目和人员。

    免责声明

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

    虽然本项目中的模型具备一定的中文理解和生成能力,但也存在局限性,包括但不限于:

    • 可能会产生不可预测的有害内容以及不符合人类偏好和价值观的内容
    • 由于算力和数据问题,相关模型的训练并不充分,中文理解能力有待进一步提升
    • 暂时没有在线可互动的demo(注:用户仍然可以自行在本地部署和体验)

    问题反馈

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

    • 在提交问题之前,请先查看FAQ能否解决问题,同时建议查阅以往的issue是否能解决你的问题。
    • 提交问题请使用本项目设置的Issue模板,以帮助快速定位具体问题。
    • 重复以及与本项目无关的issue会被stable-bot处理,敬请谅解。

    关注我们

    欢迎关注微信公众号"涌现志",了解最新的技术动态。

    qrcode.png