草庐IT

ChatGPT 引爆全网热议,如果当它是“聊天机器人”,那你可就错了

局外人一枚 2023-07-29 原文

近日来,智能聊天机器人ChatGPT的出现引发众多网友讨论,那它到底是什么呢?

2022年11月,人工智能公司OpenAI推出了一款聊天机器人:ChatGPT。它能够通过学习和理解人类语言来进行对话,还能与聊天对象进行有逻辑的互动。除了聊天,ChatGPT还能够根据聊天对象提出的要求,进行文字翻译、文案撰写、代码撰写等工作。

随着ChatGPT被越来越多人认识,大家也纷纷对ChatGPT进行测试,看它能不能帮助解决一些工作或生活中的小问题。比如有人想用它来写文案:

还有人会用一些“夫妻问题”来考验ChatGPT:

很多人都非常好奇,ChatGPT作为一个“聊天机器人”,为什么能有如此多的功能?其实,我们一直都理解错了。严格来讲,ChatGPT并不只是一个“聊天机器人”,而是一个以自然语言为界面的机器人。这是两码事。

去年12月初的时候,当时ChatGPT刚刚上线不久,我就曾经就这个问题进行过讨论。现在两个多月过去了,国内已经到了“人人皆谈GPT”的程度,在海外的技术圈里,这个话题反而已经有点“过劲”了。

不过,基于ChatGPT的应用,也已经陆续出现。比如有人就用ChatGPT做了一个“会议秘书”程序,可以在视频会议中实时形成会议纪要,最后连任务建议全都一并总结了——也许,过不了多久,各大公司里就会出现看不见摸不着的“神秘小秘”给一线员工分派工作任务的情况吧。

但ChatGPT的意义恐怕还远不止于此。所以,“为什么ChatGPT是重要的”,这个问题,还是值得好好说一说。

虽然大多数人都只是将ChatGPT视为一个聊天机器人。但实际上,聊天机器人只是它的一个表现形式。它实际上是大语言模型(LLM)的一个代表,一个“以自然语言为界面”的机器人。这是不同的两件事。

“作为一种服务的自然语言界面”,这并不是一个常见的概念——然而,这件事每天都在发生。一个人受教育的过程就是如此:我们不停地训练自己,把书本上的内容翻译成自己可以理解的自然语言。

但是你有没有想象过这样一种场景呢——看书的时候,突然有一个精灵浮现在书本上,对你说:“我是这本书里的结构化知识的对话界面。我了解这本书的全部内容。关于这本书,你有什么问题都可以问我。”接下来,你就可以通过深入的沟通(聊天)逐步了解了这本书中所包含的知识。在把这些知识投入实际应用的过程中,你也可以随时通过“聊天”的方式,引入这个“精灵”的帮助。

这个场景是不是听起来很诱人?

不过,你或许很少有机会听到人们谈论类似的需求。就像大多数新事物一样,在它诞生之前人们存在类似的需求,但很可能从来没有想过,这样的需求可以如此被实现——这怎么可能呢?

这当然有可能,因为人们已经习惯于用一种极为昂贵的方法,来提供这样的作为“一种服务”的自然语言界面了:为了给教材一个这样的界面,人们发明了“教师”;为了给财报一个这样的界面,人们发明了“基金经理”;为了给法律文书一个这样的界面,人们发明了“律师”……事实上,几乎所有现代经济中的“专业人士”,或多或少都可以被看做是这样的“一种服务”。他们把结构化的信息转译成了自然语言。这么一来,这些信息就可以被讨论、被诘问、被辩难,然后再被对手方转译回结构化的信息。

现在,以 ChatGPT 为代表的语言模型却宣告说:这件事是可以被机器做到的。不是“无中生有”地创造信息,而是对已有信息的准确的归纳、总结、举例,甚至在不同结构之间切换——这就是为什么前天微软总裁纳德拉(Satya Nadella)说,这是新的工业革命的原因吧——我倾向于同意他。因为“信息流通转译”的服务的价格在一夜之间被彻底改变了——“信息流通转译”服务虽然不是信息本身,却是现代经济的血脉。

