欢迎光临散文网 会员登陆 & 注册

GPT运行原理

2023-05-25 21:22 作者:星光__璀璨  | 我要投稿

我们通常称呼GPT为生成式人工智能。我们知道它是一个神经网络组成的文化模拟器。对于某些人来说,它是一个写作的助手,是一个内容生成器。其最明显的特征就是运算过程的不可控制性和结果的不可预测性。如果仅仅是把它当成聊天机器人,那就太大材小用了。实际上,它的作用是生成一个概率分布分析框架,用于学习一些词汇。如果我们的任务是预测下一个单词,那么向神经网络输入我们自己的话语,英语里面单词繁多,那么下一个最有可能出现的词语是什么,这个问题的核心就是GPT训练要回答的问题。


GPT是如何做到这一点的呢?在5万个单词中,它大致知道哪些单词可能跟在其他单词后面。基于互联网的庞大数据使得这些成为可能。在超过5万个单词中,GPT会给出每个单词出现的可能性。比较不常用的词语组合可能不会是答案,但仍然是一个可能性。GPT里面的每个单词出现与否是基于可能性判断的,而不是断定是否会出现。这是一个反映事件发生概率的数学。


与传统的文本预测相比很神奇的是,可以生成新的文本。这样的能力来源于无数数据输入模型。模型不会简单重新输出喂进去的语料库,而是将文字资料以自己的统计数据再加一点随机性重新排列出来形成新话语。


当我们扩大模型规模并给它更多计算次数时,再加上图形加速卡的运用,训练过程就能大大缩短。


语料库中文本数量、训练计算次数(也就是时间)、不算糟糕的神经网络算法都是构建良好GPT所必需的条件。其中文本数量和计算时间对GPT模型质量影响最大,并且呈指数型影响质量。因此目前大型语言模型都在充分搜集语言资料以提高模型质量。需要注意的是,这条规律只是目前模型训练经验,并没有人能给出具体原因。这也是大型语言模型生成内容不可控制体现之一。


在GPT3时代,模型可能对于用户提出问题没有完全理解就进行回答,造成文不对题等问题。为了解决这个问题,openai工程师让GPT获得更多互联网上各种问答语料数据以进行训练。


对于将GPT用于聊天的用户来说,GPT目前仅限于预测单词,而GPT4则更加强大,不仅可以在互联网上搜索信息,还可以接入用户操作界面,让人工智能代替人类完成一些任务。一旦模型从语言预测中解放出来,开发出了解决真实问题的能力,像autoGPT这样与生活相连的应用也就诞生了。


现在来说说如何搭建一个GPT模型。当我们回顾计算机科学的历史时,会发现从1970年起计算机被发明时,人们一直在探究计算机如何对数字列表进行排序。这是非常实用的领域,这种对生活的帮助让人们对计算机产生了持续的兴趣。但是到了现在,GPT的出现对于人们来说是非常神奇的东西,但它的实用性却受到质疑。面对这个问题,我们需要跳出和GPT交谈的思维限制,直接思考如何在AI基础上构建新事物,让GPT成为实用、类似机器人的东西,最终目标是让计算机代替人类完成一些功能,比如信息搜集整理、图像和文本生成、有决策权限的控制系统。


把机器人想象成自己的朋友是有帮助的。构建模型的方法之一就是简单封装:把自己想要让模型知道的事情输入。这听上去很简单,但要训练出可以指导实际模型需要多次迭代。在和成熟的GPT谈话时不仅仅是和一个程序函数在对话,而是和整个被训练的模型库对话。这个时候可以认为GPT的反应类似于人类了。可以给GPT设定特定提示词,让GPT回答更符合自己预期。


GPT总体工作框架是:用户查询、抽取想让GPT响应的文本、切碎语料成意义不清晰的词语和短语(而不是保留上下文语义)。而GPT回复需要在庞大文本库里拿出一些碎片文本片段,并将它们转换为嵌入向量——这是语言表达最小单位。对于人类来说,处理信息过程也与此类似:人类分析问题也总是把庞大信息中最关键信息按照信息类型分类,然后筛选出最有可能是自己想要答案。所有被切割出来的嵌入向量都可以看作空间中点:它们都有自己在主观意愿中坐标。比如筛选餐馆时,x坐标可以看作距离、y坐标可以看作口味、z坐标可以看作舒适度。每个餐馆(即嵌入向量)都有根据自己主观意愿而被划分的坐标倾向。如果x比较近,就会获得一个比较高的数字向量,在最终判断时获得更多前往的可能性。


