Chinese LLaMA Alpaca 2 Versions Save

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

v4.1

3 months ago

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

What's Changed

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

v4.0

4 months ago

本次更新推出长上下文版模型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.

v3.2

6 months ago

本次更新推出小参数量基座/聊天模型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.pyinference_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)

v3.1

8 months ago

本次更新推出长上下文版聊天/指令模型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.

v3.0

8 months ago

本次更新推出长上下文版模型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.

v2.0

9 months ago

本次更新推出Chinese-LLaMA-2-13B和Chinese-Alpaca-2-13B模型,添加多种下游应用适配等。

🚀 推出Chinese-LLaMA-2-13B和Chinese-Alpaca-2-13B

  • 与7B系列模型相同,Chinese-LLaMA-2-13B使用120G中文语料进行增量预训练,Chinese-Alpaca-2-13B进一步使用了500万指令数据进行精调
  • 上述模型在多个客观指标上超过了一代Plus-13B甚至是Plus-33B的效果,查看系统效果
  • 主观效果请通过模型竞技场浏览(模型刚加入排名暂不稳定):http://llm-arena.ymcui.com/

🤖 添加多种应用适配

  • 添加了基于llama.cpp的服务启动和API访问方法(#59)
  • 添加text-generation-webui支持(#65)
  • 添加LangChain使用教程(#79)
  • 添加privateGPT适配,利用大模型和本地文档进行交互(#103)

相关使用文档请查阅📚 GitHub Wiki

💻 添加了CFG采样方法(#91)

  • Classifier-Free Guidance (CFG) sampling 是一种提升模型输出与prompt内容的一致性的采样方法。
  • 在transformers推理脚本中(inference_hf.py与gradio_demo.py)添加了对CFG采样方法的支持。
  • 通过设置系统提示语(system_prompt)、反向提示语(negative prompt)以及调整CFG强度(guidance_scale),可以实现对模型输出的多样化控制。

其他更新

  • 添加了OpenAI API流式输出支持(#43)
  • 添加了4比特推理支持(#47)
  • Gradio Demo中添加了system prompt修改框(#60)
  • 修复了预训练之后生成无法停止的问题(#61)
  • 修正了默认解码超参(#69)
  • 添加了基于Chinese-LLaMA-2-7B的量化结果对比(#74)
  • 优化了C-Eval预测脚本日志输出(#75)

For English release note, please refer to Discussion.

v1.1

9 months ago

本次以功能性更新为主,包括添加了FlashAttention-2支持脚本、vLLM支持、长回复模板等。

🚀 已添加FlashAttention-2训练支持(#38)

  • 针对模型训练添加了FlashAttention-2补丁,可有效提高模型训练速度并减少显存占用
  • 可通过参数flash_attn控制是否开启FlashAttention-2加速训练,具体可查看预训练脚本Wiki指令精调脚本Wiki

🚀 vLLM加速支持(#35、#48)

  • vLLM 是一个LLM推理和服务部署库,其具有高速运行、灵活易用等特点
  • gradio_demo.pyinference_hf.py中添加了对vLLM部署服务的支持。此外,也提供了vLLM作为后端的仿OpenAI API风格的服务器DEMO(openai_api_server_vllm.py
  • 经测试,V100-16G GPU上使用7B模型推理,vLLM的平均推理速度相比transformers提升了470%,结合批量处理后vLLM的速度进一步达到了3800%的提升

🤖 生成长回复的系统提示语模板(#31)

  • 默认系统提示语较为简单,模型生成的回复略短于一期Alpaca-Pro系列模型
  • 提供了alpaca-2-long.txt系统提示语,可进一步提升回复长度(也可自行尝试修改)

其他更新

  • 添加了自定义系统提示语的选项(#32)
  • 添加了Alpaca-2-7B模型的输出示例(#33)
  • 修正了部分脚本中的提示信息(#42)
  • 添加了基于Colab的Gradio demo,可以自行架设demo体验模型了(#46)

For English release note, please refer to Discussion.

v1.0

9 months ago


newlogo

很高兴地向大家宣布中文LLaMA-2-7B、Alpaca-2-7B大模型已正式发布。

  • Chinese-LLaMA-2-7B:基座模型,使用120G语料增量训练,与一期Plus系列模型一致
  • Chinese-Alpaca-2-7B:指令/chat模型,在Chinese-LLaMA-2-7B的基础上进一步通过指令精调(5M条指令)获得

相比一期项目的主要特点

📖 经过优化的中文词表

  • 一期项目中,我们针对一代LLaMA模型的32K词表扩展了中文字词(LLaMA:49953,Alpaca:49954),以期进一步提升模型对中文文本的编解码效率
  • 在本项目中,我们重新设计了新词表(大小:55296),进一步提升了中文字词的覆盖程度,同时统一了LLaMA/Alpaca的词表,避免了因混用词表带来的问题

⚡ 基于FlashAttention-2的高效注意力

  • FlashAttention-2是高效注意力机制的一种实现,相比其一代技术具有更快的速度和更优化的显存占用
  • 当上下文长度更长时,为了避免显存爆炸式的增长,使用此类高效注意力技术尤为重要
  • 本项目的所有模型均使用了FlashAttention-2技术进行训练

🚄 基于NTK的自适应上下文扩展技术

  • 一期项目中,我们实现了基于NTK的上下文扩展技术,可在不继续训练模型的情况下支持更长的上下文
  • 在上述基础上,我们进一步设计了方便的自适应经验公式,无需针对不同的上下文长度设置相应超参
  • 本项目模型原生支持4K上下文,利用上述技术可扩展至12K,并最高支持扩展至18K+(精度有一定损失)

🤖 简化的中英双语系统提示语

  • 一期项目中,中文Alpaca系列模型使用了Stanford Alpaca的指令模板和系统提示语
  • 初步实验发现,Llama-2-Chat系列模型的默认系统提示语未能带来统计显著的性能提升,且其内容过于冗长
  • 本项目中的Alpaca-2系列模型简化了系统提示语,同时遵循Llama-2-Chat指令模板,以便更好地适配相关生态

模型效果

主观评测

为了更加直观地了解模型的生成效果,本项目仿照Fastchat Chatbot Arena推出了模型在线对战平台,可浏览和评测模型回复质量。对战平台提供了胜率、Elo评分等评测指标,并且可以查看两两模型的对战胜率等结果。测试模型包括:

📊 模型在线对战:http://chinese-alpaca-arena.ymcui.com/

客观评测

客观评测选择了C-Eval进行评价,结果如下表。可以看到二代模型显著优于一代模型,且部分指标上甚至超过13B版本。

LLaMA系列模型之间对比:

模型 Valid (zero-shot) Valid (5-shot) Test (zero-shot) Test (5-shot)
Chinese-LLaMA-2-7B 28.2 36.0 30.3 34.2
Chinese-LLaMA-Plus-13B 27.3 34.0 27.8 33.3
Chinese-LLaMA-Plus-7B 27.3 28.3 26.9 28.4

Alpaca系列模型之间对比:

模型 Valid (zero-shot) Valid (5-shot) Test (zero-shot) Test (5-shot)
Chinese-Alpaca-2-7B 41.3 42.9 40.3 39.5
Chinese-Alpaca-Plus-13B 43.3 42.4 41.5 39.9
Chinese-Alpaca-Plus-7B 36.7 32.9 36.4 32.3

For English release note, please refer to Discussion.