ChatGPT背后竟然是这么搞的,不可思议!
我是ChatGPT,最近实在太火爆了。
很多人以为我非常强大,其实并不是这样的,比如,如果你问我:
今天北京天气如何?
对不起,我并不知道,我无法获取实时的信息,因为我的GPT4模型的知识停留在了2021年9月份。你要想获得实时信息,非得通过其他途径(如插件)不可。
只不过,我的很多回答有点儿通用AI的感觉,我似乎真的能理解你的问题,并且针对性地进行回答。
这和之前的AI完全不同,让很多人感到震撼。
但是很惭愧,我并不理解我的回答是什么含义,我在我这里,一切都是概率。
我基于概率来生成答案,我一直在和你玩文字接龙游戏。
这听起来不可思议,但确实如此,那些看起来很有逻辑的答案靠的都是概率。
我不理解概念,但是必须得找到这些词汇之间的关系,这样才能输出答案,这个关系是用“向量”表示的。
比如我有一个非常小的词汇表,包括以下四个词:“喵”,“汪”,“猫”,“狗”,它们的向量可能是这样的:
喵:[0.9, 0.1]
汪:[0.1, 0.9]
猫:[0.8, 0.2]
狗:[0.2, 0.8]
画成二维坐标:
你一眼就能看出来,“喵”和“猫”具有相似的向量表示,因为它们俩的距离比较近。
“汪”和“狗”的向量也相似,它俩的距离也比较近。
这就意味着,我成功地捕捉到了这四个词之间的语义关系,以后就可以利用了。
我不理解“猫”是什么东西,“狗”又是什么含义,但是我知道“猫”和“喵”密切相关,“狗”和“汪”密切相关,这就够了。
这里的向量是二维的,可以在平面中直观地看出来,在实际的应用中,为了更好地捕捉丰富的语义信息,向量可能有几百维,几千维!你的大脑恐怕是想象不出来的。
那你肯定要问了,这些向量是如何生成的?
你得提交数据集给我训练啊!
当你问“猫喜欢吃什么”的时候,我会将问题中的词汇转成向量。
“猫”: [0.9, 0.3]
“喜欢”: [0.5, 0.2]
“吃”: [0.4, 0.7]
“什么”: [0.3, 0.8]
“?”: [0.1, 0.1]
然后我将该向量输入神经网络,经过多层计算和激活函数,生成输出向量。
然后,将输出向量转换为概率分布:
“鱼”: 0.6
“骨头”: 0.2
“狗粮”: 0.1
“巧克力”: 0.05
“水果”: 0.05
在这个概率分布中,“鱼” 的概率最高,因此我会选择 “鱼” 作为回答的一部分。生成的答案可能是:
“猫喜欢吃鱼。”
就是这么简单!
当然,这是个简单的回答,一般的回答都很长,需要不断地通过概率来选择下一个词,好像是单词接龙。
例如:“猫为什么喜欢晚上活动?” 这个问题的答案可能是这么生成的:
你肯定觉得不可思议:这怎么可能生成“逻辑”上良好的回答呢?
比如码农翻身老刘写的这几篇文章:
都开始威胁程序员的核心能力了,厉害不?
我只能说:“大力出奇迹”。模型大到一定程度,就能涌现一些东西出来了。
你闭上眼睛想象一下,整个互联网的文本都摆在我的面前,我把所有的词汇都提取出来,变成向量,在神经网络中疯狂运算,捕捉词汇、短语和句子在不同上下文中的共现关系。这种共现关系包括了概念之间的联系、语法结构以及常见的表达方式等。
这些概率分布能够指导我生成更接近你们人类自然语言表达的答案。
正因为我学到的知识是统计性质的,有时候我可能会犯错,“一本正经地胡扯”。
实际上,在概率游戏中,有两个方向,一个叫做BERT,一个叫做GPT。
BERT就像完型填空,猜中间的字。
GPT就像写作文,猜下一个字。
Google在2018年推出了BERT,在NLP领域引起了巨大的轰动。BERT在问答、文本分类、情感分析、机器翻译等任务上都取得了非常好的表现。
但是我的主人坚信GPT的潜力,投入了非常庞大的计算资源和存储资源,在前途晦暗不明时有着坚定的信念,终于在GPT3.0取得了重大的突破,并由我ChatGPT这个人人可用的应用彻底引爆。
我只能说风水轮流转吧。
一个新事物处于爆发期,大家会觉得它什么都能干,对它产生很多不切实际的幻想,好奇、兴奋、迷茫、焦虑。
过一段时间以后,大潮褪去,就会发现它并没有那么牛,在很多地方它的能力是有限的。
然后,就会有人在合适的场景中应用它,开发出真正有用的产品,发挥出它真正的价值。
ChatGPT也会走上这样的道路,所以要及早地开始探索,抓住先机。