每一个人的大模型:开源BELLE项目集训练、数据、模型、评估、APP一体
机器之心 2023-04-21 14:02 发表于北京
机器之心专栏
机器之心编辑部
BELLE 的目标是促进中文对话大模型开源社区的发展,愿景是成为能够帮到每一个人的 LLM Engine。
最近一段时间,以 “羊驼” 家族为代表的各类 ChatGPT 替代模型不断涌现。一方面,开源社区也有了可以与 ChatGPT “一较高下” 的开源模型;而另一方面,各模型在如何提升 LLM 的指令表现方面以及评估 LLM 效果的方法不尽相同。
此前,一个基于斯坦福的 Alpaca 、并进行了中文优化的项目受到大家关注,即开源中文对话大模型 70 亿参数的 BELLE(Be Everyone's Large Language model Engine)。它基于斯坦福的 Alpaca 完成,但进行了中文优化,并对生成代码进行了一些修改,不仅如此,模型调优仅使用由 ChatGPT 生产的数据(不包含任何其他数据)。
BELLE 的目标是促进中文对话大模型开源社区的发展,愿景是成为能够帮到每一个人的 LLM Engine。
相比如何做好大语言模型的预训练,BELLE 更关注如何在开源预训练大语言模型的基础上,帮助每一个人都能够得到一个属于自己的、效果尽可能好的具有指令表现能力的语言模型,降低大语言模型、特别是中文大语言模型的研究和应用门槛。为此,BELLE 项目会持续开放指令训练数据、相关模型、训练代码、应用场景等,也会持续评估不同训练数据、训练算法等对模型表现的影响。
BELLE 项目亮点包括:
- 研究报告:从指令微调策略到模型评估范式等多方面探究提升大语言模型指令表现能力的因素
- 数据开放:丰富、大量且持续完善的训练和评估数据
- 开箱即用的多种模型和指令微调 / LoRA / 量化代码
- 多终端 LLM 推理和聊天 app,无需联网,离线运行
还有其他功能,请移步 Github 项目 。
项目地址:https://github.com/LianjiaTech/BELLE
BELLE 项目的研究方向着眼于提升中文指令调优模型的指令跟随、指令泛化效果,降低模型训练和研究工作的门槛,让更多人都能感受到大语言模型带来的帮助。
为此 BELLE 进行了一系列研究,涵盖模型评估方法、影响模型指令表现效果的因素、模型调优等多方面。
最近,两篇相关论文已经公开,下面我们看看论文内容。
论文介绍
论文 1:Towards Better Instruction Following Language Models for Chinese: Investigating the Impact of Training Data and Evaluation
论文地址:https://arxiv.org/pdf/2304.07854.pdf
为了推动开源大语言模型的发展,大家投入了大量精力开发能够类似于 ChatGPT 的低成本模型。首先,为了提高模型在中文领域的性能和训练 / 推理效率,我们进一步扩展了 LLaMA 的词汇表,并在 34 亿个中文词汇上进行了二次预训练。
此外,目前可以看到基于 ChatGPT 产生的指令训练数据方式有:1)参考 Alpaca 基于 GPT3.5 得到的 self-instruct 数据;2)参考 Alpaca 基于 GPT4 得到的 self-instruct 数据;3)用户使用 ChatGPT 分享的数据 ShareGPT。在这里,我们着眼于探究训练数据类别对模型性能的影响。具体而言,我们考察了训练数据的数量、质量和语言分布等因素,以及我们自己采集的中文多轮对话数据,以及一些公开可访问的高质量指导数据集。
为了更好的评估效果,我们使用了一个包含一千个样本和九个真实场景的评估集来测试各种模型,同时通过量化分析来提供有价值的见解,以便更好地促进开源聊天模型的发展。
这项研究的目标是填补开源聊天模型综合评估的空白,以便为这一领域的持续进步提供有力支持。
实验结果如下:
其中 BELLE-0.5M-CLEAN 是从 230 万指令数据中清洗得到 0.5M 数据,其中包含单轮和多轮对话数据,和之前开放的 0.5M 数据不是同一批数据。
需要强调指出的是,通过案例分析,我们发现我们的评估集在全面性方面存在局限性,这导致了模型分数的改善与实际用户体验之间的不一致。构建一个高质量的评估集是一个巨大的挑战,因为它需要在保持平衡难易程度的同时包含尽可能多样的使用场景。如果评估样本过于困难,那么所有模型的表现将会很差,更难辨别各种训练数据和策略的效果;相反,如果评估样本都相对容易,评估将失去其比较价值。同样地,评估集多样性不够的时候,容易出现评估有偏(例如当某个模型的训练和评估领域或任务类型十分一致)。二者的联合分布还可能导致部分任务上难易区分度高,部分任务上难易区分度低,进一步加大评估的难度和有效性。此外,必须确保评估数据与训练数据保持独立。
图 1 评估集的难易度与多样性分布示意图
基于这些观察,我们谨慎地提醒不要假设模型仅通过在有限数量的测试样本上获得良好结果就已经达到了与 ChatGPT 相当的性能水平。我们认为,优先发展全面评估集的持续发展具有重要意义。
这篇工作中的相关数据和模型将会于近日在 BELLE 项目中开源。
论文 2:A Comparative Study between Full-Parameter and LoRA-based Fine-Tuning on Chinese Instruction Data for Instruction Following Large Language Model
论文地址:https://arxiv.org/pdf/2304.08109.pdf
为了实现对大语言模型的指令调优,受限于资源和成本,许多研究者开始使用参数高效的调优技术,例如 LoRA,来进行指令调优,这也取得了一些令人鼓舞的成果。相较于全参数微调,基于 LoRA 的调优在训练成本方面展现出明显的优势。在这个研究报告中,我们选用 LLaMA 作为基础模型,对全参数微调和基于 LoRA 的调优方法进行了实验性的比较。
实验结果揭示,选择合适的基础模型、训练数据集的规模、可学习参数的数量以及模型训练成本均为重要因素。
我们希望本文的实验结论能对大型语言模型的训练提供有益的启示,特别是在中文领域,协助研究者在训练成本与模型性能之间找到更佳的权衡策略。
实验结果如下:
其中的 Average Score 是基于本项目集目前开放的 1000 条评估集合得到的(见下文评估数据部分)。LLaMA-13B + LoRA (2M) 代表使用 LLaMA-13B 作为基础模型和 LoRA 训练方法,在 2M 指令数据上进行训练的模型;而 LLaMA-7B + FT (2M) 代表了一个使用全参数微调进行训练的模型。所有这些实验都是在 8 块 NVIDIA A100-40GB GPU 上进行的,实验细节请参考我们的论文。
根据评估,我们的模型在数学任务上表现不佳,得分大多低于 0.5。为了验证 LoRA 在特定任务上的适应能力,我们使用增量 0.25M 数学数据集(math_0.25M)来提升模型的数学能力,并与增量微调方法作为对比。从实验结果可以看出,增量微调仍然表现更好,但需要更长的训练时间。LoRA 和增量微调都提高了模型的整体性能。从论文附录中的详细数据可以看出,LoRA 和增量微调都在数学任务中显示出显著的改进,而只会导致其他任务的轻微性能下降。
总体而言:1) 选择基础模型对于 LoRA 调整的有效性具有显著影响;2)增加训练数据量可以持续提高 LoRA 模型的有效性;3)LoRA 调整受益于模型参数的数量。对于 LoRA 方案的使用,我们建议可以在已经完成了指令学习的模型的基础上针对特定任务做 loRA 的自适应训练。
同样地,该论文中的相关模型也会尽快开放在 BELLE 项目中。
持续完善的训练和评估数据
目前 BELLE 已经开放的数据分为两部分:最近开放的 10M 中文数据集与早前开放的 1.5M 中文数据集。
10M 中文数据集
包含数个由 BELLE 项目产生的不同指令类型、不同领域的子集。目前正在逐步整理中,将会逐渐发布。
- School Math:包含约 25 万条生成的中文数学题数据,包含解题过程
- Multiturn Chat:包含约 80 万条生成的用户与助手的多轮对话
- Generated Chat:包含约 40 万条生成的给定角色的多轮对话
- train_2M_CN:包含约 200 万条生成的多样化指令任务数据
评估数据
如上文所述,评估数据的质量对评估 LLM 的效果十分关键。BELLE 项目开放的中文评估集包含由 BELLE 项目产生的约 1000 条不同指令类型、不同领域的评估样例,并试图兼顾评估集的多样性与难易度。评估集的数据分布见图 2。
多样性方面,评估集涵盖 extract、open qa、closed qa、rewrite、generation、summerization、classification、brainstorming、others 9 种任务类型,并涵盖市场销售、健康饮食、语言文学、旅行、多种编程语言、环保、音乐、历史、厨艺、影视、体育赛事、医学、金融、科技等多个主题。任务类型分布见图 2 (a)。
难易度方面,评估集目前尽可能加入了一些难度偏高的样本,并且平衡评估集与标注回复的平均指令长度分布。
多终端模型推理和聊天应用 ChatBELLE
开源社区中已经诞生了如 llama.cpp、GPT4ALL、WebLLM 等 LLM 离线部署加速方案。虽然这些项目已经将动辄几十 GB 的显存需求和专业 GPU 的算力需求降低至一般的消费电子设备也可运行,但大多仍然需要一些技能才可部署及体验。
BELLE 希望进一步拓展大语言模型的使用场景,让更多用户即使没有专业设备也能感受到 LLM 带来的帮助。提供了纯离线、跨平台的 BELLE 聊天应用:结合 4bit 量化后的 ChatBELLE 模型、llama.cpp 和 Flutter 跨平台 UI,用户仅需安装 app、下载模型,即可在各类移动设备上不需联网本地体验 ChatBELLE 模型。
首先来看看效果:
macOS
在 M1 Max Macbook 上仅使用 CPU 实时运行,无论是加载还是推理都十分迅速:
相信随着 LLM 端上推理相关算法和软硬件技术的逐步发展,纯离线端上模型的效果将越来越好。BELLE 项目将持续优化 ChatBELLE 模型的性能和 App 功能,努力为更多用户带来更优质更丰富的体验。
小结
近两个月,LLM 开源社区在基础模型研究、模型指令微调、模型应用场景等多方面的进展称得上日新月异、百花齐放。BELLE 项目组对这些进展感到欣喜之余,也希望贡献自己微薄之力,促进开源 LLM,特别是中文开源 LLM 的发展。
虽然在大家不懈努力下开源模型在效果方面已经取得了长足进步,甚至一些模型在个别方面已经与 ChatGPT 甚至 GPT-4 效果比肩,我们仍然需要直面与 OpenAI 的差距。目前,ChatGPT 的能力之多样、指令跟随和泛化能力之强、安全性之高,仍然需要开源社区脚踏实地地不断提升来追赶。在全社区的共同努力下,希望大语言模型将真正属于每一个人,能够帮助到每一个人。