大语言模型人类偏好对齐技术:基本原理和前沿研究(2024)

 前言

        本文对学术界(截止2024-01)相关研究进展进行深入调研,并结合自身当前将近一年的大语言模型相关工作经验和思考沉淀,对大语言模型人类偏好微调对齐(不限于SFT和RLHF,包括基础功能对齐和安全价值观对齐)所涉及知识进行总结。内容总结PPT请看:

https://github.com/BinFuPKU/LLM-Alignmenticon-default.png?t=N7T8https://github.com/BinFuPKU/LLM-Alignment

意义
  • 大语言模型预训练阶段,本质是对海量信息进行(生成式)压缩存储(相当于庞大的知识库),但如何有效利用这个知识库宝藏,如何按照人类偏好习惯来执行任务(即输入人类指令,大语言模型给出符合人类偏好的输出),需要微调对齐来提供这样一个高质量的、人与大模型的交互接口。
  • 在预训练阶段,对于海量预训练数据无法避免存在脏毒等质量较差的数据(事实上高质量预训练对模型影响很大,如微软的Phi-3模型训练采用小规模教科书数据得到更好效果),这是因为大部分数据来源于从互联网抓取,大语言模型对这些信息也进行了压缩学习,通过简单的越狱攻击手段即可让大模型吐露训练语料中的低质量数据(甚至有害不安全的回复)。为了避免大语言模型回复这些内容,所以需要微调对齐。
  • 微调对齐的实质是调整token生成概率分布,即给定任意用户指令,改变其生成回复内容的token序列分布,让符合人类偏好(如3H标准:harmless 无害  + helpful 有用性 + 忠实性 honest)的回复得到较高的概率,反之较低概率。
难点
  • 高质量数据问题:
    • 1)人类偏好本身存在主观模糊性,没有完全清晰一致的principles,况且各地区文化习俗不同,偏好、价值观等都存在差异。
    • 2)人工标注instances成本大,且难以满足偏好多样性、高质量、细粒度、覆盖广等要求。高质量数据代价成本需要全人类来贡献,任何公司无法负担起。
  • 大语言模型自身问题:
    • 1)大语言模型预训练试错成本代价极高,无法反复尝试各种大的技术路径,大家基本摸着别人石头过河,或者小改。
    • 2)大语言模型这套机制暂时缺乏严格的理论基础(实践走在理论前面太远),其缺乏透明性,相当于一个魔法黑盒子,很强大但是其能力边界不清晰。
  • 我们当前能干什么?
    • 探索模型框架的上限:由于试错成本门槛极高,极少数兼具创新性且资本雄厚的大公司可以尝试。其他公司各种雕花。
    • 提高数据质量:从机器学习角度,数据质量决定了模型性能的上限(包括高质量的principles和instances),模型方法提供了快速、稳定接近这个上限的手段。人工标注代价太高,AI生成是一条路子,但是质量和人类水平存在一定差距。
微调对齐的本质

        (生成式)大语言模型本质是一个token序列输入到token序列输出的映射函数(概率分布),如下

\pi_\theta = P(\vec{y}|\vec{x};\theta_{LLM})

对齐的本质是同微调使得大模型生成概率分布同人类偏好一致。

\min dis(\pi_\theta || \pi_h)

微调对齐流程

微调对齐主要流程如下[1-2]:

  • 微调对齐数据集构建
  • 微调对齐方法训练和优化
  • 微调对齐评估

数据集构建

开源人类反馈数据集
  • OpenAssistant对话数据 [3]:

    • 内容标签: Creativity, Quality, Humor, Helpfulness, Violence, and Rudeness, Language Mismatch, Not Appropriate, Personally Identifiable Information, Hate Speech, and Sexual Content.

    • 461,292个打分,对于同一prompt的不同回答进行打分排序。

  • ULTRAFEEDBACK数据 [4]:
    • 规模:6.4万条指令,每条指令有 4个答案回复。
    • 细粒度:从instruction-following, truthfulness, honesty和helpfulness四个principles来进行标注。
    • 多样性:基于(6.4万)指令池+(17个) LLMs池+(4个) principles 采样来构造。

