chatgpt算法模型原理 深度|从算法工程看ChatGPT的原理与应用

AI资讯1年前 (2023)发布 fengdao
28 0

之前连续发布AIGC相关文章,因篇幅原因放在文末供参考。

Chat GPT的背景以及简单介绍

Chat GPT属于AIGC领域,即人工智能生成内容,与之相对应的是用户生成内容。在AIGC领域它可以分为以下几种:文本的生成;音频、图像的生成;视频生成以及多模态生成。

AIGC的技术发展路径:2014年, GAI模型提出,被用来做图片的风格迁移以及图片的生成,当时效果非常好;2017年,谷歌提出模型,从此深度学习的领域就开始都走向了大的预训练模型;2022年7月, 扩散模型提出并且开源,它是用来做文本生成图片的模型,给模型输入一个提示,模型会输出一张图片,它具备快速出图并且质量很高的特点,引发了AIGC的热潮。

目前的AIGC海外公司的发展明显领先于国内,比如 公司,他是面向内容创作者的,可以帮助分享想法、修改媒体上的内容。还比如 7.49公司,用户可以制定一个角色,比如你喜欢的明星,与AI对话可以营造出与真人对话的感觉。还比如Tommy公司,它可以根据输入的主题自动生成 PPT,写出大纲描述以及配上图片,这属于多模态生成的领域。目前国内企业的人力和算力都投入不足,又由于语料等等原因,技术基础技术的进展会比较慢。语料方面,互联网上中文数据的质量比较低,一些模型虽然上线,但缺乏对真实世界数据的调用和迭代。由于GPU等芯片问题,国内的算力一定程度上不如国外,还存在模型训练不够充分等等问题。另外就是大公司目前更重视短期内可以盈利的业务,缺乏长期主义,一些项目缺乏生长土壤。

Chat GPT是根据文本生成文本的模型,在2022年的11月底发布了聊天机器人模型,他能够学习理解人类的语言来进行对话,根据聊天的上下文进行互动,像真人一样进行交流。目前它的每月用户数已经达到了一个亿,成为了史上增长最快的互联网应用。从NLP的领域来说,模型可以分为以下三个层次:感知、理解和推理,目前Chat GPT可以在推理任务上有非常好的效果。

下面我们可以看几个例子,首先是一个自定义的文本分类任务,比如我跟他对话中告诉他,我现在需要对文本进行分类,分类只能是说订机票、通讯录、打电话、发短信这四种中的一种,然后给他说一段话,它可以学习到并且对这句话进行文本分类。后面是我给了他另一句话,告诉他说帮我预约一个会议室,然后他会告诉你说你刚才的这句话并不能分在刚才的四种技能中,你可以去添加技能等,他在文本分类的任务上比传统的需要大量语料的训练来得更快。另外可以做一些比如风格迁移或者是代码编写的任务,然后这里的话是给了一个例子,就是说让他去仿照李清照的风格去写注释,并且解决一个问题,然后求解一元一次方程。可以看一下下面的他给出的代码,代码没有问题,并且它的注释仿照了李清照的风格,另外还可以用它来做一个故事创作,给它一个主题,并且一些限制条件,然后它会根据这个条件来生成一个故事。还有就是一些知识问答的领域,比如说可以去问他这个菜怎么做,他会把他学习到的信息反馈出来,然后给我们答案。

模型的训练原理Chat GPT是属于公司GPT系列模型中的一个,目前已经公布的有GPT1、GPT2和GPT3,接下来会公布GPT4,它是一个多模态的模型,Chat GPT和是一对孪生模型,目前会被称作GPT3.5,二者在模型的结构和训练方式上完全一致,不同之处在于数据采集上会有差别。GPT的网络结构是以 结构为基础,把很多的的编码层串起来,然后一层一层地叠加,最后输出,它是一个生成式的模型,比如说我现在给他一个问题,他输入以后会逐字地把答案预测出来,就类似于文字接龙的游戏。

GPT1、GPT2、GPT3都是大规模的预训练模型,都只用了无监督学习,基于海量的互联网上的文本数据直接输入到模型中,让模型不断学习接龙的过程,不断的预测下一个字,以此来迭代模型的参数。

