深度学习自然语言处理 分享
整理:Winnie
本文翻译自以下高天宇博士的博客,感谢作者的分享。
Title: Teach Llamas to Talk: Recent Progress in Instruction Tuning
Link: https://gaotianyu.xyz/blog/2023/11/30/instruction-tuning/
大型语言模型(LLM),凭借其数十亿的参数和数万亿token的庞大训练数据,展现了强大的功能。为了成为一种全能的任务解决工具,LLM必须学会根据用户指令作出连贯且有益的回应,而不仅仅是重复网络上的语言模式。基于此,开放式指令调整open-ended instruction tuning[1]应运而生。这种方法对LLM进行微调,使其能够按照用户的指令作出有用、诚实和无害的回应。随着ChatGPT取得巨大成功,人们对这种方法的兴趣日益浓厚。开放式指令调整通常包括两个阶段:
对模型进行监督式微调SFT,这一过程涉及使用收集到的用户指令和高质量响应。
通过人类反馈进行的强化学习RLHF,这一过程使模型与人类偏好相一致。
收集监督式微调或偏好数据的成本极高,因此最近,研究人员找到了构建这类数据的更经济的方法,本文将从四个方面介绍这些最近的进展:SFT数据、RLHF数据、算法和评估。
SFT主要有两个目标,分别对应于两种不同的数据类型。
旨在提升LLM的一般语言理解能力,这种提升在传统的NLP基准测试中得到体现,比如HellaSwag和MMLU等。其次,它也被用于训练LLM遵从指令,培养对话能力,并确保其回应既有用又无害。
开放式指令调整数据,使用这些数据进行训练不会提升LLM的知识水平(通常通过传统基准测试得分反映),而是主要指导它们遵循指令或对话格式,从而使其拥有更吸引人的语调、更礼貌的表达等。
针对第一个目标,主要采用多任务指令调整数据。这种数据在2020-2022年间得到了广泛的研究。这些数据集把NLP任务汇集在一起,为每个任务配备了自然语言的指令,然后可以采用多任务方式来训练模型。代表性的数据集包括Natural Instruction、T0和Flan。不同于开放式指令调整,这些数据集更多地聚焦于传统的NLP任务,例如问题解答和自然语言推理等,其指令和回应往往更短、更简单、样式单一。因此,基于这些数据集训练的模型通常不会被部署为当前的指令调整模型或聊天机器人,尽管它们在NLP基准测试中表现出色。
针对第二个目标,收集这类SFT数据的成本很高,因为需要同时收集用户指令和相应的示范回应。目前的开源模型主要采用从专有LLM中提取数据的方法。例如,早期的开源指令模型Alpaca使用self-instruct方法提示text-davinci-003生成伪SFT数据,然后在LLaMA-7B上进行SFT处理;Baize项目则通过提示ChatGPT进行自聊来获取多轮对话数据;WizardLM通过不断用ChatGPT改写Alpaca数据来提高数据多样性;UltraChat则首先采用不同策略自动构建问题,然后再用ChatGPT模拟问题的对话过程。尽管这是一种相对经济的数据获取方式,但仅仅模仿专有LLM被发现只能模仿ChatGPT的风格而非其事实性,因此依靠这类SFT数据能走多远仍有待商榷。
另一种收集SFT数据的方法是手动注释少量数据。Open Assistant发起了一项众包项目,让志愿者撰写指令和回应;Dolly包含了大约15,000条由Databricks员工生成的数据。LIMA是由作者策划的大约1,000条SFT数据的集合。然而,是否只需要1,000个示例,或者是否可以利用互联网众包数据,与使用专门收集的大规模数据相比,这仍是一个问题,因为尚未进行直接对比分析。
虽然这些基于模仿和人类SFT数据训练的开源模型仍不及ChatGPT、GPT-4或Claude等专有模型,但我们看到了两个有希望的研究方向:
LLaMA-2-70B-chat,这是一个在闭源数据上调整过的LLaMA-2-70B开源模型,被人类评估显示为比ChatGPT更有帮助。这表明LLaMA-2是一个潜力巨大的基础模型,在事实知识、常识、推理能力等方面与ChatGPT的基础模型相媲美。
目前的研究已经在toy或laboratory数据上进行了一些令人兴奋的研究,比如探索了更好的对齐算法,我们将在下文进行介绍。
要使模型成为更优秀的语言助手,仅仅依靠SFT还远远不够,它们必须与人类的偏好数据保持一致。一个简单的例子就是考虑如何使模型保持诚实。例如,SFT倾向于总是让模型给出某种回答,而不太教会模型在不了解时说“我不知道”。
研究证明对齐算法能够提升人类满意度。然而,大多数开源模型未经过对齐阶段(RLHF),主要原因包括:(1) 运行RL的高成本;(2) 调整PPO(OpenAI使用的RL算法)超参数的复杂性;(3)缺乏高质量偏好数据。这种数据的缺乏进一步限制了开发比RL更有效/高效的算法。
目前最常用于发展对齐算法的两个偏好数据集是OpenAI的TL;DR偏好数据(摘要类)和Anthropic的HH-RLHF数据集(人类与模型的开放式对话)。尽管这些数据集质量不错,但其指令的多样性和复杂性与当今的SFT数据相比并无优势。
2023年出现了多个新的偏好数据,但它们是否足够优质以用于对齐算法尚有待观察。有众包项目致力于从普通人那里收集偏好数据:Open Assistant和Chatbot Arena在网络上发起了偏好数据收集活动,并从志愿者那里获取了偏好标签。其他数据集采取了模拟或启发式的方法:SHP利用Reddit上的点赞数构建合成偏好数据集;AlpacaFarm和UltraFeedback使用GPT-4作为注释者;Kim等人,这些方法中的大多数能够帮助RL或其他对齐算法,但目前尚未进行直接对比分析。Huggingface最近发布了Zephyr模型,采用了UltraChat(SFT)和UltraFeedback(基于DPO的对齐)进行训练,其性能与在闭源数据上训练的LLaMA-2-Chat-70B相当。
与依赖人类偏好不同,另一种尝试是使用AI反馈——即使用LLMs指导LLMs,无需人类参与。这与使用GPT-4作为注释者的方法不同,后者仍然基于人类偏好数据训练,而前者的目标是让模型在没有人类偏好数据的情况下自我提升。最快的研究表明,从一个SFT模型出发,RLAIF能够在摘要任务上实现与RLHF相当的性能,而且无需涉及任何人类偏好标签。RLAIF的方向引起了极大的兴趣。然而,这些方法究竟有多好仍然不清楚,因为使用简单的启发式构建数据(也没有人类参与)可以胜过它们。
使用PPO进行RLHF已经成为一种主流的对齐方法。它被应用于InstructGPT,并据信也用于ChatGPT和GPT-4以及LLaMA-2-Chat。这一方法的核心是首先在偏好数据上训练一个奖励模型,然后使用这个模型提供的反馈,通过强化学习来微调模型。
尽管RLHF被证明是有效的,但它实现起来相对复杂,且容易因优化不稳定和对超参数敏感而出现问题。目前,已经有一些新方法被提出,这些方法在模型与偏好数据对齐方面可能比RLHF更为有效。
Best-of-N方法:一个直观的思路是,在SFT之后,模型已经能够生成高质量的输出,我们只需从中挑选出最好的。在WebGPT和基于人类反馈的摘要RLAIF中,作者探索了best-of-n采样方法——生成n个输出并使用奖励模型挑选最佳输出。研究表明,这通常可以达到与RLHF相似的性能。然而,正如OpenAI的博客文章所指出的,如果最优策略与原始SFT模型差异很大,best-of-n方法就会变得低效,因为n的数量需要随着最终策略和SFT模型之间的KL散度指数级增长。
专家迭代方法:另一个方法是在训练中使用best-of-n——我们可以在训练期间进行大量采样,挑选出最佳输出,并对其进行SFT。例如,OpenAI的text-davinci-002就是采用这种方法,训练模型使用自己生成的输出。更进一步,这种方法可以与在线采样的best-of-n结合使用(生成n个输出,用奖励模型挑选最佳输出,然后在最佳输出上进行训练,重复此过程),这本质上是专家迭代。此外,best-of-n采样也可以与自然语言反馈结合使用。
条件token方法:还有一种方法是使用“条件token”(Lu等人,2022年;Korbak等人,2023年;Liu等人,2023年)。这种方法是在良好和不良示例上对语言模型进行SFT,并在良好的示例前加上“好”的提示,在不良的示例前加上“坏”的提示。在推理时,可以用“好”的前缀条件化模型,期望模型能生成高质量的输出。
基于对比的方法:最近提出的几种方法借鉴了对比学习的概念。这些方法通过评估模型生成的好的和坏的示例的概率,从而能够提升好的示例,同时抑制坏的示例。在处理偏好数据时,SLiC和RRHF都是优化对比排名损失和正则化损失的方法。这些方法的一个挑战是,它们要么是从SFT模型中直接对输出进行采样,要么是从现有数据集中获取这些样本,这可能导致分布不匹配。为了解决这一问题,最近提出的RSO方法通过使用奖励模型进行拒绝采样,从而能够从最优策略π*中进行采样。他们展示了将这种采样策略应用于SLiC或DPO可以提高最终模型的性能。
这些方法最近受到广泛关注,并已在多个领域证明其有效性。例如HuggingFace的Zephyr模型也采用了DPO训练,其在MT-Bench上的表现强劲,甚至可以与Llama-2-chat和GPT-3.5相比肩。另一方面,我们也需要更好地理解使用对齐算法训练的模型的特性,以及它们是否真正有助于学习有用的特征。最近的一项研究表明,在几个流行的数据集上,学习到的奖励模型通常与文本长度高度相关,而带有长度的RLHF可以恢复大部分性能提升。
开发开放式指令调整模型(如ChatGPT、GPT-4等)或任何开放式生成方法时,一个主要的挑战是如何进行有效的评估。尽管人类评估被视为评估开放式对话模型能力的黄金标准,但它存在诸多局限。特别是在使用低成本众包平台时,人类评估的可靠性往往受到质疑。此外,人类评估成本较高,且难以确保各项评估之间的一致性和可比性。
近年来,研究开始尝试使用更强大的LLM,如ChatGPT或GPT-4,来评估较弱的LLM,例如基于开源LLaMA的模型。这种方法被称为LLM评估器,已证明是一种经济高效的替代方案。使用模型评估模型初看似乎有些荒谬,但像GPT-4这样的专有模型通常是基于更强大的基础模型训练而来的,并在更高质量和数量的数据上进行训练,因此在能力上往往超过开源或研究型模型。只要这种能力差距存在,GPT-4之类的模型就足以作为评估器使用。
LLM作为评估器的一些先驱性工作已经展示了令人鼓舞的结果:LLM评估器的评估通常与人类评估具有很强的一致性。然而,也有研究指出,LLM评估器可能对某些偏见特别敏感。例如,发现如果交换两个待比较输出的位置,LLM评估器的偏好通常会发生变化。它们还倾向于偏好更长的输出和由类似模型生成的输出。
因此,已经提出了几个元评估基准来评估LLM评估器的优劣,通常以人类偏好数据的准确率形式衡量。这些基准是宝贵的资源,帮助我们了解LLM评估器的可靠性。但在这些基准上不同评估器的得分通常相近。此外,这些基准的人类注释往往存在噪声和主观性,内在的人类一致性率相对较低。因此,目前尚不清楚我们是否可以完全信赖这些元评估基准,以及LLM评估器的评估结果。
在最近的研究Evaluating Large Language Models at Evaluating Instruction Following[2]中,作者重新思考了元评估的问题。
以往的研究忽略了一个重要因素——人类偏好的内在主观性。以某数据集的一个例子为例,尽管两种输出之间的质量差异是可以辨别的,但人类评注员更倾向于选择较长的输出,从而将这种偏见加入到偏好数据集中。当我们基于这种主观和嘈杂的元基准来评估大型语言模型的评估器时,我们无法保证得分高的评估器能够可靠地评估诸如指令遵循或事实正确性等客观属性,而非诸如输出长度这样的主观偏好。
基于这种思路,作者创建了一个新的元评估基准——LLMBar,专注于一个客观标准:指令遵循。LLMBar中的一个例子如下:
尽管很明显右边的输出遵循了指令,但由于其更引人入胜的语气,人类和大型语言模型的评估器通常更倾向于左边的输出。如果我们不严格分析评估器区分真正的指令遵循能力和表面线索的能力,就有可能推进那些更擅长模仿对话助手而非执行所需任务的模型。
在LLMBar中,作者手工策划了419个实例,每个实例包含一条指令和两个输出:一个忠实地遵循了指令,另一个则偏离,且总是存在一个客观的偏好。由于客观标准和手工策划,LLMBar的人类一致性率达到了94%。作者对评估器进行了测试,比较它们的偏好与黄金标准。作者还策划了一组对抗性集,其中差输出通常具有一些表面上的吸引力(长度、引人入胜的语气、由更好的语言模型生成等),这可能会误导评估器。LLMBar展示了令人惊讶的结果:
尽管ChatGPT、LLaMA2-70B-Chat、PaLM2-bison和GPT-4在其他元评估基准上表现相似,但在LLMBar(对抗性)上它们展现出了非常不同的性能。在这一基准上,ChatGPT和LLaMA2甚至比随机猜测的得分还低,而GPT-4的准确度远超其他所有评估器。
此外,用于评估的不同提示对评估结果影响很大。作者提出了一种方法组合:度量+参考+规则。如下图所示,首先提示大型语言模型生成三个针对特定指令的度量或标准;还提示大型语言模型生成一个参考输出。然后,我们将度量和参考输入给大型语言模型,明确列出规则,并要求模型给出判断。与AlpacaFarm中使用的普通提示相比,所采用的提示在LLMBar上显著提高了评估器的性能(在对抗性集上为GPT-4提升了10%)。
2023年,开源的指令调整数据、算法和模型为LLM领域带来了令人兴奋的进展。这一变化为研究者提供了一个全新的机遇:他们可以完全掌控从参数到数据的各个方面,去训练、评估、互动和分析指令模型。这在以前是不可能的,那时这些模型对我们来说还像是一个黑箱。不过,过去几个月对这个领域来说也稍显混乱,因为有数百篇论文发布了各种各样的研究结果,这些研究使用了不同的数据、算法、基础模型,甚至是评估方法,这让跨文献的比较变得复杂。相信不久的将来,我们的社区将会逐渐形成一些标准的数据和评估方法,从而以更科学、可重复的方式开发出更优秀的指令调整模型。
[1]
open-ended instruction tuning: https://arxiv.org/abs/2203.02155
[2]Evaluating Large Language Models at Evaluating Instruction Following: https://arxiv.org/abs/2310.07641
公众号后台回复aaai、acl、naacl直接进投稿群~
回复LLM进入技术交流群~