Datawhale开源
团队:深圳大学沈琳琳教授团队
Linly
伶荔说
中文语言大模型来啦!
大数据系统计算技术国家工程实验室副主任、深圳大学计算机与软件学院沈琳琳教授团队主持的人工智能项目“伶荔(Linly)”于今天隆重推出“伶荔说”系列中文语言大模型。
该系列目前包含中文基础模型和对话模型。其中,中文基础模型以LLaMA为底座,利用中文和中英平行增量预训练,将它在英文上强大语言能力迁移到中文上。更进一步汇总了目前公开的多语言指令数据,对中文模型进行了大规模指令跟随训练,实现了Linly-ChatFlow对话模型。让我们一起来看看吧!
1
项目简介
最近,以ChatGPT为代表的大规模语言模型成为了人工智能领域的一个热门话题。在中文领域,也产生了许多类似的项目,例如商业化模型文心一言、通义,以及开源模型ChatGLM、BELLE等。这些开源模型大多基于预训练语言模型底座,在其基础上进行指令精调,从而实现人类指令跟随和对话功能。因此,基础模型的语言能力很大程度上决定了最终的对话模型效果。目前开源的通用基础模型底座主要有LLaMA[1]和BLOOM[2]。其中,LLaMA是Meta公开的预训练语言模型,它以较小的模型结构和更多的训练数据达到了超越大模型的强大语言能力,覆盖7B、13B、33B和65B模型量级。然而,LLaMA主要在英文数据上预训练,对中文支持不足。另一方面,BLOOM是由开源社区共建的预训练大模型,它的训练语料包含49种语言,包含7.1B以下和175B模型量级,缺乏百亿级参数。由于LLaMA和BLOOM都不是以中文为核心构建的语言模型,它们的中文理解能力都有许多提升空间。
为了开发高性能中文基础模型,填补中文基础模型百亿到千亿级预训练参数的空白,大数据系统计算技术国家工程实验室副主任、深圳大学计算机与软件学院沈琳琳教授团队在人工智能项目“伶荔(Linly)”支持下,推出了伶荔说系列中文语言大模型,目前包含中文基础模型和对话模型。其中,中文基础模型以LLaMA为底座,利用中文和中英平行增量预训练,将它在英文上强大语言能力迁移到中文上。更进一步,汇总了目前公开的多语言指令数据,对中文模型进行了大规模指令跟随训练,实现了Linly-ChatFlow对话模型。
相比已有的中文开源模型,“伶荔说”模型具有以下优势:1. 在32*A100 GPU上训练了不同量级和功能的中文模型,对模型充分训练并提供强大的baseline。据我们所知33B的Linly-Chinese-LLAMA是目前最大的中文LLaMA模型。2. 公开所有训练数据、代码、参数细节以及实验结果,确保项目的可复现性,用户可以选择合适的资源直接用于自己的流程中。3. 项目具有高兼容性和易用性,提供可用于CUDA和CPU的量化推理框架,并支持Huggingface格式。
目前公开可用的模型有:
Linly-Chinese-LLaMA:中文基础模型,基于LLaMA在高质量中文语料上增量训练强化中文语言能力,现已开放 7B、13B 和 33B 量级,65B正在训练中。
Linly-ChatFlow:中文对话模型,在400万指令数据集合上对中文基础模型指令精调,现已开放7B、13B对话模型。
Linly-ChatFlow-int4 :ChatFlow 4-bit量化版本,用于在CPU上部署模型推理。
进行中的项目:
Linly-Chinese-BLOOM:基于BLOOM中文增量训练的中文基础模型,包含7B和175B模型量级,可用于商业场景。
项目地址:https://github.com/CVI-SZU/Linly
2
项目特点
伶荔说项目具有以下特点:
1. 大规模中文增量训练,利用翻译数据提速中文模型收敛
在训练数据方面,项目尽可能全面的收集了各类中文语料和指令数据。无监督训练使用了上亿条高质量的公开中文数据,包括新闻、百科、文学、科学文献等类型。和通常的无监督预训练不同,项目在训练初期加入了大量中英文平行语料,帮助模型将英文能力快速迁移到中文上。
在指令精调阶段,项目汇总了开源社区的指令数据资源,包括多轮对话、多语言指令、GPT4/ChatGPT问答、思维链数据等等,经过筛选后使用500万条数据进行指令精调得到Linly-ChatFlow模型。训练使用的数据集也在项目里提供。训练流程如图所示:
2. 全参数训练,覆盖多个模型量级
目前基于LLaMA的中文模型通常使用LoRA方法进行训练,LoRA冻结预训练的模型参数,通过往模型中加入额外的网络层,并只训练这些新增的网络层参数,来实现快速适配。虽然LoRA能够提升训练速度且降低设备要求,但性能上限低于全参数训练[3]。为了使模型获得尽可能强的中文语言能力,该项目对所有参数量级都采用全参数训练,开销大约是LoRA的3-5倍。
伶荔说语言模型利用TencentPretrain多模态预训练框架[4],集成DeepSpeed ZeRO3以FP16数据并行训练。目前已开放7B、13B、33B模型权重,65B模型正在训练中。模型仍在持续迭代,将定期更新,损失收敛情况如图所示:
3. 可支持本地CPU int4推理、消费级GPU推理
大模型通常具有数百亿参数量,提高了使用门槛。为了让更多用户使用Linly-ChatFlow模型,我们在项目中集成了高可用模型量化推理方案,支持int4量化CPU推理可以在手机或者笔记本电脑上使用,int8量化使用CUDA加速可以在消费级GPU推理13B模型。此外,项目中还集成了微服务部署,用户能够一键将模型部署成服务,方便二次开发。
3
生成案例
模型性能测试设计了8个维度,从不同角度考察Linly-ChatFlow的语言能力并和其他模型进行对比。测评包含常识推理、逻辑推理、知识问答、语义理解、数值计算、代码生成、文本写作和文本翻译,每个类别包含约10个问题。
以下是一些生成案例:
多轮对话
你好
您好,有什么我可以帮到您的吗?
请问你怎么看待996的呢?
对于这个话题,不同人会有不同的见解。一些公司采用996工作制度来提高效率和生产力,而对于员工来说,他们也需要平衡工作与生活的关系。因此,对于每个人来说,如何处理工作时间是非常重要的事情。
那如何做到你说的后面这一点呢?
关键在于建立健康的工作与生活平衡。为了保持身心健康,建议员工适当地调整自己的日程安排,例如:合理安排工作时间、适量放松自己等等。此外,通过交流与沟通,公司与员工之间的信任和支持也非常重要。
常识推理
Python和JavaScript编程语言的主要区别是什么?
Python是一种解释型、面向对象的脚本语言,可用于Web开发、数据分析、人工智能等。而JavaScript则是一种动态、交互式的脚本语言,广泛应用于前端网页设计、游戏开发、服务器端编程等。两者的最大区别在于:
- 语法不同:Python的语法相对简单,有点像C/C++,而JavaScript则非常复杂,由于需要重新定义函数,所以使用起来也比较麻烦;
- 功能不同:Python支持多种模块和库,可以实现各种任务,例如数据处理、图形化操作等;JavaScript除了HTML/CSS之外,还包含JQuery、React、Angular等框架,用于创建客户端界面。
知识问答
政府如何利用财政和货币政策来应对经济衰退?
为了应对经济衰退,政府可以使用多种财政和货币政策。财政政策包括提供直接补贴、开展基建项目等;而货币政策则主要是通过调节市场上有关利率的变化,从而达到改善经济状况的效果。此外,还可以实行保护性贸易政策,以及设立金融机构等新设施,以刺激国内消费,并加大与其他国家或地区的合作力度,共同应对全球经济萧条。
语义理解
句子1:“制定西部开发开放新的政策措施,西部地区企业所得税优惠等政策到期后继续执行”
句子2:“西部地区企业所得税优惠政策促使企业向西部发展“
这两句话的关系是什么?选项:蕴含、矛盾、无关
这两句话的意思是:第一句提到"制定西部开发开放新的政策措施,西部地区企业所得税优惠等政策到期后继续执行"。而第二句提到 "西部地区企业所得税优惠政策促使企业向西部发展",说明了第一句中制定的政策对于促进西部地区的经济发展起到了重要作用。因此,可以说两个句子之间存在蕴含关系。
逻辑推理
语言是一种味道,人们依靠它传情达意;语言更是一面镜子,人们从中可以看到时代的身影,社会的不同阶段,人们的问候语也会随之改变。这表明:A、社会意识是变化发展的 B、社会意识对社会存在有反作用 C、社会意识决定社会存在 D、社会意识不具有相对独立性
D。语言能够抓住当下的社会现象和人们心理,并通过口头或文字的形式体现出来,因此语言反映了社会意识,而社会意识也会影响语言。选项D符合这个观点,因为社会意识决定社会存在,语言反映了社会意识,因此语言反映了社会意识,而社会意识也会影响语言。
文本翻译
Il n'y a qu'un seul héroisme au monde: c'est de voir le monde tel qu'il est, et de l'aimer. 将以上句子翻译成中文
世界上只有一种英雄主义:就是看清现实,并抱着对它的爱。
4
性能评估
在评估指标上,针对答案的帮助程度、相关度、准确率、流畅性和详细程度分别进行打分。我们选择了一些使用广泛的预训练对话模型与ChatFlow进行对比,包括GPT3[5]、ChatGLM[6]、Chinese-Alpaca7B/13B[7] 和BELLE-7B2M[8]等模型。
在人类评估中,Linly-ChatFlow-13B 在逻辑推理、文本翻译和知识问答场景上回答质量超过ChatGLM,在语义理解、文本写作、常识推理场景中与ChatGLM相当,在数值计算、代码生成弱于ChatGLM。与GPT3、BELLE、Chinese-Alpaca等模型相比,Linly-ChatFlow-13B 在各场景中都获得了更高的用户评价。
例如针对以下知识问答:
问
为什么有些人选择使用纸质地图寻求方向,而不是依赖GPS设备或智能手机应用程序?
答
Linly-ChatFlow
一些人可能更喜欢使用纸质地图或其他指引工具来获取路线和导航信息。这种行为的原因可以包括:
1. 自然界中的认知体验:对于一些人来说,在大自然中使用纸质地图等指引工具比用电子设备更加自然、真实和令人放松。他们觉得使用电子设备会分散注意力,并影响到身体与周围环境之间的联系。
2. 技术不可靠性:在某些情况下,如恶劣天气、通讯网络问题或者电源故障等等,使用纸质地图或其他指引工具,则能更好地确保导航过程中的安全和顺利。
3. 个人偏好:每个人都有不同的生活方式和习惯,有些人可能更喜欢使用传统的方法来解决问题,而不是一定要使用先进的科技。
4. 经济效益:纸质地图相对比起电子设备来说,成本更低,并且对于那些经常需要出门的人来说,只需要支付一次就能使用了。
答
ChatGLM
有些人选择使用纸质地图或寻求方向,而不是依赖GPS设备或智能手机应用程序,可能有以下原因:
精度高:纸质地图和GPS设备或智能手机应用程序相比,通常具有更高的精度和准确性。这是因为纸质地图通常是由精确的测量和绘图技术制成的,而GPS设备或智能手机应用程序则依赖于卫星信号,这些信号可能会受到地形、天气和其他因素的影响。
可重复使用:纸质地图通常是可重复使用的,可以在需要时随时查看和修改。而GPS设备或智能手机应用程序可能需要连接到电源或网络,并且可能需要重新充电或连接,可能会影响其使用频率。
便携性:纸质地图通常比GPS设备或智能手机应用程序更轻便和易于携带。用户可以在任何地方使用地图,而不需要担心设备的重量或存储容量。
自定义:用户可以根据自己的需要和偏好自定义地图,例如添加标注、导出导出数据等。这对于一些需要高度定制化的任务来说非常有用。
社交互动:有些人可能更喜欢与朋友、家人或同事分享他们的旅行路线和方向,而纸质地图或GPS设备应用程序可以方便地与他们交流和共享信息。
尽管Linly-ChatFlow生成的文本长度相较ChatGLM更短,但是它的观点更加明确和充实,因此该答案在评估中获得了更高的分数。
在另一个文本翻译的例子中:
问
Meglio vedere una cosa una volta che sentirne parlare cento volte. 将以上句子(意大利语)翻译成中文
答
Linly-ChatFlow
“看一次比听一百次好”这句话可能是说,有时候经验优于理论。
答
ChatGLM
可以翻译成中文为:“更好的方式是一次看到一件事,而不是让它被一百次地说。”
答
Chinese-Alpaca
更好能见到一次,听到一百次。
答
BELLE
当我听到别人说话时,我总是能够更好地理解他们。
答
GPT3
看一次比听一百次更好。
对于这句谚语,相比其他模型Linly-ChatFlow能够更加准确的翻译并解释它的含义。
5
未来工作
伶荔说系列模型目前仍处于欠拟合,正在持续训练中,期望未来33B和65B的版本能带来更惊艳的性能。在另一方面,我们不仅公开了对话模型,还公开了中文基础模型和相应的训练代码与数据集,向社区提供了一套可复现的对话模型方案,目前也有团队基于我们工作实现了金融、医学等领域的垂直领域对话模型。
在之后的工作,项目团队将继续对伶荔说系列模型进行改进,包括尝试人类反馈的强化学习(RLHF)、适用于中文的字词结合tokenizer、更高效的GPU int3/int4量化推理方法等等。伶荔项目还将针对虚拟人、医疗以及智能体场景陆续推出“伶荔”系列大模型,敬请关注!
参考文献
[1]Touvron H, Lavril T, Izacard G, et al. Llama: Open and efficient foundation language models[J]. arXiv preprint arXiv:2302.13971, 2023.
[2] Scao T L, Fan A, Akiki C, et al. Bloom: A 176b-parameter open-access multilingual language model[J]. arXiv preprint arXiv:2211.05100, 2022.
[3] Sun X, Ji Y, Ma B, et al. A Comparative Study between Full-Parameter and LoRA-based Fine-Tuning on Chinese Instruction Data for Instruction Following Large Language Model[J]. arXiv preprint arXiv:2304.08109, 2023.
[4] https://github.com/Tencent/TencentPretrain Zhao Z, Li Y, Hou C, et al. TencentPretrain: A Scalable and Flexible Toolkit for Pre-training Models of Different Modalities[J]. arXiv preprint arXiv:2212.06385, 2022.
[5] Brown T, Mann B, Ryder N, et al. Language models are few-shot learners[J]. Advances in neural information processing systems, 2020, 33: 1877-1901.
[6] Zeng A, Liu X, Du Z, et al. Glm-130b: An open bilingual pre-trained model[J]. arXiv preprint arXiv:2210.02414, 2022.
[7] Cui Y, Yang Z, Yao X. Efficient and Effective Text Encoding for Chinese LLaMA and Alpaca[J]. arXiv preprint arXiv:2304.08177, 2023.
[8] Ji Y, Deng Y, Gong Y, et al. Exploring the impact of instruction data scaling on large language models: An empirical study on real-world use cases[J]. arXiv preprint arXiv:2303.14742, 2023.
国产开源,点赞三连↓