当前位置:首页 > 文章列表 > 科技周边 > 人工智能 > 人类偏好优化算法哪家强?跟着高手一文学懂DPO、IPO和KTO

人类偏好优化算法哪家强?跟着高手一文学懂DPO、IPO和KTO

来源:机器之心 2024-08-02 12:42:49 0浏览 收藏

本篇文章给大家分享《人类偏好优化算法哪家强?跟着高手一文学懂DPO、IPO和KTO》,覆盖了科技周边的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

尽管收集人类对模型生成内容的相对质量的标签,并通过强化学习从人类反馈(RLHF)来微调无监督大语言模型,使其符合这些偏好的方法极大地推动了对话式人工智能的发展。但由于 RLHF 是一个复杂且常常不稳定的过程,关于直接使用优化函数将人类的偏好和模型的结果进行对齐的研究成为时下的热点问题。

本文是 hugging face 上的一篇博客,针对时下常见的三种人类偏好优化算法进行了性能比较。作者进行了大量的实验,旨在通过不同的模型和不同的超参数,对无需强化学习(或偏好调整)就能调整语言模型的三种可行方法进行评估。这三种优化方法是:

  • 直接偏好优化 (Direct Preference Optimization, DPO)(https://huggingface.co/papers/2305.18290)

  • 身份偏好优化 (Identity Preference Optimisation, IPO)(https://huggingface.co/papers/2310.12036)

  • Kahneman-Taversky 优化(KTO)(https://github.com/ContextualAI/HALOs)

人类偏好优化算法哪家强?跟着高手一文学懂DPO、IPO和KTO

本文五位作者

太长不看版

在这篇博客中,作者对三种优秀的 LLM 对齐算法进行了评估,分别是:直接偏好优化(DPO)、身份偏好优化(IPO)和 Taversky Optimisation 优化(KTO),并且在两个高质量的 7b 参数 大小的 LLM 上进行了实验。这些 LLM 经过了有监督微调,但没有进行人类偏好调整。作者发现,虽然确实能找到效果最好的算法,但要获得最佳结果,必须对一些关键超参数进行调整。

无强化学习的对齐

人类偏好优化算法哪家强?跟着高手一文学懂DPO、IPO和KTO

DPO 的原理示意图 (https://arxiv.org/abs/2305.18290)

直接偏好优化(DPO)已成为将大型语言模型(LLM)与人类或人工智能偏好相结合的一种很有前景的方案。与基于强化学习的传统对齐方法不同,DPO 将对齐公式重新定义为一个简单的损失函数,该函数可以直接在偏好数据集{(x,y_w,y_l)}上进行优化,其中 x 是 prompt,y_w,y_l 分别是偏好的和非偏好的响应。

人类偏好优化算法哪家强?跟着高手一文学懂DPO、IPO和KTO

人类偏好调整数据集的示例

DPO 简单易用的特性使得它广受欢迎,并已成功应用于 Zephyr 模型和 Intel 提出的 NeuralChat 等模型的训练当中。

DPO 的成功激发了研究人员对新的损失函数进行研究,这些研究可以归纳为以下两个主要方向:

  • 稳健性:DPO 的一个缺点是它在人类偏好数据集上很快就会过拟合。为了避免这种情况,谷歌 DeepMind 的研究人员引入了身份偏好优化(IPO),这种方法为 DPO 损失添加了一个正则,能够在不使用「提前停止」等技巧的情况下让模型收敛。

  • 对成对偏好数据进行分配:与大多数比对方法一样,DPO 需要一个成对偏好数据集人类偏好优化算法哪家强?跟着高手一文学懂DPO、IPO和KTO,能够根据一组标准(如有益性或有害性),来标记哪种模型响应更好。在实践过程中,创建这些数据是一项耗时且成本高昂的工作。ContextualAI 最近提出了一种有趣的替代方案,称为 Kahneman-Taversky 优化(KTO),它完全根据被标记为「好」或「坏」的样本(例如在聊天 UI 中看到的图标?或?)来定义损失函数。这些标签更容易获得,可以说 KTO 是一种很有前景的方法,可以不断更新在生产环境中运行的聊天模型。

与此同时,需要注意这些方法都有相应的超参数,其中最重要的是 β ,这是一个控制对使用模型的偏好程度的权重。随着这些方法已经可以通过第三方库(如 huggingface TRL)来使用,接下来自然而然的问题是「在这些方法和超参数中,哪个组合能产生最好的聊天模型?」

本文旨在通过对这三种方法进行实验分析来回答这个问题,并且还要对关键超参数逐个分析,例如 β 和训练步数,最后通过 MT-Bench 评估所得模型的性能。MT-Bench 是衡量聊天模型功能的常见基准。

源代码地址:https://github.com/huggingface/alignment-handbook

使用链接

以下是相关资料的获取地址:

  • 执行超参数扫描的代码和配置文件:https://github.com/huggingface/alignment-handbook/tree/main/recipes/pref_align_scan

  • 本文使用的数据集和模型的集合:https://huggingface.co/collections/alignment-handbook/dpo-vs-kto-vs-ipo-65a69c5f03548d61dbe29ef8

实验设置

在进行对齐实验时,需要考虑两个主要因素:需要优化的模型和数据集。为了获得更多数据,作者考虑了两个模型,OpenHermes-2.5-Mistral-7B 和 Zephyr-7B-β-sft,以及两个对齐数据集:Intel 的 orca_dpo_paries 数据集和 ultrafeedback-binarized(https://huggingface.co/datasets/HuggingFaceH4/ultrafeedback_binarized)数据集。

  • orca_dpo_paries 数据集地址:https://huggingface.co/datasets/Intel/orca_dpo_pairs

  • ultrafeedback-binarized 数据集地址:https://huggingface.co/datasets/HuggingFaceH4/ultrafeedback_binarized

在第一个实验中,作者使用了 OpenHermes-2.5-Mistral-7B,因为它是不使用任何对齐方法的条件下,最好的 7B 级聊天模型之一。然后,本文使用了 Intel 的 orca_dpo_paries 数据集,该数据集包含 13k 个 prompt,其中被选择的响应结果由 GPT-4 生成,不需要的响应由 Llama Chat 13b 生成。这也是 NeuralChat 和 NeuralHermes-2.5-Mistral-7B 使用的数据集。

由于 KTO 本身不需要成对的偏好数据,作者直接将 GPT-4 生成的响应归类为「好」标签,将 Llama Chat 13b 的响应视为「坏」标签。虽然 GPT-4 的响应可能比 Llama Chat 13b 普遍更受欢迎,但在某些情况下,Llama-Chat-13b 可能会产生更好的响应,但作者认为这只是小概率事件,可以忽略不计。

第二个实验基于 ultrafeedback-binarized 数据集,在 Zephyr-7b-β-sft 模型上进行了偏好比对。ultrafeedback-binarized 数据集包含 66k 个 prompt 以及成对的偏好与拒绝的响应。该数据集之前被用于训练原始 Zephyr 模型,该模型当时在许多自动化基准测试和人工评估方面是 7B 类模型中最好的。

实验配置

对齐手册提供了一种配置单个实验的简单方法,这些参数可以在 run_dpo.py 中配置。

人类偏好优化算法哪家强?跟着高手一文学懂DPO、IPO和KTO

作者在 Zephyr 上的实验配置也基本类似。

聊天模板由基本聊天模型中自动推断,OpenHermes-2.5 使用 ChatML,Zephyr 使用 H4。如果用户想使用自己的聊天格式,分词库现在已经启用了使用 jinja 格式字符串的用户定义聊天模板:

# Example of the Zephyr chat template"{% for message in messages %}\n {% if message ['role'] == 'user' %}\n {{ '\n' + message ['content'] + eos_token }}\n {% elif message ['role'] == 'system' %}\n {{ '\n' + message ['content'] + eos_token }}\n {% elif message ['role'] == 'assistant' %}\n {{ '\n'  + message ['content'] + eos_token }}\n {% endif %}\n {% if loop.last and add_generation_prompt %}\n {{ '' }}\n {% endif %}\n {% endfor %}"

如下可以将对话格式化:

# # You are a friendly chatbot who always responds in the style of a pirate.# # How many helicopters can a human eat in one sitting?# # Ah, me hearty matey! But yer question be a puzzler! A human cannot eat a helicopter in one sitting, as helicopters are not edible. They be made of metal, plastic, and other materials, not food!

遍历超参数

实验中,作者逐次调整 β 值,分别在 0.01、0.1、0.2、…、0.9 时,对 DPO、IPO 和 KTO 三种方法进行实验。之所以包括 0.01,是因为作者观察到一些对齐算法对这个参数特别敏感。所有实验都只训练了一个 epoch。期间其他超参数保持不变,包括随机种子。

然后,作者使用上面定义的基本配置在 hugging face 的模型上逐个进行实验。

# Define an array containing the base configs we wish to fine tuneconfigs=("zephyr" "openhermes")# Define an array of loss typesloss_types=("sigmoid" "kto_pair" "ipo")# Define an array of beta valuesbetas=("0.01" "0.1" "0.2" "0.3" "0.4" "0.5" "0.6" "0.7" "0.8" "0.9")# Outer loop for loss typesfor config in "${configs [@]}"; dofor loss_type in "${loss_types [@]}"; do# Inner loop for beta valuesfor beta in "${betas [@]}"; do# Determine the job name and model revision based on loss typejob_name="$config_${loss_type}_beta_${beta}"model_revision="${loss_type}-${beta}"# Submit the jobsbatch --job-name=${job_name} recipes/launch.slurm dpo pref_align_scan config_$config deepspeed_zero3 \\"--beta=${beta} --loss_type=${loss_type} --output_dir=data/$config-7b-align-scan-${loss_type}-beta-${beta} --hub_model_revision=${model_revision}"donedonedone

实验结果

作者使用 MT Bench 评估了所有模型,这是一个多轮对话的基准。该基准使用 GPT-4 来判断模型在八个不同类别中的表现,分别是写作、角色扮演、推理、数学、编码、提取、STEM 和人文学科。虽然存在一些不完美的地方,但 MT Bench 仍然是评估会话 LLM 的好方法。

Zephyr-7b-β-SFT

人类偏好优化算法哪家强?跟着高手一文学懂DPO、IPO和KTO

不同 β 取值情况下,Zephyr 模型的在 MT Bench 上的评分。

对于 Zephyr 模型,作者观察到 β 值取 0.01 时,模型性能最佳。这个结论在测试的所有三种算法中都是一致的,一个有趣的后续实验是在 0.0-0.2 范围内进行更细粒度的扫描。虽然 DPO 可以获得最高的 MT Bench 分数,但我们发现 KTO(成对)在除一种超参数情况外的所有设置中都能获得更好的结果。IPO 虽然有更强的理论保证,但在除一种情况外的所有情况下似乎都比基础模式更糟糕。

人类偏好优化算法哪家强?跟着高手一文学懂DPO、IPO和KTO

MT Bench 各类别中,每种算法在 Zephyr 模型上的最佳结果。

通过分解 MT bench 评估的各个类别中每个算法的最佳结果,可以确定这些模型的优缺点。可以看到,在推理、编码和数学问题上仍有很大的改进空间。

OpenHermes-7b-2.5

虽然在这个模型上对各算法的观察结果与 OpenHermes 保持一致,即 DPO>KTO>IPO,但 β 的最佳取值点不尽相同。DPO、KTO 和 IPO 的最佳 β 选择分别为 0.6、0.3 和 0.01。

人类偏好优化算法哪家强?跟着高手一文学懂DPO、IPO和KTO

OpenHermes 模型上,不同 β 的 MT Bench 得分。

OpenHermes-7b-2.5 显然是一个更强的基础模型,在人类偏好调整后,MT Bench 得分仅提高了 0.3。

人类偏好优化算法哪家强?跟着高手一文学懂DPO、IPO和KTO

MT Bench 各类别中,三种算法在 OpenHermes 模型上的最佳结果。

总结

在这篇博客中,作者强调了在执行偏好对齐时选择正确的超参数的重要性。通过实验证明了 DPO 在成对偏好设置中优于 KTO,尽管有更强的理论保证,但 IPO 的性能似乎很差。 

这些实验结果都是可复现的,代码和配置文件现在都可以在对齐手册中找到。同时还可以看到性能最好的模型及数据集。

未来展望

作者将继续探索新的人类偏好对齐算法,并评估它们的性能。至少从目前看来,DPO 是最稳健和性能最好的大语言模型对齐算法。KTO 也同样具有发展前景,因为 DPO 和 IPO 都需要成对偏好数据,而 KTO 可以应用于任何含有正负面标签的数据集。

原文链接:https://huggingface.co/blog/pref-tuning?continueFlag=480af4490eaf8a2f4544fe3658589730

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于科技周边的相关知识,也可关注golang学习网公众号。

版本声明
本文转载于:机器之心 如有侵犯,请联系study_golang@163.com删除
网易数帆品牌战略升级:“产品+工程+人才”助力企业构建数智竞争力网易数帆品牌战略升级:“产品+工程+人才”助力企业构建数智竞争力
上一篇
网易数帆品牌战略升级:“产品+工程+人才”助力企业构建数智竞争力
离开OpenAI待业的Karpathy做了个大模型新项目,Star量一日破千
下一篇
离开OpenAI待业的Karpathy做了个大模型新项目,Star量一日破千
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    542次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    508次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    497次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • 毕业宝AIGC检测:AI生成内容检测工具,助力学术诚信
    毕业宝AIGC检测
    毕业宝AIGC检测是“毕业宝”平台的AI生成内容检测工具,专为学术场景设计,帮助用户初步判断文本的原创性和AI参与度。通过与知网、维普数据库联动,提供全面检测结果,适用于学生、研究者、教育工作者及内容创作者。
    18次使用
  • AI Make Song:零门槛AI音乐创作平台,助你轻松制作个性化音乐
    AI Make Song
    AI Make Song是一款革命性的AI音乐生成平台,提供文本和歌词转音乐的双模式输入,支持多语言及商业友好版权体系。无论你是音乐爱好者、内容创作者还是广告从业者,都能在这里实现“用文字创造音乐”的梦想。平台已生成超百万首原创音乐,覆盖全球20个国家,用户满意度高达95%。
    29次使用
  • SongGenerator.io:零门槛AI音乐生成器,快速创作高质量音乐
    SongGenerator
    探索SongGenerator.io,零门槛、全免费的AI音乐生成器。无需注册,通过简单文本输入即可生成多风格音乐,适用于内容创作者、音乐爱好者和教育工作者。日均生成量超10万次,全球50国家用户信赖。
    27次使用
  •  BeArt AI换脸:免费在线工具,轻松实现照片、视频、GIF换脸
    BeArt AI换脸
    探索BeArt AI换脸工具,免费在线使用,无需下载软件,即可对照片、视频和GIF进行高质量换脸。体验快速、流畅、无水印的换脸效果,适用于娱乐创作、影视制作、广告营销等多种场景。
    30次使用
  • SEO标题协启动:AI驱动的智能对话与内容生成平台 - 提升创作效率
    协启动
    SEO摘要协启动(XieQiDong Chatbot)是由深圳协启动传媒有限公司运营的AI智能服务平台,提供多模型支持的对话服务、文档处理和图像生成工具,旨在提升用户内容创作与信息处理效率。平台支持订阅制付费,适合个人及企业用户,满足日常聊天、文案生成、学习辅助等需求。
    32次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码