大白话谈谈ChatGPT:多点人工,多点智能

2023-05-16

对于NLP领域,本人也是门外汉,就是最近了看到的博文,记录自己的一些体会。

 


ChatGPT简介

ChatGPT的全称是"Conversational Generative Pre-training Transformer",中文翻译为"对话生成式预训练转换器"。是一种基于自然语言处理的人工智能模型,由OpenAI团队开发,它是一种基于深度学习的语言模型,专门用于对话系统中,旨在使机器人能够自然地与人类进行对话。

ChatGPT的核心技术是GPT(Generative Pre-trained Transformer)模型,这是一种预先训练的自然语言处理模型,它是通过大规模文本数据集的预训练来学习自然语言的语法、语义和上下文关系,从而使得在新的任务中微调时,能够更加高效准确地进行文本生成、摘要、问答等自然语言处理任务。

大白话解释一下就是ChatGPT是在原有预先训练的大模型的基础上,进行一些“微微”的调整就得到了现在强大的能力。

那具体这个大模型有多大,就得提一下GPT系列,也就是生成式预训练模型。现在GPT系列已经到了GPT-3,GPT-4也在路上了,可以看看这个大模型的参数量。

 

1750亿参数,45TB数据,懂行的不懂行的都能感受到这个大模型是真不小。

那这么多参数,那么多数据,这个大模型岂不是很好了。当然是有不足的,预训练模型自诞生之始,一个备受诟病的问题就是预训练模型的偏见性。因为预训练模型都是通过海量数据在超大参数量级的模型上训练出来的,对比完全由人工规则控制的专家系统来说,预训练模型就像一个黑盒子。没有人能够保证预训练模型不会生成一些包含种族歧视,性别歧视等危险内容,因为它的几十GB甚至几十TB的训练数据里几乎肯定包含类似的训练样本。

换句话说,大数据时代网络上说啥的都有,各种言论都能看到。这些数据也有来自网上收集的,所以大模型很可能看到过这些危险言论,当你问它相关问题的时候,它作为机器可不会“三思而后说”。如果真正要和人们进行多轮交互,什么该说什么不该说就需要好好掂量了。

所以ChatGPT优化的目标有以下三个:

有用的(Helpful),总不能问个问题说出来的都是废话,一点干货都没有

可信的(Honest),不能一本正经的胡说八道

无害的(Harmless),不能有太多危险发言


ChatGPT的优化策略

一句话总结就是:从人类反馈中进行强化学习,先上个图(图为InstructGPT,算法和ChatGPT一致)

大白话版本:

Step 1就是人工标注信息,比如我要给别人解释谁是高启强,那我就找个看过《狂飙》的人,写一段话介绍高启强是如何熟读孙子兵法,然后一步一步做大做强……然后告诉上面提到的那个GPT-3这个大模型,这样模型就认识了高启强。这个新模型就叫SFT

Step 2 就是如果所有的东西都要人工来进行标注提示,那人工成本太大了,那就换一个方式,给刚才微调的模型SFT输入问题得到一些输出答案,人工对这些答案按好坏进行排序重新训练一个奖励模型。毕竟做排序题肯定比做主观题要快(懂的都懂)

比如你问模型:谁是高启强?模型给出你4个回答:A.鱼贩 B.警察 C.好男人 D.黑社会大哥 假设进行人工排序就是D>A=C>B。也就是告诉模型,他是黑社会大哥的概率比较大,以后再见到他你就认为他是黑社会大哥。

这个奖励模型就是说你给我你的问题,你再给我你的输出,然后模型就给他一个分数,这个分数要满足我的人工排序

Step3就是继续去调整前面的SFT模型,使得它生成的答案能够尽量得到一个比较高的分数。就是每次我让SFT生成一个答案,然后丢到第二步里的奖励模型打个分数,然后根据这个分数进行调整,使得它生成的答案分数更高,比如第一次SFT说高启强是警察,因为警察这个答案的分数很低,就像你告诉模型这个答案不对,这样不停的迭代直到模型告诉你高启强是黑社会大哥

第三步使用了强化学习,强化学习简单来说就是试错。举个例子,当我们在玩一款游戏时,我们需要做出一系列的决策才能获得游戏的最高得分。在这个过程中,我们会通过不断的试错来学习什么样的决策能够获得更高的得分。这个过程就类似于强化学习中的智能体与环境进行交互,在每个状态下选择一个动作,从环境中获取一个奖励,然后更新其策略以获得更大的奖励。


 高级版本(涉及到公式和专业术语,可跳过):这是今天在CSDN上看到的一篇文章,讲得挺好,链接放上,顺带复制两张公式图,膜拜大佬

奖励模型损失函数:

强化学习目标函数:

 


总结

其实我个人觉得ChatGPT之所以那么强大可以归结于两句话:

1、大力出奇迹:1750亿的参数量巨大,并且GPT-3本身就具有非常强的泛化能力和生成能力,基于此基础上的ChatGPT“起跑线”就很高。

2、多点人工,多点智能:在对模型进行调整的过程中用到了使用了相应的人工标注作为指导,相当于有了“老师”,相比于原始的GPT简单依靠无标注的数据效果自然会好一些。

当然,ChatGPT也有不足,有时候ChatGPT会给出一些荒谬的输出,虽然ChatGPT使用了人类反馈,但限于人力资源有限。影响模型效果最大的还是有监督的语言模型任务,人类只是起到了纠正作用。所以很有可能受限于纠正数据的有限,或是有监督任务的误导(只考虑模型的输出,没考虑人类想要什么),导致它生成内容的不真实。就像一个学生,虽然有老师对他指导,但也不能确定学生可以学会所有知识点。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

大白话谈谈ChatGPT:多点人工,多点智能 的相关文章