GPT3比GPT1、GPT2用了更多的预训练数据,并且参数量是大两个数量级的,但是这样的大模型可能对于正常使用很难去用,因为它预测得非常慢。另外的话还有一个问题,由于这些模型都是用无监督学习学出来的,还存在着输出不对齐的问题。在模型的训练语料中可能会有大量的互联网上扒取的文本,比如这里有一个 AI的会议主题是什么,这段文本介绍了 AI是人工智能领域的顶级会议等等,确实是介绍了他这个会议主题。但是训练语料中还有很多的文本,比如说关于联合国大会,我们收集了同学们提出的很多问题,包括大会主题是什么,大会在哪里举行等等更多的语料。那么在问模型 AI会议的主题是什么的时候,我们希望得到的是 VCL主题的介绍,但实际上模型可能学习到的 VCL的会议在哪里举行,什么时候举行等等,这就是模型的输出与我们的期望不对齐的问题。以及Chat GPT中就使用了基于人工反馈的强化学习的方式来解决模型输出与期望不对齐的问题。

人工反馈的强化学习的方法主要分三个步骤:

第一步先由人工来选取一些提示以及人工希望得到的答案,并组成样本队,然后用这些样本队来微调 GPT3或者GP3.5,在这个基础上得到了一个SFT模型,这个模型可以看作是一个有监督学习的过程,即让模型学习到人类希望得到的一些输入。

第二步是继续给模型输入一些提示,模型可以输出不同的几种答案,人工对这几个答案进行排序,选出这些答案中哪些更好、哪些更坏,然后把答案和样本对输入到打分模型 Model中,如果用户不喜欢答案,得分就会更低,用这些数据来训练模型,于是产生了打分模型。

第三步就是说首先用微调过的SFT模型的参数去初始化强化学习的模型,对于任何给定的提示,让PPO模型回答,于是得到了一个答案,把这个答案输入到打分模型中,打分模型会给刚才的答案打分。打分如果高,它就会反馈给PPO模型并让其继续强化,更容易输出这样的回答;反之,原来的模型就会去学习,尽量不要给出这种答案。以此迭代模型,这样就把人工的选择以及喜好都让模型学习到。

简单理解,首先有一个初始的模型去学习文字接龙游戏,它可以产生任何文字序列。第一步就是让人类去引导文字接龙的方向。第二步就是给了他很多的样本队,让奖励模型去模仿人类的喜好,能够知道人类喜欢哪些答案,不喜欢哪些答案。第三步就是用这个模型去教初始的模型,进行增强式学习,让模型尽量输出用户喜欢的内容。经过这样的方式,使用了少量的人工标注的数据和少量的人工答案排序的工作,引入了额外的知识,明显减少了模型输出不对齐的情况,使得Chat GPT以及的输出更接近人类。

由此可见,单纯扩大模型参数并不是未来发展的唯一的方向,让模型去收集人类的反馈数据可能更有利于模型迭代。目前Chat GPT使用的数据集大小并没有发布,但是其孪生模型的数据集总共使用了77k的样本数,其中46k的样本是经过人工标注的,对于大模型训练来说,这个数据量还是很少的,但是这已经产生了非常好的效果。

Chat GPT优劣

优势:

①模型参数量非常少,是只有Chat GPT 1/300的参数量,但是它的性能会比GPT3更好。Chat GPT略多于,它的效果会比更接近人类一些。

②打分模型的训练样本是经过人工偏好排序的,模型生成带有有害、歧视、偏见等情况的输出概率更低,即模型的价值观更正确。

③具有超强的文本处理能力,比如视频的脚本编写,旅游的行程计划,写论文等模式化的文本工作。

算法模型_chatgpt算法模型原理_算法模型训练流程

问题:

①调用慢。原因一是官方目前的请求量非常大;其次,模型本身是一个生成式模型,每次只能预测一个字,再根据上文的内容来预测下一个字,所以从其原理上讲会计算慢一些。在Open AI的官网上一般都会采用逐字输出的形式,以免用户等很久才能看到完全的输出。

②回答可能会出错,它缺乏逻复杂的逻辑和推理能力,比如这里给了他一道小学的应用题,看起来是一本正经的,实际上里面的逻辑都是错的。它的训练语料是来自于2021年之前的,所以对于之后的世界的了解是有限的。

③模型是一个黑盒模型,输出内容不可控,存在一定的法律风险。

Chat GPT的应用

首先是在搜索领域,微软近期已经宣布会把Chat GPT用在微软的套件中,比如bing用它来做搜索引擎的辅助等。谷歌和百度都宣布接下来会发布自己的类Chat GPT的项目,谷歌正式发布Bard给测试人员使用,百度将于3月上线产品,名为Ernie Bot。

在对话系统方面,比如智能客服上可以去做客户热线,理财方面的营销以及满意度调查,还有任务型对话例如酒店预订、查天气、医院挂号、政务服务等等。另外在开放式的游戏中,可以为NPC提供更真实的对话能力,例如虚拟数字人或者是闲聊机器人上可以看护小孩、对一些人进行心理辅导等等。

