这些技术,ChatGPT和它的潜在竞争者们都在用
随着 ChatGPT 的出现以及随之而来的广泛讨论,RLHF、SFT、IFT、CoT 等晦涩的缩略词出现在公众面前,这都归功于 ChatGPT 的成功。这些晦涩的缩略词是什么?为什么它们如此重要?本文作者查阅了所有关于这些主题的重要论文,进行了分类总结。
ChatGPT 并不是第一个基于语言模型(LM)的对话智能体,事实上,许多机构在 OpenAI 之前发布过语言模型对话智能体,包括 Meta BlenderBot、Google LaMDA、DeepMind 的 Sparrow 和 Anthropic Assistant。一些机构也宣布建立开源聊天机器人的计划,并公开了路线图(如 LAION 的 Open-Assistant)。肯定还有其它机构在做同样的工作,只是没有宣布。
下表根据上面提到的 AI 聊天机器人是否可公开访问、训练数据、模型架构和评估的详细信息,对它们进行了比较。ChatGPT 没有相关数据,这里使用的是 InstructGPT 的资料,它是 OpenAI 的一个微调模型,被认为是 ChatGPT 的基础。
尽管在训练数据、模型和微调方面存在许多差异,但这些聊天机器人也存在一些共性 —— 指令遵循(instruction following),即根据用户的指令,给出响应。例如让 ChatGPT 写一首关于微调的诗。
从预测文本到遵循指令
通常而言,基础语言建模的目标不足以让模型高效地遵循用户的指示。模型创建者还使用指令微调(Instruction Fine-Tuning,IFT),它可以在多样化任务上对基本模型进行微调,还能应用在情感分析、文本分类、摘要等经典 NLP 任务。
IFT 主要由三个部分组成:指令、输入和输出。输入是可选的,有些任务只需要指令,如上面的 ChatGPT 示例。输入和输出构成实例(instance)。给定的指令可以有多个输入和输出。相关示例如下([Wang et al., ‘22])。
IFT 的数据通常使用人类的指令和语言模型 bootstrapped 的指令集合。对于 bootstraping,LM 会在零样本的情况下根据 prompt,生成新的指令、输入和输出。在每一轮中,模型都会得到从人类编写和生成模型中选择的样本的 prompt。人类和模型贡献数据集的情况可以用频谱表示,如下图所示。
一种是纯模型生成的 IFT 数据集如 Unnatural Instructions,另一种是集社区努力、手动创建的指令如 Super natural Instructions。位于这两者之间,选用高质量种子数据集然后进行 bootstrap 如 Self-instruct。为 IFT 收集数据集的另一种方法是将现有高质量众包 NLP 数据集用于各种任务(包括 prompting),并使用统一的模式或不同的模板将这些数据集作为指令,相关工作包括 T0、Natural instructions 数据集、FLAN LM 和 OPT-IML。
安全遵循指令
LM 使用微调后的指令,可能并不总是生成有用安全的响应。这种行为的示例包括无效回应(托词),总是给出诸如「对不起,我不明白」之类的无效回答,或者对用户关于敏感话题的输入做出不安全的回应。
为了解决这种问题,模型开发人员使用监督式微调(Supervised Fine-tuning, SFT),在高质量的人类标记数据上微调基础语言模型,以实现有效和安全的响应。
SFT 和 IFT 紧密相连。指令调优可以看作是监督式微调的子集。在最近的文献中,SFT 阶段通常用于安全主题,而不是在 IFT 之后进行的指令特定主题。未来这种分类和描述会有更清晰的用例和方法。
谷歌的 LaMDA 也是根据一组规则对带有安全注释的对话数据集微调。这些规则通常是由模型创建者预先定义和制定的,包含一系列广泛的主题,如有害、歧视和错误信息。
模型微调
另一方面,OpenAI 的 InstructGPT、DeepMind 的 Sparrow 和 Anthropic 的 ConstitutionalAI 均使用从人类反馈中强化学习(reinforcement learning from human feedback, RLHF)的技术。在 RLHF 中,模型响应基于人类反馈(如选择一个更好的答案)进行排序,然后用这些带注释的响应训练模型,以返回 RL 优化器的 scalar 奖励,最后通过强化学习训练对话智能体来模拟偏好模型。
思维链(Chain-of-thought, CoT)是指令演示的特殊情况,通过从对话智能体中引出逐步推理生成输出。用 CoT 进行微调的模型使用带有逐步推理的人类注释的指令数据集。如下示例所示,橙色标记代表指令,粉色标记代表输入和输出,蓝色标记代表 CoT 推理。
用 CoT 来微调的模型在涉及常识、算术和符号推理的任务上表现得更好。CoT 进行微调也显示出对实现无害性非常有效(有时比 RLHF 做得更好),并且模型不会回避并产生「对不起,我无法回答这个问题」等回复。
要点总结
本文要点总结如下:
1、 与预训练数据相比,只需要非常小的一部分数据来对指令进行微调。
2、 监督式微调使用人工标注使模型输出更安全和更有帮助。
3、 CoT 微调提高模型在逐步思考任务上的性能,并减少了它们在敏感话题上的无效响应或回避不答。
对话智能体的进一步工作思考
最后,作者对未来对话智能体的发展给出了自己的一些思考。
1、 RL 在从人类反馈中学习有多重要?可以通过 IFT 或 SFT 中的高质量数据训练获得与 RLHF 一样的性能吗?
2、 与在 LaMDA 中使用 SFT 相比,在 Sparrow 中使用 SFT+RLHF 的安全性如何?
3、 IFT、SFT、CoT 和 RLHF,需要怎样程度的预训练?tradeoff 是什么?应该使用的最好的基础模型是什么?
4、 文中介绍的许多模型都是经过精心设计,工程师们专门收集导致失败的模式,并根据已处理的问题改善未来的训练(prompts 和方法)。要如何系统地记录这些方法的效果并重现它们?
以上是这些技术,ChatGPT和它的潜在竞争者们都在用的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

