搜索
首页科技周边人工智能人类偏好优化算法哪家强?跟着高手一文学懂DPO、IPO和KTO
人类偏好优化算法哪家强?跟着高手一文学懂DPO、IPO和KTOAug 05, 2024 pm 09:19 PM
工程身份偏好优化直接偏好优化

尽管收集人类对模型生成内容的相对质量的标签,并通过强化学习从人类反馈(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 [&#39;role&#39;] == &#39;user&#39; %}\n {{ &#39;<|user|>\n&#39; + message [&#39;content&#39;] + eos_token }}\n {% elif message [&#39;role&#39;] == &#39;system&#39; %}\n {{ &#39;<|system|>\n&#39; + message [&#39;content&#39;] + eos_token }}\n {% elif message [&#39;role&#39;] == &#39;assistant&#39; %}\n {{ &#39;<|assistant|>\n&#39;  + message [&#39;content&#39;] + eos_token }}\n {% endif %}\n {% if loop.last and add_generation_prompt %}\n {{ &#39;<|assistant|>&#39; }}\n {% endif %}\n {% endfor %}"

如下可以将对话格式化:

# <|system|># You are a friendly chatbot who always responds in the style of a pirate.</s># <|user|># How many helicopters can a human eat in one sitting?</s># <|assistant|># 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

以上是人类偏好优化算法哪家强?跟着高手一文学懂DPO、IPO和KTO的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
4090生成器:与A100平台相比,token生成速度仅低于18%,上交推理引擎赢得热议4090生成器:与A100平台相比,token生成速度仅低于18%,上交推理引擎赢得热议Dec 21, 2023 pm 03:25 PM

PowerInfer提高了在消费级硬件上运行AI的效率上海交大团队最新推出了超强CPU/GPULLM高速推理引擎PowerInfer。PowerInfer和llama.cpp都在相同的硬件上运行,并充分利用了RTX4090上的VRAM。这个推理引擎速度有多快?在单个NVIDIARTX4090GPU上运行LLM,PowerInfer的平均token生成速率为13.20tokens/s,峰值为29.08tokens/s,仅比顶级服务器A100GPU低18%,可适用于各种LLM。PowerInfer与

思维链CoT进化成思维图GoT,比思维树更优秀的提示工程技术诞生了思维链CoT进化成思维图GoT,比思维树更优秀的提示工程技术诞生了Sep 05, 2023 pm 05:53 PM

要让大型语言模型(LLM)充分发挥其能力,有效的prompt设计方案是必不可少的,为此甚至出现了promptengineering(提示工程)这一新兴领域。在各种prompt设计方案中,思维链(CoT)凭借其强大的推理能力吸引了许多研究者和用户的眼球,基于其改进的CoT-SC以及更进一步的思维树(ToT)也收获了大量关注。近日,苏黎世联邦理工学院、Cledar和华沙理工大学的一个研究团队提出了更进一步的想法:思维图(GoT)。让思维从链到树到图,为LLM构建推理过程的能力不断得到提升,研究者也通

复旦NLP团队发布80页大模型Agent综述,一文纵览AI智能体的现状与未来复旦NLP团队发布80页大模型Agent综述,一文纵览AI智能体的现状与未来Sep 23, 2023 am 09:01 AM

近期,复旦大学自然语言处理团队(FudanNLP)推出LLM-basedAgents综述论文,全文长达86页,共有600余篇参考文献!作者们从AIAgent的历史出发,全面梳理了基于大型语言模型的智能代理现状,包括:LLM-basedAgent的背景、构成、应用场景、以及备受关注的代理社会。同时,作者们探讨了Agent相关的前瞻开放问题,对于相关领域的未来发展趋势具有重要价值。论文链接:https://arxiv.org/pdf/2309.07864.pdfLLM-basedAgent论文列表:

FATE 2.0发布:实现异构联邦学习系统互联FATE 2.0发布:实现异构联邦学习系统互联Jan 16, 2024 am 11:48 AM

FATE2.0全面升级,推动隐私计算联邦学习规模化应用FATE开源平台宣布发布FATE2.0版本,作为全球领先的联邦学习工业级开源框架。此次更新实现了联邦异构系统之间的互联互通,持续增强了隐私计算平台的互联互通能力。这一进展进一步推动了联邦学习与隐私计算规模化应用的发展。FATE2.0以全面互通为设计理念,采用开源方式对应用层、调度、通信、异构计算(算法)四个层面进行改造,实现了系统与系统、系统与算法、算法与算法之间异构互通的能力。FATE2.0的设计兼容了北京金融科技产业联盟的《金融业隐私计算

吞吐量提升5倍,联合设计后端系统和前端语言的LLM接口来了吞吐量提升5倍,联合设计后端系统和前端语言的LLM接口来了Mar 01, 2024 pm 10:55 PM

大型语言模型(LLM)被广泛应用于需要多个链式生成调用、高级提示技术、控制流以及与外部环境交互的复杂任务。尽管如此,目前用于编程和执行这些应用程序的高效系统却存在明显的不足之处。研究人员最近提出了一种新的结构化生成语言(StructuredGenerationLanguage),称为SGLang,旨在改进与LLM的交互性。通过整合后端运行时系统和前端语言的设计,SGLang使得LLM的性能更高、更易控制。这项研究也获得了机器学习领域的知名学者、CMU助理教授陈天奇的转发。总的来说,SGLang的

大模型也有小偷?为保护你的参数,上交大给大模型制作「人类可读指纹」大模型也有小偷?为保护你的参数,上交大给大模型制作「人类可读指纹」Feb 02, 2024 pm 09:33 PM

将不同的基模型象征为不同品种的狗,其中相同的「狗形指纹」表明它们源自同一个基模型。大模型的预训练需要耗费大量的计算资源和数据,因此预训练模型的参数成为各大机构重点保护的核心竞争力和资产。然而,与传统软件知识产权保护不同,对预训练模型参数盗用的判断存在以下两个新问题:1)预训练模型的参数,尤其是千亿级别模型的参数,通常不会开源。预训练模型的输出和参数会受到后续处理步骤(如SFT、RLHF、continuepretraining等)的影响,这使得判断一个模型是否基于另一个现有模型微调得来变得困难。无

220亿晶体管,IBM机器学习专用处理器NorthPole,能效25倍提升220亿晶体管,IBM机器学习专用处理器NorthPole,能效25倍提升Oct 23, 2023 pm 03:13 PM

IBM再度发力。随着AI系统的飞速发展,其能源需求也在不断增加。训练新系统需要大量的数据集和处理器时间,因此能耗极高。在某些情况下,执行一些训练好的系统,智能手机就能轻松胜任。但是,执行的次数太多,能耗也会增加。幸运的是,有很多方法可以降低后者的能耗。IBM和英特尔已经试验过模仿实际神经元行为设计的处理器。IBM还测试了在相变存储器中执行神经网络计算,以避免重复访问RAM。现在,IBM又推出了另一种方法。该公司的新型NorthPole处理器综合了上述方法的一些理念,并将其与一种非常精简的计算运行

何恺明和谢赛宁团队成功跟随解构扩散模型探索,最终创造出备受赞誉的去噪自编码器何恺明和谢赛宁团队成功跟随解构扩散模型探索,最终创造出备受赞誉的去噪自编码器Jan 29, 2024 pm 02:15 PM

去噪扩散模型(DDM)是目前广泛应用于图像生成的一种方法。最近,XinleiChen、ZhuangLiu、谢赛宁和何恺明四人团队对DDM进行了解构研究。通过逐步剥离其组件,他们发现DDM的生成能力逐渐下降,但表征学习能力仍然保持一定水平。这说明DDM中的某些组件对于表征学习的作用可能并不重要。针对当前计算机视觉等领域的生成模型,去噪被认为是一种核心方法。这类方法通常被称为去噪扩散模型(DDM),通过学习一个去噪自动编码器(DAE),能够通过扩散过程有效地消除多个层级的噪声。这些方法实现了出色的图

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具