随机推荐

  • docker常用命令集锦

    登录服务器 ssh v 64 192 sudo权限 su 查看docker版本 docker version 查看内核版本 uname a 启动docker docker ps a docker start container名 docke
  • git详细使用

    git搭建 amp 更新远程仓库 配置用户 span class token function git span config global user name span class token string 34 John Doe 34
  • Mindspore安装

    本文用于记录搭建昇思MindSpore开发及使用环境的过程 xff0c 并通过MindSpore的API快速实现了一个简单的深度学习模型 什么是MindSpore 昇思MindSpore是一个全场景深度学习框架 xff0c 旨在实现易开发
  • 机械臂的运动控制

    前言 xff1a 近年来 xff0c 随着服务机器人的兴起 xff0c 机械臂也正走进我们的日常生活 xff0c 近年来出现了一些低成本的 小型的 桌面版 的机械臂的产品 xff0c 相信这将是服务机器人的一个重要方向 xff01 机械臂由
  • Gazebo仿真

    在ROS中有3个可以模拟机器人的模拟器软件 xff1a Gazebo Stage ArbotiX 就是RVIz 你可以任选一个 xff1a Gazebo是一个仿真环境 xff08 平台 xff09 xff0c 可以进行三维机器人动力学仿真等
  • [小插曲]VC学习——基于MFC的模拟时钟程序

    一 程序窗口设计步骤 xff08 1 xff09 用AppWizard生成一个名为Clock的单文档 xff08 SDI xff09 程序框架 为了简化应用程序 xff0c 在第四步时去掉Docking toolbar和Initial st
  • gazebo官网例程

    首先官网下载代码https github com ros simulation gazebo ros demos 1 创建编译工作空间 cd catkin ws src git clone https github com ros simu
  • ROS action

    Actionlib是ROS非常重要的库 xff0c 像执行各种运动的动作 xff0c 例如控制手臂去抓取一个杯子 xff0c 这个过程可能复杂而漫长 xff0c 执行过程中还可能强制中断或反馈信息 xff0c 这时Actionlib就能大展
  • opencv3 特征检测与匹配及寻找目标

    1 算法 xff1a surf特征提取算法 SURF算法是著名的尺度不变特征检测器SIFT Scale Invariant Features Transform 的高效变种 xff0c 它为每个检测到的特征定义了位置和尺度 xff0c 其中
  • 论文笔记:Beyond a Pre-Trained Object Detector:Cross-Modal Textual and Visual Context for Image Caption

    前言 这篇论文是CVPR2022的一篇文章 xff0c 代码也已经开源 这博客主要分享自己的一些理解 xff0c 详情可以去阅读原文 论文思想 这篇论文首先提出了一个问题是当前的大多数图像描述模型主要依赖预训练的图像特征和一个固定的目标检测
  • Stm32定时器中断触发AD采样

    Stm32的ADC有DMA功能这都毋庸置疑 xff0c 也是我们用的最多的 xff01 然而 xff0c 如果我们要对一个信号 xff08 比如脉搏信号 xff09 进行定时采样 xff08 也就是隔一段时间 xff0c 比如说2ms 有三
  • permission denied (publickey)问题的解决

    使用ssh key这种方式进行clone xff0c pull github上面的项目 xff0c 使用 git clone或者git pull origin master出现permission denied publickey xff0
  • 【图像识别与处理】ros下使用realsense d435获取点云

    realsense驱动安装见上篇博文 1 通过源码安装intel RealSense ROS 1 创建catkin工作空间 mkdir p catkin ws src cd catkin ws src 2 将下载的源码复制到 catkin
  • 【图像识别与处理】构建用于垃圾分类的图像分类器

    1 构建图像分类器 训练一个卷积神经网络 xff0c 用fastai库 xff08 建在PyTorch上 xff09 将图像分类为纸板 xff0c 玻璃 xff0c 金属 xff0c 纸张 xff0c 塑料或垃圾 使用了由Gary Thun
  • kitti数据集各个榜单介绍

    kitti数据集网站 下面我们分别介绍下KITTI的几项benchmark Stereo Stereo Evaluation xff08 立体评估 xff09 基于图像的立体视觉和3维重建 xff0c 从一个图像中恢复结构本质上是模糊的 x
  • 解决ubuntu20.04虚拟机无法上网的问题

    64 linux虚拟机无法正常上网 前言 刚建立好的linux虚拟机使用NAT方式可以连接外网 xff0c 系统重启几次 xff0c 系统无法上网 xff0c 这是什么问题导致的呢 xff1f 提示 xff1a 以下是本篇文章正文内容 xf
  • [Linux] 使用vim保存文件时报E45错误

    今天在使用vim为Linux系统设置静态IP时 xff0c 报了E45错误 xff1a 环境说明 系统 xff1a Ubuntu18 04 操作步骤 1 打开到静态IP配置文件 打开到netplan目录 cd etc netplan amp
  • 【C++】类和对象-继承

    目录 一 继承基本方式 1 公 共 继 承 2 保 护 继 承 3 私 有 继 承 二 继承中的对象模型 三 继承中的构造和析构顺序 四 继承中同名成员处理方式 1 成员变量的处理方式 2 成员函数的处理方式 五 继承同名静态成员处理方式
  • Pytorch param.grad.data. 出现 AttributeError: ‘NoneType‘ object has no attribute ‘data‘

    程序中有需要优化的参数未参与前向传播
  • 大白话谈谈ChatGPT:多点人工,多点智能

    对于NLP领域 xff0c 本人也是门外汉 xff0c 就是最近了看到的博文 xff0c 记录自己的一些体会 ChatGPT简介 ChatGPT的全称是 34 Conversational Generative Pre training T