HOME 首页
SERVICE 服务产品
XINMEITI 新媒体代运营
CASE 服务案例
NEWS 热点资讯
ABOUT 关于我们
CONTACT 联系我们
创意岭
让品牌有温度、有情感
专注品牌策划15年

    gpt人工智能模型原理(gpt-3人工智能)

    发布时间:2023-03-12 11:31:07     稿源: 创意岭    阅读: 144        问大家

    大家好!今天让创意岭的小编来大家介绍下关于gpt人工智能模型原理的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。

    ChatGPT国内免费在线使用,能给你生成想要的原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等

    你只需要给出你的关键词,它就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端,官网:https://ai.de1919.com

    本文目录:

    gpt人工智能模型原理(gpt-3人工智能)

    一、aiedu和chatgpt的区别

    aiedu和ChatGPT都是基于人工智能技术的语言模型,但二者在技术平台、应用场景、功能特点等方面有一定的区别。

    技术平台:aiedu是由中国科学院计算技术研究所主导开发的中文人工智能教育平台,旨在为学生提供智能化的学习服务,包括在线课程、知识图谱、作业测试等多个维度。而ChatGPT则是由OpenAI团队开发的自然语言处理系统,通过大规模预训练的神经网络模型,实现了深度的对话交互功能。

    应用场景:aiedu主要应用于教育领域,为学生提供优质的在线学习体验和个性化的学习辅助服务。而ChatGPT则主要应用于智能客服、聊天机器人、问答系统等领域,为用户提供快捷、准确的信息查询和解决方案。

    功能特点:aiedu的功能主要包括教学资源库、课件制作、在线测验、学习分析等,旨在提升学生的学习效果和效率。而ChatGPT主要具备自然语言理解、语义分析、情感识别、知识检索等功能,可以通过文字或语音与用户进行实时交互,提供智能化的服务体验。

    总之,aiedu和ChatGPT虽然都是基于人工智能技术的语言模型,但二者的应用场景和功能特点有所不同,针对的需求群体和使用方式也各有侧重。

    二、ChatGPT面世具有何意义?

    ChatGPT这种人工智能技术出现的重大历史意义,不亚于互联网和个人电脑的诞生

    ChatGPT是目前最为先进的聊天机器人,“更为智能的交互”则是ChatGPT之所以能引起全球广泛关注的主要原因。比如Open AI为这个模型新增了代码理解和生成能力,极大地拓宽了其应用场景;同时还加入了道德原则,使ChatGPT能够识别恶意信息,识别后拒绝给出有效回答,有效提升用户对话时的互动感。

    1956年夏季,“人工智能”这一术语被正式提出,它标志着“人工智能”科学的正式诞生。此后,IBM公司研发的代号为“深蓝”超级电脑击败了人类的世界国际象棋冠军,更是进一步拓宽了人工智能技术的想象空间。可以说,这门科学在提出伊始就被人类给予了超越人类智慧的野望。

    但是自概念提出至今已有六十余年,除了科幻电影中的各种想象之外,普通民众还没有机会能够直接接触到AI技术,也没有合适的渠道对这一深奥的技术进行了解。虽说各个内容平台早已经开始使用智能算法技术进行个性化推荐,线上购物平台也在使用人工智能技术提高广告触达率,但这些应用并没有将用户纳入交互之中,在这一过程中,用户仅仅充当着一个被动接受者的角色。

    而ChatGPT的推出为用户提供了一个参与到AI技术工作流程中的机会,也提供了一个途径以使得长期对AI应用不甚了解的用户可以切实地体会AI技术的发展。这在AI的发展历程中具有一定的里程碑意义,意味着AI技术由“幕后”转向了“台前”。

    Chat GPT未来可应用场景

    1、独立应用:Chat GPT本身强大的自然语言处理能力,可以让当前有点「人工智障」的智能客服,语音工作助手、对话虚拟人有质的飞跃等,其还能高效高质的完成写代码、写小说、写新闻等文本创作类工作。同时也能辅助搜索,让搜索效率进一步提高。

    2、AIGC联合应用:当把Chat GPT的能力和图像识别等技术集合,就能产生无限可能。例如视频生成网站QuickVid,用户在网站输入提示语、描述清楚想要创建的视频主题,QucikVid 先利用 GPT-3 的生成文本功能生成短视频脚本,再从脚本中自动提取或手动输入的关键字。

    基于这些关键字从免费的 Pexels 库中选择背景视频,同时叠加由 DALL-E 2 生成的图像,并调用 Google Cloud 的文本转语音 API 来添加来自 YouTube 免版税音乐库的合成画外音和背景音乐。

    三、chart gpt是什么

    ChatGPT是是由人工智能研究实验室OpenAI在2022年11月30日发布的全新聊天机器人模型,一款人工智能技术驱动的自然语言处理工具,它能够通过学习和理解人类的语言来进行对话,不仅上知天文下知地理,知识渊博,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流

    但ChatGPT不单是聊天机器人的简单,甚至能完成撰写邮件、视频脚本、文案、翻译、代码等任务。同时也引起无数网友沉迷与ChatGPT聊天,成为大家讨论的火爆话题。

    四、05-ELMo/BERT/GPT-NLP预训练模型

    这里可以参考CSDN上的文章-BERT原理和实践: https://blog.csdn.net/jiaowoshouzi/article/category/9060488

    在解释BERT,ELMO这些预训练模型之前,我们先看一下很久之前的计算机是如何读懂文字的?

    每个字都有自己的独特的编码。但是这样是有弊端的,字和字之间的关联关系是无法得知的,比如计算机无法知道dog和cat都是动物,它反而会觉得bag和dog是比较相近的。

    所以后来就有了Word Class,将一系列的词进行分类然后让一类词语和一类词语之间更有关联,但是这样的方法太过于粗糙,比如dog,cat,bird是一类,看不出哺乳动物鸟类的区别。

    在这个基础之上,我们有了Word Embedding,Word Embedding我们可以想象成是一种soft的word class,每个词都用向量来表示,它的向量维度可能表示这个词汇的某种意思,如图中dog,cat,rabbit的距离相比其他更近。那么word embendding是如何训练出来的,是根据每个词汇的上下文所训练的。

    每个句子都有bank的词汇,四个bank是不同的token,但是同样的type。(注:token-词例, type-词型, class-词类 or token是出现的总次数(还有种理解是token是具有一定的句法语义且独立的最小文本成分。 ),type是出现的不同事物的个数。)

    对于典型的Word Embedding认为,每个词type有一个embedding,所以就算是不同的token只要是一样的type那么word embedding就是一样的,语义也就是一样的。

    而事实上并非如此,1,2句bank指的是银行,3,4为水库。所以我们希望让机器给不同意思的token而且type还一致,给予不同的embedding。在这个问题上,之前的做法是从字典中去查找这个词包含几种意思,但是这样的做法显然跟不上现实中词语的一些隐含的含义。比如bank有银行的意思,与money一起是银行的意思,而与blood一起却是血库的意思。

    所以我们想让机器今天进一步做到每一个word token都可以有自己的embedding(之前是每个type有一个embedding或者有固定的一个或多个embedding),那么怎么知道一个word应该有怎样的embedding呢?我们可以取决于该词的上下文,上下文越相近的token它们就会越相近的embedding。比如之前提到的bank,下面两个句子它们的word token的embedding可能是相近的,而和上面的word token的embedding是相远的。

    所以我们想使用一种能够基于上下文的Contextual word Embedding来解决一词多义的问题。

    这里使用ELMO可以做到这件事情,即每个word token拥有不同的word embedding。(右上角动物是芝麻街(美国公共广播协会(PBS)制作播出的儿童教育电视节目)里的角色)。

    它是基于RNN的预训练模型,它只需要搜集大量语料(句子)且不需要做任何标注,就可以训练这个基于RNN的语言模型,预测下一个token是什么,学习完了之后就得到了上下文的embedding。因为我们可以将RNN的隐藏层中的某一节点拿出来(图中橙蓝色节点),它就是输入当前结点的词汇的word embedding。

    从当计算识别到<BOS>,模型训练开始。首先输入"潮水",然后当作输入输出"退了",退了当做输入输出"就"。

    假设当前要得到”退了”这个词的上下文embedding,首先,因为前边的RNN只考虑到了前文而没有考虑到后文,所以这里就使用了同前文一样的反向的RNN。然后,它从句尾开始进行,比如给它喂”知道”,它就要预测”就”,给它喂”就”,它就要预测”退了”。这时候就不仅考虑每个词汇的前文,还会考虑每个词的后文。最后将正向和逆向得到的两个不同的上下文embedding(因为方向不同训练结果也不一样)拼接起来。

    现在我们训练的程度都会越来越深度,当层数增加,这样就会产生Deep的RNN,因为很多层,而且每一层都会产生上下文Embedding,那么我们到底应该使用哪一层?每一层这种深度LSTM中的每个层都可以生成潜在表示(方框处)。同一个词在不同的层上会产生不同的Embedding,那么我们应该使用哪一层呢?ELMo的策略是每一层得到的上下文embedding都要。

    在上下文embedding的训练模型中,每个词输入进去都会有一个embedding输出来。但是在ELMo中,每个词汇输入进去,都会得到不止一个embedding,因为每层的RNN都会给到一个embedding,ELMo将它们统统加起来一起使用。

    以图中为例,这里假设ELMo有两层RNN,这里是将α1(黄色,第一层得到的embedding)和α2(绿色,第二层得到embedding)加起来得到蓝色的embedding,并做为接下来要进行不同任务的输入。

    但是这里存在一些问题,α1和α2是学习得到的,而且它是根据当前要进行的任务(如QA,POS of tagging ),然后根据接下来要进行的这些任务一起被学习出来。所以就导致不同任务导向下的α1和α2也不一样。

    ELMo的论文中提到,在不同任务下(SRL,Coref,SNLI,SQuAD,SST-5)。蓝色的上下文embedding在经过token(这里为没有经过上下文的embedding),LSTM1,LSTM2后,它在不同阶段需要的weight也不一样。

    BERT相当于是Transformer的Encoder部分,它只需要搜集大量的语料去从中学习而不经过标注(不需要label),就可以将Encoder训练完成。如果之前要训练Encoder,我们需要通过一些任务来驱动学习(如机器翻译)。

    BERT就是句子给进去,每个句子给一个embedding。

    这里可以回忆下,Transformer的Enoder中有self-attention layer,就是给进去一个sequence,输出也得到一个sequence。

    虽然图中使用是用词作为单元进行输入,但是在使用BERT进行中文的训练时,字会是一个更好的选择。比如,我们在给BERT进行输入时,用one-hot给词进行编码,但是词在中文中数量庞大,会导致维度过高。但是,字的话相对会少很多,特别是中文(大约几千个,可以穷举)。这样以字为单位进行输入会占很大优势。

    共有两种方法,一种是Mask LM遮盖语言模型,另一种是Next Sentence Prediction下一句预测。

    下面用上图的例子来理解BERT是怎么样来进行填空的:

    1)这里假设在所有句子中的词汇的第2个位置上设置一个<MASK>;

    2)接下来把所有的词汇输入BERT,然后每个输入的token都会得到一个embedding;

    3)接下来将设置为<MASK>的embedding输入到Linear Multi-class Classifier中中,要求它预测被<MASK>的词汇是哪个词汇?

    但是这个Linear Multi-class Classifier它仅仅是一个线性分类器,所以它的能力十分弱,这也就需要在之前的BERT模型中需要将它的层数等参数设计的相当好,然后得到非常出色的representation,便于线性分类器去训练。

    那么我们怎么知道最后得到的embedding是什么样的呢?如果两个<MASK>下的词汇(输入时设置的<MASK>和最后预测的<MASK>)都放回原来的位置而且没有违和感(就是语句还算通顺),那它们就有类似的embedding(比如退下和落下)。

    如图中,给定两个句子1)醒醒吧 和 2)你没有妹妹。其中特殊符号[SEP]是告诉BERT两个句子的分隔点在哪里。

    特殊符号[CLS]一般放在句子的开头,它用来告诉BERT从这开始分类任务,[CLS]输入BERT后得到embedding然后通过Linear Binary Classifier得出结果说明:经过BERT预测后现在我们要预测的两个句子是接在一起 or 不应该被接在一起。

    这里可能会有疑问,为什么不将[CLS]放在句尾,等BERT训练完两个句子再输出结果?

    对于上图中的任务,BERT现在要做的事情就是给定两个句子,让BERT输出结果这两个句子是不是应该接在一起?

    所以在语料库的大量句子中,我们是知道哪些句子是可以接在一起的,所以也需要我们告诉BERT哪些句子是接在一起的。

    Linear Binary Classifier和BERT是一起被训练的,通过预测下一句这个任务,我们就可以把将BERT部分的最优参数训练出来。

    现在我们知道了任务一和任务二,在原论文中两种任务是要同时进行的,这样才能将BERT的性能发挥到最佳。

    现在我们知道了BERT要做什么事情,那么我们要如何去使用它?共有四种方法。论文中是将【BERT模型和接下来你要进行的任务】结合在一起做训练。

    第一种,假设当前任务是Input一个sentence,out一个class,举例来说输入一句话来判断分类。

    训练流程:1)将做要分类的句子丢给BERT;

    2)需要在句子开始加上分类的特殊符号,这个特殊符号经过BERT输出的embedding经过线性分类器,输出结果为当前的句子属于的类别是真还是假。BERT和Linear Classifier的参数一起进行学习;

    3)这里的Linear Classifier是Trained from Scratch是白手起家从头开始,即它的参数随机初始化设置,然后开始训练;

    4)而BERT则是加上Fine-tune微调策略(一种迁移学习方式*),例如Generative Pre-trained Transformer(OpenAI GPT生成型预训练变换器)(Radford等,2018),引入了最小的任务特定参数,并通过简单地微调预训练参数在下游任务中进行训练。

    *这里不得不提一下迁移学习中的Fine-tune,这里可以参考csdn的一篇文章: https://blog.csdn.net/u013841196/article/details/80919857

    ( https://arxiv.org/abs/1805.12471 )

    第二种,假设当前任务是input一个sentence,输出这个句子中的每个词汇属于正例还是负例。举例现在的任务是slot filling填槽任务(填槽指的是为了让用户意图转化为用户明确的指令而补全信息的过程)(另一种解释是从大规模的语料库中抽取给定实体(query)的被明确定义的属性(slot types)的值(slot fillers))(槽可以理解为实体已明确定义的属性),输入的句子是 arrive Taipei on November 2nd输出的槽是other dest on time time

    训练流程:

    1)将句子输入BERT,句子中的每个词汇都会映射出一个embedding;

    2)每个词汇的embedding输入Linear Classifier,输出结果;

    3)Linear Classifier 白手起家和Bert微调的方式一起去做学习。

    第三种,假设当前任务是input输入两个句子,输出class。举例现在要进行自然语言预测,让机器根据premise前提,预测这个hypothesis假设是True还是False还是unknown不知道。实际上,我们可以把这个任务当成三分类问题。

    训练过程:

    1)在一个sentence前设置特殊符号[CLS],然后在要输入的两个sentence中间设置[SEP]分隔符号;

    2)将两个sentence连同特殊符号一起输入到BERT中;

    3)将[CLS]输入BERT后得到的embedding,再把它输入linear Classifier中,得到class。

    如图所示,假设gravity的token序号是17,即 ,我们现在有一个问题通过QA Model后得到的s=17,e=17,那么答案就是 为gravity;

    同理,假设within a cloud的序号顺序是77到79,即 到 ,我们现在有一个问题通过QA Model后得到的s=77,e=79,那么答案就是 为within a cloud。

    https://arxiv.org/abs/1905.05950

    https://openreview.net/pdf?id=SJzSgnRcKX

    这张图显示了BERT从0-24层的层数在针对不同的NLP任务上的表现。

    https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf

    而所谓的GPT,它其实就是Transformer的Decoder。

    我们简单的描述下GPT的训练过程:这里我们input<BOS>这个token和潮水,想要GPT预测输出“退了”这个词汇。

    1)首先输入[BOS](begin of sentence)和潮水,通过Word Embedding再乘上matrix W变成a 1到a 4,然后把它们丢进self-attention 层中,这时候每一个input都分别乘上3个不同的matrix产生3个不同的vector,分别把它们命名为q,k,v。

    q代表的是query (to match others用来去匹配其它的向量)

    k代表的是key (to be matched用来去被query匹配的向量)

    v代表的是value(information to be extracted用来被抽取的信息的向量)

    2)现在要做的工作就是用每个query q 去对每个 key k做attention(吃2个向量,输出就是告诉你这2个向量有多么匹配或者可以说输入两个向量输出一个分数alpha(而怎么去吃2个向量output一个分数,有很多不同的做法))。这里要预测潮水的下一个词,所以乘 , 乘上 , 乘上 再经过soft-max分别得到 到 。

    3)我们用 和每一个v相乘, 和 相乘加上 和 相乘。以此类推并相加,最终得到 。

    4)然后经过很多层的self-attention,预测得到”退了”这个词汇。

    同理,现在要预测”退了”的下一个词汇,按照前面的流程可以得到 ,然后经过很多层的self-attention层,得到”就”这个词汇。

    GPT的神奇之处在于它可以在完全没有训练数据的情况下,就可以做到阅读理解,摘要,翻译。折线图中显示了它在参数量上升的情况下,F1的值的效果。

    1.Transformer的问题:

    word Embedding 无上下文

    监督数据太少

    解决方法:

    Contextual Word Embedding

    2.ELMo( E mbeddings from L anguages Mo del)

    - 多层双向的LSTM的NNLM

    - RNN-based language models(trained from lots of sentences)

    ELMo的问题:

    Contextual Word Embedding作为特征

    不适合特定任务

    3.OpenAI GPT的改进

    根据任务Fine-Tuning

    使用Transformer替代RNN/LSTM

    OpenAI GPT的问题:

    单向信息流的问题

    Pretraining(1)和Fine-Tuning(2)不匹配

    解决办法:

    Masked LM

    NSP Multi-task Learning

    Encoder again

    Tips:

    - 使用中文模型

    - max_seq_length可以小一点,提高效率

    - 内存不够,需要调整train_batch_size

    - 有足够多的领域数据,可以尝试Pretraining

    以上就是关于gpt人工智能模型原理相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。


    推荐阅读:

    GPT模型全称

    chatgpt中文

    chatGPT对科研的影响

    新中式别墅景观设计(新中式别墅景观设计平面图)

    景观设计师的前景(景观设计师的前景怎么样)