ホームページ > 記事 > テクノロジー周辺機器 > 人間の好みを最適化するアルゴリズムはどれが優れていますか?マスターに従って DPO、IPO、KTO を理解する
Obwohl Methoden, die menschliche Etiketten zur relativen Qualität von modellgenerierten Inhalten sammeln und unbeaufsichtigte große Sprachmodelle verfeinern, um diese Präferenzen durch verstärkendes Lernen aus menschlichem Feedback (RLHF) zu erfüllen, der Entwicklung von Konversations-KI einen enormen Schub verliehen haben . Da RLHF jedoch ein komplexer und oft instabiler Prozess ist, ist die Forschung zur direkten Nutzung von Optimierungsfunktionen zur Abstimmung menschlicher Präferenzen mit Modellergebnissen heutzutage ein heißes Thema.
Dieser Artikel ist ein Blog über das Umarmen von Gesichtern, der die Leistung von drei heutzutage gängigen Algorithmen zur Optimierung menschlicher Präferenzen vergleicht. Die Autoren führten umfangreiche Experimente durch, um drei praktikable Methoden zur Optimierung von Sprachmodellen ohne Verstärkungslernen (oder Präferenzoptimierung) unter Verwendung verschiedener Modelle und verschiedener Hyperparameter zu evaluieren. Die drei Optimierungsmethoden sind:
Die fünf Autoren dieses Artikels .
Zu lang zum LesenIn diesem Blog bewertet der Autor drei hervorragende LLM-Ausrichtungsalgorithmen, nämlich: Direct Preference Optimization (DPO), Identity Preference Optimization (IPO) und Taversky Optimization Optimization (KTO), und es wurden Experimente an zwei hochwertigen LLMs von durchgeführt 7b Parametergröße. Diese LLMs wurden überwacht, fein abgestimmt, aber nicht an menschliche Vorlieben angepasst. Die Autoren stellten fest, dass es zwar möglich war, den Algorithmus mit der besten Leistung zu finden, einige wichtige Hyperparameter jedoch angepasst werden mussten, um die besten Ergebnisse zu erzielen.
Ausrichtung ohne Verstärkungslernen
Schematische Darstellung des DPO-Prinzips (https://arxiv.org/abs/2305.18290)
Direkte Präferenzoptimierung (DPO) ist zu einer wichtigen Sprache geworden Modell (LLM) ist ein vielversprechender Ansatz, der menschliche oder künstliche Intelligenzpräferenzen kombiniert. Im Gegensatz zu herkömmlichen Ausrichtungsmethoden, die auf Verstärkungslernen basieren, definiert DPO die Ausrichtungsformel in eine einfache Verlustfunktion um, die direkt auf den Präferenzdatensatz {(x, y_w, y_l)} optimiert werden kann, wobei x eine Eingabeaufforderung und y_w , y_l sind die bevorzugten bzw. nicht bevorzugten Antworten.
Beispiel für einen Datensatz zur Anpassung menschlicher Präferenzen
DPOs einfache und benutzerfreundliche Funktionen machen es beliebt und wurden erfolgreich beim Training von Modellen wie dem von Intel vorgeschlagenen Zephyr-Modell und NeuralChat eingesetzt . Der Erfolg von DPO hat Forscher dazu inspiriert, neue Verlustfunktionen zu untersuchen, die sich in die folgenden zwei Hauptrichtungen zusammenfassen lassen:
Robustheit: Ein Nachteil von DPO besteht darin, dass es sich schnell an menschlichen Präferenzdatensätzen verschlechtert und zu einer Überanpassung führt. Um dies zu vermeiden, führten Forscher von Google DeepMind die Identity Preference Optimization (IPO) ein, die dem DPO-Verlust einen Regularisierer hinzufügt und eine Konvergenz des Modells ohne den Einsatz von Techniken wie „Early Stopp“ ermöglicht.
Zuordnung zu paarweisen Präferenzdaten: Wie die meisten Alignment-Methoden benötigt DPO einen paarweisen Präferenzdatensatz
, um besser kennzeichnen zu können, welches Modell auf eine Reihe von Kriterien (z. B. Nützlichkeit oder Schädlichkeit) reagiert. In der Praxis ist die Erstellung dieser Daten ein zeitaufwändiges und kostspieliges Unterfangen. ContextualAI hat kürzlich eine interessante Alternative namens Kahneman-Taversky Optimization (KTO) vorgeschlagen, die vollständig auf Beispielen basiert, die als „gut“ oder „schlecht“ gekennzeichnet sind (wie die in der Chat-Benutzeroberfläche angezeigten Symbole? oder ?), um den Verlust zu definieren Funktion. Diese Tags sind einfacher zu erhalten und man kann sagen, dass KTO eine vielversprechende Methode ist, um Chat-Modelle, die in Produktionsumgebungen laufen, kontinuierlich zu aktualisieren.与此同时,需要注意这些方法都有相应的超参数,其中最重要的是 β ,这是一个控制对使用模型的偏好程度的权重。随着这些方法已经可以通过第三方库(如 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、人文科学の 8 つの異なるカテゴリでモデルのパフォーマンスを評価します。 MT Bench にはいくつかの不完全な点もありますが、それでも会話型 LLM を評価する優れた方法です。
Zephyr-7b-β-SFT
さまざまなβ値でのMT BenchでのZephyrモデルのスコア。
Zephyr モデルの場合、著者は、β 値が 0.01 のときに最高のモデル パフォーマンスが達成されることを観察しました。この結論は、テストした 3 つのアルゴリズムすべてで一貫しており、興味深い追跡実験として、0.0 ~ 0.2 の範囲でよりきめの細かいスキャンを実行することが考えられます。 DPO が最高の MT ベンチ スコアを達成しましたが、1 つのハイパーパラメーターの場合を除くすべての設定で KTO (ペアワイズ) がより良い結果を達成していることがわかりました。 IPO は、より強力な理論的保証があるにもかかわらず、1 つのケースを除いてすべてのケースで基本モデルよりも悪いようです。
MTベンチ 各カテゴリのZephyrモデルの各アルゴリズムの最良の結果。 これらのモデルの長所と短所は、MT ベンチによって評価されたさまざまなカテゴリの各アルゴリズムの最良の結果を分析することで判断できます。ご覧のとおり、推論、コーディング、数学の問題にはまだ改善の余地がたくさんあります。
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 ベンチ スコアの改善はわずか 0.3 です。
MTベンチ 各カテゴリのOpenHermesモデルの3つのアルゴリズムの最良の結果。
概要このブログ投稿で、著者は、プリファレンス調整を実行する際に適切なハイパー
パラメータを選択することの重要性を強調しました。 DPO はペアワイズ優先設定で KTO よりも優れたパフォーマンスを発揮することが実験的に証明されていますが、IPO のパフォーマンスはより強力な理論的保証にもかかわらず劣るようです。 これらの実験結果は再現可能であり、コードと設定ファイルは調整マニュアルに記載されています。最もパフォーマンスの高いモデルとデータセットを確認することもできます。
将来の展望著者は引き続き新しい人間の嗜好調整アルゴリズムを探索し、そのパフォーマンスを評価していきます。少なくとも現時点では、DPO は最も堅牢でパフォーマンスの高い大規模言語モデル アライメント アルゴリズムです。 DPO と IPO の両方がペアごとの選好データを必要とし、KTO はポジティブラベルとネガティブラベルを含む任意のデータセットに適用できるため、KTO も有望です。
元のリンク: https://huggingface.co/blog/pref-tuning? continueFlag=480af4490eaf8a2f4544fe3658589730以上が人間の好みを最適化するアルゴリズムはどれが優れていますか?マスターに従って DPO、IPO、KTO を理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。