人類偏好優化演算法哪家強?跟著高手一文學懂DPO、IPO和KTO
儘管收集人類對模型生成內容的相對質量的標籤,並通過強化學習從人類反饋(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)
太長不看版
在這篇部落格中,作者對三種優秀的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 簡單易用的特性使得它廣受歡迎,並已成功應用於 Zephyr 模型和 Intel 提出的 NeuralChat 等模型的訓練當中。
穩健性: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 中配置。
作者在 Zephyr 上的实验配置也基本类似。
聊天模板由基本聊天模型中自动推断,OpenHermes-2.5 使用 ChatML,Zephyr 使用 H4。如果用户想使用自己的聊天格式,分词库现在已经启用了使用 jinja 格式字符串的用户定义聊天模板:
# Example of the Zephyr chat template"{% for message in messages %}\n {% if message ['role'] == 'user' %}\n {{ '<|user|>\n' + message ['content'] + eos_token }}\n {% elif message ['role'] == 'system' %}\n {{ '<|system|>\n' + message ['content'] + eos_token }}\n {% elif message ['role'] == 'assistant' %}\n {{ '<|assistant|>\n' + message ['content'] + eos_token }}\n {% endif %}\n {% if loop.last and add_generation_prompt %}\n {{ '<|assistant|>' }}\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
不同 β 取值情況下,Zephyr 模型的在 MT Bench 上的評分。
對於 Zephyr 模型,作者觀察到 β 值取 0.01 時,模型表現最佳。這個結論在測試的所有三種演算法中都是一致的,一個有趣的後續實驗是在 0.0-0.2 範圍內進行更細粒度的掃描。雖然 DPO 可以獲得最高的 MT Bench 分數,但我們發現 KTO(成對)在除一種超參數情況外的所有設定中都能獲得更好的結果。 IPO 雖然有更強的理論保證,但在除一種情況外的所有情況下似乎都比基礎模式更糟。
MT Bench 各類別中,每種演算法在 Zephyr 模型上的最佳結果。
透過分解 MT bench 評估的各個類別中每個演算法的最佳結果,可以確定這些模型的優缺點。可以看到,在推理、編碼和數學問題上仍有很大的改進空間。
OpenHermes-7b-2.5
雖然在這個模型上對各演算法的觀察結果與 OpenHermes 保持一致,即 DPO>KTO>IPO,但 β 的最佳取值點不盡相同。 DPO、KTO 和 IPO 的最佳 β 選擇分別為 0.6、0.3 和 0.01。
OpenHermes 模型上,不同 β 的 MT Bench 得分。
OpenHermes-7b-2.5 顯然是一個更強的基礎模型,在人類偏好調整後,MT Bench 得分僅提高了 0.3。
MT Bench 各類別中,三種演算法在 OpenHermes 模型上的最佳結果。
總結
在這篇部落格中,作者強調了在執行偏好對齊時選擇正確的超參數的重要性。透過實驗證明了 DPO 在成對偏好設定中優於 KTO,儘管有更強的理論保證,但 IPO 的表現似乎很差。
這些實驗結果都是可重複的,程式碼和檔案現在都可以在對齊手冊中找到。同時還可以看到表現最好的模型及資料集。
未來展望
作者將繼續探索新的人類偏好對齊演算法,並評估它們的性能。至少從目前看來,DPO 是最穩健且效能最好的大語言模型對齊演算法。 KTO 也同樣具有發展前景,因為 DPO 和 IPO 都需要成對偏好數據,而 KTO 可以應用於任何含有正負面標籤的資料集。
原文連結:https://huggingface.co/blog/pref-tuning?continueFlag=480af4490eaf8a2f4544fe3658589730
以上是人類偏好優化演算法哪家強?跟著高手一文學懂DPO、IPO和KTO的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

同樣是圖生視頻,PaintsUndo走出了不一樣的路線。 ControlNet作者LvminZhang又開始整活了!這次瞄準繪畫領域。新項目PaintsUndo剛上線不久,就收穫1.4kstar(還在瘋狂漲)。項目地址:https://github.com/lllyasviel/Paints-UNDO透過這個項目,用戶輸入一張靜態圖像,PaintsUndo就能自動幫你生成整個繪畫的全過程視頻,從線稿到成品都有跡可循。繪製過程,線條變化多端甚是神奇,最終視頻結果和原始圖像非常相似:我們再來看一個完整的繪