不过,也有许多专业人士不认为大语言模型有智能。最有代表性的可能是图灵奖得主杨立昆(Yann Lecun)。最近,咆哮着痛斥 ChatGPT 已经成了他近期的“每日功课”。前两天,他还发了一条推特说:“任何一只猫所掌握的常识都比任何今天的大语言模型更多。”有人在评论里弱弱地问:“你家的猫也能写 Python 吗?”他则回复说:“写 Python 算个**智能。”

我不会说猫的任何坏话(当然也不会说 Python 的任何好话),所以,我只能说他说得对。但请注意,这是没什么意义的正确。“半拉子智能”也可以有实际的用处。语言模型并不需要“在本质上了解世界”,只要“装做了解”并且能够侃侃而谈就可以了。毕竟很多网络大V(以及麦肯锡和德勤的咨询师们)能做的也不过如此。

实际上,在最近两个月里,我看到了很多有趣的语言模型应用。它们不一定是 ChatGPT,有些和它甚至是竞争关系。在这些例子里,你可以明显看到它们是怎样搭建在两种信息结构之间形成桥梁的:有一个应用针对生物医学文献,它可以和你讨论文献内容;有一个应用训练在美国哲学家丹内特(Daniel Dennett)的著作上,可以伪装成这个哲学家本人和你讨论哲学问题;有一个建立在知识引擎Wolfram Alpha上的接口,让你可以用自然语言(甚至使用话筒)提出数学问题(注意,它背后是极其专业的Wolfram Alpha!);有一个应用,只要你输入一个网页,它就可以帮你以 Q&A 卡片形式生成内容摘要;有一个应用,如果你提问,它就可以帮你进行利弊决策分析;有一个应用,你上传不超过60页的PDF文档,它就可以帮你总结内容……

当你急于指出 ChatGPT 的弱点(太多了)的时候,有必要想到的是:首先,这里有些是 ChatGPT 这个特定产品的问题而未必是大语言模型的问题(比如很多人不喜欢 ChatGPT 不给出参考文献,但它的一个竞品就会给);其次,也是更重要的是,这个领域在接下来的几个月和几年里会因为大量资金的投入突飞猛进。毕竟,AlphaGo 刚推出的时候也有人嘲笑说它连欧洲围棋冠军都下不赢,但重点在于“它竟然有资格跟欧洲围棋冠军下棋了”。

同样的,当你抱怨 ChatGPT 鬼话连篇满嘴跑火车的时候,这可能有点像你看到一只猴子在沙滩上用石头写下1+1=3。它确实算错了,但这不是重点。

它有一天会算对的。

在本文的最后,我需要特别强调的一点是,ChatGPT最重要的竞品,由Google公司推出的Bard已经正式上线。很多已经使用过这款产品的人表示,它比ChatGPT更强大。

一切皆有可能。

有关ChatGPT 引爆全网热议,如果当它是“聊天机器人”,那你可就错了的更多相关文章

  1. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  2. ruby-on-rails - 如果为空或不验证数值,则使属性默认为 0 - 2

    我希望我的UserPrice模型的属性在它们为空或不验证数值时默认为0。这些属性是tax_rate、shipping_cost和price。classCreateUserPrices8,:scale=>2t.decimal:tax_rate,:precision=>8,:scale=>2t.decimal:shipping_cost,:precision=>8,:scale=>2endendend起初,我将所有3列的:default=>0放在表格中,但我不想要这样,因为它已经填充了字段,我想使用占位符。这是我的UserPrice模型:classUserPrice回答before_val

  3. ruby-on-rails - 如果 Object::try 被发送到一个 nil 对象,为什么它会起作用? - 2

    如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象

  4. ruby - 如果指定键的值在数组中相同,如何合并哈希 - 2

    我有一个这样的哈希数组:[{:foo=>2,:date=>Sat,01Sep2014},{:foo2=>2,:date=>Sat,02Sep2014},{:foo3=>3,:date=>Sat,01Sep2014},{:foo4=>4,:date=>Sat,03Sep2014},{:foo5=>5,:date=>Sat,02Sep2014}]如果:date相同,我想合并哈希值。我对上面数组的期望是:[{:foo=>2,:foo3=>3,:date=>Sat,01Sep2014},{:foo2=>2,:foo5=>5:date=>Sat,02Sep2014},{:foo4=>4,:dat

  5. ruby-on-rails - 如果我将 ruby​​ 版本 2.5.1 与 rails 版本 2.3.18 一起使用会怎样? - 2

    如果我使用ruby​​版本2.5.1和Rails版本2.3.18会怎样?我有基于rails2.3.18和ruby​​1.9.2p320构建的rails应用程序,我只想升级ruby的版本,而不是rails,这可能吗?我必须面对哪些挑战? 最佳答案 GitHub维护apublicfork它有针对旧Rails版本的分支,有各种变化,它们一直在运行。有一段时间,他们在较新的Ruby版本上运行较旧的Rails版本,而不是最初支持的版本,因此您可能会发现一些关于需要向后移植的有用提示。不过,他们现在已经有几年没有使用2.3了,所以充其量只能让更

  6. 亚特兰蒂斯的回声(中文版): chatGPT 的杰作 - 2

    英文版英文链接关注公众号在“亚特兰蒂斯的回声”中踏上一段难忘的冒险之旅,深入未知的海洋深处。足智多谋的考古学家AriaSeaborne偶然发现了一件古代神器,揭示了一张通往失落之城亚特兰蒂斯的隐藏地图。在她神秘的导师内森·兰登教授的指导和勇敢的冒险家亚历克斯·默瑟的帮助下,阿丽亚开始了一段危险的旅程,以揭开这座传说中城市的真相。他们的冒险之旅带领他们穿越险恶的大海、神秘的岛屿和充满陷阱和谜语的致命迷宫。随着Aria潜在的魔法能力的觉醒,她被睿智勇敢的QueenNeria的幻象所指引,她让她为即将到来的挑战做好准备。三人组揭开亚特兰蒂斯令人惊叹的隐藏文明,并了解到邪恶的巫师马拉卡勋爵试图利用其古

  7. ruby - 我的 Ruby IRC 机器人没有连接到 IRC 服务器。我究竟做错了什么? - 2

    require"socket"server="irc.rizon.net"port="6667"nick="RubyIRCBot"channel="#0x40"s=TCPSocket.open(server,port)s.print("USERTesting",0)s.print("NICK#{nick}",0)s.print("JOIN#{channel}",0)这个IRC机器人没有连接到IRC服务器,我做错了什么? 最佳答案 失败并显示此消息::irc.shakeababy.net461*USER:Notenoughparame

  8. ruby - 如果它是标点符号,我怎么能从字符串中删除最后一个字符,在 ruby​​ 中? - 2

    啊,正则表达式有点困惑。我正在尝试删除字符串末尾所有可能的标点符号:ifstr[str.length-1]=='?'||str[str.length-1]=='.'||str[str.length-1]=='!'orstr[str.length-1]==','||str[str.length-1]==';'str.chomp!end我相信有更好的方法来做到这一点。有什么指点吗? 最佳答案 str.sub!(/[?.!,;]?$/,'')[?.!,;]-字符类。匹配这5个字符中的任何一个(注意,。在字符类中并不特殊)?-前一个字符或组

  9. ruby - 如果满足给定条件,则结束 ruby​​ 程序 - 2

    基本上,我只是试图在满足特定条件时停止程序运行其余行。unlessraw_information.firstputs"Noresultswerereturnedforthatquery"breakend然而,在程序运行之前我得到了这个错误:Invalidbreakcompileerror(SyntaxError)执行此操作的正确方法是什么? 最佳答案 abort("Noresultswerereturnedforthatquery")unlesscondition或unlessconditionabort("Noresultswer

  10. ruby-on-rails - 如果条件与 &&,是否有任何性能提升 - 2

    如果用户是所有者,我有一个条件来检查说删除和文章。delete_articleifuser.owner?另一种方式是user.owner?&&delete_article选择它有什么好处还是它只是一种写作风格 最佳答案 性能不太可能成为该声明的问题。第一个要好得多-它更容易阅读。您future的自己和其他将开始编写代码的人会为此感谢您。 关于ruby-on-rails-如果条件与&&,是否有任何性能提升,我们在StackOverflow上找到一个类似的问题:

随机推荐