Rumah > Peranti teknologi > AI > Algoritma pengoptimuman keutamaan manusia manakah yang lebih baik? Ikut tuan untuk memahami DPO, IPO dan KTO

Algoritma pengoptimuman keutamaan manusia manakah yang lebih baik? Ikut tuan untuk memahami DPO, IPO dan KTO

PHPz
Lepaskan: 2024-08-05 21:19:22
asal
795 orang telah melayarinya

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)

Algoritma pengoptimuman keutamaan manusia manakah yang lebih baik? Ikut tuan untuk memahami DPO, IPO dan 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

Algoritma pengoptimuman keutamaan manusia manakah yang lebih baik? Ikut tuan untuk memahami DPO, IPO dan 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.

Algoritma pengoptimuman keutamaan manusia manakah yang lebih baik? Ikut tuan untuk memahami DPO, IPO dan 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 中配置。

Algoritma pengoptimuman keutamaan manusia manakah yang lebih baik? Ikut tuan untuk memahami DPO, IPO dan 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 %}"
Salin selepas log masuk

如下可以将对话格式化:

# <|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!
Salin selepas log masuk

遍历超参数

实验中,作者逐次调整 β 值,分别在 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
Salin selepas log masuk

实验结果

Pengarang menilai semua model menggunakan MT Bench, penanda aras dialog berbilang pusingan. Penanda aras menggunakan GPT-4 untuk menilai prestasi model dalam lapan kategori berbeza: penulisan, main peranan, penaakulan, matematik, pengekodan, pengekstrakan, STEM dan kemanusiaan. Walaupun ia mempunyai beberapa ketidaksempurnaan, MT Bench masih merupakan cara yang baik untuk menilai LLM perbualan.

Zephyr-7b-β-SFT

Algoritma pengoptimuman keutamaan manusia manakah yang lebih baik? Ikut tuan untuk memahami DPO, IPO dan KTO

Markah model Zephyr pada MT Bench di bawah nilai β yang berbeza.

Bagi model Zephyr, penulis memerhatikan prestasi model terbaik dicapai apabila nilai β ialah 0.01. Kesimpulan ini konsisten merentas ketiga-tiga algoritma yang diuji, dan percubaan susulan yang menarik ialah menjalankan imbasan yang lebih halus dalam julat 0.0-0.2. Walaupun DPO mencapai skor MT Bench tertinggi, kami mendapati bahawa KTO (berpasangan) mencapai hasil yang lebih baik dalam semua tetapan kecuali satu kes hiperparameter. IPO, walaupun jaminan teorinya lebih kukuh, nampaknya lebih buruk daripada model asas dalam semua kecuali satu kes.

Algoritma pengoptimuman keutamaan manusia manakah yang lebih baik? Ikut tuan untuk memahami DPO, IPO dan KTO

MT Bench Keputusan terbaik setiap algoritma pada model Zephyr dalam setiap kategori. Kekuatan dan kelemahan model ini boleh ditentukan dengan memecahkan keputusan terbaik setiap algoritma dalam pelbagai kategori yang dinilai oleh bangku MT. Seperti yang dapat dilihat, masih terdapat banyak ruang untuk penambahbaikan dalam penaakulan, pengekodan dan soalan matematik.

OpenHermes-7b-2.5

Walaupun hasil pemerhatian setiap algoritma pada model ini konsisten dengan OpenHermes, iaitu DPO>KTO>IPO, titik nilai optimum β adalah berbeza. Pilihan β optimum untuk DPO, KTO, dan IPO ialah 0.6, 0.3, dan 0.01, masing-masing.

Algoritma pengoptimuman keutamaan manusia manakah yang lebih baik? Ikut tuan untuk memahami DPO, IPO dan KTO

skor MT Bangku untuk β berbeza pada model OpenHermes. OpenHermes-7b-2.5 jelas merupakan model asas yang lebih kukuh, dengan hanya peningkatan 0.3 dalam skor MT Bench selepas pelarasan keutamaan manusia.

Algoritma pengoptimuman keutamaan manusia manakah yang lebih baik? Ikut tuan untuk memahami DPO, IPO dan KTO

MT Bench Keputusan terbaik daripada tiga algoritma pada model OpenHermes dalam setiap kategori.

Ringkasan

Dalam catatan blog ini, penulis menekankan kepentingan memilih parameter hiper

yang betul semasa melakukan penjajaran keutamaan. DPO terbukti secara eksperimen mengatasi prestasi KTO dalam tetapan keutamaan berpasangan, walaupun prestasi IPO nampaknya lemah walaupun terdapat jaminan teori yang lebih kukuh. Hasil percubaan ini boleh dihasilkan semula dan kod serta fail konfigurasi kini boleh didapati dalam manual penjajaran. Anda juga boleh melihat model dan set data yang berprestasi terbaik.

Pandangan Masa Depan

Pengarang akan terus meneroka algoritma penjajaran keutamaan manusia baharu dan menilai prestasinya. Sekurang-kurangnya buat masa ini, DPO ialah algoritma penjajaran model bahasa besar yang paling teguh dan berprestasi terbaik. KTO juga menjanjikan kerana kedua-dua DPO dan IPO memerlukan data keutamaan berpasangan, dan KTO boleh digunakan pada mana-mana set data yang mengandungi label positif dan negatif.

Pautan asal: https://huggingface.co/blog/pref-tuning?continueFlag=480af4490eaf8a2f4544fe3658589730

Atas ialah kandungan terperinci Algoritma pengoptimuman keutamaan manusia manakah yang lebih baik? Ikut tuan untuk memahami DPO, IPO dan KTO. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:jiqizhixin.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan