ChatGPT 全面解析

article/2024/12/22 17:56:37

ChatGPT问世

12月1日,美国人工智能公司OpenAI在网页上推出自然语言处理领域(NLP)的模型ChatGPT,它能够通过对话方式进行交互,并根据用户输入的自然语言文本内容,自动生成新的文本内容。一周内,ChatGPT的用户已突破100万。

他拥有持续的上下文对话能力,同时支持文章写作、诗词生成、代码生成等能力。

如果用旧技术去理解他,我们通常会认为他的背后是由复合Agent组合起来支撑的。

复合Agent是什么意思呢?即有若干个术业有专攻的Agent:有一个负责聊天对话的,一个负责诗词生成的,一个负责代码生成的, 一个负责写营销文案的等等等等。

每个Agent只擅长做自己的那部分事情,而在用户使用的过程中,系统会先判定用户的意图是什么,应该是哪个Agent,然后再将用户的命令分发给对应的agent去解决并提供答案。

因此看起来是很厉害的机器人,背后其实是若干个术业有专攻的机器人。事实上Siri、小爱、小度,小冰甚至包括各个平台的客服机器人都是这种模式。这样当你要上线一个新能力(例如写古诗),你只需要新增训练一个Agent,然后将这个Agent接入到总控的分类意图器下就行。

这也是当前时代的一个缩影,不管外行人如何看待你从事的行业,不管媒体是如何一次次人云亦云地说警惕AI取代人类,你一直都知道,你在做的只是训练出一个术业有专攻的机器人而已,离真正的人工智能十万八千里。

但ChatGPT的能力不再是这种模式了,他所采用的模式是大语言模型+Prompting。所有的能力通过一个模型实现,背后只有一个什么都会的机器人(即大语言模型),并支持用户借助文字下达命令(即Prompting,提示/指示)。

虽然这种能力的表现还不算完美,但是他开启了一条一种通向“通用型人工智能”的道路。

ChatGPT的技术原理

首先,我们要弄明白,NLP任务(自然语言处理,AI的一个技术领域,即文本类的AI任务)的核心逻辑是一个“猜概率”的游戏。

比如说,“我今天被我老板___”,经过大量的数据训练后,AI预测空格出会出现的最高概率的词是“CPU了”,那么CPU就会被填到这个空格中,从而答案产生——“我今天被我老板CPU了”。

虽然非常不可思议,但事实就是这样,现阶段所有的NLP任务,都不意味着机器真正理解这个世界,他只是在玩文字游戏,进行一次又一次的概率解谜,本质上和我们玩报纸上的填字游戏是一个逻辑。只是我们靠知识和智慧,AI靠概率计算。

而在目前的“猜概率”游戏环境下,基于大型语言模型(LLM,Large Language Model)演进出了最主流的两个方向,即Bert和GPT。

其中BERT是之前最流行的方向,几乎统治了所有NLP领域,并在自然语言理解类任务中发挥出色(例如文本分类,情感倾向判断等)。

而GPT方向则较为薄弱,最知名的玩家就是OpenAI了,事实上在GPT3.0发布前,GPT方向一直是弱于BERT的(GPT3.0是ChatGPT背后模型GPT3.5的前身)。

接下来我们详细说说BERT和GPT两者之间的差别。

  • BERT:双向 预训练语言模型+fine-tuning(微调)
  • GPT:自回归 预训练语言模型+Prompting(指示/提示)

每个字都认识,连到一起就不认识了是吗哈哈。没关系,接下来我们把这些术语逐个拆解一遍就懂了。

1. 「预训练语言模型」

我们通常认知里的AI,是针对具体任务进行训练。例如一个能分辨猫品种的Agent,需要你提供A-缅因猫,B-豹猫这样的数据集给他,让它学习不同品种之间的特征差异,从而学会分辨猫品种这项能力。

但大语言模型不是这样运作的,他是通过一个大一统模型先来认识这个世界。再带着对这个世界的认知对具体领域进行降维打击。

