简单易懂的ChatGPT运行原理及使用Tip
投稿 @ 2023.03.09 , 10:35 上午投稿:Paddy
(本篇文章由Bing Chat协助生成)
你是否曾经想过与一款人工智能(AI)进行对话,它可以回答你的问题、讲笑话、写故事,甚至调试代码?如果是这样,你可能想要尝试一下 ChatGPT,这是由 OpenAI 开发的一款可以进行交互式对话的聊天机器人。
什么是 ChatGPT?
ChatGPT 是一款使用名为 GPT-3.5 的大型语言模型生成响应的聊天机器人。语言模型是一种可以预测文本序列中下一个单词或单词组的系统。例如,给定句子 “天空是”,语言模型可能会预测 “蓝色”、“多云”或“落下”。
GPT-3.5 是世界上最大、最先进的语言模型之一。它有 1750 亿个参数,这些参数决定了模型处理文本的方式。它是在互联网上的大量文本数据(如书籍、文章、博客、社交媒体帖子等)上进行训练的。
ChatGPT 是 GPT-3.5 的一个特殊版本,经过了仔细的人工调整,以使其在对话任务中表现更好。 人工调整 意味着使用额外的数据和反馈来调整现有模型的参数。在这种情况下,ChatGPT 是通过监督学习和强化学习技术进行调整的。
监督学习是指向模型提供正确输入和输出示例的过程。对于 ChatGPT,这涉及到编写对话的人类训练者,他们扮演了用户和 AI 助手的双重角色。他们还使用模型本身的建议来帮助他们编写逼真的响应。
强化学习是指根据模型的表现来奖励或惩罚模型的过程。对于 ChatGPT,这涉及到排名给定输入的模型生成的不同响应的人类训练者。排名用于创建奖励模型,引导模型随着时间的推移改进其响应。
ChatGPT 如何使用Token?
Token是语言模型用于处理和生成文本的文本单位。例如,单词是Token,但标点符号、空格、数字、表情符号和特殊符号也是 Token 。
ChatGPT 以几种方式使用 Token 来理解和生成语言:
ChatGPT通过预先训练生成了一个Token列表和一些不同Token之间的关系参数,在用户输入一段话后,它使用一个分词算法将每个输入的单词拆分成Token 。例如, “Hello world!”将被拆分为三个 Token :[“Hello”, “world”,“!”]。“I’m happy 😊”将被拆分为四个Token:[“I”, “'”, “m”, “happy”, “😊”].
它为每个 Token 分配一个嵌入向量(由数字列表组成),表示其含义和上下文。 它将每个 Token 的嵌入向量馈送到神经网络层(数学函数)中,从左到右顺序处理它们。 它为每个 Token 输出一个嵌入向量,代表它应该接下来生成的内容。 它使用解码算法将每个输出嵌入向量转换为一个 Token 。 例如, 输出嵌入向量[0.2,-0.1,…]可以解码为“。”(一个句号)。 输出嵌入向量[0.9,-0.4,…]可以解码为“?”(一个问号)。 之后它将这些输出 Token 连接成一组回应,并反向解码成人类的语言。
简而言之,ChatGPT通过一个复杂的列表和大量的参数来“预测”每个输入的Token组合之后应该“出现”哪些新的Token,同时还能够通过两外的参数去识别上下文关系,语句的情感参数等调整这个“预测”。
输入:你好吗?输出:我很好,谢谢。你呢?
输入会被分成四个 Token :[“你好”, “吗”, “?”]。每个 Token 都会根据其含义和上下文被分配一个嵌入向量。
第一个 Token 的嵌入向量会被输入神经网络层并产生一个输出嵌入向量,该向量预测了在“你好”之后应该出现什么。该输出嵌入向量会被解码为“I”(一个代词)。
第二个 Token 的嵌入向量会与上一个输出嵌入向量一起被输入神经网络层,并产生另一个输出嵌入向量,该向量预测了在“你好我”之后应该出现什么。该输出嵌入向量会被解码为“'”(一个撇号)。
这个过程会一直持续到所有输入 Token 都被处理并且所有输出 Token 都被生成。
最终响应将通过连接所有输出 Token 而形成:[“我”,“'”,“m”,“好”,“,”,“谢谢”,“。”,“和”,“你”,“?”] -> 我很好,谢谢。你呢?
除此之外还有专门的未知[“unk”]Token用来代表不在Token列表的内容(如用户输入自造词或者拼写错误较为严重的单词),ChatGPT具有通过上下文为这些未知Token赋予意义的能力。同时还有停止["stop"]Token用来表示回应可以完成了。
虽然ChatGPT理论上只是在“预测”或者“猜测”一段文本之后“应当”接着的另一段文本是什么,但是如果这种“猜测”的实际效果达到了我们无法分辨的水平,那又何尝不是某种“理解”呢?(虽然对于具体标准由不同意见,但是ChatGPT已经通过了一些机构进行的图灵测试)
ChatGPT的几个版本都有何不同?要如何使用?
(这部分是我个人的真实使用感受)
首先要明确一点的是,只要你的工作是需要用到电脑和计算机的,那么你的工作就几乎一定是可以被ChatGPT协助,甚至代替的,所以请不要大意的尽情去尝试让它协助你工作,提高工作效率(增加摸鱼时间)。简而言之的使用方法就是把他当成一个你的专业的刚大学毕业的实习生来对待,只管吩咐任务就行,而且要记住他是能记住上下文,能够根据你的新要求调整/修改之前的回复的。
同时谨记如果你有一定的英文对话能力,请务必尝试用英文向他发出指令,让他用英文输出回复,哪怕之后再让他用中文翻译一遍,ChatGPT用英文回复的质量明显高于中文,哪怕你英语很蹩脚也没关系。(当然只用中文也不是不行,只是说有能力的尽量尝试)
ChatGPT原版:
网址https://chat.openai.com/chat
这个版本是OpenAI的免费公开测试版,免费注册账号,但是某些国家和地区无法使用(直接屏蔽IP),需要验证手机号。
优点:免费,界面简单,打开即用。每次对话的总长度限制是4096 Token(大约3000个单词/4000个汉字,是GPT 3.5本身的上限)。相比Bing版本阉割较少,同时可以进行长对话,长度只受总Token的限制
缺点:有每小时的请求次数限制,在繁忙时间免费用户会很卡或者会被限制,该版本是不联网的,所以相比Bing版本,缺少了联网以后他自己上网搜索信息的能力。
Tips:该版本每次给出的回复是有Token上限的,大约是单次回复长度256Token,所以当他回复你复杂问题或者写长文章的时候可能会说到一半就停止了,你可以通过输入”继续“,”go on“等让他完成回复,但是有时候他也会不理解你是让他继续说的意思,可能需要更详细的说明。网络上有很多教程教你如何”催眠“ChatGPT以绕开内置的一些限制,但因为OpenAI更行内置规则的频率很高,所以很多”催眠“方法可能很快就会失效,大家自行尝试即可。
另外该版本有一个20刀每月的付费版,基本没啥区别就是每小时的请求限制没了,高峰期优先使用等,不是很推荐,建议想要大量稳定使用的用户直接去下面的Playground。
Bing Chat版:
这个版本是微软把ChatGPT和他们自家的Bing 搜索引擎结合以后的版本,想要使用的话首先要去官网加入waitilist,完成一些任务,然后下载好Edge然后等就行了,目前来看很快就可以获得使用资格。我不太确定对于地区限制具体是怎么样的,有了解的麻烦帮我补充
优点:免费,能够联网自动搜索各种信息,比如提编程需求的时候懂得自己去搜代码,这一点大大弥补了原版缺少很多冷门内容甚至是中文内容的缺点。回复一些热点事件或者有固定答案的信息准确率更高。因为可以联网搜索信息,有时候写文章的质量特别是详细程度比原版好(因为可以直接去到处抄)。
缺点:对话次数有限制,高峰时是6次回复,普通时段是8次,超过该次数以后就必须重启对话。同时该版本的内置审核规则比原版严的多,很多话题它都不愿意说,有的时候甚至在回复完全无害的话题过程中突然因为检测到敏感词而中断。另一方面我个人感觉它会更倾向于把搜索的内容整理给你而非自己创作内容,这就导致某些时候他的回复长度甚至不如原版。
Tips:这个特别适合临时想要了解某些内容的时候,直接问他比自己搜来搜去找要快的多。写文章的话根据题材不同和原版各有上下,我有时候会让他们各写一篇然后看看哪篇比较好,上面的文章就是用Bing版生成的,比原版质量高不少。
Playground版本:
网址:https://platform.openai.com/playground?mode=chat
这个是OpenAI正式推出API之后的官方演示版本,本质上和上面的原版相同,同样不能联网,但是有很多不同版本的GPT模型可以选择,各个模型是根据特定场景微调的,主要差别针对场景优化,同时收费和性能不同。使用该版本是要按照Token收费的,但是实际上很便宜,1000个Token只要1-4美分,如果你想要长期使用的话,用这个按量付费比20刀包月核算的多。
优点:“据说”内部审查规则比原版要弱,但是我没仔细比较过。有一些参数可以自行调整比如单词回复使用的Token上限,可以自定调用的具体模型,更大的自由度,更快的相应速度。收费极其低廉。
缺点:跟原版相比差别并不大,特别是仍然不能联网。需要开通付费账号(意味着要信用卡等)。
Tips:我一般都是在原版对话太多被限制了才来用一用Playground。
蛋友里估计码农不少,ChatGPT是针对编程优化的特别是Python(因为他就是Python写的),内置代码窗口,很适合协助编程特别是初学者学习代码!总而言之就是大家有条件的一定要尝试用ChatGPT协助改善你的工作!多去试着开发他的使用方式,总会有惊喜!