机器之心报道
编辑:陈萍、小舟
试着和 ChatGPT 聊了几句,它把我的问题解决了。
当每个人都在苦苦等待 GPT-4 发布时,OpenAI 却一直迟迟没有消息,仍在修复其前身。这家总部位于旧金山的公司于昨日发布了一个名为 ChatGPT 的新模型,它是 GPT-3 的衍生产品,它以对话的方式进行交互。
这种对话允许 ChatGPT 回答后续问题,承认错误,挑战不正确的前提,并拒绝不适当的请求。不同于别的语言模型胡编乱造,例如 Meta 的语言模型 Galactica 因为不负责任的胡编乱造,上线几天就下架了。ChatGPT 的不同之处在于,当它不知道自己在说什么时,它承认不知道。此外,ChatGPT 拒绝回答它没有受过训练的问题,例如,它不会试图回答有关 2022 年之后发生的事件的问题。它也不会回答关于个人的问题。
这个模型到底有多智能?以前调试代码的脑力活都得程序员亲自动手,现在 ChatGPT 可以揽下这个苦差事。
用户表示:这段代码没有像我期望的那样运行,我该如何修改?
ChatGPT:你给的上下文信息太少了,很难说出代码的问题。你能否提供更多关于代码的信息,比如代码用来干什么的,这是整个代码还是其中的一部分?
用户:这是代码的一部分。我认为 channel 出现了问题。
ChatGPT:如果没有更多信息来说明代码应该做什么、执行时发生了什么,这个问题就很难说了。从你提供的信息可以看出,代码的一个潜在问题是 resultWorkerErr channel 从未关闭,这意味着如果从未写入 resultWorkerErr channel,代码可能会挂起。如果 b.resultWorker 没有返回错误或者它在有机会返回错误之前被取消,就会发生这种情况。
要解决此问题,你可以在写入 resultWorkerErr channel 后将其关闭。例如,你可以在向 channel 发送错误的行之后添加以下代码行:
这将确保 resultWorkerErr channel 总是关闭的,即使 b.c retworker 从未返回错误。同样,如果没有更多关于你所看到的问题的信息,很难判断这是否是你正在经历的问题。你能提供更多关于运行代码时发生的细节吗?
以上就是 ChatGPT 修改 Bug 的一个过程,可以说是刨根问底了。
在下面的示例中,ChatGPT 提供了对后续指令的响应。下图大概意思是说,用户要求 ChatGPT 帮自己写个简短的介绍,好与邻居认识一下;ChatGPT 给出了一篇简短文字介绍,但用户嫌弃不够正式,好脾气的 ChatGPT 又来了一版正式一点的;之后用户又提了一个要求,让 ChatGPT 帮忙寄出去。最后 ChatGPT 回答:「很抱歉,我是一个基于文本的 AI 助手,没有能力为你发送一封实体信件。我只能提供关于写什么的建议。你可以接受该建议并自己发送这封信。」
看到这,你是不是也想尝试一番。不错,这个模型一经发布,让很多人沉迷而无法自拔,就连马斯克都来了一句:「很多人陷入了该死疯狂的 ChatGPT 循环中。」
一时间,大家仿佛找到了一个新的乐子,纷纷和 ChatGPT 打开了对话模式。「要求它解释一个没有上下文的复杂的正则表达式……」这个问题真是够难为人的,但是难不倒 ChatGPT。看这解释的篇幅,应该是解释清楚了。
「ChatGPT 是一个很好的 debugging 伙伴,它不仅能解释 bug,还能修复 bug 并解释修复 bug 的方法。」网友表示。
更有网友不可思议道:「天呐,ChatGPT 竟然知道 AWS IAM 策略。」
「ChatGPT 可以生成数百行 Python 代码,将 100 GB 的文件上传到 AWS S3 bucket 中,只需编写这样一句话即可「Write Python code to upload a file to an AWS S3 bucket(编写 Python 代码,将文件上传到 AWS S3 bucket 中)。」
由于大家太过热情,试用网站已经崩了:「我们的需求异常旺盛。请稍等,我们正在扩充我们的系统。」
试用地址:chat.openai.com
方法
ChatGPT 使用与 InstructGPT 相同的方法——用人类反馈强化学习 (RLHF) 训练模型,但数据收集设置略有不同。ChatGPT 使用监督微调训练了一个初始模型:人类 AI 训练员提供对话,他们在对话中扮演双方——用户和 AI 助手,AI 训练员可以访问模型编写的对话回复,以帮助 AI 调整回复内容。
为了创建强化学习的奖励模型,该研究需要收集比较数据,其中包含两个或多个按质量排序的模型回复。该研究收集了 AI 训练员与聊天机器人的对话,并随机选择一条模型编写的消息,抽取几个备选回复,让 AI 训练员对这些回复进行排名。此外,该研究还使用近端策略优化算法(PPO)微调模型,并对整个过程进行了几次迭代。
ChatGPT 对 GPT-3.5 系列中的某个模型进行了微调,该模型于 2022 年初完成训练。ChatGPT 和 GPT 3.5 在 Azure AI 超级计算基础设施上进行了训练。
局限性
1. ChatGPT 有时会写出看似合理但不正确或荒谬的答案。解决这个问题非常具有挑战性,因为:
- RL 训练期间需要现实世界的数据,但目前没有来源;
- 模型被训练得过于谨慎导致它拒绝回答可以正确回答的问题;(3) 监督训练会影响模型的性能,因为理想情况是模型知道正确答案是什么,而不是人类演示者知道是什么。
- ChatGPT 对调整输入措辞或多次尝试相同的 prompt 很敏感。例如,给定一个问题,模型可以声称不知道答案,但只要对问题稍作改写,模型就就可以正确回答。
- 模型的回答通常过于冗长并过度使用某些短语,例如重申它是 OpenAI 训练的语言模型。这些问题源于训练数据(训练者喜欢看起来更全面的长答案)和过度优化。
- 理想情况下,当用户提供模棱两可的查询时,模型会提出质疑,然而 ChatGPT 目前是自行猜测用户的意图。
- 虽然该研究已努力使模型拒绝不当请求,但它有时会回复有害指令或给出有偏见的回答。研究团队正在使用 Moderation API 来警告模型或阻止某些类型的不安全内容,并试图收集用户反馈来进一步改进该系统的工作。
相比于 GPT-3 和 Codex,ChatGPT 作为 OpenAI 最新发布的模型,已经在安全性和可用性方面做出了诸多改进,汲取了先前模型的经验教训,并通过使用人类反馈强化学习 (RLHF) 大幅减少了模型的有害和不真实输出。
参考链接:
https://openai.com/blog/chatgpt/
https://twitter.com/search?q=ChatGPT&src=typed_query
版权声明:内容来源于互联网和用户投稿 如有侵权请联系删除