GPT模型里面的语料都有自己的向量,是成千上万的向量。根据不同的模型,向量的数量也有所不同。它将文本模块化,切碎成一个个最小单元,把每个单元变成近似意义的向量,再把所有向量放进矢量数据库。当用户提出问题时,GPT就会搜索这个数据库。模型会查找数据库中有多少和问题有关的文本。在搜索的过程中,有很多算法技巧可以提高信息检索的准确度以及减少搜索过程中的遗漏。最终,把查找到的文本根据模型计算返回用户交互界面。


陪伴型机器人也只是会对提示符产生反应的矩阵。根据用户的提问给出数据库中的结果。所以客服行业的经验与其让人来总结,还不如让神经网络进行概率统计。


机器回复的文本都是根据向量统计出来的概率。这个概率不需要特别精准,只需要和概率最大的答案类似就行。在这个过程中最神奇的是算法,也就是GPT的框架。GPT的一切回答尽管会被认为是有创意,但其实都是重新排列有数字向量的文本语素。因为这个过程不可控制,因此计算结果有可能和事实不符,会有使用语料材料编造事实的可能。


所以这是一个潜在的巨大问题,因为你可以在每个上下文中重复创建多个提示词。你不需要设计这个庞大的系统,在设计过程中可以逃避的问题有很多,比如问答的细节、某一个语素的向量。但是作为设计算法的工程师,只需要知道在提示框中出现的结果是否能够让用户满意。


想象模型当中有很多位专家。模型不是总是能够给出正确答案的,因为人无法控制模型的方差,在计算向量数字的时候会产生偏差。但是模型会倾向于回答问题,倾向的程度是双方都在努力的。用户在尽可能精准描述自己的问题,模型在尽可能精准匹配可能性最大的回答。


还有一个能力是创造力。人类的创造基本是这样的:想到一个好主意,过度生成可能性,筛选掉过度生成的内容,重复修改稿件。就像一个作家,写了很多文章,但是删掉了很多,又有新的点子,又删除了一些不符合主题的内容。这个任务对于人工智能来说非常擅长。这也是人工智能主要的价值之一,是因为人类允许人工智能犯错。人工智能会预先生成很多种可能的作品,人类在这个过程中应该充当一个编辑的角色,消减掉不满意的那一部分,留下满意的风格。


在人类给出提示词之后,计算机需要一段时间运作。从代码分析,计算机所做的事情是搜索(收集和提示词相似的故事,这就是领域内知识的妙用),然后用GPT来查看自己真正想要的内容,并编辑输出的结果。人类不仅可以手动编辑GPT输出的内容,还可以用自然语言给GPT一些建议,让GPT自动根据人类的建议,有倾向性地筛选结果。在计算机花费很长时间用于搜索之时,支撑程序运行的代码也许仅仅200多行,仅仅是在数据库里面做搜索的事情,然后给出和提示词相似的内容,然后将输出的内容结构化为人类能够理解的自然语言。


算法的脚本本身就是人类认知的近似值。如果对生命的理解变得宽容一些,AI完全可以称为人工生命。AI可以将和提示词年代、领域非常遥远的内容联系起来,捆绑在答案当中,因为数据库的领域知识非常庞大。


到目前为止,讨论的都是一次性的沟通场景,即一问一答。


但是GPT本身会随着个性的变化而变化吗?真正有用的是易于控制的、结果稳定的。


如果把GPT放进for循环中,让GPT自言自语,然后自己给自己指导行动,就会出现一种突发行为,就像人类的突发奇想一样。从最简单的主意开始,把这些简单元素放在一起的时候就会产生复杂的结构,就产生了人类的生命。


所以autoGPT是类似人类的步骤:第一步,设定一个人类的目标;第二步,给自己写一个步骤清单;然后重复这些清单。在这个过程中,编程语言的代码似乎显得没有那么重要了,因为人类赋予了深度学习自我学习能力。


这样的代码通常很短小,包含一些代理和工具。代理指的是GPT加在比它大得多的物体上的语料库上,像一个虫子啃食千里良田一样。无论这个庞大物体上有什么,GPT都能用其他事物调解矛盾的经验。


工具就是代理可以选择的工作方式,也就是相当于虫子啃食良田的方向和策略。GPT的工具通常用来生成待办事项列表,也就是分析语料库的顺序。另外一种工具是让GPT能够在互联网上搜索的,是用来提供GPT爬取数据的方向的。


主函数就将代理套上工具,执行一遍又一遍。


至于这个循环从何处开始,那就是代理和自己对话产生的。这还没有达到内容生产的地步。


GPT运行原理的评论 (共 条)

分享到微博请遵守国家法律