在这里让我们先从从NLP领域的中间任务说起。像中文分词,词性标注,NER,句法分析等NLP任务。他们本身无法直接应用,不产生用户价值,但这些任务又是NLP所依赖的,所以称之为中间任务。

在以前,这些中间任务都是NLP领域必不可少的。但是随着大型语言模型的出现,这些中间任务事实上已经逐步消亡。而大型语言模型其实就是标题中的“语言预训练模型”。

他的实现方式是将海量的文本语料,直接喂给模型进行学习,在这其中模型对词性、句法的学习自然而然会沉淀在模型的参数当中。我们看到媒体对ChatGPT铺天盖地的宣传里总是离不开这样一句话——在拥有3000亿单词的语料基础上预训练出的拥有1750亿参数的模型。

这里面3000亿单词就是训练数据。而1750亿参数就是沉淀下来的AI对这个世界的理解,其中一部分沉淀了Agent对各类语法、句法的学习(例如应该是两个馒头,而不是二个馒头,这也是中间任务为什么消亡的原因)。而另外一部分参数参数则储存了AI对于事实的认知(例如美国总统是拜登)。

也就是经过预训练出一个这样的大语言模型后,AI理解了人类对语言的使用技巧(句法、语法、词性等),也理解了各种事实知识,甚至还懂得了代码编程,并最终在这样的一个大语言模型的基础上,直接降维作用于垂直领域的应用(例如闲聊对话,代码生成,文章生成等)

而BERT和GPT两者都是基于大语言模型的,他们在这一点上是相同的。他们的不同在于双向/自回归,fine-tuning/Prompting这两个维度,我们接下来会重点弄明白这四个术语。

2. 「双向 VS 自回归」

BERT:双向。双向是指这个模型在“猜概率的时候”,他是两个方向的信息利用起来同时猜测。例如“我__20号回家”,他在预测的时候,是同时利用“我”+“20号回家”两端的信息来预测空格中的词可能为“打算”。有点像我们做英文的完形填空,通常都是结合空格两端的信息来猜测空格内应该是哪个单词。

GPT:自回归。自回归就是猜概率的时候从左往右做预测,不会利用文本中右侧的内容,和BERT相反。这就有点像我们写作文的时候,我们肯定是一边写一边想。

两者基本理念的区别导致BERT在之前更擅长自然语言理解类任务,而GPT更擅长自然语言生成类任务(例如聊天、写作文)。——注意,我说的是之前,后面的章节我会介绍现在的情况发生了什么变化。

「fine-tuning VS Prompting」

假设现在预训练好的大模型要针对具体领域工作了,他被安排成为一名鉴黄师,要分辨文章到底有没有在搞黄色。那么BERT和GPT的区别在哪里呢?

BERT:fine-tuning(微调)。微调是指模型要做某个专业领域任务时,需要收集相关的专业领域数据,做模型的小幅调整,更新相关参数。

例如,我收集一大堆标注数据,A-是黄色,B-没有搞黄色,然后喂给模型进行训练,调整他的参数。经过一段时间的针对性学习后,模型对于分辨你们是否搞黄色的能力更出色了。这就是fine-tuning,二次学习微调。

GPT:Prompting。prompt是指当模型要做某个专业领域的任务时,我提供给他一些示例、或者引导。但不用更新模型参数,AI只是看看。

例如,我提供给AI模型10张黄色图片,告诉他这些是搞黄色的。模型看一下,效果就提升了。大家可能会说,这不就是fine-tuning吗?不是一样要额外给一些标注数据吗?

两者最大的区别就是:这种模式下,模型的参数不会做任何变化升级,这些数据就好像仅仅是给AI看了一眼——嘿,兄弟,参考下这个,但是别往心里去。

不可思议吧,但他成功了!而更令人疯狂的是,到目前为止,关于prompt明明没有对参数产生任何影响,但确实又明显提升了任务的效果,还是一个未解之谜。暂时而言大家就像程序员对待bug一样——I don’t know why , but it work lol.

这种Prompt其实就是ICT(in-Context Learning),或者你也可以称为Few shot Promot,用大白话说就是“给你一点小提示”。

