从四个角度全面认识 ChatGPT

2023-06-30 09:12:11

在这里插入图片描述


当下最引人注目的语言模型 ChatGPT 如火如荼,主要还是因为其能力远远超越了传统模型。本文将对 ChatGPT 与传统模型进行对比,深入探讨 ChatGPT 具备的强大能力以及其背后的技术来源。此外还将介绍面对大语言模型时代我们应该如何去做。

传统语言模型是什么样的?

传统语言模型的实现机制其实很简单,我们可以将它理解为“文字接龙”,当我们输入一个词之后,模型会帮我们去预测下一个词是什么,将这两个词拼接之后继续预测,如此往复就形成了一段一段的整句对话。

那么语言模型究竟是如何学会人类语言机制的呢?当我们向它询问某一个问题时,这个问题就作为了语言模型的输入内容,同理它会去预测下一个单词或字符。每一组这样的数据组合都可以称为一个范例,当这样的范例足够多以后,大预言模型就会涌现出一个新能力:泛化。也就是说同一个问题,它可以自行拓展,比如说我们问:“床前明月光的下一句是什么?”模型回答“疑是地上霜”,这是正确答案。那么这时候如果将问题稍微拓展:“床前明月光的后续内容是什么?”模型也可以理解并处理,这就是所谓的泛化能力。当然这个能力是需要一个长期的训练过程和大量的数据作为支撑的。

过去一直以来的语言模型都是遵循以上机制的,讲的直白一点其实就是一个“文字接龙”机器,你问出的问题它会有对应的答案,即使换个问法可能也是该答案。相信每个人都体会到过某宝/某多/某东的机器人客服,你问一个问题它是这么回答的,换个问法它还是同样的话术,就说气不气。事实上这样的产品就是传统语言模型的典型代表。

ChatGPT 涌现出了哪些新能力?

在 ChatGPT 出世以后,与传统语言模型完全不一样了,ChatGPT 给我们的感觉就是它可以像真人一样和人正常聊天,回答各种各样的问题,甚至能理解人的感情… 很多全新的能力涌现了出来。

第一 ChatGPT 好像 全世界的知识它都会,上知天文下知地理,我们可以向它提问各领域的知识,让它帮我们写代码、写稿子等等。

case1:让 ChatGPT 讲解量子力学知识
插图(提问ChatGPT)
case2:让 ChatGPT 讲解天文学知识
在这里插入图片描述
case3:让 ChatGPT 帮我们写一段 python 代码,调用 ChatGPT
在这里插入图片描述
在这里插入图片描述
python 语言调用 ChatGPT 模型代码如下:

import openai

def chat_with_gpt(prompt):
    # 设置你的OpenAI API密钥
    openai.api_key = 'YOUR_API_KEY'

    # 调用ChatGPT进行对话
    response = openai.Completion.create(
        engine='text-davinci-003',
        prompt=prompt,
        max_tokens=100,
        temperature=0.7,
        n=1,
        stop=None,
        temperature=0.7,
        top_p=1,
        frequency_penalty=0,
        presence_penalty=0
    )

    # 获取模型的回复
    reply = response.choices[0].text.strip()

    return reply

# 提示用户输入对话的起始语句
user_input = input("请输入你的问题或对话的起始语句:")

# 调用ChatGPT进行对话
gpt_reply = chat_with_gpt(user_input)

# 打印模型的回复
print("ChatGPT回复:", gpt_reply)

第二 ChatGPT 具有 接受“被催眠”的能力,所谓“被催眠”,就是当我们不停的告诉 ChatGPT 它是谁、它的特长是什么、它应该做什么事时,它自己就会开始按着这个逻辑去思考。当下的新型职业提示工程师就是基于此能力。

第三 ChatGPT 具有 复杂的推理能力,按道理来说“推理”应该是只有人才能做到的事情,但是现在 ChatGPT 也具备此能力,它也可以根据语义自行推理。