CentOS 关机命令为 shutdown,语法为 shutdown [选项] 时间 [信息]。选项包括:-h 立即停止系统;-P 关机后关电源;-r 重新启动;-t 等待时间。时间可指定为立即 (now)、分钟数 ( minutes) 或特定时间 (hh:mm)。可添加信息在系统消息中显示。

检查CentOS系统中HDFS配置的完整指南本文将指导您如何有效地检查CentOS系统上HDFS的配置和运行状态。以下步骤将帮助您全面了解HDFS的设置和运行情况。验证Hadoop环境变量:首先,确认Hadoop环境变量已正确设置。在终端执行以下命令,验证Hadoop是否已正确安装并配置:hadoopversion检查HDFS配置文件:HDFS的核心配置文件位于/etc/hadoop/conf/目录下,其中core-site.xml和hdfs-site.xml至关重要。使用

CentOS系统下GitLab的备份与恢复策略为了保障数据安全和可恢复性,CentOS上的GitLab提供了多种备份方法。本文将详细介绍几种常见的备份方法、配置参数以及恢复流程,帮助您建立完善的GitLab备份与恢复策略。一、手动备份利用gitlab-rakegitlab:backup:create命令即可执行手动备份。此命令会备份GitLab仓库、数据库、用户、用户组、密钥和权限等关键信息。默认备份文件存储于/var/opt/gitlab/backups目录,您可通过修改/etc/gitlab

在CentOS系统上启用PyTorchGPU加速,需要安装CUDA、cuDNN以及PyTorch的GPU版本。以下步骤将引导您完成这一过程:CUDA和cuDNN安装确定CUDA版本兼容性:使用nvidia-smi命令查看您的NVIDIA显卡支持的CUDA版本。例如,您的MX450显卡可能支持CUDA11.1或更高版本。下载并安装CUDAToolkit:访问NVIDIACUDAToolkit官网,根据您显卡支持的最高CUDA版本下载并安装相应的版本。安装cuDNN库:前

Docker利用Linux内核特性,提供高效、隔离的应用运行环境。其工作原理如下:1. 镜像作为只读模板,包含运行应用所需的一切;2. 联合文件系统(UnionFS)层叠多个文件系统,只存储差异部分,节省空间并加快速度;3. 守护进程管理镜像和容器,客户端用于交互;4. Namespaces和cgroups实现容器隔离和资源限制;5. 多种网络模式支持容器互联。理解这些核心概念,才能更好地利用Docker。

在 CentOS 上安装 MySQL 涉及以下步骤:添加合适的 MySQL yum 源。执行 yum install mysql-server 命令以安装 MySQL 服务器。使用 mysql_secure_installation 命令进行安全设置,例如设置 root 用户密码。根据需要自定义 MySQL 配置文件。调整 MySQL 参数和优化数据库以提升性能。

CentOS系统下查看GitLab日志的完整指南本文将指导您如何查看CentOS系统中GitLab的各种日志,包括主要日志、异常日志以及其他相关日志。请注意,日志文件路径可能因GitLab版本和安装方式而异,若以下路径不存在,请检查GitLab安装目录及配置文件。一、查看GitLab主要日志使用以下命令查看GitLabRails应用程序的主要日志文件:命令:sudocat/var/log/gitlab/gitlab-rails/production.log此命令会显示produc

在CentOS系统上进行PyTorch分布式训练,需要按照以下步骤操作:PyTorch安装:前提是CentOS系统已安装Python和pip。根据您的CUDA版本,从PyTorch官网获取合适的安装命令。对于仅需CPU的训练,可以使用以下命令:pipinstalltorchtorchvisiontorchaudio如需GPU支持,请确保已安装对应版本的CUDA和cuDNN,并使用相应的PyTorch版本进行安装。分布式环境配置:分布式训练通常需要多台机器或单机多GPU。所
