Chinese LLaMA Alpaca Versions Save

中文LLaMA&Alpaca大语言模型+本地CPU/GPU训练部署 (Chinese LLaMA & Alpaca LLMs)

v5.0

9 months ago

本版本针对模型回复较短的问题进行升级,同时推出Plus-33B系列模型。

同时,我们也很高兴地向大家宣布新项目启动:中文LLaMA-2、Alpaca-2大模型🦙

🚀 推出中文Alpaca-Pro系列模型

  • 针对早期Alpaca相关模型回复较短的问题进行优化,使其回复长度接近GPT-3.5/GPT-4
  • 推荐所有使用Alpaca系列模型的用户升级至Pro版本(7B/13B/33B),合并方式与Plus模型一致,需要同时融合LLaMA-Plus的LoRA
  • 如果更喜欢短回复,可以选择Plus系列模型

在此特别感谢所有参与beta评测投票的各位社区成员。

🚀 推出LLaMA-Plus-33B、Alpaca-Plus-33B

  • 在基础版33B之上将训练数据扩充至120G,得到LLaMA-Plus-33B;进一步通过指令精调得到Alpaca-Plus-33B
  • 在C-Eval、主观体验方面显著优于本项目其他模型
  • 本次不再提供GPT-4评价的结果,请通过接下来介绍的ChatBot Arena浏览对比相关模型输出

📊 添加ChatBot Arena

  • 仿照fastchat的方式,添加了模型对战页面,题库进一步扩充至360题
  • 评测模型包括所有Alpaca-Plus和Alpaca-Pro系列模型,每个模型包含3个参考输出(随机显示其一)
  • 可实时查看总体胜率、Elo评分、两两对战胜率等信息

对战地址:http://chinese-alpaca-arena.ymcui.com/