case4:输入一个公考推理题,让 ChatGPT 来解答
在这里插入图片描述
第四 ChatGPT 具有 中立、客观、安全的语言表达能力,当我们询问问题时,ChatGPT 的回答往往是准确客观且非常具有条理性的,同时它也会在一些涉及不良影响的问题上拒绝回答。

case5:询问当下最具潜力的创业项目
在这里插入图片描述

这些能力都是怎么做到的?

ChatGPT 能懂得全世界几乎所有的语言,是以海量的知识和数据作为基础的。简单来说就是将近乎所有的语料(文本)送进大语言模型当中,然后让它去预测下一个词汇是什么,与传统语言模型不同的点在于 ChatGPT 接触的预料数据是极其庞大的。下面这张表是 ChatGPT 历代版本的学习资料与模型大小:

OpenAI学习资料参数量
GPT15GB1.17亿
GPT240GB15亿
ChatGPT45TB+1750亿+

从始至终语言模型的训练机制都没有变,变的只是模型的量级。俗话说“量变引起质变”,相较于传统语言模型,ChatGPT 便是一个质的改变。

ChatGPT 的复杂推理能力源于“分治思想”,将一个大问题分解为一个个的小问题,逐步解决。

为语言模型灌输知识以及其“分治”的问题处理方式,这也就是我们常说的预训练。但是预训练之后也产生了一个问题:由于预训练接触了太多的数据信息,导致模型的回答没有约束,什么都说,不管好的还是不好的!

所以接下来就需要对语言模型进行规范、矫正,让它可以按照我们期望它输出的样子进行输出。具体的方式就是将一大堆人工标注好的范例输入到语言模型当中,这里所说的“人工标注好的范例”是指人为处理过的一些数据,包括答题要求和标准答案等。通过这些范例的大量输入告诉 ChatGPT 应该如何回答。

经过以上三个方面的训练之后,ChatGPT 就已经可以很规范的回答我们的问题了。当然至此想让它具有中立、客观、安全的语言描述能力还是不够的,还需要对 ChatGPT 进行最后的创意引导,具体的做法就是让任何用户对它进行自由提问,然后 ChatGPT 无干预的自由回答,最后人工告诉它哪个回答的好,哪个回答的不好,并分别给予奖励/惩罚。这些做法是在规范 ChatGPT 的表现,使它尽可能的作出符合人类认可的回答。

综上,ChatGPT 大语言模型的训练过程为:预训练→模板规范→创意引导。正是这三个步骤,再基于超大规模的数据造就了今天的最强语言模型 ChatGPT。

在 ChatGPT 大模型时代,我们应该怎么做?

万物都是有两面性的,拥有强大能力的 ChatGPT 也无可避免的存在着一些缺陷:

  • 可能会胡编乱造;
  • 可能会混淆,把一个人身上的事情用到另一个人身上;
  • 无法直接操作,我们没有办法像操作数据库一样去操作它;
  • 还存在一定的安全隐患,如某些机密性的信息;
  • 更新效率低;
  • 无法把语言和现实进行映射。

即使再强,也还有着很大的优化空间。事实上目前还有不少人对 ChatGPT 存在着抵触心理,因为在他们的认知中,ChatGPT 会造成大量的人员失业甚至是替代人类。但我想说的是ChatGPT 并不会让你失业,熟练使用 ChatGPT 的人才会让你失业。我们应该做的是拥抱科技、拥抱 ChatGPT,接受它并优化自己的学习方法,终身学习。

只有我们自身加入到科技发展的进程中,才不会被科技发展所淘汰。

更多推荐

百川的大模型KnowHow

卷友们好,我是rumor。大模型是一个实验工程,涉及数据清洗、底层框架、算法策略等多个工序,每个环节都有很多坑,因此知道如何避坑和技术选型非常重要,可以节省很多算力和时间,说白了就是一摞摞毛爷爷。近期百川智能发布了Baichuan2的7B和13B版本,可能不少卷友被刷屏惯了没有仔细看,他们在放出模型的同时也给了一份技术

vue.js路由如何配置,及全局前置路由守卫(做所有请求登录验证)、路由独享守卫(访问路由前身份验证)