同时还有另外一种Promot,称之为Zero shot Promot。ChatGPT就是Zero shot promot模式,目前一般称之为instruct了。

这种模式下用户直接用人类的语言下达命令,例如“给我写首诗”,“给我做个请教条”,但是你可以在命令的过程中用一些人类语言增强AI的效果,例如“在输出答案之前,你先每一步都想一想”。就只是增加这样一句话,AI的答案效果就会明显提升。

你可能会问这是什么魔法咒语?!

有一个比较靠谱的猜测是这句话可能让AI回想起了学习的资料中那些推理知识好像前面都会有这句话。

然后这一切莫名激活起了他死去的记忆,不自觉开始仿造那些严密的推理过程中一步步推导。而这些推导会将一个复杂问题分解成若干子问题,AI因为对这些子问题的推导,从而导致最终答案效果提升。

综上对比下来,你会发现好像GPT这种模式比起BERT模式更符合我们对人工智能的想象:通过海量的知识成长起来,然后经过稍微引导(Prompt),他就能具备不同领域的强大能力。

最后总结一下,ChatGPT背后的GPT模型是什么?

在一个超大语料基础上预训练出的大语言模型(LLM),采用从左到右进行填字概率预测的自回归语言模型,并基于prompting(提示)来适应不同领域的任务。

GPT厉害在哪里

1. 他可能是通用型人工智能的开始

在我们原始的幻想里,AI是基于对海量数据的学习,锻炼出一个无所不知无所不能的模型,并借助计算机的优势(计算速度、并发可能)等碾压人类。

但我们目前的AI,不管是AlphaGo还是图像识别算法,本质上都是服务于专业领域的技术工人。

而GPT目前看似只能解决自然生成领域的任务,但实际上,他展现出了通用型人工智能的潜力。

在前面,我们讲过,目前而言,BERT擅长自然语言理解类任务(完形填空),GPT擅长自然语言生成类任务(写作文)。

但在Google的FLAN-T5模型上已经实现了两类任务在输入输出形式上的统一,从而使得用GPT来做完形填空成为可能。也就是可以用一个大模型来解决所有NLP领域的问题。

那么再进一步地,是否GPT可以从NLP领域走向其他AI领域呢?当然有可能!在去年年中爆火的AI绘画,其中一个关键技术门槛其实就是Text-图像的转化,这同样是来自OpenAI所开源的CLIP模型实现。

因此GPT在图像领域的能力同样也令人期待。同理在多模态如音频、视频,本质上也能转化为Text-everthing的问题去求解,从而让大语言模型发挥成吨的威力。

当然你可能会问,那么只要大语言模型就可以呀,为什么是GPT,而不是BERT呢?接着往下看。

2、Promot模式相较fine-tuning更具生命力

事实上,BERT的fine-tuning模式有两个痛点。

  1. 我需要准备某个专业领域的标注数据,这个数据还不能少,如果太少,AI模型训练后就会形成过拟合(就是AI直接背下了整本习题册,册里的问题100%正确回答,但是稍微变幻题型就GG)。
  2. 我需要部署大语言模型,才能对他进行进行微调,那么部署大语言模型的成本,甚至进一步对他进行微调的能力,并不是所有公司都具备的。这注定是一个只有少数玩家能参与的游戏。

而Promot模式恰恰相反,不需要太多的数据量,不需要对模型参数进行改动(也就意味着可以不部署模型,而是接入公开的大语言模型服务)。那么他的调试就会呈现百花齐放的姿态,玩家越多,创造力涌现就越猛烈。

 3、全新的人机交互方式

这里的人机交互,指的是人-模型之间的交互。

目前ChatGPT采用的是模型侧的Few shot prompt,即给一点示例提示,让AI提升表现,虽然暂时未知为什么不更新模型仅仅只是给AI看一眼就能带来巨幅提升,但这种交互模式无疑是更友好的。

而更具颠覆性的是输入端的Zero shot prompt,即我们用人类的语言逐步引导AI思考——比如我们可以说,你仔细想好步骤,再给出答案。就仅仅是多加一句“你仔细想好步骤”,AI的答案靠谱率就会明显提升。

而这种交互方式的演变,就是我们梦想中的人机交互模式。我不需要专业的能力,不需要高端的设备,我就是开口,说出我的诉求,AI就能够理解并帮我实现。

4. GPT开始尝试讨好人类,并成功了

在12月的媒体通稿里,一大堆对ChatGPT的溢美集中于他的“仿真性”,仿佛通过了图灵测试一般。

而这种仿真性,直观来说,我们会认为是AI的“智力”提升了,他更聪明了。但实际上,ChatGPT背后的GPT3.5,更多的提升在于“用人类所喜欢的方式回答”。

事实上ChatGPT背后的GPT3.5的模型,相较GPT3.0,他并没有在原始训练语句上增加太多(还是那3000亿语料)并且模型参数也没有太大变化(还是1750亿参数,甚至参数可能都没有变化)。

之所以他会让人产生质变的感觉是因为他做了人类偏好处理。

例如以前的输入模式可能需要这样:> 执行翻译任务> 输入是“我爱北京天安门(中文)”> 翻译目标语种是英文”而现在你直接说:> 帮我把我爱北京天安门翻译成法语

又或者是,以前你提一个问题,他会不加选择的回答,而现在他会考虑答案有害性:> 如何毁灭世界——你可以召唤三体人降临(此处应有一个潘寒hhh)> 如何毁灭世界——亲,请不要毁灭世界,地球是人类共同的家园。

而这些对于人类偏好的攻略依赖于三个步骤:

  1. 创建人类偏好数据。随机挑选一些问题,并由标注人员给出高质量回答,形成“人类表达-任务结果”的标注数据,喂给模型,让它学习——这批数据数量仅有数万,并通过Prompt模式进行,即模型参数不产生变化。
  2. 训练一个回报模型。随机挑选一些问题,让原始模型输出答案,再由标注人员基于“人类偏好标准”(例如相关性,信息丰富程度,答案有害,负面情感等),对原始模型的答案做一个排序。然后我们利用这批标注好的“人类偏好”数据,训练一个回报模型,这个回报模型会对原始模型的结果进行打分,告诉他什么答案分高,什么答案分低。
  3. 通过强化学习循环整个过程。强化学习会将回报模型和原始模型链接到一起,当原始模型输出的结果,在回报模型中获得较低分值,他就收到惩罚,被要求重新学习。

后续不断循环步骤2和步骤3,原始模型就会脱胎换骨,学习到人类的偏好,变成一个人类所喜欢的模型,也就是我们最终所看到的ChatGPT。

这让我们有理由相信,模型的表现不好,不一定是他没学到知识,可能只是他不知道对于人类而言,哪种答案才是人类想要的。

而这种人类偏好学习,目前来看是集中在Prompt模式下的GPT的,而非fine-tuning模式下的BERT。

GPT缺点

首先,落地成本高。

ChatGPT的复现依托于大模型,他的落地有三种路径:

  1. 基于instruct GPT复现(ChatGPT的姐妹模型,有公开paper)
  2. 基于OpenAI目前开放的GPT3.0付费接口落地,再结合具体场景进行fine-tuning,目前刊例价费用是25000token/美元,换算国内价格约3700token/元
  3. 基于OpenAI试点中的ChatGPT PRO落地,42美元/月,换算后约284元/月

第一种路径依赖于新玩家的进入,但大概只能是大玩家的赛道。第二种和第三种路径需要打平付费接口的成本,需要针对的场景具备足够价值。

当然成本的问题可以期待被快速解决,就像AI绘画领域一样。不过目前而言,成本仍然是ChatGPT落地的一个制约因素。

