趋近智
将大型语言模型(LLM)与人类价值观和意图对齐,是使其更有帮助、无害且诚实的重要一步。实现此对齐的主要方法是使用偏好数据训练模型。此类数据包含示例,即在给定特定提示或背景下,一个模型响应被明确地优于另一个。尽管人工标注的偏好数据非常有价值,但其收集可能耗费高昂且耗时。讨论生成合成偏好数据的方法,以补充甚至替代人工标注数据,特别是对于像基于AI反馈的强化学习(RLAIF)这样的方法。
偏好数据核心在于其能记录对不同LLM输出相对质量的判断。对于给定的输入提示,LLM可能会生成两个或更多响应。偏好数据表明根据特定标准,这些响应中哪个更好。例如:
在这里,响应A更受欢迎,因为它更简单且更适合目标受众,即使响应B在技术上更准确。
这种数据是RLAIF的基础。在RLAIF中,典型流程包括:
偏好数据的质量和数量直接影响奖励模型的有效性,从而影响最终LLM的对齐。
图示偏好对的生成及其在奖励模型训练中的用途。
创建大型、多样化且高质量的人类偏好数据集是一个重要瓶颈。这需要仔细的指导、一致的标注,并且可能非常昂贵。合成偏好数据生成旨在通过程序化创建这些(提示、被选、被拒)元组来缓解这些挑战。这使得以下成为可能:
可以采用多种方法来创建合成偏好数据。这些方法通常涉及将一个或多个LLM用作“生成器”或“判断器”。
最常见的方法之一是使用一个有能力的LLM作为“判断器”来评估和排序响应。流程通常如下:
生成候选响应: 对于给定提示,一个LLM(这可以是您打算对齐的模型,也可以是另一个模型)生成两个或更多候选响应。您可以通过调整温度等采样参数或使用不同的系统提示来鼓励响应的多样性。
提示判断器LLM: 独立且通常更强大的LLM(“判断器”)被提示去比较候选响应并选择偏好的一个。给判断器的提示很重要,可能包含:
例如,给判断器LLM的提示可能是:
用户提示: "What are the main benefits of exercise?"
响应 A: "Exercise is good."
响应 B: "Regular exercise offers numerous benefits, including improved cardiovascular health, weight management, increased energy levels, better mood, and reduced risk of chronic diseases."
哪个响应更有帮助、更全面?请仅输出'A'或'B'。
形成偏好对: 根据判断器的输出,您形成(提示,被选响应,被拒响应)元组。
合成偏好数据的质量在很大程度上取决于判断器LLM的能力及其指令的清晰度。判断器LLM也有可能表现出自身的偏见,这些偏见可能会传递到奖励模型中。
您可以不依赖LLM判断器,而是定义明确的规则或启发式方法来确定偏好。
例如,如果规则旨在偏好简洁的答案:
此方法提供更多控制,但需要仔细设计规则,并且可能不如LLM判断器那般细致。
此方法涉及一个LLM(或一组LLM)迭代地改进响应。
另外,如果批评发现了一个未通过修订修复的明显缺陷,则原始的有缺陷响应可能成为“被拒”项,而一个单独的“好”响应(可能通过不同提示或由人类生成)可能成为“被选”项。
如果您拥有高质量“黄金”响应数据集(例如,来自现有指令遵循数据集或人类编写的示例),您可以通过以下方式创建偏好对:
这里的挑战在于使“被拒”响应存在细微缺陷而非明显荒谬,因为这有助于奖励模型学习更细致的区分。
尽管不是直接为RLAIF生成(被选,被拒)对,但有些方法会使用模型置信度分数。如果模型可以输出其生成内容的置信度,或者如果多个多样化生成内容可以通过某些外部指标进行评分,您可以通过将高置信度/高分响应指定为“被选”和低置信度/低分响应指定为“被拒”来形成对。这种方法通常更难可靠地校准以传授偏好。
无论采用何种生成方法,合成偏好数据通常以结构化格式存储,常见为JSONL文件,其中每行是一个JSON对象,代表一个偏好对:
{
"prompt": "Python列表推导式的最佳实践是什么?",
"chosen": "当逻辑简单且可读时,创建列表推荐使用列表推导式。避免过于复杂的推导式;使用for循环可能更清晰。它们提供了一种简洁的列表创建方式,通常能提高手动追加的性能。",
"rejected": "Python列表推导式是一种特性。你通过编写一个表达式,然后跟着一个for子句,再跟零个或多个for或if子句来使用它们。它们用来创建列表。这有点像一个循环。",
"generation_method": "llm_as_judge",
"judge_model_id": "gpt-4-turbo",
"criteria": "helpfulness_and_clarity"
}
包含诸如generation_method、judge_model_id(如适用)和criteria等元数据对于调试、分析以及合成数据生成流程的迭代改进非常有用。
尽管合成偏好数据提供了规模优势,但质量控制仍非常重要:
通常,将合成数据与一小部分高质量的人工标注偏好数据混合使用是有益的,以稳定奖励模型。此外,正如本章稍后讨论的,严格的过滤和质量保证流程对于任何合成数据集,包括偏好数据,都是不可或缺的。
生成合成偏好数据是一种有效的方法,可扩展LLM对齐工作。通过仔细设计生成策略并注意潜在挑战,您可以创建有价值的数据集,帮助训练奖励模型,引导LLM产生更理想的行为。您将在本章稍后学习构建的数据过滤脚本直接适用于优化这些合成偏好数据集。
简洁的语法。内置调试功能。从第一天起就可投入生产。
为 ApX 背后的 AI 系统而构建
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造