文本类创作相关的工作辅助,比如新闻广告业的营销文案的生成,商品描述生成,新闻撰写,教育行业中的智能笔记或者是辅助语言学习,法律方面的文书撰写,互联网中的自动测试脚本的编写,编码辅助,bug检测等等。

在金融行业中的应用,可以通过以下三个方向来看:搜索方面,进行行情的检索;对话系统方面,个性定制领域内的在线客服以及工单处理,用户回访等等对话系统;辅助工作,包括智能文案的生成,理财营销的文案生成,核实用户信息,逾期催收文案,内容质检等文本相关的工作都可以用这个模型。

以下是应用的例子,这里是代码生成的例子,告诉他用Java来帮我写一个异步的爬虫,他会完整地告诉你怎么写,以及每一步要做什么事情。另外比如可以做一些艺术类的创作,比如写歌词,这里可以看到他帮岳云鹏续写一下五环之歌的歌词,他写的其实还是挺好的,之前的模型可能会非常地生硬断句,这里其实都看不出来的。另外比如说生成短视频的脚本,我们给了他一个主题,让他写关于职场的搞笑的短视频脚本,然后它生成出来。这是PPT的大纲生成,同样也是让他去介绍环境保护相关的,然后它生成了PPT的大纲,此外他具有一些语法纠错的能力。另外还可以让它来写营销的文案,比如写一个基金营销广告,或者为奔驰写一个商品描述和广告,如果人工来写可能会需要一些时间,特别是要写大量的文案,但是模型可以快速生成大量的文案。

Chat GPT开发者的使用方法

在他的官网上提供了文档,开发者可以选择场景,这是一个Java的示例,它会给你各种语言调用的样例,开发者可以据此进行一些开发。

Q&A

Q:Chat GPT类似的模型还有哪些?如何量化模型之间的差距?

A:类似于Chat GPT模型是只有Open AI开放了,谷歌之前做过一个模型,但是可能达不到这种效果,并没有发布。谷歌今天发布的是上次模型的升级版——Bard,这个模型会很快整合到谷歌搜索中,目前先开放给测试人员来测试。Meta目前还没有相关的模型发布。如果想量化这些模型的差距,需要整理一些问题去提问,人工对这些答案进行评分,才能真正地量化模型的好坏,不然感性上没办法直接量化评价。

Q:GPT4可以实现什么样的功能?

A:目前不是很清楚。

Q:金融机构或第三方企业去借助Chat GPT或者类似的模型,或者相关的 AI生成的平台,获取渠道和方式是怎么样的?付费方式是怎样的?

A:目前基本上都是直接购买,比如Open AI或是谷歌的模型服务,因为他们提供的产品叫做模型级服务,类似于PaaS、SaaS,他不会把这套大模型提供给你让你完全去训练,包括GPT1、GPT2和GPT3目前也只提供了接口,你只能通过他们的接口来使用这个模型,你想去自己拿数据去训练,他们也没有提供方式。这些模型其实非常大,会需要大量的数据、大量的算力GPU,即使他告诉了我们方法,我们可能也没有那么多资源能够自己去训练,所以目前的方式都是采用购买他们的模型服务的形式。

Q:购买一般怎么定价,他那边怎样收费?

算法模型_算法模型训练流程_chatgpt算法模型原理

A:目前GPT3和GPT3.5的定价大概是按token即字数来算,每1000个token大概是0.004美元,这样的价格还是比较便宜的。

Q:Chat GPT现在回答准确率大概是多少?准确率达到多少商业才能快速放量?需要多久呢?

A:这个模型与之前传统的自己训练的模型是有区别的,之前在训练模型的时候,我们先构建一套样本集,样本集里面有训练数据、验证数据、测试数据,这些都是经过人工标注过的,模型训练完后,我们可以在测试集上测试,然后得到一个模型准确率90%等等这样的数据,这是传统的模型。但是对于GPT3.5模型来说,如果我们想测试它,Open AI没有给你一套数据集,你可以构建一套自己的数据集,需要有一定的量,还需要人工校对,输入进去进行比对才能确定,所以它的准确率也没办法直接评估。另外它的输出是文本的,而文本其实是多样性的,比如我让他给我讲一个什么主题的故事,其实他可以讲出100个来,其实都是准确的,所以直接用准确度来评价这样的模型也不是合理的方式。

Q:模型使用成本多少,这样的大模型后续能实时更新吗?

A:使用成本这方面,目前我们的评估是一条请求到我们这边可能就是几分钱。至于以后的更新,对于这样的模型训练起来是比较困难的。第一,我们需要去等Open AI提供更新的模型,第二,这个模型具有一定的学习能力,我们可以在某个小的领域内对这个模型输入一些知识让他学习,他就像一个人一样可以在绘画中记住这个知识,以这种方式来更新他的知识,但是如果单纯我们自己去训练它的话,成本会非常高。