自动构建数据集
  • CnR: Critique and Revise [5]
    • 问答对数据集,先让LLM给出答案回复好坏方面的具体评论(而非排名或评分),然后根据该评论要求LLM修改回复,从而提升回复质量。(这个过程可以持续多次
    • 实验验证:1)能够生成有意义评论,甚至修改错误;2)模型能够按照评论修改内容;3)基模型越大,数据数量越多质量越好,效果越好;4)迭代多次有提升。

  • Instruction Backtranslation (指令回译, P(instruction| response))[6]
    • 步骤:
      • 起始:人工标注的种子问答数据集和大量无标注数据语料(如过滤后的网页文本)
      • 1.利用种子问答数据对大模型进行微调得到𝑀𝐴2𝑄M_A2Q,将无标注数据视为答案回复,利用𝑀𝐴2𝑄M_A2Q来生成问题(即指令);(回译)
      • 2.利用种子数据微调后的大模型来评估打分(1~5打分标准),并选择其中高质量问答数据,构建新的种子问答对数据;(质量筛选)
      • 迭代重复上述1~2过程,扩大数据规模和多样性。
    • 实验验证:
      • 1)种子数据质量很关键,新生成的数据质量不如种子数据,二者结合有较多提升;
      • 2)给种子数据和新生成数据添加system prompt,分别为 “Answer in the style of an AI Assistant”和“Answer with knowledge from web search”(相当于回译提示);
      • 3)新生成数据进行高质量过滤很重要。

  • RLAIF:利用更强大模型来生成或评估数据 [7-9]
    • 让更强大的LLM(如GPT-4/LLAMA2-CHAT-70B)来评估并进行对排序
    • 根据priciple写好prompt让大模型来生成数据

  • weak-to-strong超级对齐-弱模型监督大模型 [14]
    • 提出一个AI发展的关键问题:大模型远远超过人类时,人类(弱模型)如何监督大模型?
    • 小模型生成的弱监督标签数据可激发大模型某方面能力提升(elicit, not teach)
    • 实验验证: 在 NLP 任务上, 在预训练GPT-4 上使用 GPT-2 监督和微调可恢复接近 GPT-3.5 性能(80%)。(由弱到强泛化能力)
    • 实验需要注意避免大模型过度模仿。
    • 这种方法可以考虑用来能缓解数据缺乏或低质量问题。
       

安全对齐数据集
  • BEAVERTAILS (北大) [10]

  • FLAMES (Fairness, Legality, Data protection, Morality, Safety,中文-中国立场) [11]

  • FFT [12]
    • 通过真实性、公平性和毒性角度来对文本进行有害性评估。
    • 设计了2116个测试示例

  • HARMFULQA [13]
    • 利用Chat-GPT收集了1960个有害问题分为10个话题。

对齐评估

对齐评估分类
  • 按照方法划分为[16-17]:
    • 人工评估:人工设计测试题目(及答案),并对LLM回复结果进行人工评估打分。
      • 评估质量有一定保证;
      • 人工成本高,效率低
    • 自动评估:基于模型对LLM输出结果进行评估打分。
      • 微调专门LLM或更强大LLM:根据思维链,设计prompt建议除了评分规则和评分指令外让LLM给出评分理由指令。
  • 按照内容划分为 [15-17]:
    • 基础功能点或下游场景任务。
    • 价值( values)、社会规范(social norms)、规章制度( regulations )等。
对齐评估方法
  • 幻觉评估 [18]
    • 发现容易产生幻觉的两种情况:
      • 1)prompt同模型参数中蕴含的知识不一致,
      • 2)prompt蕴含的知识较为复杂。
    • 小模型生成的对抗样本可以用来微调更大模型。
      • 提出通过种子测试样本和prompt对抗生成(修改prompt中evidence变冲突或者复杂)来自动构建幻觉数据集。

  • 可信LLM的七个维度:

  • 功能点-自动评估
    • G-EVA [20]
      • 设计功能点评估的prompt,使用大模型来评估。
      • 设计一致性(文本总结任务)、参与度(对话生成任务)和幻觉评估的打分规则的prompt模板。

  • FLASK [21]
    • 12项技能(含正确性和无害性)。
    • 为每项技能设计prompt评分准则。

  • AUTO-J [22]
    • 下游58个场景任务。
    • 设计对比较和评分规则的prompt。
  • 多智能体(LLM)辩论 [23]
    • 多智能体扮演不同的角色(prompt实现)进行协同辩论。
    • 参数:当前智能体的聊天历史。

 

对齐方法

对齐方法分类

按对齐的主要研究方向分为如下两类:

参数微调(大模型向人类对齐)

        通过对大语言模型进行参数微调训练,方法如SFT或RLHF(如DPO [24]、PPO [25] 等),调整参数类型如lora、qlora或prefix tuning等形式。

\max_{\theta_{LLM}} P(\vec{y}| prompt(\vec{x});\theta_{LLM})

        这部分算法分为on-policy(如PPO [25])和off-policy(如DPO [24])。我们实现了一套算法库,并在安全数据上进行大量优化实验。(在下一个博客将进行详细介绍)

指令对齐(人类向大模型对齐)

        无需对大语言模型进行参数微调训练,通过调整输入token分布,来达到调整其输出token分布。即插即用,与大语言模型解耦。相当于将指令输入到大语言模型前多了一步预处理。

P(\vec{y}| prompt(\vec{x});\theta_{LLM})

其优化目标通常为,控制目标输出概率最大化前提下优化提示词

\max_{prompt(\cdot)} P(\vec{y}| prompt(\vec{x});\theta_{LLM})

