最近火爆了的对话ChatGPT

news2024/11/18 11:43:57

前言

相信最近小伙伴们已经被ChatGPT的惊艳效果刷屏了,之前笔者也介绍过一些对话方向的工作,感兴趣的小伙伴可以穿梭:

对话系统最新综述II https://zhuanlan.zhihu.com/p/446760658

在对话系统中建模意图、情感: https://zhuanlan.zhihu.com/p/468317109

对话模型背后可以做更多事: https://zhuanlan.zhihu.com/p/458097616

但今天要介绍的ChatGPT可以说是非常值得一看的,其不但能够回答日常的一些基本问题而且能够改代码修bug,关键是回答的什么之流畅通顺且严谨,强烈建议关注ChatGPT。

alt

而且其目前也支持中文,效果也是什么的惊艳!网上目前已经有许许多多有意思的case了,大家随便搜搜就可以看得到,比如 ChatGPT教学习知识图谱

更有甚者觉得其会颠覆现在已有的搜索引擎,其实单从效果来看其可以渗透的场景非常之多:搜索、客服、机器人等等。

其目前也是在短短的五天时间内迎来了百万用户的体验,这个效果突破也算是NLP业界一大幸喜之事了吧,很开心,哈哈哈

那么ChatGPT究竟做了什么才导致其有这么好的效果呢?让我们来看看吧~

链接:https://openai.com/blog/chatgpt/

方法

alt

ChatGPT主要的训练流程如上所示,主要包含三个阶段

  • 第一阶段

在GPT-3.5基础上训练一个加强版chat模型,其中GPT-3.5是一个很强的语言模型backbone,具体的做法就是从训练集中随机抽取一些prompt,然后由标注人员去根据prompt给出一个高质量合理的answer,于是乎就有了<prompt, answer>的pair高质量训练数据,以此来fine-tuning GPT-3.5。

  • 第二阶段

基于第一步训练好的模型,每当来一个prompt,模型就会产生n个answer(比如上图中是4个输出),然后此时又会请标注人员来为这n个answer的生成质量进行排序,可以看到这最后其实也是一份标注数据,基于这个标注数据就可以训练一个reward model,其实就是个打分模型,这个模型的目标就是尽可能给每个answer打的分数和人标注的相同,更具体的就是要体现出次优之分,比如上图标注的answer质量是D>C>A>B,那么reward model在给D的打分也有高于给C打的分。

  • 第三阶段

现在经过一二阶段,手头已经有了一个还不错的chat模型以及一个可以评判生成效果好坏的reward model模型,为了使得最终的模型效果更好,于是就可以让这两个模型或者说这两个阶段多循环几遍,循序渐进、彼此增益迭代、越来越好。

具体的方法,ChatGPT的研究者们采用的是强化学习RL,用第二阶段的粉丝作为奖励来更新第一阶段的chat模型,这也是为什么作者将第二阶段的模型称为reward model的原因。

  • 小结

到这里就全部介绍完了,是不是整个过程还是比较清晰且容易理解的,但是很难想象在标注这里ChatGPT究竟投入了多少!最后这个惊艳的效果笔者感觉很大一部分增益也是得益于这个reward model或者说这里源源不断的高质量标注数据,这个投入应该是巨大的。

ChatGPT目前存在的一些问题

研究员们同时也提出了一些ChatGPT目前的badcase

  • ChatGPT 有时会写出看似合理但不正确或荒谬的答案

研究员们认为要解决这个问题是具有一定挑战性的,因为(1)在强化学习训练期间,没有真真意义上的正确答案 (2) 因为在训练模型的时候为了保住生成结果的严谨性,导致模型比较谨慎,不敢多回答,其实一些问题本来可以大胆正确回答出来的 (3) 监督训练这一范式也会导致模型学偏,使得其更加偏向于学习标注人员自己知道的,而不是真真的。

  • ChatGPT 对输入的prompt很敏感

同样一个问题,可能前后稍加修改或者说微调,那么ChatGPT的反馈是大不一样的,有可能前一次是拒绝回答,后面稍微改一下输入,语义什么的都一样,但是ChatGPT就可以回答出来了。

  • ChatGPT 回答通常是过于冗长并过度使用某些短语

ChatGPT很喜欢用一些固定的短语,比如它会经常说它是OpenAI训练出来的语言模型,这其实和训练语料的偏置有关,比如其答案通常都很长的原因就是标注人员标注的好结果通常来说都是比较长的,因为在标注人员看来长一点的句子通常来说更全面、更让人理解。

  • ChatGPT 自己做主

理想情况下,当用户提问出模棱两可的问题时,模型的做法应该是去进一步询问确认出清晰的问题后再回答。但是现在的ChatGPT通常会自作主张的猜测用户的意图。

  • ChatGPT 安全内容问题

其实这也是对话领域的通病,就是怎么拒绝回答一些不友好话题的问题,目前其用了Moderation API来告警这些不安全的内容,但是可以预见的是还是会不可避免的有漏洞

总结

总的来说,虽然长路漫漫,但是看到这个现象级的效果升级,还是很开心的。其让相关的研究者看到了一丝曙光,也让一些之前基于AI的智能生活场景更可能早一点的到来。还有一点就是怎么把这么大的模型在线上成本降下来,让其真真能够落地服务千万家,也是一个很重要有意义的课题。

期待、共勉~

关注

欢迎关注,下期再见啦~

知乎,csdn,github,微信公众号

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/70227.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nacos是什么?

摘要&#xff1a;Nacos是 Dynamic Naming and Configuration Service的首字母简称&#xff0c;相较之下&#xff0c;它更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。本文分享自华为云社区《Nacos入门指南 - Nacos是什么》&#xff0c;作者&#xff1a;华为云P…

.gitlab-ci.yml文件常用规则说明

我自己整理了一份yml文件&#xff0c;里面包含了分支触发&#xff0c;和tag触发&#xff0c;还有缓存等&#xff1a; stages:- install- build- deploycache:key: nodeModulespaths:- node_modules- distjob_install:stage: installtags:- cvtagsonly:refs:- devscript:- npm …

基于LLVM的Fortran编译器分析

简介 本文内容基于LLVM 13.0.0。 目前基于LLVM的Fortran编译器&#xff08;或者驱动&#xff09;有3种&#xff0c;分别是flang、f18和flang-new。 flang是pgfortran的开源版本&#xff0c;基于PGI/NVIDIA的商业Fortran 编译器&#xff0c;它并不从属于LLVM项目。NVIDIA团队…

LabVIEW编程LabVIEW开发 ADAM 4015热电阻输入模块例程与相关资料

LabVIEW编程LabVIEW开发 ADAM 4015热电阻输入模块例程与相关资料 ​研华公司的ADAM 4015是6通道热电阻输入模块&#xff0c;可以采集2线或3线热电阻输入信号&#xff0c;ADAM4015T课题采集热敏电阻的输入信号。模块在工业测量和监控的有着广泛的应用&#xff0c;它既可以支持A…

Web3中文|苹果想对以太坊征税

虽然Web3是非常新的技术&#xff0c;但是似乎已经遇到了非常多“劲敌”。 这些“敌人”正在阻碍web3应用程序和区块链游戏的发展&#xff0c;因为在web3里&#xff0c;应用程序和游戏将允许用户自主相互交易数字资产所有权。 所以&#xff0c;那些大公司&#xff0c;如任天堂…

最近全网爆火的黑科技,叫做chatGPT

AI神器ChatGPT 火了。 能直接生成代码、会自动修复bug、在线问诊、模仿莎士比亚风格写作……各种话题都能hold住&#xff0c;它就是OpenAI刚刚推出的——ChatGPT。 有脑洞大开的网友甚至用它来设计游戏&#xff1a;先用ChatGPT生成游戏设定&#xff0c;再用Midjourney出图&…

vue 数据手写分页,定时展示

我们在业务之中&#xff0c;其实会常常用到一些数据的分段展示 &#xff0c; 比如数据量过大导致echarts无法展示&#xff0c;我们就可以将数据进行算法分页 &#xff0c; 然后套用定时器实时更新分段数据&#xff1b; 例子展示 &#xff1a; 将下列数组截取成每页5条数据的分…

观察者模式(python)

一、模式定义 1.观察者模式(Observer Pattern)&#xff1a;定义对象间的一种一对多依赖关系&#xff0c;使得每当一个对象状态发生改变时&#xff0c;其相关依赖对象皆得到通知并被自动更新。 2.观察者模式又叫做发布-订阅&#xff08;Publish/Subscribe&#xff09;模式、模…

SpringBoot微服务的发布与部署(3种方式)

