0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

中文对话式大语言模型Firefly-2b6开源,使用210万训练数据

深度学习自然语言处理 来源:YeungNLP 2023-04-14 10:30 次阅读

在文章Firefly(流萤): 中文对话式大语言模型中,我们介绍了关于Firefly(流萤)项目的工作,并且分享了我们训练的firefly-1b4模型。这是Firefly项目开源的第一个模型,虽然取得了还不错的效果,但无论是训练数据还是模型参数量,都还有很大的优化空间。

所以,在firefly-1b4实验的基础上,我们对训练数据进行清洗,并且增加了数据量,得到210万数据,并用它训练得到了firefly-2b6模型。

在本文中,我们将对该模型进行分享和介绍。与firefly-1b4相比,firefly-2b6的代码生成能力取得了较大的进步,并且在古诗词生成、对联、作文、开放域生成等方面也有不错的提升。

firefly-1b4和firefly-2b6的训练配置如下表所示。无论是训练数据量,还是训练步数,firefly-2b6都更加充分。

参数 firefly-1b4 firefly-2b6
batch size 16 8
learning rate 3e-5 3e-5
warmup step 3000 3000
lr schedule cosine cosine
max length 512 512
training step 90k 260k
训练集规模 160万 210万

项目地址:

https://github.com/yangjianxin1/Firefly

模型权重链接见文末。

模型使用

使用如下代码即可使用模型:

from transformers import BloomTokenizerFast, BloomForCausalLM
device = 'cuda'
path = 'YeungNLP/firefly-2b6'


tokenizer = BloomTokenizerFast.from_pretrained(path)
model = BloomForCausalLM.from_pretrained(path)
model.eval()
model = model.to(device)
text = input('User:')
while True:
    text = '{}'.format(text)
    input_ids = tokenizer(text, return_tensors="pt").input_ids
    input_ids = input_ids.to(device)
outputs=model.generate(input_ids,max_new_tokens=250,do_sample=True,top_p=0.7,temperature=0.35,
                             repetition_penalty=1.2, eos_token_id=tokenizer.eos_token_id)
    rets = tokenizer.batch_decode(outputs)
    output = rets[0].strip().replace(text, "").replace('', "")
    print("Firefly:{}".format(output))
    text = input('User:')

代码生成

尽管在训练集中,代码的数据量不多,但令人惊喜的是,firefly-2b6已经具备一定的代码生成能力。

在笔者的实测中,对于一些编程题,firefly-2b6生成的代码可以做到无需修改,直接运行成功,并且得到正确的答案。下面将展示一些编程题的生成例子。

示例1:帮我用python写一个冒泡排序算法

dee31870-d9b9-11ed-bfe3-dac502259ad0.png

示例2:用python实现一个快速排序算法,输入为一个数组,返回排序好之后的数组。

deec2f32-d9b9-11ed-bfe3-dac502259ad0.png

示例3:用python写一个二分查找算法。

defb67b8-d9b9-11ed-bfe3-dac502259ad0.png

示例4:写一个函数,计算数组中偶数的个数,输入为数组,输出为偶数的个数。

df04d12c-d9b9-11ed-bfe3-dac502259ad0.png

示例5:用html生成一个教务管理系统的登录界面,要求包含用户名、密码输入框和登录按钮。

df0d21ce-d9b9-11ed-bfe3-dac502259ad0.png

该html代码在浏览器中的效果如下图:

df142ce4-d9b9-11ed-bfe3-dac502259ad0.png

其他样例

同样,我们也对文言文、古诗词、文章生成等数据进行了清洗,提高数据的质量。实测下来,我们发现firefly-2b6的生成效果,确实提升了不少。

数据质量的优化,对文言文翻译任务的提升,尤为明显。在训练firefly-1b4时,文言文数据为较短的句子对。但在训练firefly-2b6时,我们使用了较长篇幅的文本对。

下面为一些实测的例子。

df1b8c28-d9b9-11ed-bfe3-dac502259ad0.png

df286d30-d9b9-11ed-bfe3-dac502259ad0.png

df352c5a-d9b9-11ed-bfe3-dac502259ad0.png

df3dc2e8-d9b9-11ed-bfe3-dac502259ad0.png

df457308-d9b9-11ed-bfe3-dac502259ad0.png

df4cf9ac-d9b9-11ed-bfe3-dac502259ad0.png

df5354dc-d9b9-11ed-bfe3-dac502259ad0.png

df59bf2a-d9b9-11ed-bfe3-dac502259ad0.png

df615a96-d9b9-11ed-bfe3-dac502259ad0.png

df6d2b96-d9b9-11ed-bfe3-dac502259ad0.png

文章小结

虽然firefly-2b6已经初步具备代码生成能力,但由于训练集中的代码数据的数量不多,对于一些编程题,效果不如人意。我们觉得仍有非常大的优化空间,后续我们也将收集更多代码数据,提升模型的代码能力。

经过firefly-1b4和firefly-2b6两个模型的迭代,能明显感受到增加数据量、提升数据质量、增大模型参数量,对模型的提升非常大。

在前文中,我们提到,firefly-1b4在训练数据量、训练步数上都略有不足。为了探索"小"模型的效果上限,我们也将使用更多数量、更高质量的数据对firefly-1b4进行迭代。该项工作正在进行。

