搜尋
首頁科技週邊人工智慧人類偏好優化演算法哪家強?跟著高手一文學懂DPO、IPO和KTO

人類偏好優化演算法哪家強?跟著高手一文學懂DPO、IPO和KTO

Aug 05, 2024 pm 09:19 PM
工程身份偏好優化直接偏好優化

儘管收集人類對模型生成內容的相對質量的標籤,並通過強化學習從人類反饋(RLHF)來微調無監督大語言模型,使其符合這些偏好的方法極大地推動了對話式人工智能的發展。但由於 RLHF 是一個複雜且常常不穩定的過程,關於直接使用最佳化函數將人類的偏好和模型的結果進行對齊的研究成為時下的熱點問題。

本文是 hugging face 上的一篇博客,針對時下常見的三種人類偏好優化算法進行了性能比較。作者進行了大量的實驗,旨在透過不同的模型和不同的超參數,對無需強化學習(或偏好調整)就能調整語言模型的三種可行方法進行評估。這三種最佳化方法分別是:

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

  • 身份偏好優化( ://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 的原理示意圖(https://arxiv.org/abs/2305.18290)

LLM)與人類或人工智慧偏好相結合的一種很有前景的方案。與基於強化學習的傳統對齊方法不同,DPO 將對齊公式重新定義為一個簡單的損失函數,該函數可以直接在偏好資料集{(x,y_w,y_l)}上進行最佳化,其中x 是prompt,y_w ,y_l 分別是偏好的和非偏好的回應。 人類偏好優化演算法哪家強?跟著高手一文學懂DPO、IPO和KTO

人類偏好調整資料集的範例

DPO 簡單易用的特性使得它廣受歡迎,並已成功應用於 Zephyr 模型和 Intel 提出的 NeuralChat 等模型的訓練當中。 人類偏好優化演算法哪家強?跟著高手一文學懂DPO、IPO和KTO

DPO 的成功激發了研究人員對新的損失函數進行研究,這些研究可以歸納為以下兩個主要方向:

穩健性:DPO 的一個缺點是它在人類偏好數據集上很快就會過擬合。為了避免這種情況,Google DeepMind 的研究人員引入了身份偏好優化(IPO),這種方法為 DPO 損失添加了一個正則,能夠在不使用「提前停止」等技巧的情況下讓模型收斂。

對成對偏好資料進行分配:與大多數比對方法一樣,DPO 需要一個成對偏好資料集

,能夠根據一組標準(如有益性或有害性),來標記哪種模型響應更好。在實踐過程中,建立這些數據是一項耗時且成本高昂的工作。 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
了解SQL在哪裡子句了解SQL在哪裡子句Apr 11, 2025 am 09:07 AM

SQL其中條款:綜合指南 SQL中的子句是SQL語句的基本組成部分,用於過濾記錄和從數據庫中檢索特定數據。 想像一個龐大的客戶數據庫 - Where子句允許您固定

最新的最佳及時工程技術的年度彙編最新的最佳及時工程技術的年度彙編Apr 10, 2025 am 11:22 AM

對於那些可能是我專欄新手的人,我廣泛探討了AI的最新進展,包括體現AI,AI推理,AI中的高科技突破,及時的工程,AI培訓,AI,AI RE RE等主題

歐洲的AI大陸行動計劃:Gigafactories,Data Labs和Green AI歐洲的AI大陸行動計劃:Gigafactories,Data Labs和Green AIApr 10, 2025 am 11:21 AM

歐洲雄心勃勃的AI大陸行動計劃旨在將歐盟確立為人工智能的全球領導者。 一個關鍵要素是建立了AI Gigafactories網絡,每個網絡都有大約100,000個高級AI芯片 - 2倍的自動化合物的四倍

微軟的直接代理商故事是否足以創造更多的粉絲?微軟的直接代理商故事是否足以創造更多的粉絲?Apr 10, 2025 am 11:20 AM

微軟對AI代理申請的統一方法:企業的明顯勝利 微軟最近公告的新AI代理能力清晰而統一的演講給人留下了深刻的印象。 與許多技術公告陷入困境不同

向員工出售AI策略:Shopify首席執行官的宣言向員工出售AI策略:Shopify首席執行官的宣言Apr 10, 2025 am 11:19 AM

Shopify首席執行官TobiLütke最近的備忘錄大膽地宣布AI對每位員工的基本期望是公司內部的重大文化轉變。 這不是短暫的趨勢。這是整合到P中的新操作範式

IBM啟動具有完整AI集成的Z17大型機IBM啟動具有完整AI集成的Z17大型機Apr 10, 2025 am 11:18 AM

IBM的Z17大型機:集成AI用於增強業務運營 上個月,在IBM的紐約總部,我收到了Z17功能的預覽。 以Z16的成功為基礎(於2022年推出並證明持續的收入增長

5 Chatgpt提示取決於別人並完全相信自己5 Chatgpt提示取決於別人並完全相信自己Apr 10, 2025 am 11:17 AM

解鎖不可動搖的信心,消除了對外部驗證的需求! 這五個CHATGPT提示將指導您完全自力更生和自我感知的變革轉變。 只需複制,粘貼和自定義包圍

AI與您的思想危險相似AI與您的思想危險相似Apr 10, 2025 am 11:16 AM

人工智能安全與研究公司 Anthropic 最近的一項[研究]開始揭示這些複雜過程的真相,展現出一種令人不安地與我們自身認知領域相似的複雜性。自然智能和人工智能可能比我們想像的更相似。 窺探內部:Anthropic 可解釋性研究 Anthropic 進行的研究的新發現代表了機制可解釋性領域的重大進展,該領域旨在反向工程 AI 的內部計算——不僅僅觀察 AI 做了什麼,而是理解它在人工神經元層面如何做到這一點。 想像一下,試圖通過繪製當有人看到特定物體或思考特定想法時哪些神經元會放電來理解大腦。 A

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.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。