Maison  >  Article  >  Périphériques technologiques  >  Quel algorithme d’optimisation des préférences humaines est le meilleur ? Suivez le maître pour comprendre DPO, IPO et KTO

Quel algorithme d’optimisation des préférences humaines est le meilleur ? Suivez le maître pour comprendre DPO, IPO et KTO

PHPz
PHPzoriginal
2024-08-05 21:19:22639parcourir

Walaupun kaedah yang mengumpul label manusia pada kualiti relatif kandungan yang dihasilkan model dan memperhalusi model bahasa besar yang tidak diawasi untuk memadankan pilihan ini melalui pembelajaran pengukuhan daripada maklum balas manusia (RLHF) telah memberikan rangsangan besar kepada pembangunan AI perbualan . Walau bagaimanapun, kerana RLHF adalah proses yang kompleks dan selalunya tidak stabil, penyelidikan mengenai penggunaan terus fungsi pengoptimuman untuk menyelaraskan pilihan manusia dengan hasil model telah menjadi isu hangat pada masa kini.

Artikel ini ialah blog mengenai muka berpeluk, yang membandingkan prestasi tiga algoritma pengoptimuman keutamaan manusia biasa pada masa kini. Penulis menjalankan eksperimen yang meluas bertujuan untuk menilai tiga kaedah yang boleh dilaksanakan untuk menala model bahasa tanpa pembelajaran pengukuhan (atau penalaan keutamaan), menggunakan model yang berbeza dan hiperparameter yang berbeza. Tiga kaedah pengoptimuman ialah:

    Pengoptimuman Keutamaan Langsung (DPO) (https://huggingface.co/papers/2305.18290)
  • Pengoptimuman Keutamaan Identiti (IPO) (https://papers/face.co 2310.12036)
  • Kahneman-Taversky Optimization (KTO) (https://github.com/ContextualAI/HALOs)

Quel algorithme d’optimisation des préférences humaines est le meilleur ? Suivez le maître pour comprendre DPO, IPO et KTO

pengarang artikel ini

Terlalu panjang untuk dibaca

Dalam blog ini, penulis menilai tiga algoritma penjajaran LLM yang sangat baik, iaitu: pengoptimuman keutamaan langsung (DPO), pengoptimuman keutamaan identiti (IPO) dan pengoptimuman Taversky Optimization (KTO), dan eksperimen telah dilakukan pada dua LLM berkualiti tinggi saiz parameter 7b. LLM ini diawasi dengan teliti tetapi tidak dilaraskan untuk pilihan manusia. Penulis mendapati bahawa walaupun mungkin untuk mencari algoritma yang berprestasi terbaik, beberapa hiperparameter utama perlu ditala untuk mendapatkan hasil yang terbaik.

Penjajaran tanpa pembelajaran pengukuhan

Quel algorithme d’optimisation des préférences humaines est le meilleur ? Suivez le maître pour comprendre DPO, IPO et KTO

Gambarajah skematik prinsip DPO (https://arxiv.org/abs/2305.18290)

bahasa optimasi DP telah menjadi pengoptimuman utama model ( LLM) ialah pendekatan yang menjanjikan yang menggabungkan keutamaan manusia atau kecerdasan buatan. Berbeza daripada kaedah penjajaran tradisional berdasarkan pembelajaran pengukuhan, DPO mentakrifkan semula formula penjajaran kepada fungsi kehilangan mudah, yang boleh dioptimumkan secara langsung pada set data keutamaan {(x, y_w, y_l)}, dengan x adalah gesaan, y_w , y_l adalah jawapan pilihan dan bukan pilihan masing-masing.

Quel algorithme d’optimisation des préférences humaines est le meilleur ? Suivez le maître pour comprendre DPO, IPO et KTO

Contoh set data pelarasan keutamaan manusiaCiri DPO yang ringkas dan mudah digunakan menjadikannya popular dan telah berjaya digunakan dalam latihan model seperti model yang dicadangkan oleh Intel Zephyr dan NeuralChat .

Kejayaan DPO telah memberi inspirasi kepada penyelidik untuk mengkaji fungsi kehilangan baharu, yang boleh diringkaskan kepada dua arah utama berikut:

    Keteguhan: Satu kelemahan DPO ialah ia cepat merosot pada set data keutamaan manusia Akan menjadi terlalu sesuai. Untuk mengelakkan perkara ini, penyelidik di Google DeepMind memperkenalkan pengoptimuman keutamaan identiti (IPO), yang menambah penyelaras kepada kehilangan DPO dan membolehkan model itu menumpu tanpa menggunakan teknik seperti "berhenti awal". . Dalam amalan, mencipta data ini memerlukan usaha yang memakan masa dan kos yang tinggi. ContextualAI baru-baru ini mencadangkan alternatif menarik yang dipanggil Kahneman-Taversky Optimization (KTO), yang berdasarkan sepenuhnya pada sampel yang dilabelkan sebagai "baik" atau "buruk" (seperti ikon yang dilihat dalam UI sembang? atau ?) untuk menentukan kehilangan fungsi. Teg ini lebih mudah diperoleh, dan boleh dikatakan bahawa KTO ialah kaedah yang menjanjikan untuk terus mengemas kini model sembang yang berjalan dalam persekitaran pengeluaran.

与此同时,需要注意这些方法都有相应的超参数,其中最重要的是 β ,这是一个控制对使用模型的偏好程度的权重。随着这些方法已经可以通过第三方库(如 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 中配置。

Quel algorithme d’optimisation des préférences humaines est le meilleur ? Suivez le maître pour comprendre DPO, IPO et 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

实验结果

Les auteurs ont évalué tous les modèles à l'aide de MT Bench, un benchmark de dialogue multi-tours. Le benchmark utilise GPT-4 pour évaluer les performances du modèle dans huit catégories différentes : écriture, jeu de rôle, raisonnement, mathématiques, codage, extraction, STEM et sciences humaines. Bien qu'il présente quelques imperfections, MT Bench reste un bon moyen d'évaluer le LLM conversationnel.

Zephyr-7b-β-SFT

Quel algorithme d’optimisation des préférences humaines est le meilleur ? Suivez le maître pour comprendre DPO, IPO et KTO

Scores du modèle Zephyr sur MT Bench sous différentes valeurs β.

Pour le modèle Zephyr, les auteurs ont observé que les meilleures performances du modèle étaient obtenues lorsque la valeur β était de 0,01. Cette conclusion est cohérente pour les trois algorithmes testés, et une expérience de suivi intéressante consisterait à effectuer une analyse plus fine dans la plage 0,0-0,2. Alors que DPO obtient les scores MT Bench les plus élevés, nous constatons que KTO (par paire) obtient de meilleurs résultats dans tous les paramètres, à l'exception d'un cas d'hyperparamètres. Les introductions en bourse, malgré leurs garanties théoriques plus solides, semblent être pires que le modèle de base dans tous les cas sauf un.

Quel algorithme d’optimisation des préférences humaines est le meilleur ? Suivez le maître pour comprendre DPO, IPO et KTO

MT Bench Les meilleurs résultats de chaque algorithme sur le modèle Zephyr dans chaque catégorie. Les forces et les faiblesses de ces modèles peuvent être déterminées en décomposant les meilleurs résultats de chaque algorithme dans différentes catégories évaluées par le banc MT. Comme on peut le constater, il reste encore beaucoup à faire en matière de raisonnement, de codage et de questions mathématiques.

OpenHermes-7b-2.5

Bien que les résultats observés de chaque algorithme sur ce modèle soient cohérents avec OpenHermes, c'est-à-dire DPO>KTO>IPO, les points de valeur optimale de β sont différents. Les choix β optimaux pour DPO, KTO et IPO sont respectivement 0,6, 0,3 et 0,01.

Quel algorithme d’optimisation des préférences humaines est le meilleur ? Suivez le maître pour comprendre DPO, IPO et KTO

MT Bench obtient des scores pour différents β sur le modèle OpenHermes. OpenHermes-7b-2.5 est clairement un modèle de base plus solide, avec seulement une amélioration de 0,3 du score MT Bench après ajustement des préférences humaines.

Quel algorithme d’optimisation des préférences humaines est le meilleur ? Suivez le maître pour comprendre DPO, IPO et KTO

MT Bench Les meilleurs résultats des trois algorithmes sur le modèle OpenHermes dans chaque catégorie.

Résumé

Dans cet article de blog, l'auteur a souligné l'importance de choisir les bons hyper

paramètres

lors de l'alignement des préférences. Il a été prouvé expérimentalement que le DPO surpasse le KTO dans les paramètres de préférence par paire, bien que les performances de l'introduction en bourse semblent médiocres malgré des garanties théoriques plus solides. Ces résultats expérimentaux sont reproductibles, et le code et les fichiers de configuration se trouvent désormais dans le manuel d'alignement. Vous pouvez également voir les modèles et ensembles de données les plus performants.

Future Outlook

L'auteur continuera d'explorer de nouveaux algorithmes d'alignement des préférences humaines et d'évaluer leurs performances. Au moins pour l’instant, DPO est l’algorithme d’alignement de modèles de langage à grande échelle le plus robuste et le plus performant. KTO est également prometteur car DPO et IPO nécessitent des données de préférence par paire, et KTO peut être appliqué à n'importe quel ensemble de données contenant des étiquettes positives et négatives.

Lien original : https://huggingface.co/blog/pref-tuning?continueFlag=480af4490eaf8a2f4544fe3658589730

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn