去年11月份发布的ChatGPT,由于其强大的对话、写作等能力,掀起了一波浪潮。本文作者以一个AI产品经理的视角,对ChatGPT的技术原理、厉害之处、可能的落地方向等方面进行了全面的解析,相信你看完后,会对ChatGPT有更深入的了解。
最近一段时间持续在关注两个技术方向:
今天这篇会先展开说一说ChatGPT,大致上包含以下方面:
对技术不感兴趣的可以直接滑动到屏幕将近一半的位置阅读第三部分和第四部分。
前言:一个AI产品经理的触动
2022年11月30日,ChatGPT发布,5天内涌入100W用户。
他拥有持续的上下文对话能力,同时支持文章写作、诗词生成、代码生成等能力。
如果用旧技术去理解他,我们通常会认为他的背后是由复合Agent组合起来支撑的。
复合Agent是什么意思呢?即有若干个术业有专攻的Agent:有一个负责聊天对话的,一个负责诗词生成的,一个负责代码生成的, 一个负责写营销文案的等等等等。
每个Agent只擅长做自己的那部分事情,而在用户使用的过程中,系统会先判定用户的意图是什么,应该是哪个Agent,然后再将用户的命令分发给对应的agent去解决并提供答案。
因此看起来是很厉害的机器人,背后其实是若干个术业有专攻的机器人。事实上Siri、小爱、小度,小冰甚至包括各个平台的客服机器人都是这种模式。这样当你要上线一个新能力(例如写古诗),你只需要新增训练一个Agent,然后将这个Agent接入到总控的分类意图器下就行。
这也是当前时代的一个缩影,不管外行人如何看待你从事的行业,不管媒体是如何一次次人云亦云地说警惕AI取代人类,你一直都知道,你在做的只是训练出一个术业有专攻的机器人而已,离真正的人工智能十万八千里。
但ChatGPT的能力不再是这种模式了,他所采用的模式是大语言模型+Prompting。所有的能力通过一个模型实现,背后只有一个什么都会的机器人(即大语言模型),并支持用户借助文字下达命令(即Prompting,提示/指示)。
虽然这种能力的表现还不算完美,但是他开启了一条一种通向“通用型人工智能”的道路,曾经科幻故事里的Jarvis,moss好像真的有了那么一点可能。而这才是7年前,我踏入这个行业所憧憬的东西啊。
可能你对我的震撼有点无法理解,我接下来会讲明白他的技术原理,带你慢慢感知这项技术的厉害之处,下面正式进入正文。
第一部分: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两者之间的差别。
每个字都认识,连到一起就不认识了是吗哈哈。没关系,接下来我们把这些术语逐个拆解一遍就懂了。
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更擅长自然语言生成类任务(例如聊天、写作文)。——注意,我说的是之前,后面的章节我会介绍现在的情况发生了什么变化。
3. 「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模式有两个痛点。
而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)> 如何毁灭世界——亲,请不要毁灭世界,地球是人类共同的家园。
而这些对于人类偏好的攻略依赖于三个步骤:
后续不断循环步骤2和步骤3,原始模型就会脱胎换骨,学习到人类的偏好,变成一个人类所喜欢的模型,也就是我们最终所看到的ChatGPT。
这让我们有理由相信,模型的表现不好,不一定是他没学到知识,可能只是他不知道对于人类而言,哪种答案才是人类想要的。
而这种人类偏好学习,目前来看是集中在Prompt模式下的GPT的,而非fine-tuning模式下的BERT。
5. 请不要着急焦虑,还没到AI取代全世界的时候
在过去的一段时间,我看到大量的噱头文章,美国高校封禁ChatGPT,技术论坛封禁ChatGPT。媒体迎合着公众的狂欢情绪,照旧掀起一波AI毁灭一切的氛围。
但实际上,就目前而言,GPT暂时还只是一种很有潜力的趋势。
首先,人家自己都说不行。
附上openAI CEO的回复:
其次,落地成本高。
ChatGPT的复现依托于大模型,他的落地有三种路径:
第一种路径依赖于新玩家的进入,但大概只能是大玩家的赛道。第二种和第三种路径需要打平付费接口的成本,需要针对的场景具备足够价值。
当然成本的问题可以期待被快速解决,就像AI绘画领域一样。不过目前而言,成本仍然是ChatGPT落地的一个制约因素。
最后,最重要的是ChatGPT目前的能力仍然存在缺陷:
综上,ChatGPT很惊艳,但更多在于它的潜力和未来,基于当下要做应用的话是需要做非常多适配和场景探索的。接下来进入我们第三部分,探索ChatGPT为代表的GPT大语言模型应用方向。
第三部分:ChatGPT所代表的大语言模型应用方向
从目前来看,应用方向可以分成三种。
1. 模型服务
以OpenAI为典型代表,孵化大模型后,开放接口,提供公共模型能力。
目前OpenAI的接口支持GPT3.0的能力调用,同时支持二次tuning。而在大规模的商业合作上,notion、office全家桶、bing都在推进当中。
2. 2B垂直工具
以COPY AI,Jasper为例,主打生成内容,并且瞄准了有明确价值需求的领域。例如自动生成SEO文章、广告创意、ins文案等等。
这一类目前海外发展得较好,一方面受益于对SaaS付费的接受度,另一方面也是因为瞄准了明确的用户群——电商从业者。
事实上代码校验提示,会议纪要生成,专业文档写作等都可能是这个方向的扩展。但一方面要看fine-tuning效果如何,另一方面商业价值确实也不如电商领域高。
3. C端娱乐类
C端应该说是场景最匹配ChatGPT应用的方向了,毕竟用户的忍受度相当高,智障音箱都能忍,何况升级后的GPT。
但困难的在于两方面:
第一,要找到可供能力落地的C端场景,毕竟单纯聊天是没有价值的,附加了场景才产生价值。
第二,要找到商业模式突破成本线。按照GPT3.0的刊例价来算,要求这个产品每输出3700个字,就要从用户身上赚到1块钱(作为参考:目前国内头部小说网站起点的付费阅读是20000字/元)。
海外的C端娱乐应用我不太了解(之前用的账号过期了,最近懒得弄)。搜索了一下国内应用,最近社交分类Glow这个APP冲上了第7名,扩展往下看会发现主流的娱乐类Chat基本上是围绕二次元/宅群体进行的。
如果围绕这个用户群稍作扩展,在年轻/黏性/新事物尝试等维度的组合下,明星粉丝也是一个可能的方向。
但也不好说就锁死在这些群体上——你猜猜给一个独居的二大爷尝试ChatGPT他会喜欢吗?给一个流水线的工人尝试呢?毕竟孤独,一直是人类永恒的命题,谁也不知道下一个爆款来自哪里。
第四部分:AI产品经理能做什么? 1. 商业层
现在的互联网环境,收益已经是第一位的事情了,不管是外部投融资还是内部项目盘点,商业变现都是最核心的问题。
商业上的事情其实又可以拆成两个模块,战略上的,战术上的,依据公司的规模和团队结构不同,AI PM的话语权会有不同程度的衰减。
举例子说明一下。
战略层的问题:我要启动一个ChatGPT项目,用户群是什么,商业模式是什么,壁垒在哪里,演进的步骤是什么?
这些问题的产生在“决定项目做不做”,“接下来项目往哪走”的环节。假设对这方面有话语权,不管大还是小,那么都会是一件非常锻炼人的事情。这个环节中无非就是两种能力:知识获取以及知识的推理。
知识获取包括你过往的行业经验,业务经验,以及临时抱佛脚所调研的行业信息。这方面依赖的是知识的挖掘、辨别、结构化整理能力,特别是现在这个时代的信息环境,真的是屎山里找金。
知识的推理是对这些知识有选择地推导,从知识中得出商业答案。这个环节可以利用一些思维工具去结构化推导(例如商业画布),多推几次后,本身自己会沉淀下来一些商业分析的肌肉记忆,工具反而退居其次了。
战术层的问题:产品做出来了,甚至免费运作一段时间了,那么接下来产品怎么定价?价格阶梯如何设置?个体消费者和企业消费者的价格会不同吗?渠道服务商的价格和直售的价格一样吗?我的成本线是多少,盈利线是多少?
只是围绕一个价格,就会延伸出一堆细碎繁杂的问题。更何况关联产生的产品方案,渠道政策,广告ROI等模块。
战术层的问题因其细碎和宽泛,会被拆成非常多不同的方向,每个方向其实都没那么复杂,只是需要一些敲门进去的方法论,剩下的就是一些实战经验。所以我们会看到,现在大厂招人,往往倾向在垂直细分方向找一个有相关经验的人,这样会节约上手时间和试错成本,例如会员产品经理。
2. 技术层
这里的技术其实没那么技术。AI产品经理和传统产品经理最大的不同就在于,他所依赖的产品核心是AI技术,因此将商业、用户需求转化为算法需求是他的主要职责。
这里面我们所提出的问题,是会有技术层面的深浅不同的。举个例子,我们遇到了一个问题“需要Chatbot能够记住用户的偏好知识,例如他喜欢下雨天,喜欢达芬奇,喜欢黄金时代”,现在我们需要算法团队帮我们实现,那么可能有不同层次的提法:
大家会发现三个层次在技术层面是由浅到深的。那么什么时候深什么时候浅取决于什么呢?
当然,不管是需求提到哪种技术层次,都需要铭记一个基本原则,说明白你这个需求的背景、目的、价值。例如第二个例子中,其实是要额外说明用户可视化修正偏好知识到底能带来什么,值不值得做,这些业务价值会与技术实现的成本互相PK,取得平衡。
AI产品经理在技术层能做的事情有点像在做fine-tuning,在模型不那么适配场景,或者场景延伸出新能力诉求的时候,发现他,分析他,并与算法团队深度讨论后方案后在成本和收益之间做平衡。
3. 应用层
应用层的事情其实和技术层有点交织,因为大部分时候你上一个新的应用功能,背后多数是需要技术支撑的。
不过这里我们搞简单点,把有技术诉求的那部分剔除掉,只保留无技术依赖或低技术依赖的来讨论。
我举个大家习以为常,但效果巨大的例子:当我们做人脸验证,或者银行卡图像识别的时候,他一定会有一个虚拟框,要求你将脸或者银行卡摆放在固定位置。这个功能毫无技术要求,就是加一个透明浮层而已。但是他能极大提升采集图像的质量,从而提升算法效果。
在chatbot里面其实也可以类似的做法。例如ChatGPT有时候会崩溃,输出结果在一半的时候就中断。他的原理其实就是自然语言生成本质上是持续性在预测下一个字是什么,然后预测出一篇文章。那么当模型在还不应该结束的时候不小心预测出一个END字符的时候,AI就认为我可以在这里停止了。
解决方案有高大上的技术方案,我们这里可以土肥圆做个low一点的——加装一个按钮“你还没说完呢”,用户点击后,AI就会自动再次重跑一遍这个input,输出结果。这样顺便还能采集一下对于这种END崩溃的bad case数据。
4. 增长层
只要你做的产品是给人用的,不管是2B还是2C,那么就离不开增长。
只是2B和2C的增长是两套完全不同的方法论。
2B其实更多应该被归到商业层,你需要做产品定价,做渠道政策,做客户成功,并打磨你整个销售链路,找到薄弱点优化他。在这个过程中你要清晰认识到2B与2C在付费决策上的显著不同,2B是多用户下关键决策人掌握公有资产进行付费判断,而2C是用户个体掌握私有资产进行付费资产。
不过教育行业这个市场会和2B有一点点相似,他是学生使用,家长付费,学校/机构影响,也是一个多用户下关键决策人的结构,不过掌握的是私有资产。
而2C就更不用说了,2C的增长产品是一个非常独立细分的行业。可以通过投放,SEO,新客进入,老客留存,社交裂变等等命题去做努力,反正核心就是拉更多的人赚更多的钱。
只是目前而言,我们在说ChatGPT,那么他大概还是一个新项目新产品。那么大概率初始不会配备相应的增长产品,AI产品也需要兼顾关注。
最后大家如果想做一些练习,可以找这个领域的一些C端应用试试看,例如glow,糖盒等。(可能还有更多,欢迎私信指点我)
但是我个人不建议拿各类市面上的chatbot或B端产品来尝试,前者发展到现在很成熟了,后者则很多时候需要面对B端特殊的场景,没有做过B端很难明白里面的细节。而glow、糖盒这类C端新起步的产品会是一个比较好的练手对象。
我这里就不罗列对这两个产品的分析或者产品建议了,我个人觉得站在局外做产品建议是很扯淡的事情。产品的魅力在于根据有限的资源和环境,选择局部最优解来推动demo慢慢成长。如果不在局内的话,很多建议和迭代我都倾向于不公开,否则局内人看起来会很蠢。
比如说觉得对话不智能,需要提升智能,建议接入GPT3.0。那么会不会这个产品的受众其实不那么需要智能,或者他们的需求无法与接入GPT3.0的费用平衡呢?这个需求有可能不是一个技术问题,而是一个商业问题。所以我觉得教张小龙做产品其实是个伪命题。
但是自己练习一下还是可以的,有一个具现的产品做逻辑推导的练习,会比只阅读理论文章来得更有效。
最后
这篇文章春节前我就在写了,起初是想围绕AIGC写,核心是说说最近影响最大的ChatGPT和AI绘画背后的Diffusion算法,我认为这两个算法的影响力非常大。
前者是给NLP领域开了一个很有潜力的方向,甚至是通向AGI(通用人工智能)的一种可能道路,后者则是图像领域非常强大的改进。最重要的是这两者的技术已经进入到一个成熟应用期了(不成熟应用也和我这个做产品的没啥关系哈哈),而且让我觉得一潭死水的AI领域重新焕发活力。
可惜最后写着写着还是发现驾驭不了这么庞大的话题。其中AI绘画背后的Diffusion算法要另开一篇分析,此外ChatGPT的商业也需要更进一步拆解。
本文由@做产品的马丁 原创发布于人人都是产品经理,未经许可,禁止转载。
题图来自 Unsplash,基于 CC0 协议