基于 SpringBoot 的微服务开发完成之后&#xff0c;现在到了把它们发布并部署到相应的环境去运行的时候了。 SpringBoot 框架只提供了一套基于可执行 jar 包&#xff08;executable jar&#xff09;格式的标准发布形式&#xff0c;但并没有对部署做过多的界定&#xff0c;而且…

2022年Python面试题汇总【面试官爱问】

2022年Python面试题汇总【常问】1、请你讲讲python获取输入的方式&#xff0c;以及python如何打开文件2、Python数据处理的常用函数3、请你说说python传参传引用4、请你说说python和java的区别5、Python你常用的包有哪些&#xff1f;6、简单说明如何选择正确的Python版本。7、简…

Qt动态库

QT带界面的动态库 创建动态库 一、新建一个C的动态库的项目 选择C的动态库的项目&#xff0c;进行下一步 修改项目的名字和项目的保存的路径。 选着编译的方式&#xff0c;不需要改&#xff0c;进行下一步。 选着动态库&#xff0c;编译成动态库&#xff0c;进行下一步。 项目…

[附源码]JAVA毕业设计社区生活超市管理系统(系统+LW)

[附源码]JAVA毕业设计社区生活超市管理系统&#xff08;系统LW&#xff09; 项目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目…

[附源码]Python计算机毕业设计SSM计算机学院课程设计管理系统(程序+LW)

[附源码]Python计算机毕业设计SSM计算机学院课程设计管理系统&#xff08;程序LW) 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。…

基于安卓的课程管理系统app设计

目 录 第1章 绪论 1 1.1 什么是电子课程管理 1 1.2 系统开发的背景 1 1.3 本文主要工作 1 1.4 系统设计目标分析 2 第2章 基本技术方案 3 2.1 Android概述 3 2.2 Android系统的四大组件 3 2.3 Android中的相关技术介绍及分析 5 2.3.1 Android系统架构研究 5 2.3.2 Android架构分…

LeetCode 167. 两数之和 II - 输入有序数组

&#x1f308;&#x1f308;&#x1f604;&#x1f604; 欢迎来到茶色岛独家岛屿&#xff0c;本期将为大家揭晓LeetCode 167. 两数之和 II - 输入有序数组&#xff0c;做好准备了么&#xff0c;那么开始吧。 &#x1f332;&#x1f332;&#x1f434;&#x1f434; 一、题目名称…

2.zookeeper

1.工作机制 从设计模式角度来理解&#xff1a;是一个基于观察者模式设计的分布式服务管理框架&#xff0c;它负责存储和管理大家都关心的数据&#xff0c;然后接受观察者的注册&#xff0c;一旦这些数据的状态发生变化&#xff0c;Zookeeper就将负责通知已经在Zookeeper上注册…

p2.第一章 基础入门 -- 冯诺依曼体系和计算机基础 (二)

1.2 核心基础 1.2.1 计算机基础知识 艾伦麦席森图灵&#xff08;Alan Mathison Turing&#xff0c;1912年6月23日&#xff0d;1954年6月7日&#xff09;&#xff0c;英国数学家、逻辑学家&#xff0c;被称为计算机科学之父&#xff0c;人工智能之父。 图灵提出的著名的图灵机模…

铺瓷砖问题

1、题目 用 121 \times 212 的瓷砖&#xff0c;把 N2N \times 2N2 的区域填满&#xff0c;返回铺瓷砖的方法数。 2、思路 记录 F(n) 表示空的 n∗2n * 2n∗2 区域的铺瓷砖方法数。 如果第一块瓷砖 A 竖着放&#xff0c;则问题就变成了 F(n−1)F(n-1)F(n−1) 即空的 (n−1)∗…

C++习题3

求余运算符% 位运算&#xff08;<< >> & | ! ^ 左右移位&#xff0c;与&#xff0c;或&#xff0c;非 &#xff0c;异或&#xff09; 这些符号的运算对象都是整型 unsigned short x0xffff cout<<x; cout输出的是整数&#xff0c;所以要将16进制…

基于jsp+ssm的员工人事工资管理系统-计算机毕业设计

项目介绍 本系统是基于JSP的人事管理系统&#xff0c;使用java来实现动态管理以及数据库管理系统采用mysql等共同来完成。管理员可以通过人事管理系统进行工资管理、用户管理、员工考勤管理、部门管理、权限管理等。经理用户则可通过人事管理系统对进行工资管理、考勤管理、部…