1.编写路由配置文件router.js以及配置全局前置路由守卫和路由独享守卫//路由配置文件//作用是将指定的路由地址切换成对应的模块//eslint-disable-next-lineno-unused-varsimportRouterfrom"vue-router"//eslint-disable-next-lin

HelpLook全新升级!定制AI问答机器人,企业内容中心焕新

一直以来,企业都在努力解决内外部“企业知识管理”问题:从纸质手册发放,转线上电子文档传阅(pdf/ppt/word等),再到整理客户常见问题(FAQ)和内部知识库(wiki),但始终没有找到一套完整方案将“企业知识”很好地集中管理及分享查阅。持续困扰大家的⬇️❌要么是软件系统更新太困难、或搭建费用太昂贵❌要么是没人知道

MybatisX快速生成代码(mybatis plus模板)

文章目录1、概述2、基本使用2.1、插件安装2.2、集成数据库1、概述MybatisX是一款基于IDEA的快速开发插件,为效率而生。在开发过程中,相信大家都遇到过一个数据库内有着十几张或比之更多的数据表的情况。而面对这众多的数据表,实体类、服务类、服务实现类、Mapper接口及其对应的XML文件更是头大,这无疑是成倍增

IPV6真的神

ipv6地址短缺的现实,万物互联的未来<全局可达性>1、路由表更小。地址分配遵循聚类原则,路由表用Entry的路由表示一片子网。2、更强的组播以及流控制。为媒体服务质量QoS。控制提供了良好的网络平台。3、DHCPv6,自动配置地址。使得网(尤其是局域网)的管理更加方便和快捷。4、自带IPSec,端对端安全。在网络层的

通讯网关软件001——利用CommGate X2Access-U实现OPC UA数据转储Access

本文介绍利用CommGateX2ACCESS-U实现从OPCUAServer读取数据并同步转储至ACCESS数据库。CommGateX2ACCESS-U是宁波科安网信开发的网关软件,软件可以登录到网信智汇(http://wangxinzhihui.com)下载。【案例】如下图所示,实现从OPCUAServer实时读取数

linux vim操作汇总

汇总起来,备忘查看~目录1、复制复制一行包括换行符复制光标开始到行末的文本复制光标开始到行首的文本复制当前单词复制单行或多行到指定行后2、粘贴、剪贴3、移动4、删除删除整行删除光标所在行删除光标所在行开始的3行删除一行带复制(当前光标所在行)删除当前行开始的几行(包括当前行)删除到本行行首/行尾删除字符删除单词/符号5

探索Go语言在机器学习领域的应用局限与前景

🌷🍁博主猫头虎带您GotoNewWorld.✨🍁🦄博客首页——猫头虎的博客🎐🐳《面试题大全专栏》文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺🌊《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~💐🌊《100天精通Golang(基础入门篇)》学会Golang语言,畅玩云原生,走遍大

Pytest系列-数据驱动@pytest.mark.parametrize(7)

简介unittest和pytest参数化对比:pytest与unittest的一个重要区别就是参数化,unittest框架使用的第三方库ddt来参数化的而pytest框架:前置/后置处理函数fixture,它有个参数params专门与request结合使用来传递参数,也可以用parametrize结合request来传

【linux】paramiko介绍 + 路由器设置tc命令使用

背景:要给网络灵活的设置各种带宽限制,通过对路由器下发tc命令实现。设置python脚本的ssh链接+tc脚本下发+针对某一个id进行配置。Paramiko是一个用于在Python中进行SSH(SecureShell)协议通信的库。它提供了在远程服务器上执行命令、上传和下载文件、建立SSH连接等功能,使得开发者可以轻松

MySQL---优化&日志

目录一、MySQL优化3、mysqlserver上的优化3.1、MySQL查询缓存3.2、索引和数据缓存3.2、线程缓存二、MySQL日志2.1、redolog重做日志2.2、undolog回滚日志2.3、错误日志2.4、查询日志2.5、二进制日志2.5.1、基于binlog数据恢复实践操作六、慢查询日志一、MySQL

热文推荐