🔬 升级NTK-scaling算法,添加Memory Efficient Attention(#743)

  • 升级了NTK-scaling算法,更好地支持长上下文条件下的文本生成
  • 可通过参数alpha控制上下文扩展长度,支持指定数值和auto两种方式
  • 添加了Memory Efficient Attention补丁,显著降低显存消耗,在单张24G显存的显卡上7B模型最大输入长度可达5K+

具体使用方法见 #743 中的说明。

其他更新与修复

  • 推理脚本inference_hf.py中添加了8比特量化推理支持(#756)
  • 修复了推理脚本repeat_penalty默认值过高的问题(#760)

For English release note, please refer to Discussion.

v4.2

10 months ago

本版本以功能性更新为主,包括新增8K上下文支持、支持Gradio Demo流式输出、支持仿OpenAI API形式调用等。

🔬 新增8K+上下文支持

新增8K+上下文支持方法,无需对模型权重本身做出修改

  • transformers:提出自适应RoPE,动态适配4K~8K+上下文,已集成在 gradio_demo.py, inference_hf.py等(#705)
  • llama.cpp:可支持8K+上下文,相关修改步骤详见讨论区(#696)

🚀 支持Gradio Demo流式输出(#630)

  • Gradio Demo现已支持流式输出形式,参考gradio_demo.py. Contribued by @sunyuhan19981208
  • 修复流式输出时速度过慢的问题(#707). Contributed by @GoGoJoestar

🤖 支持仿OpenAI API形式调用(#530)

  • 使用fastapi实现的仿OpenAI API风格的服务器Demo,使用方法参考Wiki. Contribued by @sunyuhan19981208
  • 修复一处system message相关错误(#684). Contribued by @bigbaldy1128
  • 增加do_sample参数(#699)Contribued by @sunyuhan19981208

其他更新、修复、新闻

  • 修复了训练脚本中training steps的问题(#669)
  • 修复了build_dataset.pyrun_clm_sft_with_peft.py中的一处命名错误,优化log输出(#691、#692)
  • 修复了低资源模型合并脚本中vocab_size更新问题(#703)
  • llama.cpp已支持仿OpenAI API部署,还可以部署一个简单的web demo,感兴趣的可访问llama.cpp#server

For English release note, please refer to Discussion.

v4.1

10 months ago

本版本以功能性更新为主,包括更新技术报告、添加C-Eval预测脚本、添加低资源模型转换脚本等。

📚 更新技术报告(arXiv-v2)

  • 更新模型构建的相关描述,添加Plus版本模型训练参数等
  • 生成效果评测部分替换为Alpaca-Plus-7B、Alpaca-Plus-13B、Alpaca-33B对比
  • 添加C-Eval完整评测结果,包括原版LLaMA以及本项目所有模型的结果与分析
  • 添加不同量化层级(2-bit ~ 8-bit, FP16)的效果对比和分析
  • 详细技术报告请查阅:https://arxiv.org/abs/2304.08177

🔬 添加C-Eval预测脚本(#601)

🚀 添加低资源模型转换脚本(#608)

  • 添加了新版低资源模型转换脚本merge_llama_with_chinese_lora_low_mem.py,大幅降低内存消耗
  • 7B需要15GB,13B需要18GB,33B需要22GB(不同机器可能略有不同)
  • 使用方法与旧脚本一致,后续将作为主要使用的模型合并脚本

其他更新和修复

  • 修复了预训练脚本中文件名的一处错误(#540),Contribution by @alkaideemo
  • 修复了模型保存问题,支持LoRA权重和tokenizer的保存 (#555)
  • 在预训练和精调脚本中增加了检查项,避免后续模型合并出现异常问题(#595)

For English release note, please refer to Discussion.

v4.0

11 months ago
image

本次重点发布了33B版本中文LLaMA和Alpaca模型。

🚀 发布中文LLaMA-33B、Alpaca-33B

  • 与其他基础版一致,中文LLaMA-33B使用了20G的中文语料进行预训练
  • 指令数据仍然是4M级别,并添加了OASST1数据(中文翻译,约10K)
  • 生成效果评价:Plus-7B获得75.3,Plus-13B获得79.4,33B获得82.0👍🏻
  • Alpaca-33B在数值计算、代码理解等7B/13B不擅长的任务上获得了显著性能提升

具体评测结果和生成示例请参考效果评测

💯 提供了C-Eval客观评价指标结果

C-Eval是近期推出的一个包含14K样本的选择型问答数据集,涵盖了52个不同的学科和四个难度级别。中文Alpaca-Plus-13B和Alpaca-33B模型在该测试集上达到了较好水平,甚至超越了LLaMA-65B、Bloomz-mt等参数量大几倍甚至十几倍的千亿级模型。

image

详细结果请参考:https://github.com/ymcui/Chinese-LLaMA-Alpaca/tree/main#客观效果评测

📚 功能性更新

  • 提供了privateGPT示例(#410)privateGPT是基于LangChain二次开发的项目,可以对本地文档进行分析并利用大模型进行交互问答。相关使用方法请查看本项目Wiki
  • 提供了Colab上可运行的Gradio示例(#364、#536):在Colab上运行notebook,启动基于Gradio的交互式Web服务,可迅速进行部署与体验。Contribution by @sunyuhan19981208

其他更新

  • 更新了训练脚本,提升了训练之后进一步合并模型的便利性
  • 重构了scripts文件夹,使目录结构更清晰
  • 更新了合并模型脚本,使之适配33B/65B模型

For English release note, please refer to Discussion.

v3.2

11 months ago


newlogo

本次以功能性更新为主,包括添加指令精调脚本、LangChain支持、基于Gradio的本地Demo等。

添加了指令精调脚本,优化实验启动流程(#322)

添加了LangChain使用示例(#338)

  • Chinese-Alpaca可以轻松地与LLM应用程序开发框架LangChain结合进行二次开发
  • 添加了使用Chinese-Alpaca和LangChain进行 检索问答(Retrieval QA)摘要生成(Summarization) 的示例
  • 详细使用方法请参考Wiki中的LangChain教程

添加了基于Gradio的本地Web Demo(#300)

  • 在本地浏览器中使用原生的🤗transformers进行推理,并且支持多轮对话
  • 请参考wiki中的使用Transformers推理

感谢@sunyuhan19981208 贡献的PR。

其他更新

For English release note, please refer to Discussion.

v3.1

1 year ago

本次是针对Plus版本的更新,主要聚焦于以下几方面:

🚀 发布中文LLaMA-Plus, Alpaca-Plus 13B版本

发布中文LLaMA-Plus, Alpaca-Plus 13B版本,改进点如下:

  • 相比基础版进一步扩充了训练数据,其中LLaMA扩充至120G文本,Alpaca扩充至4.3M指令数据
  • 重点增加了科学领域数据,涵盖:物理、化学、生物、医学、地球科学等
  • Alpaca训练时采用了更大的rank,相比基础版具有更低的验证集损失
  • Alpaca评测结果:13B获得74.3分,Plus-7B获得78.2分,Plus-13B获得80.8分,具体评测结果请参考效果评测
    • 多轮回复长度相比旧模型提升明显(可适当增大温度系数)
    • 知识问答、写作、翻译等方面效果显著提升

⚠️ 注意:Alpaca-Plus-7B/13B的模型合并流程稍有不同,请参考合并教程

💯 完善了量化评测

llama.cpp提供了多种量化方案,本次针对Alpaca-Plus-7B以及Alpaca-Plus-13B进行了综合评测。

  • 默认的量化方法为q4_0,虽然速度最快但损失也是最大的,其余方法各有利弊,按实际情况选择
  • 机器资源够用且对速度要求不是那么苛刻的情况下可以使用q8_0,接近F16模型的效果
  • 需要注意的是F16以及q8_0并不会因为增加线程数而提高太多速度
  • 线程数-t与物理核心数一致时速度最快,超过之后速度反而变慢

详细结果见关于量化方法选择及推理速度

For English release note, please refer to Discussion.

v3.0

1 year ago

比假期先到来的是我们的最新模型😄,本次更新主要聚焦于以下几方面:

🚀 发布中文LLaMA, Alpaca Plus版(7B)

推出中文LLaMA, Alpaca Plus版(7B),相比基础版本的改进点如下:

  • 进一步扩充了训练数据,其中LLaMA扩充至120G文本(通用领域),Alpaca扩充至4M指令数据(重点增加了STEM相关数据)
  • Alpaca训练时采用了更大的rank,相比原版具有更低的验证集损失
  • 评测结果显示,Alpaca-Plus-7B相比基础版Alpaca-7B效果更优,部分任务接近或超过13B版本
  • 这一轮比拼:7B获得65.3分,13B获得70.9分,Plus-7B效果75.3分,具体评测结果请参考效果评测

(Plus-13B在路上)

💯 完善了评测样例

在原有的测试样例的基础上,进一步对评测样例、评测方法进行完善,请参考效果评测

  • 样例总量从160个扩充至200个,每个任务20个样例
  • 评测模型由Q4改为Q8,更接近于原始模型的效果,更具有参考价值
  • 修正了部分prompt,使得指令意图更明确

📚 简化了模型合并脚本

现在用户可以使用统一的merge_llama_with_chinese_lora.py对模型进行合并和转换了。

  • 支持输出.pth格式模型:用于后续llama.cpp等的量化和部署
  • 支持输出.bin格式(huggingface)模型:用于进一步精调或其他训练目的
  • Alpaca-Plus合并流程稍有不同,请务必参考最新合并流程教程

📚 添加了预训练脚本

提供了用于训练LLaMA的预训练脚本,基于🤗transformers中的run_clm.py。具体使用方法请参考Wiki中的相关教程

预祝大家假期愉快~ 🎉🎉🎉

v2.2

1 year ago

本次更新主要聚焦于以下几方面:

📚 添加了词表合并的脚本

现在用户可以利用脚本merge_tokenizers.py对原版LLaMA词表进行扩充。脚本使用说明:链接

🚀 添加了LlamaChat支持

LlamaChat提供了一种面向macOS系统的类LLaMA模型的图形交互界面。macOS用户可以使用LlamaChat软件加载PyTorch以及GGML版本的模型了。LlamaChat使用说明:链接

📚 文档转移至GitHub Wiki

为了更系统地归档相关使用说明,从本版本起相关文档将在Wiki中进行更新。查看:本项目 GitHub Wiki

📝 添加了第一版技术文档

v2.1

1 year ago
  • 🚀 合并脚本更新,支持从HF格式LLaMA权重+Chinese-LLaMA/Alpaca LoRA权重合并到HF格式的模型权重

  • 🚀 添加了两种新的部署方式:

    • 添加了基于text-generation-WebUI的部署指南,无需合并模型即可本地化部署
    • 添加了直接使用Transformers进行推理的脚本,可方便快速体验模型效果,无需安装其他库或Python包,支持CPU/GPU
  • ⚠️ 移除了权重合并脚本中的--model_size参数:合并模型时不再需要提供该参数,脚本将自动推测模型大小。

v2.0

1 year ago

🚀 重磅更新中文LLaMA、Alpaca 13B版本!

  • 综合评分:7B版本49分,13B版本71分👍🏻
  • 优化了训练参数,13B模型相比7B模型具有更好的事实性
  • 尤其在知识问答、文学诗词、娱乐、翻译、伦理拒答等分类上获得显著提升
  • 实测在llama.cpp程序中,13B量化模型的推理速度仍然很快(M1 Max下测试)

📝 完善了模型评测样例

  • 现在一共给出10大类评测样例,涵盖了多轮交互、问答、翻译、写信、代码、伦理等分类。
  • 以GPT-4为裁判,给出了中文Alpaca 7B和13B的全面对比评测
  • 用户可根据评测结果更快地找到适合自己的模型

📚 添加了Colab在线转换脚本,转换更方便