后续,我们也将在多轮对话、增大模型参数量、模型量化等方向上进行迭代,我们也将陆续开源训练代码以及更多的训练数据。期待大家的意见和建议。


审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模型
    +关注

    关注

    1

    文章

    2713

    浏览量

    47760
  • 代码
    +关注

    关注

    30

    文章

    4558

    浏览量

    66927
  • 语言模型
    +关注

    关注

    0

    文章

    438

    浏览量

    10064

原文标题:中文对话式大语言模型Firefly-2b6开源,使用210万训练数据

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【大语言模型:原理与工程实践】大语言模型的应用

    。 关于大语言模型是否具备与人类“系统2”相似的能力,存在广泛的争议。然而,随着模型参数量的增加和大规模预训练的实施,大
    发表于 05-07 17:21

    【大语言模型:原理与工程实践】大语言模型的评测

    和优化至关重要,它们能够提供准确的反馈,指导模型训练和调优过程中的改进方向。 大语言模型对话能力评测:
    发表于 05-07 17:12

    【大语言模型:原理与工程实践】大语言模型的预训练

    语言模型的核心特点在于其庞大的参数量,这赋予了模型强大的学习容量,使其无需依赖微调即可适应各种下游任务,而更倾向于培养通用的处理能力。然而,随着学习容量的增加,对预训练
    发表于 05-07 17:10

    【大语言模型:原理与工程实践】大语言模型的基础技术

    处理各种自然语言任务时都表现出了惊人的能力。这促使一个新的研究方向诞生——基于Transformer 的预训练语言模型。这类模型的核心思想是
    发表于 05-05 12:17

    【大语言模型:原理与工程实践】核心技术综述

    的复杂模式和长距离依赖关系。 预训练策略: 预训练是LLMs训练过程的第一阶段,模型在大量的文本数据上学习
    发表于 05-05 10:56

    【大语言模型:原理与工程实践】揭开大语言模型的面纱

    语言模型(LLM)是人工智能领域的尖端技术,凭借庞大的参数量和卓越的语言理解能力赢得了广泛关注。它基于深度学习,利用神经网络框架来理解和生成自然语言文本。这些
    发表于 05-04 23:55

    Meta推出最强开源模型Llama 3 要挑战GPT

    公司这次开源了Llama 3 8B与70B两款不同规模的模型,开发者可以免费使用,而Meta公司还将陆续推出一系列具备多模态、多语言对话、更长上下文窗口等能力的新模型。 据悉Meta用
    的头像 发表于 04-19 17:00 505次阅读

    李彦宏:开源模型将逐渐滞后,文心大模型提升训练与推理效率

    李彦宏解释道,百度自研的基础模型——文心 4.0,能够根据需求塑造出适应各类场景的微型版模型,并支持精细调整以及后预训练。相较于直接使用开源模型
    的头像 发表于 04-16 14:37 130次阅读

    【书籍评测活动NO.30】大规模语言模型:从理论到实践

    多种形式和任务。这个阶段是从语言模型对话模型转变的关键,其核心难点在于如何构建训练数据,包括
    发表于 03-11 15:16

    机器人基于开源的多模态语言视觉大模型

    ByteDance Research 基于开源的多模态语言视觉大模型 OpenFlamingo 开发了开源、易用的 RoboFlamingo 机器人操作
    发表于 01-19 11:43 136次阅读
    机器人基于<b class='flag-5'>开源</b>的多模态<b class='flag-5'>语言</b>视觉大<b class='flag-5'>模型</b>

    【爱芯派 Pro 开发板试用体验】在爱芯派部署ChatGLM3(一)

    =csdn_github_accelerator&isLogin=1 ChatGLM3-6B开源中英双语对话模型 ChatGLM-6B
    发表于 12-17 22:54

    语言模型(LLM)预训练数据集调研分析

    语言模型涉及数据的通常有有多个阶段(Aligning language models to follow instructions [1] ):pre-train、sft(supervised
    的头像 发表于 09-19 10:00 593次阅读
    大<b class='flag-5'>语言</b><b class='flag-5'>模型</b>(LLM)预<b class='flag-5'>训练</b><b class='flag-5'>数据</b>集调研分析

    训练语言模型带来的硬件挑战

    生成式AI和大语言模型(LLM)正在以难以置信的方式吸引全世界的目光,本文简要介绍了大语言模型训练这些
    的头像 发表于 09-01 17:14 1145次阅读
    <b class='flag-5'>训练</b>大<b class='flag-5'>语言</b><b class='flag-5'>模型</b>带来的硬件挑战

    对话文本数据是培养大模型的智能与交流之源

    对话文本数据,作为人类交流的生动表现,正成为训练大型模型的宝贵资源。这些数据不仅蕴含了丰富的语言
    的头像 发表于 08-14 10:11 412次阅读

    对话文本数据的珍贵贡献:训练模型赋予智能与情感理解

    在当今信息爆炸的时代,对话文本数据正成为塑造人工智能大模型的重要基石,为这些模型注入智能和情感理解的能力。这些数据不仅在培养
    的头像 发表于 08-14 10:09 396次阅读