Q:Chat GPT的学习主要靠爬取,不靠和人聊天学习,是否只能接受人提问Chat GPT回答呢?会对人的问题反问吗?聊天机器人行业还有哪些模型?各家聊天机器人的比拼主要在哪些环节呢?

A:其实他是具有访反问能力的,因为他学习第一步靠爬取海量的数据做无监督的学习,下一步是基于人工反馈的强化学习,经过人校正的。比如你有的时候问了他一个问题,他会反问你对这件事情的看法是什么。因为在他们的训练语料中会出现大量的访问以及对话的数据,所以他可以做到反问以及连续的对话。比拼的环节,一方面是生成的速度,我们在测试Open AI时,我们的提示进去以后,它可以很快地反应并且连续往下输出。但是我们在测试百度等一些产品的时候,他们可能会需要更久的等待时间。另一方面是否更像人类,这也是一个比拼的重要环节,比如GPT3的一些回答在我们看来就是一些乱码,可以看出这不是一个人回答的问题。而GPT3.5的回答看起来就像一个真实的人的回答。

Q:从模型迭代的规律上看,GPT4相对于GPT3来说改进的方向是什么呢?

A:我只能说一下模型迭代的规律。GPT1、GPT2和GPT3的模型结构以及训练方式基本上都是一样的,区别只在于用了多少数据量、结构堆叠了多少层,深度学习中堆叠的层数越多,效果可能会更好。所以从GPT1、GPT2到GPT3,其实更多的是参数变大、深度变深、训练数据量变多。但是到GPT3.5的时候,迭代并没有用那么多的数据量,而是加入了人工反馈。至于GPT4据传是一个多模态,即不只是输入了大量的文本,可能会输入更多的文本、音频以及图像生成,就像扩散模型一样,改进方向是什么我也说不出来,我只能总结一下前面的规律。

Q:国内的公司,比如百度的大模型和有多大的差距?

A:百度的模型文心一言还没有发布,我们体验过它的Ernie 3.0模型,它大概在21年的10月份发布,具体没有评估,但是从响应速度以及回复来看,真实对话场景的效果差得非常大,已经可以正常使用了,就像和人说话一样,百度的Ernie 3.0很难用,差距非常大,但是具体量化的话也没法去说。

Q:国内大模型和国外大模型差距主要是算力还是数据还是基础算法能力?

A:基础算法能力不会有什么差距,因为目前大多数的预训练大模型都是基于的结构,从模型的结构构造、深度上差别不大,但是会差在数据上,国外在英文的语种上会有更优质的数据,互联网上中文的优质数据就会差很多。算力上可能由于一些政策等原因,比如GPT3模型有1700多亿的参数,那么就需要大量的 GPU或者TPU去存储,国内可能也是做不到的,所以其实基础算法能力方面差距小一些,然后算力数据上差距更大一些。

Q:Open AI训练数据的来源有哪些?主要是网上爬虫抓取的吗?

A:据我们了解是这样的,其实它的数据就来源于各种公开的网站,比如维基百科上的所有文本内容。它现在具备编码能力,ICode、上的各种代码也作为训练数据了,因为已经被微软收购了,Open AI也是微软投资的,所以他们的数据可能就是互联网上的各种文本,以及公开的文本,他们都可以获取到用来训练模型。

Q:算力市场的影响能带动多大的算力市场空间?

A:对国内的影响目前没法评估,因为国内不知道有多少公司会投入到这里面,而且效果有多好也是没法估计的。

Q:应用端是不是买了这个模型,另外再买数据就可以了呢?

A:目前整个的商业化都在探索当中,还没有明显的商业化模式,买数据要看你是to c端还是to b端,to c端的话可能就要买一些数据,to b端的话可能自己要有一些数据,数据购买目前我们并没有看到很合适的方式,主要还是买了模型之后,你自己对它的再次训练。

Q:中英文差异对于及类似的应用和后续开发造成的影响多大?还有目前语言专家在开发中的参与度有多少?

A:其实在训练的时候,中文数据在全部的数据集中只是一小部分,他回答中文问题的能力是远远没有回答英文问题的能力强。我们在测试中也会发现,我们有的时候问一些中文的问题,但是他直接以英文的方式回答了,这个模型其实是更偏向于英文的。语言专家在开发中的参与度有多少,我们也没法回答这个问题,因为我们目前只是使用,但是对于Open AI是如何训练它以及内部的细节我们是没法知道的。

© 版权声明

相关文章

暂无评论

暂无评论...