ChatGPT使用的技术浅析
什么是ChatGPT
ChatGPT是OpenAI公司开发的一种自然语言生成模型。
ChatGPT引发广泛关注是因为它与之前的技术相比,对语言的理解,生成和记忆上下文的能力都更像人,且能良好应对开放域的问题,即这个模型不再是只擅长一类特定的问题。
之前Alpha Go虽然棋力超群,可以战胜人类顶级棋手,但它只能下棋,已经广泛应用的人脸识别,车牌识别的模型,识别能力要达到甚至超过人类的一般水平,但它们也只能做特定的事情。
ChatGPT在和人的对话中,似乎表现出了对各种各样问题的良好的了解。
能聊天文,地理,文学,甚至可以让它做数学题,写程序,找bug。几乎无论啥主题它都能用流畅的语言跟你交流。甚至可以承认和改正自己的之前说的话里的错误。
ChatGPT带来的是
一种新的交互方式。和普通人用语言直接对话,理解能力强,逻辑严谨(但给出的回答不一定都是正确的,也可能是一本正经的胡说八道),且对于常见的问题都能有所了解(历史,科学,知名人物等)。
自然语言理解和自然语言生成的能力。能准确的从用户输入的话中找到重点信息,而且模型生成的语言流畅自然,几乎看不出什么语言上的问题。
对开放域问题的处理。ChatGPT对于常见的问题基本都能给出合乎逻辑的答案(很遗憾这些答案不一定是对的)。
ChatGPT是如何工作的
ChatGPT是一个自然语言处理领域的深度学习模型,ChatGPT是基于OpenAI的GPT-3模型的。GPT-3模型在OpenAI于2020年5月发布的论文(Language Models are Few-Shot Learners,https://arxiv.org/abs/2005.14165)中提出。
所以ChatGPT所使用的重要技术实际上在2020年5月就已经出现。而GPT-3模型已经拥有强大的语言生成能力,可以根据要求写诗和回答问题。
在2022年11月出版的《PyTorch自然语言处理入门与实战》的第12章中已经提到了GPT-3模型强大的能力,书中引用了一篇文章对GPT-3模型的测试:
Q: What is your favorite animal?
A: My favorite animal is a dog.
Q: Why?
A: Because dogs are loyal and friendly.
Q: What are two reasons that a dog might be in a bad mood?
A: Two reasons that a dog might be in a bad mood are if it is hungry or if it is hot.
Q: How many eyes does a giraffe have?
A: A giraffe has two eyes.
Q: How many legs does a frog have?
A: A frog has four legs.
Q: Are there any animals with three legs?
A: No, there are no animals with three legs.
Q: Why dont animals have three legs?
A: Animals dont have three legs because they would fall over.
这段问答的翻译是:
问:你最喜欢的动物是什么
(模型)答:我最喜欢的动物是狗
问:为什么
(模型)答:因为狗是忠诚而友好的
问:请说两个可能使狗心情不好的原因
(模型)答:两个可能使狗心情不好的原因是饿了或者太热
问:长颈鹿有几只眼睛
(模型)答:长颈鹿有两只眼睛
问:青蛙有几条腿
(模型)答:青蛙有四条腿
问:有没有三条 腿的动物
(模型)答:没有三条腿的动物
问:为什么没有三条腿的动物
(模型)答:因 为三条腿的动物会摔倒(站不稳)
机器学习,深度学习与模型
机器学习指使用学习型算法让计算机程序自动学习。学习的成果通常被保存到模型中。
深度学习指使用深度神经网络的机器学习。
机器学习算法或深度学习算法就是通过特定算法不断把学习到的信息保存到模型中。然后再通过模型来解决需要解决的问题。
学习型算法通常会从数据中学习。
例如下面的图像中的红点和绿点是一批数据。
如果要训练模型把两类数据分开,可以采用逻辑回归模型,即在图中画一条直线分开两组点。根据观察很容易得到一条从左上到右下的线可以比较好的分开两组数据。
下面的图展示了机器学习不断更新模型参数,找到这条分界线的过程。(该例子也来自于《PyTorch自然语言处理入门与实战》)
GPT-3与预训练技术
前面用于分开平面上两组点的逻辑回归模型有两个参数。而最大规模的GPT-3模型有惊人的1750亿个参数。正是这些参数中保存了算法学到的各种知识。
超大规模的参数量是模型拥有这样能力的前提。但这么大规模的模型训练起来是非常困难的。据估计,训练GPT-3模型可能花费了几百万美元甚至上千万美元。
GPT-3模型训练(模型的学习过程)使用了包含互联网页面,书籍,文章,论坛等海量的文本资料,可以认为GPT-3模型看过各种各样的文本资料,模型在这些文本资料不仅学习到了如何遣词造句,还学会了逻辑以及各种方面的知识。
GPT-3是一种通用的语言模型,或者称为预训练模型。预训练技术的原理是,用海量通用的资料训练一个参数量超大的模型,训练的任务是通用的任务。比如自然语言模型将学习到理解和生成语言的基本能力。
当这个模型要被使用做具体任务时,再使用相对少量的数据来微调模型,使模型处理特点任务的能力更强。
GPT-3就是一种预训练语言模型。从这个角度上来看,ChatGPT可以看成是GPT-3模型的一种应用。
强化学习
预训练技术给了ChatGPT对语言的理解以及各种领域的通用知识。强化学习则通过不断的给模型输出的结果以反馈,让模型更快进步。
GPTChat的官方博客(https://openai.com/blog/chatgpt/)中提到了ChatGPT在训练时,使用了人工的反馈去提升模型的表现。
预训练技术和强化学习相辅相成,共同成就了ChatGPT的强大能力。
ChatGPT的不足
ChatGPT更像是一个精于语言的师爷,它擅长理解和遣词造句,但它对于现实生活中的实际问题的细节上缺乏准确的了解。常常一本正经的胡说八道,比如把苏轼的明月几时有,把酒问青天说成是李白的《望月怀远》里的诗句。
比如这个例子,ChatGPT可能认为皇帝和王的语义接近,以至于说出了秦始皇嬴政姓王这种不合逻辑的答案。另外可能由于知识的模糊,才有了宋太祖赵匡胤,他建立了北宋朝,并成为中国历史上最后一个统一全国的皇帝。这种流畅通顺,但完全不符合史实的句子。
更深入的学习
这里强烈推荐人民邮电出版社于2022年11月出版的《PyTorch自然语言处理入门与实战》一书作为自然语言入门的书籍。
这本书不仅有丰富的实践项目。还包括了深入浅出且全面的基本理论介绍,从机器学习的底层原理,机器学习框架的使用,到自然语言处理的发展历程。
在自然语言处理方面,从计算机诞生之前语言学家对于语言的经验主义和理性主义的研究和图灵提出计算机智能的概念讲起,直到使用计算机处理自然语言的经典方法,直到如今最前沿,也是ChatGPT所使用的预训练语言模型技术。涵盖了机器翻译,地址解析,诗句生成等等自然语言理解和自然语言的任务。实践项目则可以使用普通个人计算机运行多种预训练模型和训练一些小规模模型。
可以在各大电商平台搜索或者点击下图长按识别二维码购买本书。