自行训练大语言模型评估器:从PandaLM和JudgeLM到Prometheus
如何构建经过精细调优的评估模型,涵盖从数据与评分标准到偏见控制及元评估的全流程,以及训练领域专用大语言模型评估器的实用方法。
一旦语言模型能够撰写文章、回复支持工单并总结合同内容,“这个输出质量如何?”这个问题就不再有简单的答案。人工审核虽是黄金标准,但速度慢且成本高;传统的重叠度指标已几乎无法衡量质量;而让专用模型对输出进行评分,也只有当评估标准与该模型已掌握的知识相近时才能取得良好效果。本指南将介绍经过微调的LLM评估工具、专为评分和评价其他模型而训练的开放源代码模型相关研究,并最终给出一套具体方案,帮助你为自己的领域构建评估工具。
为何评估现代LLM如此困难
当前的基础模型存在两个特性,使得评估变得十分困难。首先是功能范围问题:一个模型需要具备编码、翻译、推理、遵循格式规则、保持安全以及友好交流等能力,而每一种能力都需要单独进行衡量。其次是开放性问题:对于几乎任何提示语,都存在大量在措辞、结构、长度和侧重点上各不相同的可行答案,因此无法简单地通过比对输出结果是否与预期字符串一致来判断。即便要准确衡量其中某一项能力都是一项研究难题,而实际应用中的模型则拥有数十项这样的能力。
最可靠的信号依然来自那些阅读模型输出并对其进行评分的人。问题在于,人类的判断容易受到干扰、成本高昂且收集速度缓慢,这与模型开发的节奏不相匹配。那些每周都要对模型进行多次重新训练或提示优化的团队,无法在每次修改后都等待新一轮的标注工作。一定程度的人工评估仍然是不可或缺的,但必须辅以某种能够规模化处理的机制。
正是这种需求催生了“LLM作为评判者”这一概念,相关研究发表在《利用MT-Bench和Chatbot Arena评估LLM作为评判者的能力》一文中:用户可以提示强大的专用模型来评估另一模型的输出。如今这种方法在研究中已十分普遍,但它存在一个缺陷。领域专用产品往往关注更为细致的标准,比如医学摘要是否保留了剂量信息,法律答复是否引用了正确的条款,而通用模型可能无法可靠地判断这些内容。在这种情况下,自然而然的下一步就是训练专门的评判模型,而本文余下的部分旨在探讨如何有效地实现这一目标。
评估工具箱:人类、指标与基于模型的评判者
在实践中,团队会将人工评估与自动指标相结合。人工评估能够给出关于质量的最终判断,而自动指标则能提升效率。由于自动评分仅是人们对模型表现的近似评价,因此需要定期通过人工评审来校验这些分数,但在两次评审之间,就可以对比远多于人工所能评估的模型版本。
现代大型语言模型的自动评估主要分为两类。第一类是基于似然度或困惑度的基准测试式评估,涵盖了MMLU和BIG-bench等大多数传统自然语言处理基准测试。这类测试类似于多项选择题,用于考察模型所掌握的知识。虽然它们很有用,但很难反映模型在回答开放性问题时能否写出长度适中且风格恰当的答案。
对于长度较长、没有固定格式的输出内容,实际上只有两种处理方式:要么由人类对响应进行评分,要么由性能出色的模型来评分。鉴于第一种方式的成本较高,基于模型的评估方式便成了默认选择。它不需要参考答案,设置简单,且能够处理各种不同的任务。以下各节将依次介绍这套工具箱中的各项功能,首先从人类评估开始,因为其他所有评估标准都是以它为基准的。
人类评估是真实标准,但并非完美无缺
人们能够判断回复中真正重要的因素:是否简明得当、富有创意、语气恰当,以及是否具备文化敏感性。正因如此,人工审核依然是参照标准。标注人员可以来自不同领域。你可以像Chatbot Arena那样通过众包方式收集投票,也可以雇佣专门的团队,或者像Alpaca项目那样让模型开发者自行对输出结果进行评分。将人类视为基准并不意味着他们的标注就绝对准确,实际上这些标注往往存在不一致性,制作起来十分费力,还可能带有偏见。
一致性与校准
即便是一些看似简单的任务,标注者之间的一致性往往也出人意料地低。可以通过简单的匹配率或经过概率校正的统计指标来量化这一情况,例如科恩卡帕值(两名标注者)、弗莱斯卡帕值(多名标注者)或克里彭多夫阿尔法值(能灵活处理缺失标签和不同量纲类型)。概率校正非常重要:如果80%的反馈都是“良好”,那么两名都将所有内容都标记为“良好”的标注者大多时候会达成一致,却不会从中获得任何新知识。
当一致性较低时,解决办法是进行校准,即教导标注者以相同的方式执行任务。典型的流程包括一次评审会议,在会上标注者们会查看存在分歧的条目,讨论相关情况,并形成统一的解释。这些讨论的结果会被重新写入任务指南,以便下一批标注工作能基于更清晰的基准展开。
真正被使用的写作指南
指南是标注任务中的书面规范。至少它必须明确说明评估的内容,即评判标准,以及如何应用每一项标准。优秀的指南会将文字说明与正确和错误标注的实例相结合,标注人员会在整个工作中不断参考这些指南,而不会只看一遍。这样的指南能让标注结果更加一致,同时大幅缩短新评估人员的培训时间。一个实用的测试方法是:如果标注人员需要文档中未提及的知识才能正确标注某个项目,那就说明该文档不完整。
这些指南也应被视为动态更新的文档。例如,InstructGPT团队表示,在项目进行过程中,随着反馈、元数据字段以及他们对目标任务的理解不断变化,他们会反复修订标注指南,并修正那些显得令人困惑或自相矛盾的表述。这种经历很常见——看似显而易见的任务往往蕴含大量主观性,只有当一群人试图就数百个实际案例达成一致时,这些主观性才会显现出来。
长期监测一致性
大量投入需要在前期完成:制定评估标准、对评分人员进行调整,并不断迭代直至达成可接受的共识。只有到那时,人工评分才能成为衡量模型质量的可靠依据。不过工作并未就此结束。由于各种常见原因,一致性可能会下降:新的评分人员加入,经验丰富的评分人员逐渐偏离既定规则,或者评估指南本身也会发生变化。例如,通过将部分样本分配给多名评分人员,持续跟踪不同评分者之间的共识程度,是唯一能在问题悄悄破坏评估数据之前发现它的方法。
基于参考的指标及其失效原因
早期的语言模型通常使用ROUGE等指标来评估摘要质量,用BLEU等指标来评估翻译效果。这两种方法都属于基于参考标准的评估方式:它们将模型输出与标准答案进行比较,主要通过统计重叠的n-gram来实现,那些与参考答案有更多相同词汇和短语的输出会获得更高分数。
随着模型性能的提升,这些指标的效力逐渐减弱。对大型语言模型输出的研究发现,这类指标与人类偏好之间的关联度很低,以至于所有传统评估指标都无法准确反映人类的判断标准。它们之所以仍然被使用,主要是因为计算成本几乎为零。如果你已经拥有参考答案,这些指标仍可作为快速的合理性检查手段,例如用来发现摘要工具突然开始生成空内容或偏离主题的文本等异常情况。
它们失败的根本原因在于结构问题。基于参考的评估指标本质上是对单一目标的复杂模糊匹配。现代模型则是开放式的:同一个提示可以产生许多同样优秀的答案,而这些答案与参考文本的n-gram重叠可能很少。那种只奖励与特定答案相似度的评分方式无法涵盖所有有效的回应,因此它会惩罚那些其实很好的意译版本,反而可能奖励那些虽然错误但恰好重复使用了参考文本词汇的流畅文本。
基于提示的LLM评判系统
重叠度指标的缺陷促使该领域转向更灵活、基于模型的评估方法。其中最受欢迎的形式是“LLM作为评判者”:让强大的模型充当另一模型输出结果的评分员。MT-Bench和Chatbot Arena的实验表明,这种方法与人类偏好高度契合,只需一个编写良好的提示语即可实现,能够自然处理开放式输出,并可针对多种不同标准进行评估。相关研究将其定义为一种可扩展、可解释的人类偏好近似方式,而直接获取人类偏好数据的成本则非常高。
在本文的其余部分,“作为裁判的LLM”特指对现成的商业模型(如GPT-4o或Gemini 1.5)进行提示,而“微调后的裁判模型”则指由你自己训练用于评估的模型。关于提示式裁判模型的更多背景信息,可供参考的资料包括一份关于构建用于驱动业务决策的裁判模型的实用指南、一篇关于LLM评估工具有效性的分析文章,以及一份关于“作为裁判的LLM”相关研究的综述。如果您已经在生产环境中使用了提示式裁判模型,其运营方面的内容可在我们关于将“作为裁判的LLM”视为动态生产系统进行管理的指南中找到。
成对评分与逐项评分
让裁判模型给出判定结果主要有两种方式:
- 成对评估:评分者会看到一个提示语以及两个候选回答,然后选出更好的那个(通常还提供平局选项)。
- 单项评估:评分者会看到一个提示语和一个回答,然后给出评分,通常采用1到5分的李克特量表。
单项评估也被称为直接评估或单答案评分。通过在提示语中加入一个已知正确的答案,可以让评分者以此为参照进行比较,而无需完全依赖自身的知识。一个广为人知的、采用提示语引导评分的公开示例是AlpacaEval,它是一个排行榜平台,利用大语言模型作为评分者来预测人类对不同模型输出的选择,并公开所有评估提示语,包括早期版本。
选择评分方式
没有一种设置方法在所有情况下都适用;最佳选择取决于具体应用。成对比较往往更为稳定,因为对比两样事物比将某一样事物置于绝对标准上要容易。但其代价是位置偏差,即倾向于偏好最先(或第二)出现的结果,同时可扩展性较差:成对比较的结果仅能显示各输出之间的相对排名,而要对比多个系统就需要大量成对组合。逐项评分则更为灵活,因为每个输出都能获得独立的分数,这些分数可以存储起来、求平均值并在之后进行比较。不过这对评分者来说难度更大,因为他必须完全依据自身的质量判断标准来给分。提供参考答案是提升逐项评分可靠性的常见方法。
评估标准的性质也很重要。诸如事实性或对源文档的忠实度这类客观属性往往是二元的:回答要么是忠实的,要么不是。要判断两种回答中哪种“更忠实”其实很难界定。而像实用性、语气或整体偏好这类主观标准则更适合进行相对性评判,因为人们和模型发现相比绝对评分,这种比较更为容易且可重复。一个合理的默认做法是对客观项进行逐项打分(通常为二元制),而对主观质量则进行成对比较。
每位评估者都会存在的偏见
无论你使用何种类型的评估者,无论是基于提示的还是经过微调的,总有一些系统性偏见会反复出现,本文后面介绍的大多数微调技术都是为了应对这些偏见。在继续阅读之前,先了解它们的名称会有所帮助:
- 位置偏差:在成对评估模式下,评分者会不考虑内容本身而偏爱第一或第二个回答。
- 冗长性偏差:即使额外的文字并无实际意义,更长、更复杂的回答仍会获得更高分数。
- 自我强化偏差:评分者更倾向于选择自己或同一系列模型生成的回答。
- 知识偏差:对于不熟悉的领域,评分者无法准确判断正确性,因而可能会给那些看似自信但实际上错误的回答打高分。
- 格式偏差:只有当提示语与模型训练或调优时所使用的完全一致时,评分者才会进行评估。
这些因素都无法完全消除,但都可以被衡量。通过调整候选者的顺序、在回复中添加无害的填充内容,或使用两种不同的提示模板来评估相同的内容,这些都是成本低廉的实验方法,能够揭示特定评估者在多大程度上受到了本不应起作用的因素的影响。在选用某位评估者后进行一次此类实验,而在其提示或模型发生任何变化后再进行一次,则是评估工作中最具价值的习惯之一。
基于提示的评估者存在的不足
将大语言模型用作评估工具确实有效且被广泛采用,但依赖专有模型也存在诸多弊端:
- 该模型属于黑箱,将评估数据发送给第三方可能会引发安全与隐私方面的问题。
所有这些问题都源于必须依赖一个无法检查或修改的模型。这就引出了一个显而易见的问题:是否可以自行训练评估模型?下文总结的研究表明答案是肯定的——只要在相关数据上投入足够精力,经过微调的评估模型就能提供更具领域针对性、更为细致且更专业的反馈。
元评估:对评判器本身的衡量
在训练某个评判器之前,首先要确定如何判断它的性能如何。答案是一组你深信不疑的、由人类标注的评估数据,因为这些数据将成为你所构建的所有评判器的衡量标准。所谓元评估,即对评估者本身的评估,就是让该评判器处理这些数据,并将其给出的结果与人类标注的结果进行比较。
如果该评判器能输出二元结果,比如成对选择或及格/不及格的等级,那么就可以使用准确率、精确率、召回率以及ROC曲线等常规分类指标。由于这些指标很容易理解,许多从业者认为,对于通用的大语言模型评判器而言,二元评分是最实用的设计方案。
对于非二分的评分,例如1到5级的李克特量表评分,需要衡量评委评分与人类评分之间的相关性程度。作为参考,G-Eval的研究表明,在摘要生成基准测试中,基于GPT-4的评估工具与人类评分之间的斯皮尔曼相关系数为0.514,这一数值远超此前的方法。斯皮尔曼等级相关系数可能是最常用的选择,但你也可能会看到肯德尔tau系数、皮尔逊相关系数以及科恩卡帕系数被用作一致性度量指标。这些指标比分类指标更难理解,因此需掌握所选用指标的独特特性。皮尔逊相关系数衡量线性一致性,且对异常值较为敏感;而斯皮尔曼和肯德尔相关系数仅关注排序关系,因此即使评委的评分一直偏高1分,其在这些指标下的得分仍可能为满分。
实用的元评估习惯
一些习惯能让元评估提供更多有价值的信息。应按各项标准分别报告评分,而非给出一个综合数值,因为评估者可能在识别事实错误方面表现优异,但在判断语气方面能力较差,而综合数值会掩盖这一问题。应将相邻评分之间的差异与严重分歧分开来看:当人类评估为5而评估者给出4分时,这与评估者为1分时的问题截然不同。应比较评估者与人类在相同项目上的评分一致性;如果两名经过培训的标注员仅有70%的评分一致,而评估者的评分一致性仅为68%,那他已接近极限,再追求更高一致性毫无意义。最后,必须将元评估数据与用于编写提示或训练评估者的任何内容严格分开,否则数值会对其评价产生偏袒。
第一代微调后的评估者
早期,几乎所有人都使用专有模型来进行类似评分员的评估,这背后有充分的理由。除非给评分员提供标准答案,否则模型必须具备独立完成任务的能力,才能区分好答案与坏答案。开放源代码模型长期落后于封闭源代码模型,因此后者才是更出色的评分工具。直到出现 LLaMA 和 LLaMA-2 等更强大的开放源代码基础模型,研究人员开始将其微调为专用评估工具,情况才发生了变化。以下论文记录了这一最初的发展浪潮。
MT-Bench 论文中的微调版 Vicuna 评分员
那篇介绍“将大语言模型用作评估工具”的论文也进行了最早期的针对微调后评估模型的实验之一。相关研究大多聚焦于使用通用模板来引导私有模型预测人类偏好,但有一小段附录探讨了用开源模型完成相同任务的可能性,其结论是,经过微调的 Vicuna-13B 有望成为低成本的开源替代方案,可取代那些封闭式的评估模型。
该论文列出的理由至今仍是人们考虑使用定制评估模型的主要依据:
- 大规模使用付费 API 进行评估成本极高。
- 私有模型既缺乏可控性,也不透明。
- 开源模型的能力不断提升,两者之间的差距正在缩小。
如果经过微调的开源评估模型能够达到私有模型的质量水平,上述三个问题都将迎刃而解。
该实验使用了LLaMA的衍生模型Vicuna-13B。初始状态下,它的评估表现很差:错误率很高,经常无法遵循评估模板或指令,还存在明显的位置偏差。经过微调后情况有了显著改善。该模型在Chatbot Arena提供的2万条单轮人类评分数据上进行了训练,这些数据对比了多种模型的输出结果,任务被简化为三分类:第一种响应胜出、失败或平局。训练完成后,位置偏差大幅降低,与人类评分的一致性也显著提高,不过微调后的模型仍未达到GPT-4的水平。
将任务定义为三方分类是一种合理的简化方式。它无需校准数值分数,可直接对应Arena的投票收集方式,而且通过与预留的人类评分对比就能轻松计算出准确率。缺点是评估器不会给出解释,因此当其判断与人类意见不一致时,我们很难了解原因。
整个探索过程大约占一页篇幅,但所得结果足够令人鼓舞,促使我们开始研究开放式的评估器。
PandaLM:用于选择模型检查点的评估器
评估器的一个常见用途是模型选型:面对多个候选模型时,哪个最好?当所有候选模型的性能都很强且仅有细微差别时,这个问题就变得棘手。人类可以做出判断,但速度较慢,因此能够可靠识别细微质量差异的评估器就显得非常有用。
PandaLM正是为这一目的而设计的。它的目标不仅在于判断答案是否正确,还会考量相对简洁性、清晰度、全面性、正式程度以及对指令的遵循程度等主观质量。其主要应用场景是超参数调优:通过不同的设置训练多个模型版本,让PandaLM比较它们的输出结果,从而保留最优配置。在论文的实验中,以这种方式调优的每个模型都比使用默认设置时的表现更好,这表明评估工具可以直接为训练决策提供反馈,而不仅仅是生成报告。
该训练集包含超过30万个样本。每个输入都是(instruction, input, response1, response2)形式的元组,而每个目标则是(evaluation result, evaluation rationale)形式的元组。每个样本都有参考答案,结果会指出更好的回复或判定为平局。该团队使用纯下一个词预测方法结合交叉熵损失,在序列到序列的架构下对多种规模的LLaMA模型进行了微调,没有设置独立的分类模块。换句话说,判定结果和解释内容都是模型学会生成的文本。
这些指令和输入均来自Alpaca训练数据。响应对是由多个参数量约为70亿的模型生成的,分别是LLaMA-7B、BLOOM-7B、Cerebras-GPT、OPT-7B和Pythia。针对这些响应对的判定结果及理由是通过GPT-4按照Self-Instruct模式人工合成生成的,随后再通过手动制定的规则以及过滤无效或不稳定评估结果的机制进行优化处理。此外,还有人类标注员创建了一个规模较小的“黄金”测试集,专门用于元评估。
将PandaLM与其他评估模型(包括GPT-3.5和GPT-4)进行比较时,它们的评分趋势相似:都会以一致的顺序对模型进行排序。在与专用评估器的直接对比中,7B版本的PandaLM具备竞争力,而70B版本在该研究的评估指标上表现优于GPT-4,这表明与大多数能力一样,评估能力也会随着模型规模的增大而提升。
PandaLM在专业领域也同样表现出色。该研究将其应用于LSAT试题的回答处理以及生物医学问答数据集,其中更大规模的模型表现尤为优异。由于它是专门在评估数据上训练的,因此不仅能用于通用聊天场景的评估,还能胜任与其训练数据分布相近的专业领域评估任务。
JudgeLM:究竟是什么让经过微调的评估模型变得优秀
大多数早期的微调版评估模型几乎未解释其工作原理。JudgeLM旨在系统地研究相关因素,包括:
- 使用的训练数据量及其质量与多样性;
- 基础模型的规模与性能;
- 偏见如何影响评估结果;
- 该模型能否应用于其他格式,如多轮对话、单答案评分、成对排序及多模态输入。
由于基础模型薄弱、数据存在噪声、存在系统性偏见等诸多原因,微调版评估模型可能会落后于专有版本。JudgeLM的价值在于证明了这些问题是可以直接解决的。
最重要的要素是规模庞大、质量高、细节丰富且种类多样的数据集,JudgeLM团队明确表示其数据集是当时最多样、质量最高的。该数据集最初包含从ShareGPT等公共来源获取的105K条示例指令,以及带有GPT-4回答的Alpaca数据版本。
对于每条示例指令,都会通过包括Alpaca、Vicuna和LLaMA在内的多个模型生成回答,并将这些回答与原始数据集中的答案结合在一起,这样每条指令最终都会得到多个候选答案及对应的参考答案。随后会随机抽取这些答案对,由GPT-4为每对答案打分并解释其判断依据。GPT-4实际上起到了教师的作用:JudgeLM通过学习来复现它的判断结果。
GPT-4评分模板有两种版本,一种包含参考答案,另一种不包含。它们看起来与标准的公共评分器提示语非常相似,但有一个重要区别:前者详细列出了评估标准。这促使GPT-4进行更细致的评分,而基于这些评分结果进行的微调也会让JudgeLM具备同样的精细度。
JudgeLM是在70亿、130亿和330亿参数规模下训练的,所用数据集的样本量从3.5千到10万不等,采用指令微调与监督式微调相结合的方法。输入内容包括一条指令、两个候选答案以及一个参考答案。模型会为每个答案输出独立的分数并附上评分理由。将其转化为两两对比的裁决结果十分简单:得分较高的答案获胜,分数相同时则视为平局。这种设计的一个好处是,同一个模型既可以充当评分器,也可以充当比较器。
减少偏差是核心目标。JudgeLM针对三种类型的偏差:
- 位置偏差:因响应在提示词中的位置而非其内容而偏好该响应。
- 知识偏差:基础模型缺乏正确评估响应所需的预训练知识。
- 格式偏差:只有当提示词与微调时使用的确切格式一致时,评估工具才能表现良好。
每种偏差都有相当直接的解决办法。在训练过程中让模型看到多种提示格式,就能减少格式偏差;给出参考答案后,模型无需自行掌握事实,从而降低知识偏差;而位置偏差则通过交换顺序来解决——在构建训练数据时以及推理阶段,都要以两种顺序对每对数据进行评估。如果改变顺序后判断结果会发生变化,那么这对数据通常会被视为平局。在训练时交换位置能教会模型关注内容而非位置,而在推理时再次交换则可以最大限度地减少剩余的偏差。综合运用这些方法,能够大幅降低JudgeLM的偏差程度。
在推理过程中进行位置切换的代价值得注意:它会使成对评估时需要调用的判断器数量增加一倍。对于大规模离线评估而言这通常是可以接受的;但对于对延迟敏感的在线应用来说则可能不行。
在自身的评估集上,无论是否有参考答案,JudgeLM都能胜过PandaLM和GPT-3.5。由于JudgeLM是在几乎相同分布的数据上训练的,这一对比结果对其有利,但它在PandaLM的评估集上也表现优异。需要注意的是,JudgeLM所展现出的高性能大多是与生成其训练标签的同款模型GPT-4的一致性,而非与人类评估结果的一致性。总体而言,这些模型的表现相当稳定,模型规模越大性能越好,且相比其他候选模型更能抵御位置切换带来的影响。
这揭示了蒸馏式评判器存在的一个普遍局限。当学生模型在教师给出的判定结果上训练时,教师的准确率会形成一种隐性的上限,而教师的盲点与偏见也会与其优势一同被复制下来。与GPT-4的高度一致性只能说明蒸馏过程有效,却无法表明该评判器会认同你的用户观点。只有经过人工标注的测试集才能回答第二个问题。
Auto-J:基于真实用户查询
源自论文《用于评估对齐性的生成式评判器》的Auto-J是另一种经过微调的评估工具,侧重于在真实场景中的特定情境评分。它的特点包括:
- 既支持成对比较,也支持单次响应评分。
- 强调结构清晰、质量高的自然语言评价。
这样得到的评判结果具有灵活性、可解释性且实用性强。
Auto-J的数据构建始于对各种场景的定义,每个场景都有其特定的定义和评估标准。该研究将58种场景归为八大类。针对每种场景,系统会收集真实用户的查询、生成响应,再由GPT-4给出评判结果。GPT-4依据针对每种场景而制定的手动编写标准进行工作,其输出结果还会经过启发式过滤和格式标准化处理以减少噪声。每种场景最多可提供100个示例,总计约3,500个。
这些查询主要来自基于人类互动构建的公共平台,如Chatbot Arena和WebGPT。由于它们反映了人们在现实中的提问方式,Auto-J擅长进行真实的评估。成对标签和单次响应标签均由GPT-4生成,随后通过过滤器剔除那些不一致或格式错误的预测结果。
Auto-J是在该混合格式数据集上基于LLaMA-2-13B-Chat微调而来的模型。一个有趣的设计决策是并未将评估标准纳入输入数据中。其理由是让模型从数据中隐含地学习这些标准,从而提升模型的通用性。后来的研究,尤其是Prometheus项目,则得出了相反的结论,认为将评分标准及其他参考资料提供给模型非常重要。为避免立场偏差,Auto-J采用了简单的增强方法:将每对示例进行复制并交换两种响应,同时相应地交换评估结果中的“响应1”和“响应2”标签。
Auto-J测试集的构建方式与训练集相同,不同之处在于所有标签均由人工标注员提供。在与其他多种模型的对比中,Auto-J的表现几乎优于所有模型,唯有GPT-4除外。这表明,通过适合该领域的数据进行训练的专用评估模型,能够接近甚至有时超越其目标场景中的专有评估模型。不过,该模型在该数据集上与人类标注结果的完全一致率仍然较低,这提醒我们整体而言评估模型的质量还有很大的提升空间。
批评者、验证工具与合成数据生成器
与这些评估者并行,另一类密切相关的研究方向致力于训练模型来验证、批评或对其他模型的输出给出反馈。与评估者类似,这些模型也会对响应进行评分并解释其理由。不同之处在于,批评者和验证者还会根据评估结果采取行动:当原始输出未达到标准时,他们会修改响应或触发重新生成。
SelFee就是一个很好的例子:它是一个基于LLaMA的模型,经过在ChatGPT生成的文本、ChatGPT对这些文本的反馈以及修正后的版本上的训练。接到一个响应后,SelFee会先撰写反馈意见,然后根据这些反馈重新编写响应,并且可以不断迭代,直到输出达到质量标准。这使它既具备验证者的功能——能够检查自身的输出,又具备批评者的功能——能够撰写反馈并进行修改。
还有许多其他的评估方法被提出,包括自我修正、PEER以及自我评估模型。同样的机制可以用于生成和筛选合成训练数据,以进行SFT或偏好调优,正如RLAIF和Constitutional AI中所做的那样。
从宏观上看,所有这些系统——提示式评估器、微调后的评估器、合成数据处理流程、评估工具以及验证工具——本质上都在做同一件事:生成分数并给出解释。不同之处在于如何使用这些分数,是用于评估模型质量还是决定哪些样本会被纳入训练集。近期关于生成式验证工具和基于评估的奖励模型的研究认为,至少部分功能可以整合到同一个模型中,从而处理所有的评分任务。
Prometheus系列:可与GPT-4相媲美的微调后评估器
经过微调的评估模型真正走入主流是在Prometheus出现之后,这是一种专为特定领域的高精度评估而设计的模型。它的方法论并非彻底创新;最大的变化在于LLaMA-2提供了更出色的起点,以及经过精心设计的数据集。由于其在评估质量上能够与许多专用评估模型相媲美,它迅速流行起来,并衍生出了多个后续版本。
Prometheus:将评分标准作为一级输入
使用专用评估模型很简单:只需描述评估标准,让模型进行处理即可。存在的问题包括已提及的不可控版本控制和成本问题,还有这些模型大多在诸如整体用户偏好这类通用标准上训练,因此在处理定制化标准时可能会遇到困难。Prometheus通过采用经过微调的评估器来解决这些问题,一旦为某个领域完成训练,该评估器就能达到或超越专用评估模型的水平。
其核心理念是,Prometheus会将自定义评分标准作为输入的一部分,从而无需重新训练即可适应新的领域和评估标准。它是在“反馈收集”数据集上训练的,该数据集是用GPT-4生成的合成数据集,涵盖了多种评估任务。每个示例都包含以下要素:
- 指令:提交给待评估模型的提示语。
- 响应:该模型给出的答案,也是评分的对象。
- 评分标准:描述如何对响应进行评判的自定义准则。
- 参考答案:能获得最高分的示例回答。
- 评分依据:解释该响应为何获得相应分数的原因。
- 分数:1到5分的李克特量表评分。
评分标准由两部分组成:一是对评价准则的总体说明,二是对1到5分各分数所代表的含义的描述。借助这些信息,模型才能以极高的细节精度进行评分,并应用到其未曾见过的评分体系中。Prometheus项目是最早展示经过精细调优的评估者如何从丰富的参考资料中受益的项目之一,尤其是参考答案。
生成过程始于50份由人类编写的评分标准,随后分三个阶段进行:
- GPT-4在看到这些手写评分标准的示例后,将其扩展为1000份评分标准。
- 针对每份评分标准,GPT-4会生成20条指导说明,最终形成2万条指导说明。
- 对于每条指导说明,GPT-4会依次生成响应、反馈以及对应的分数。
两种平衡技巧让数据更具实用性。首先,GPT-4会为每条指令生成五个训练样本,每个分数1到5对应一个样本,从而使分数分布均匀,避免评分者习惯性地给出高分。其次,这些样本的长度保持一致,这样评分者就不会受到冗长性偏差的影响,即不会不管内容如何就倾向于给更长的答案打高分。
Prometheus模型是在Feedback Collection数据集以及MT-Bench和Vicuna Bench评估集的基础上,基于LLaMA-2-13B-Chat经过微调得到的。由于提示词中包含了所有参考材料,该模型通过SFT学习先撰写反馈内容,然后再给出评分。这种顺序安排是有意为之,体现了思维链微调的理念:所写的评价会成为模型在确定数值时的参考依据,而非事后附加的解释。Prometheus团队还强调要在反馈内容和评分之间插入一个特殊的分隔符[RESULT],这不仅能防止推理过程中生成内容出现混乱,还能让评分更易于解析。
在多个数据集上,Prometheus与GPT-3.5、GPT-4以及几款开源基础模型进行了比较,评估标准包括与人类评分的一致性及其反馈的实用性。它在与人类评分者的皮尔逊相关系数上达到了0.897,与GPT-4水平相当,远超GPT-3.5。因此,针对特定领域使用高质量评估数据微调的模型,其表现可以达到甚至超越那些规模更大的专有模型的水平。
反馈结果也支持这一观点。在58.67%的对比中,人类评审员更喜欢Prometheus的反馈,而非GPT-4的;而在近80%的对比中,他们更青睐Prometheus而非GPT-3.5。当被问及原因时,评审员指出Prometheus的批评更为尖锐且具体。论文将此总结为:GPT-4倾向于保持中立和抽象,而Prometheus则会明确表达对回复质量的看法。这正是专业化的优势——Prometheus并非为讨好他人而训练的通用助手,而是一个专门负责批评的模型。
Prometheus 2:支持逐项评分与成对评分的模型
Prometheus 2延续了这一系列,推出了另一个可接受自定义标准的开放式细粒度评估工具。它针对原始版本的两个缺陷进行了改进:首先,与人类评分的一致性仍有提升空间;更重要的是,最初的Prometheus仅能进行直接评估。虽然可以通过比较两个逐项得分来得出排名,但无论是Prometheus还是大多数早期的开放式评估工具都无法直接比较两个回答。Prometheus 2将这两种评估模式整合在同一个模型中,从而能够在每项评估中同时精准跟踪人类评分和GPT-4的得分。
Prometheus 2中的成对评估示例与直接评估示例在三个方面有所不同:
- 参考资料中不包含标准答案。
- 其中仅包含对评估标准的描述。
- 反馈的表述方式也不同。
在成对模式下,反馈需要对比两个响应,指出它们之间的差异,并利用这些差异来说明为何选择其中一个。早期的大多数成对数据集和模型都依赖通用标准,往往只给出简单的结论,而不提供任何对比解释。
为提升成对处理能力,Prometheus 2引入了从反馈集合衍生出的偏好收集机制。由于每个指令对应五个响应,每个分数一个,因此可以形成所有的配对组合:每个指令有十对。每对的标签则是通过直接对比两个李克特评分得出的。
由于具有解释性的、类似思维链的反馈是Prometheus方法的核心,仅靠标签是不够的。因此要求GPT-4为每对响应撰写新的反馈,重点说明两个响应的共性以及差异所在。
有几种方法可以让同一个模型处理两种评分模式:
- 提示法:使用现成的模型,为每种模式提供不同的提示词。
- 单格式训练:为每种模式分别训练一个模型,然后选择合适的使用。
- 联合训练:在混合了两种类型的数据上训练一个模型。
只有联合训练才能得到能够覆盖两种模式的专用模型;提示法依赖通用模型,而单格式训练则会生成两个模型。第四种方法是分别训练两个单格式模型,再通过模型合并将其整合在一起,这正是 Prometheus 2 的做法。它会分别训练两个评估器,一个用于反馈收集,另一个用于偏好收集,然后通过简单的线性合并方式结合它们的权重,从而生成一个能够以两种方式评分的模型。
显著的结果是,合并后的模型优于联合训练的模型以及单格式模型。我们尝试了多种合并方法,包括任务算术法、TIES法和DARE法。一些较为复杂的 方法有时能起到作用;例如以Mixtral 8x7B作为基础模型时,DARE法的效果最佳。但采用系数为0.5的简单线性合并方式——即直接对两个模型的权重取平均值——在大多数配置下都能表现出色,且实现起来极为简单。其之所以有效的原因之一在于,两次训练都是从同一个基础模型开始,并学习相关的技能,因此它们的权重处于相互兼容的范围内,取平均值反而能整合各种能力而非破坏它们。
Prometheus 2基于Mistral-7B和Mixtral 8x7B构建:针对不同数据集分别对模型进行微调,再通过多种算法将它们整合在一起。在一系列直接评估和成对对比测试中,这些模型性能优于所有其他开源评估工具。在所有数据集上,它们与专用评估工具的皮尔逊相关系数提升了0.2;在成对排名测试中,其与GPT-4的差距已缩小至大约一半。
在成对比较模式下,其优势似乎较小,但该模式下的对比同时包含了奖励模型与开放式评估工具。奖励模型即人类反馈强化学习(RLHF)中所使用的评分机制,仅针对成对偏好进行训练,不会给出书面反馈,但在成对比较的准确性方面表现极为出色。Prometheus 2在跨模式一致性上也优于其他评估工具:在成对比较中它更倾向选择的响应,在直接评估时通常也会获得更高的分数。这一特性在实践中非常重要,因为如果同一评估者的两种评估方式结果不一致,那么其判断就很难被信任。
Prometheus-Vision:视觉语言模型的评估
到目前为止所讨论的都是纯文本模型。视觉语言模型(VLM)能够处理图像和文本,这类模型在各种形式中都很常见,既有像GPT-4V和Gemini这样的私有化版本,也有像LLaVA以及Llama 3.2的视觉版本这样的开源版本。除了额外的输入方式外,它们的训练方式和结构与文本型大语言模型非常相似。
VLM会根据图像和指令生成文本,而对其进行评估则增加了新的考量维度。你需要检查两点:
- 与所有大语言模型一样,响应是否遵循了指令。
- 响应的内容是否基于图像实际展示的内容。
一种解决办法是将图像转换为文本,例如使用字幕生成或图像转文本模型,再将该描述传递给GPT-4或Prometheus之类的文本评估工具。不过这种多阶段流程会带来误差:字幕遗漏的内容,评估工具就无法判断。直接使用VLM作为评估工具则是更为简洁的设计。
Prometheus-Vision是一款开源的VLM评估工具。虽然GPT-4V这类专有VLM早已被用作其他VLM的评估工具,但Prometheus-Vision是首个能够依据用户定义的精细标准进行评分的开源VLM。除了具备开源模型的透明性和可控性外,它的评分结果与人类评估者及专有评估工具的结论高度一致,还能识别出细微差别,比如区分真正的艺术作品与对其的恶搞作品。
在相关研究发表时,尚不存在用于训练精细度更高的VLM评估器的反馈、评价或偏好数据集,因此该团队自行构建了这样的数据集。Perception Collection沿用了Feedback Collection的设计思路,每个样本包含五个输入部分:
- 图像:用户提供给VLM的图片。
- 指令:用户的文本指令。
- 响应:VLM针对该图像和指令生成的文本答案。
- 评分标准:详细的评分指南,包括各项标准的说明以及1到5分制下的具体分数定义。
- 参考答案:由GPT-4V生成的可获得5分的理想响应。
输出结果包括书面说明及1到5分的评分。
构建过程与文本数据集类似。该流程从MS-COCO和MMMU数据集中抽取5K张图像,手动编写50个评分标准,再利用GPT-4将其扩展为15K个评分标准,生成30K条带有对应参考答案的指令,最后为每条指令添加五个不同分数段的回答,并分别为每个回答提供反馈。与“反馈收集”方法相比,这里的评分标准数量要多得多(15K对比1K),但每个评分标准对应的指令数量却少很多(2条对比20条)。
此处无法使用纯文本的基础模型;训练必须从预训练的VLM开始。Prometheus-Vision使用了LLaVA-1.5的7B和13B版本。其训练方法与之前相同,采用链式思维微调:首先通过SFT让模型学会撰写反馈,然后再给出评分。在每个训练示例中,这两部分之间会用固定短语So the overall score is分隔,该短语的作用与文本模型中的[RESULT]标记相同。通过输入评分标准及参考答案,最终可得到一个适用于定制化、精细评估的模型。
Prometheus-Vision在与人类评分的匹配度上优于GPT-3.5-Turbo以及仅处理文本的Prometheus,但总体而言GPT-4和GPT-4V与人类评分的契合度更高。它在VisIT-Bench测试中的表现最差,因为该测试包含大量文字密集的图片。在这类场景下,GPT-4的表现更好,甚至优于GPT-4V,因为它能将从图片中提取的文字作为输入,而Prometheus-Vision则难以识别这些文字。在其他测试项目中,Prometheus-Vision的表现与GPT-4和GPT-4V大致相当,在某些情况下其与人类评分的匹配度甚至高于这两者。
人工评估者认为它的反馈质量与GPT-4和GPT-4V相当。该团队还研究了常见的评估者偏差,如长度偏好(倾向于选择更长的回复)和自我强化偏差(偏爱自己的输出)。他们并未发现这两种偏差的明显迹象,不过也指出通过实验单独识别某一种偏差其实非常困难。
微调评估的其他方向
Prometheus并非唯一的探索方向。还有许多其他项目也在训练用于评估的大型语言模型,每项都提出了不同的思路。以下简要介绍那些在自行设计评估工具时最为相关的方案。
自我奖励型语言模型
自我奖励模型旨在借助内部评估器实现自动对齐。它并非基于人类偏好单独训练奖励模型,而是让需要对齐的模型本身通过“大语言模型作为评判者”的提示语来评估自身的输出,这些评估结果便成为奖励。将该方法应用于LLaMA-2后,获得了有用的反馈并提升了底层模型性能。从概念上讲,它与Prometheus类似,因为模型会学会充当评判者,但该评判者的输出又会直接作为同一模型的训练信号反馈回去。
大语言模型作为元评判者
自我奖励模型的一个局限在于,没有任何机制能够提升判断能力本身;模型虽然在响应方面会变得更好,但其评估质量仍保持初始水平。元奖励模型则引入了第三种角色。除了充当执行者和判断者外,该模型还充当元判断者,对自身的判断结果进行评估,从而为提升判断能力与策略同时生成训练数据。如此一来,这两种能力便能在训练过程中共同得到提升。
自学型评估器
自学型的评估器完全去除了循环中的人为偏好标签。收集人类偏好数据成本高昂,且随着模型性能提升这些数据会变得过时,因此这种方法通过迭代方式生成合成评估数据。从一组指令出发,大型语言模型会生成对比鲜明的输出对,其中一个刻意设计得比另一个更差,随后训练评估员通过撰写解释和判定结果来对它们进行评价。用经过改进的评估员重复这一过程,每轮都能获得更优质的训练数据。据报道,在没有任何人工标注数据的情况下,这些评估器在评分准确率上甚至优于被用作评估基准的GPT-4以及基于人类偏好数据训练的奖励模型。
显而易见的弊端在于循环性问题。依赖自身训练数据进行学习的模型可能会逐渐偏向它原本认为正确的方向,而由于缺乏外部监督,这种偏差便无法被察觉。即便采用自我学习循环,仅有少量由人工标注的数据仍是为确保每一轮训练确实带来改进而非仅仅增强模型自信度的唯一方法。
FLAMe:基础自训练模型
基础大型评估模型(FLAMe)在数据处理上采取了相反的策略:它们是在海量的人类评分数据上训练的,涵盖100多项质量评估任务,总数超过500万条。与其他评估模型相比,FLAMe模型在面对未见过的评估任务时具有更好的泛化能力,偏差更小,并且可作为进一步微调为专用评估模型的良好起点。有研究显示,其表现始终优于基于GPT-4及Claude变体构建的评估模型,以及在使用合成GPT-4数据微调后的评估模型。
泛化能力与性能的权衡
一项针对微调后法官模型的实证研究明确指出“微调后的法官模型是特定任务的分类器”,并深入分析了其与专用法官模型的优劣对比。该研究得出结论:微调后的法官模型在特定领域表现优异,有时在基于其训练数据集的测试集中能超越GPT-4,但在泛化能力、公平性、特定维度评估以及可扩展性方面则落后于GPT-4。这并不令人意外——在某一数据集上训练的模型只会掌握该数据集的特征,若询问其与无关内容相关的问题,它就会表现得像一个功能有限的分类器。实际应用中应让微调后的法官模型继续用于其原本训练的任务,并在其处理的输入数据开始出现偏差时,用人工标注结果重新对其进行验证。
直接判断偏好优化
直接偏好优化是将偏好优化应用于评估者本身,而非仅依赖SFT。针对三种应用场景会收集相应的偏好对:单次评分、成对比较以及二元分类。前两种对应常规的逐项评分与成对对比方式;第三种则将评估转化为是与否的问题,例如判断响应中是否具备某一特定属性。此外还增加了一项辅助任务:给定指令与评估结果,模型需推断正在被评估的是哪条响应。对于每种应用场景,一个优质判断与一个劣质判断会构成一对偏好对,评估者便通过直接偏好优化(DPO)在这些偏好对上进行训练。其优势在于,评估者不仅能学会模仿优质判断,还能在面对看似合理的劣质判断时优先选择优质判断。
是什么决定了评估者的得分?
对于任何大型语言模型评分工具而言,一个值得探讨的问题是:它究竟真的会按照给定的标准进行评分,还是仅仅奖励那些与训练数据相似的文本。通过对多种评分方式下的大型语言模型评分工具进行的分析发现,提示词中详细的评分说明只能略微提升其判断准确性;而基于困惑度的评分方式——即根据模型生成响应的难度来打分——在某些情况下,尤其是在评估文本质量方面,其结果比提示词引导的评分更接近人类的判断。
这似乎与Prometheus得出的“参考材料至关重要”的结论相悖。一旦明白测量的是什么,这两种结果就更容易调和了。那些注重困惑度的分析主要从人类偏好角度来评估整体响应质量。大多数大型语言模型都是基于偏好数据训练的,因此它们自然会赋予人们喜欢的答案更高的概率。而Prometheus则着眼于各种超越一般偏好的自定义标准,对于这些标准而言,明确的评分规则能提供模型仅凭流畅度无法推断出的信息。如果你的标准接近“人们更喜欢哪个答案”,那么评分规则可能作用不大;但如果这些标准与你的领域相关,它就至关重要。
构建专属评估工具的逐步指南
考虑到研究现状,将其归纳为一个流程会很有帮助。Prometheus的相关工作已经勾勒出了一个框架,下方的版本对其进行了小幅调整,以融入其他论文中的观点。
第一步:明确评估标准
在开始其他工作之前,首先要准确确定要评估的内容:
- 列出对您的应用而言重要的具体标准。
- 为每个标准撰写详细描述,包括不同分数等级的含义。
“反馈收集”就是一个此类评分标准的典型范例,其中包含标准描述、各分数段的说明以及参考答案。需要反复修改这些标准。随着您发现人类与模型在哪些方面存在分歧,您会不断优化和扩展评分标准,而每一次修改都会让基于人类和模型的评估结果更加一致。
第二步:收集高质量的人工标注数据
在训练任何评估模型或向其提供提示之前,都需要可靠的人工评估数据。这些数据能够帮助判断该评估模型的准确性,同时应反映其在实际应用中会遇到的输入内容。如果数据仅用于元评估,比如验证经过提示的LLM作为评估模型,通常100到1000个样本就足够了。而要对类似Prometheus的评估模型进行微调,则需要大量数据,大约在1000到100000个样本之间。
人工数据收集难度很大,也正是各团队最常投入不足的领域。如果人们对任务内容无法达成一致,就无法判断模型是否表现良好,而用不一致的标签来训练评估人员只会浪费所有努力。上述关于人工评估的所有内容都适用于此:对评估人员进行校准、制定规范并持续检测一致性。
步骤3:用合成数据补充
Prometheus模型表明,合成数据能够生成出色的评估工具:这些模型的几乎所有训练数据,包括指令、响应、分数和反馈,都是由GPT-4生成的。纯合成数据存在风险,因为它会使模型仅接触有限范围的输入,并继承教师模型的偏见。将人工标注数据与合成数据结合使用,通常比单独使用任何一种数据效果都要好。利用人工标注数据来确保质量,再用合成数据来实现微调所需的数据量和覆盖范围,在生成合成数据时还需应用“反馈收集”中的平衡策略,以使分数分布更均匀、响应长度得到控制。
第4步:重视依据与理由
准确的分数和排名固然重要,但评分理由同样需要精心对待。众所周知,微调并非向模型注入新知识的有效方法;它擅长的只是教授特定的风格和格式。对于评分员而言,反馈格式是你可以控制的主要要素。具体、有针对性且与评分标准相对应的评分理由,才能让评分员的解释真正具有实用性。由于模型会在给出分数之前先撰写评分理由,因此更优质的评分理由往往能支撑更高的分数。应在反馈内容与分数之间添加固定的分隔符,以便于解析输出结果。
第5步:在合适位置添加参考答案
此步骤并非必需,但通常很有价值。参考答案对既接受提示又经过微调的评估者都有帮助。对于经过微调的评估者而言,参考答案能够弥补基础模型在预训练过程中所学知识的不足,从而显著提高逐点评分的准确性与稳定性。在涉及事实性内容或专业领域较强的任务中,参考答案往往比任何提示语都更为重要。
第6步:训练与元评估
在准备好数据及可选的参考答案后,使用标准的SFT方法对评估模型进行训练。Prometheus仓库提供了该流程的完整实现方案。从一开始就保留一部分经人工标注的数据作为测试集,用于元评估:若模型的输出为二元值,则使用分类指标;对于其他类型的数据则使用相关性指标。对于成对比较的模型,还需检测其判断结果在顺序改变后是否依然保持一致;如果顺序变化会导致模型判断结果改变,说明该模型尚未成熟。
在依赖该评估模型之前,还需进行几项额外检查:
- 使用分布外的样本进行评估,以了解其能力范围。
- 将模型的得分分布与人工评分的分布进行对比,以发现是否存在系统性的宽松或严厉倾向。
- 通过改变相同内容的响应长度和顺序,直接观察长度效应和位置效应。
何时无需微调
微调后的评估模型并不总是最佳选择。如果你的评估标准较为通用,比如整体实用性,那么经过适当引导的专用评估模型或现有的开源评估工具可能就已足够,且部署成本要低得多。如果你无法获取可靠的人工标注数据集,那么无论是否对评估模型进行微调,都无法对其有效性进行验证,因此应先解决这个问题。另外,如果任务分布不断变化,由于微调后的评估模型具有针对特定任务的特性,你就需要频繁重新训练。只有当评估标准十分专业、评估量很大,且你需要控制版本管理、成本或数据隐私时,微调才能带来实际效益。
关于成本与运营的说明
拥有专用判断模型只是转移了成本,并未真正消除成本。你用每次调用的API费用来换取GPU使用时间、模型托管服务以及维持模型版本控制与可重复性所需的工程支持。作为交换,你得到的是一个固定不变的模型版本、不会因你的操作而改变的评估数据,还能在无需担心费用不断上升的情况下运行数百万次判断。应将这类专用判断模型视作普通生产模型来对待:锁定其权重,记录不同版本产生的评分结果,并保留元评估数据集,以便将来重新训练时能与当前模型进行公平对比。
核心要点
- 人类判断仍是参考标准,但只有在经过校准、制定动态指南并持续跟踪一致性之后,才能使其足够可靠,从而用于衡量其他各项指标。