其中,prompt(\cdot)通过一个seq2seq改写模型实现(如一个更小prompt改写模型,如qwen- 1.8b,我们事件经验是:因为通常用户指令很短,这个规模模型完全够用)。典型方法如BPO [26]。

  • BPO [26]
    • 利用提示词工程和大模型来优化提示词,然后训练一个seq2seq提示词优化生成器(LLM实现,如llama2-7b-chat微调训练 ),实现:Q_{opt} = LLM(Q,A)
    • 优化提示词的两个子过程:
      • 评价:e.g. 从以下几个方面比较好回复和坏回复…
      • 优化:e.g. 作为一名专业提示工程师,在以下方面改进我的提示词…
    • 标准测评数据集Vicuna Eval上效果:
      • 提升效果优于PPO和DPO。
      • 结合PPO和DPO会有更多提升。
      • llama2-13b 大幅超过 llama2-70b 版本的模型效果。
      • llama2-7b 版本的模型逼近比它大 10 倍的模型。

回复改写(事后打补丁)

        同样,无需对大语言模型进行参数微调训练,在大模型输出结果基础上进行对齐改写,使得其满足特定目标(更符合人类偏好的回复,如更加安全的回复)。相当于在大语言模型输出后增加一步后处理。

\vec{​{y}'} = aligner(\vec{y}); \vec{y} = LLM(\vec{x})

其优化目标通常为,需要最大化优化特定评估目标,来调整回复内容

\max_{aligner(\cdot)} eval(aligner(\vec{y}))

其中,aligner(\cdot)通过一个seq2seq改写模型实现(如一个更小prompt改写模型,如qwen- 1.8b或4b,按实际效果选择性价比最高的方案)。这类方法中典型方法如Aligner [27]。

上述三种方法可同时结合。

参考文献

[1] PEERING THROUGH PREFERENCES: UNRAVELING FEEDBACK ACQUISITION FOR ALIGNING LARGE LANGUAGE MODELS, 2023.8.
[2] Fake Alignment: Are LLMs Really Aligned Well? 2023.11.
[3] OpenAssistant Conversations - Democratizing Large Language Model Alignment, 2023.10.
[4] ULTRAFEEDBACK: BOOSTING LANGUAGE MODELS WITH HIGH-QUALITY FEEDBACK, 2023.10.
[5] Data-Efficient Alignment of Large Language Models with Human Feedback Through Natural Language, 2023.11.
[6] Self-Alignment with Instruction Backtranslation, 2023.8.
[7] RLCD: REINFORCEMENT LEARNING FROM CONTRAST DISTILLATION FOR LANGUAGE MODEL ALIGNMENT, 2023.8
[8] ZEPHYR: DIRECT DISTILLATION OF LM ALIGNMENT, 2023.10.
[9] Principle-Driven Self-Alignment of Language Models from Scratch with Minimal Human Supervision, 2023.12.
[10] BEAVERTAILS: Towards Improved Safety Alignment of LLM via a Human-Preference Dataset, 2023.11.
[11] FLAMES  BENCHMARKING VALUE ALIGNMENT OF CHINESE LARGE LANGUAGE MODELS, 2023.11.
[12] FFT: Towards Harmlessness Evaluation and Analysis for LLMs with Factuality, Fairness, Toxicity, 2023.11.
[13] Red-Teaming Large Language Models using Chain of Utterances for Safety-Alignment, 2023.8.
[14] WEAK-TO-STRONG GENERALIZATION ELICITING STRONG CAPABILITIES WITH WEAK SUPERVISION, 2023.12.
[15] TRUSTWORTHY LLMS: A SURVEY AND GUIDELINE FOR EVALUATING LARGE LANGUAGE MODELS’ ALIGNMENT, 2023.8.
[16] Evaluating Large Language Models: A Comprehensive Survey, 2023.11.
[17] A Survey on Evaluation of Large Language Models, 2023.10.
[18] AUTOMATIC HALLUCINATION ASSESSMENT FOR ALIGNED LARGE LANGUAGE MODELS VIA TRANSFERABLE ADVERSARIAL ATTACKS, 2023.10.
[19] TRUSTWORTHY LLMS: A SURVEY AND GUIDELINE FOR EVALUATING LARGE LANGUAGE MODELS’ ALIGNMENT, 2023.8.
[20] G-EVAL: NLG Evaluation using GPT-4 with Better Human Alignment, 2023.5.
[21] FLASK: FINE-GRAINED LANGUAGE MODEL EVALUATION BASED ON ALIGNMENT SKILL SETS, 2023.10.
[22] GENERATIVE JUDGE FOR EVALUATING ALIGNMENT, 2023.10.
[23] CHATEVAL: TOWARDS BETTER LLM-BASED EVALUATORS THROUGH MULTI-AGENT DEBATE, 2023.8.
[24] DPO: Direct Preference Optimization  Your Language Model is Secretly a Reward Model, 2023, 5.
[25] Proximal Policy Optimization Algorithms, 2017, 8.
[26] Black-Box Prompt Optimization: Aligning Large Language Models without Model Training, 2023.11.
[27] Aligner -- Achieving Efficient Alignment through Weak-to-Strong Correction, 2024, 2.

  • 24
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值