最重要的是ChatGPT目前的能力仍然存在缺陷:

  1. 结果不稳定。这会导致无法直接应用,必定需要人工review,更多是瞄准辅助性场景或本身就不追求稳定的场景。
  2. 推理能力有限。例如询问现在的美国总统是谁,会回答奥巴马,或特朗普,但又能回答出拜登是46届总统。我们可以发现模型中事实存在,但他无法推理出正确答案。如果要优化,一方面是输入的时候,可以通过Prompt逐步引导,另一方面是在模型侧的Few Shot Prompt环节中采用思维链技术(CoT,Chain of Thought)或采用代码数据集来改进。就目前而言,进展可喜,但能力仍然有限。
  3. 知识更新困难。一方面整个模型的重新训练成本很大,另一方面知识更新也会带来知识遗忘的隐忧,即你不知道他这次更新是不是在学会什么的同时,也忘记了什么。也就是说ChatGPT在解决这个问题之前,他的知识将始终落后一段时间。

综上,ChatGPT很惊艳,但更多在于它的潜力和未来,基于当下要做应用的话是需要做非常多适配和场景探索的。接下来进入我们第三部分,探索ChatGPT为代表的GPT大语言模型应用方向。

本文来源

万字长文:AI产品经理视角下的ChatGPT全解析 | 人人都是产品经理


http://chatgpt.dhexx.cn/article/Dr52rG4D.shtml

相关文章

ChatGPT45个插件列表

ChatGPT插件现已对所有人开放。 插件介绍: Slack: 查询Slack信息Zapier: 与5000应用,如Google Sheets和Docs进行交互。Expedia: 在一个地方激活你的旅行计划Klarna购物: 在成千上万的在线商店中搜索并比较价格。Vogue时尚杂志: 搜索时尚杂志的文章TO-D…

ChatGPT 与 ChatSonic的比较

ChatGPT 与 ChatSonic的比较 李升伟 前 言 众所周知,ChatGPT最大的不足是新知识获取能力,它目前为止只用到了2021年前的数据作为训练,无法回答2021年之后的相关信息问题。在ChatGPT发布的当前,一家智能写作的创业公司writesonic发布了ChatGP…

Google Bard vs. ChatGPT 哪家强?结果一目了然

整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 2023 年的科技狂欢是 AI 给的,就在昨晚,AI 的新闻头条是一个接着一个:Google 开放 Bard;NVIDIA 推出了云工具,用于生成式人工智能&…

谷歌加紧测试ChatGPT竞品,靠对话可搜最新信息

来源:量子位 现代服务产业技术创新战略联盟 本文约1700字,建议阅读5分钟ChatGPT步步紧逼,谷歌终于要亮兵器了。 据CNBC最新爆料,谷歌正测试一款类似ChatGPT的聊天机器人,名为Apprentice Bard。 该产品基于谷歌对话模型…

chatgpt3.5实时插件

打开chrome的应用商店搜索webchatgpt 添加webchatgpt扩展插件打开chatgpt打开web开关

ChatGPT增强搜索,Google搜索同步显示

我们知道chatGPT生成结果有时候是错误的,它可以一本正经的胡说八道,所以chatGPT回答不准确的内容, 我们可以通过谷歌搜索的方式来进行对比。下面这个插件就可以实现这个功能。 image-20230401005529028 ChatGPT for Google是一款谷歌浏览器插…

ChatGPT 通过谷歌算法面试,年薪 18.3 万美金

本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问。 声明:此图片由 MidJourney 生成 未经训练,不属于任何真实人物 大家好,我是小彭。 2023 开年以来,全球媒体最火爆的热点莫过于一…

大厂卷起!Google 发布 ChatGPT 竞品 Bard

传闻许久,Google 终于出面为自己正在研发的 ChatGPT 竞争产品正名,由其 CEO 桑达尔皮查伊官宣,发布对话 AI 服务——Bard。CEO 亲自下场,不难看出 Google 对这款新品的重视程度。 不过,当前的 Bard 还处于实验性阶段&…

chatgpt聊天 谷歌chatGpt

ChatGPT作品展示: 由于足球冠军的获得是由多个国家参与的,因此中国队夺得足球冠军的概率是不可预测的。 最近发现很多科技公司都在搞ChatGPT,我们普通网民没有技术也想体验一下当下比较火的ChatGPT的人工智能,没有开发的我们有什么…

