欢迎光临
我们一直在努力

部署国产ChatGPT,首个功能型对话开源中文大模型ChatYuan开放下载

编辑:LRS 好困

【新智元导读】自己部署一个ChatYuan,再也不用担心网络拥堵了!

前段时间,元语智能开发团队训练了一个类似ChatGPT的功能型对话大模型ChatYuan,并在网页版中开放了试玩接口。

现在你也可以在自己的机器上部署一个ChatYuan了!

模型可用于问答场景,能够结合上下文做对话、做各种生成任务,包括创意性写作,也能回答法律、新冠等领域类问题。

并且在全中文任务中支持零样本学习,用户可以通过提供prompt的方式来使用,支持文本生成、信息抽取和理解大类下近30多种中文任务。

ChatYuan基于PromptCLUE-large结合数亿条功能问答和多轮对话数据进一步训练得到,模型参数量7.7亿,显存6G左右,一张民用显卡即可加载使用,目前模型已开放下载。

PromptCLUE在1000亿token中文语料上预训练,累计学习1.5万亿中文token,并且在数百种任务上进行Prompt任务式训练。

针对理解类任务,如分类、情感分析、抽取等,可以自定义标签体系;针对多种生成任务,可以进行采样自由生成。

如何使用

1. Github

项目地址:https://github.com/clue-ai/ChatYuan

2. Huggingface

项目地址:https://huggingface.co/ClueAI/ChatYuan-large-v1

3. ModelScope

项目地址:https://modelscope.cn/models/ClueAI/ChatYuan-large

加载模型:

使用模型进行预测推理方法:

4. PaddlePaddle

项目地址:https://aistudio.baidu.com/aistudio/projectdetail/5404182

模型地址:https://huggingface.co/ClueAI/ChatYuan-large-v1-paddle

使用自有数据训练模型

1. 组织数据

将数据组织成统一的格式,由两部分构成:输入(Input)和输出(Output)。

针对单轮问答或生成:

输入(Input):任务描述+输入文本

输出(Output):系统需要预测的文本,如下图中「小元」后的内容。

针对多轮对话:

输入(Input):任务描述+上文+输入文本

输出(Output):系统需要预测的文本,如下图中「小元」后的内容。

单轮对话数据格式:

多轮对话数据格式:

2. 训练模型

训练代码可以参考:

使用pCLUE数据集进行训练、预测和效果验证, pytorch实现——在线colab。

Github项目:https://colab.research.google.com/drive/1lEyFhEfoc-5Z5xqpEKkZt_iMaojH1MP_?usp=sharing

举个例子

==========示例1==========

用户

你能干什么

小元:

您好!我是元语AI。我可以回答您的问题、写文章、写作业、翻译,对于一些法律等领域的问题我也可以给你提供信息。

==========示例2==========

用户:

写一个诗歌,关于冬天

小元:

冬夜寂静冷,

云在天边飘,

冰封白雪上,

寒冷像一场雪。

雪花融化成冰,

像那雪花飘洒,

在寒冷的冬天,

感受春天的喜悦。

冬日里,

风雪渐消,

一片寂静,

把快乐和温暖带回家。

==========示例3==========

用户:

学前教育专业岗位实习中,在学生方面会存在问题,请提出改进措施。800字

小元:

在学前教育专业岗位实习中,在学生方面会存在一些问题,如学生缺少专业知识、缺乏合作意识、缺乏基本的责任心等等,需要我们采取措施,来解决这些问题。

首先,在实习过程中,我们需要培养学生的团队意识,加强学生与老师之间的合作,加强与家长之间的沟通,提高他们的沟通能力。另外,我们也需要加强学生的独立性,让学生学会独立思考,学会和老师、家长进行沟通,培养其独立性。

此外,在日常的工作中,我们也要为学生提供适当的机会和机会,让学生多接触社会、多参加社会活动,加深他们对社会、学校的认识,培养他们主动、积极和创新的精神。

最后,我们还需要重视学生在实习中出现的问题,尤其是学生缺乏合作,有依赖心理,不懂得分享,有拖延行为等,这些学生应该引起我们的重视,制定合理的改进措施,改善这些问题。

技术与训练过程

ChatYuan是在PromptCLUE基础上进一步训练获得的模型。它去掉了文本理解、信息抽取类任务,加强了问答、对话和各种生成式任务的学习和训练;

针对多轮对话容易受到上下文的干扰,加入了抗干扰数据使得模型可以在必要时忽略无关的上下文;加入了用户反馈数据的学习,使得模型不仅具有一定的通用语言理解能力、特定任务上的生成能力,也能更好的响应用户的意图。

PromptCLUE的学习过程

  1. 三大统一:统一模型框架(text-to-text),统一任务形式(prompt),统一应用方式(zero-shot/few-shot)(T0)

  2. 大规模预训练:在t5-large版基础上,使用数百G中文语料,训练了100万步,累积训练了1.5万亿个中文字词级别token

  3. 大规模任务数据:使用了16种任务类型,数百种任务,累积亿级别任务数据

  4. 混合预训练:一方面将下游任务作为预训练语料,另一方面将下游任务和预训练语料一起训练,减少任务灾难遗忘以及缩短预训练和下游任务的距离,更好的适应下游任务(ExT5)

  5. 混合采样:针对众多数据量差异极大的任务,采用在每个训练batch内对所有的任务进行按照比例采样,根据任务的数据量进行平滑采样,并且同时限制任务数据量采样池的上限。平滑采样可以减少任务训练有偏危害,在每一batch内训练可以减少异质任务之间训练负迁移的情况(T5)

  6. 分阶段训练:一方面指在预训练分阶段,涉及训练序列长度的分阶段(128和512),加快预训练速度(Bert);另一方面,在下游训练分阶段, 涉及学习率和序列长度的变化以及递减式对下游任务的数据量限制,更好的适应下游的不同任务。

  7. 增加语言模型的训练:参考t5.1.1, 除了使用Span Corrpution构建的方式进行无监督训练,同时在使用prefix LM的方式训练,增强生成任务的能力(LM adapted)

  8. 增加对模型的encoder以及decoder的训练:根据下游任务数据分别构建Data_text,Data_target预训练数据语料,加入到预训练中,分别增强模型的encoder理解能力和 decoder的生成能力(见UIE)

  9. 重新构建模型中文字典:使用sentencepiece上在千亿token上学习并构建模型字典,更加符合中文语言习惯

后续工作

目前版本可以进行问答、对话和各种创意性写作或文本生成,相对于线上的版本,它的意图理解和生成能力在一些场合还有比较大的提升空间;它也还不能较好实现推理或复杂的任务。之后,会根据反馈进一步改进现有版本。

举报/反馈
赞(1)
未经允许不得转载:梦马网络 » 部署国产ChatGPT,首个功能型对话开源中文大模型ChatYuan开放下载
分享到

登录

找回密码

注册