AIxiv專欄是本站發布學術、技術內容的欄位。過去數年,本站AIxiv專欄接收通報了2,000多篇內容,涵蓋全球各大專院校與企業的頂尖實驗室,有效促進了學術交流與傳播。如果您有優秀的工作想要分享,歡迎投稿或聯絡報道。投稿信箱:liyazhou@jiqizhixin.com;zhaoyunfeng@jiqizhixin.com這篇論文的作者皆來自伊利諾大學香檳分校(UIUC)張令明老師團隊,包括:StevenXia,四年級博士生,研究方向是基於AI大模型的自動代碼修復;鄧茵琳,四年級博士生,研究方

AIxiv專欄是本站發布學術、技術內容的欄位。過去數年,本站AIxiv專欄接收通報了2,000多篇內容,涵蓋全球各大專院校與企業的頂尖實驗室,有效促進了學術交流與傳播。如果您有優秀的工作想要分享,歡迎投稿或聯絡報道。投稿信箱:liyazhou@jiqizhixin.com;zhaoyunfeng@jiqizhixin.com在人工智慧領域的發展過程中,對大語言模型(LLM)的控制與指導始終是核心挑戰之一,旨在確保這些模型既強大又安全地服務人類社會。早期的努力集中在透過人類回饋的強化學習方法(RL

如果AI模型給的答案一點也看不懂,你敢用嗎?隨著機器學習系統在更重要的領域中得到應用,證明為什麼我們可以信任它們的輸出,並明確何時不應信任它們,變得越來越重要。獲得對複雜系統輸出結果信任的一個可行方法是,要求系統對其輸出產生一種解釋,這種解釋對人類或另一個受信任的系統來說是可讀的,即可以完全理解以至於任何可能的錯誤都可以被發現。例如,為了建立對司法系統的信任,我們要求法院提供清晰易讀的書面意見,解釋並支持其決策。對於大型語言模型來說,我們也可以採用類似的方法。不過,在採用這種方法時,確保語言模型生

乾杯!當論文討論細緻到詞句,是什麼體驗?最近,史丹佛大學的學生針對arXiv論文創建了一個開放討論論壇——alphaXiv,可以直接在任何arXiv論文之上發布問題和評論。網站連結:https://alphaxiv.org/其實不需要專門訪問這個網站,只需將任何URL中的arXiv更改為alphaXiv就可以直接在alphaXiv論壇上打開相應論文:可以精準定位到論文中的段落、句子:右側討論區,使用者可以發表問題詢問作者論文想法、細節,例如:也可以針對論文內容發表評論,例如:「給出至

最近,被稱為千禧年七大難題之一的黎曼猜想迎來了新突破。黎曼猜想是數學中一個非常重要的未解決問題,與素數分佈的精確性質有關(素數是那些只能被1和自身整除的數字,它們在數論中扮演著基礎性的角色)。在當今的數學文獻中,已有超過一千個數學命題以黎曼猜想(或其推廣形式)的成立為前提。也就是說,黎曼猜想及其推廣形式一旦被證明,這一千多個命題將被確立為定理,對數學領域產生深遠的影響;而如果黎曼猜想被證明是錯誤的,那麼這些命題中的一部分也將隨之失去其有效性。新的突破來自MIT數學教授LarryGuth和牛津大學

AIxiv专栏是本站发布学术、技术内容的栏目。过去数年,本站AIxiv专栏接收报道了2000多篇内容,覆盖全球各大高校与企业的顶级实验室,有效促进了学术交流与传播。如果您有优秀的工作想要分享,欢迎投稿或者联系报道。投稿邮箱:liyazhou@jiqizhixin.com;zhaoyunfeng@jiqizhixin.com。引言近年来,多模态大型语言模型(MLLM)在各个领域的应用取得了显著的成功。然而,作为许多下游任务的基础模型,当前的MLLM由众所周知的Transformer网络构成,这种网

語言模型真的能用於時序預測嗎?根據貝特里奇頭條定律(任何以問號結尾的新聞標題,都能夠用「不」來回答),答案應該是否定的。事實似乎也果然如此:強大如斯的LLM並不能很好地處理時序資料。時序,即時間序列,顧名思義,是指一組依照時間發生先後順序排列的資料點序列。在許多領域,時序分析都很關鍵,包括疾病傳播預測、零售分析、醫療和金融。在時序分析領域,近期不少研究者都在研究如何使用大型語言模型(LLM)來分類、預測和偵測時間序列中的異常。這些論文假設擅長處理文本中順序依賴關係的語言模型也能泛化用於時間序