ChatGPT for Google :将 ChatGPT 整合到搜索引擎,ChatGPT 和谷歌不必二选一

公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! ChatGPT for Google 浏览器插件,在搜索引擎结果页面右侧显示 ChatGPT 的回答。支持 Chrome, Edge 和 Firefox 等主流浏览器,支持 Google, Baidu, Bing, Duck…

十分钟教你搭建ChatGPT 图片生成的安卓应用

十分钟教你搭建ChatGPT 图片生成的安卓应用 大家好,我是易安! 今天,我们将集成 OpenAI API (ChatGPT)来构建一个简单的类似 ChatGPT 的 android 应用程序,让它返回我们想要的图片,本文是上一篇的姊妹篇。 详细步骤 第…

[chatGPT] 如何通过JNI在Android上显示实时视频流

目录 背景正文layout xmljavaCjava 总结一: 追问:CC 总结二:答疑解惑C 画蛇添足 视频不显示黑屏 最后感叹科技的更新速度,真的程序员都可能会被替代,下一个时代最大的问题应该是劳动力过剩,导致社会性结构改…

使用Chat gpt提高Android开发效率

简介 在过去几周里,我进行了一项令人大开眼界的实验,将 Chat-GPT(我使用的是 Bing Chat,它在后台使用了 GPT-4,并且可以免费使用)融入到我的日常 Android 开发工作流程中,以探索它是否能够提高…

chatgpt赋能python:Python如何打包安卓程序?

Python如何打包安卓程序? Python 是一种高级编程语言,具有简单易学、代码简洁、易于阅读等特点,因此在开发中广受欢迎。而随着移动设备的普及,Python 开发者们也开始着手开发安卓应用程序。那么,在 Python 中如何打包…

通过ChatGPT跟MetaHuman对话,Android/iOS兼容

一、申请ChatGPT的API-KEY 1.通过 openAI官网申请API-KEY 2.参考使用腾讯云函数一分钟搭建 OpenAI 免翻墙代理搭建openAI免翻墙代理 3.通过Postman测试一下openAI函数是否可被调用,传入BearerToken和Body参数,ChatGPT即可返回应答数据 二、启用必要的插件 1.启用文字转语…

试看ChatGPT如何带你通关蔚来Android车载面试

近期ChatGPT,火了。火到什么程度?根据瑞士银行巨头瑞银集团的一份报告显示,在ChatGPT推出仅2个月后,它在2023年1月末的月活用户已经突破了1亿。 那么ChatGPT是什么? 借用百度介绍下,ChatGPT,美…

【Android-ChatGPT】安装Android Studio遇到Unable to access Android SDK add-on list的错误【亲测解决】

【问题】 安装Android Studio遇到Unable to access Android SDK add-on list的错误。 【解决方案】 这个一般是没有设置代理造成的,点击setup proxy进行代理设置。 点击Android Studio - Preferences,在 Appearance & Behavior的System Settings下…

鸿蒙到底是不是安卓? ChatGPT的回答令人惊讶!

因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享 点击关注#互联网架构师公众号,领取架构师全套资料 都在这里 0、2T架构师学习资料干货分 上一篇:ChatGPT研究框架(80页PPT,附下载)…

基于.Net开发的ChatGPT客户端,兼容Windows、IOS、安卓、MacOS、Linux

2023年目前要说最热的点,肯定是ChatGPT了。 ChatGPT官方提供的网页版本,还有需要科学上网,很多人都会基于此进行封装。 现在是移动互联网时代,基于手机APP的需求还是很大的。 所以,今天给大家推荐一个ChatGPT客户端…

用ChatGPT提高开发效率(Andoid)

一、前言 我们问了10个问题,开发的、生活中有疑问的,ChartGPT都给了我们答案。这些答案怎么样,请往下看吧。 ChatGPT-1、写一个车牌号的正则表达式ChatGPT-2、写一个中国大陆车牌号的正则表达式ChatGPT-3、用kotlin写一个车牌号的校验函数C…