Rumah >Peranti teknologi >AI >Jika mereka tidak sejajar, prestasi akan meletup? 13 bilion model menghancurkan 65 bilion, Kedudukan model besar Hugging Face dikeluarkan

Jika mereka tidak sejajar, prestasi akan meletup? 13 bilion model menghancurkan 65 bilion, Kedudukan model besar Hugging Face dikeluarkan

王林
王林ke hadapan
2023-06-10 15:31:101009semak imbas

Kami tahu bahawa kebanyakan model mempunyai beberapa jenis penjajaran terbenam.

Hanya untuk menamakan beberapa contoh: Alpaca, Vicuna, WizardLM, MPT-7B-Chat, Wizard-Vicuna, GPT4-X-Vicuna, dsb.

Secara umumnya, penjajaran pastinya satu perkara yang baik. Tujuannya adalah untuk mengelakkan model daripada melakukan perkara yang tidak baik - seperti menghasilkan sesuatu yang menyalahi undang-undang.

Tetapi dari mana datangnya penjajaran?

Sebabnya - model ini dilatih menggunakan data yang dijana oleh ChatGPT, yang dengan sendirinya diselaraskan oleh pasukan di OpenAI.

Memandangkan proses ini tidak terbuka, kami tidak tahu bagaimana OpenAI melaksanakan penjajaran.

Tetapi secara keseluruhan, kita dapat melihat bahawa ChatGPT adalah selaras dengan budaya arus perdana Amerika, mematuhi undang-undang Amerika dan mempunyai berat sebelah tertentu yang tidak dapat dielakkan.

Secara logiknya, penjajaran adalah perkara yang tidak bercela. Jadi patutkah semua model diselaraskan?

Sejajarkan? Tidak semestinya sesuatu yang baik

Situasinya tidak semudah itu.

Baru-baru ini, HuggingFace mengeluarkan ranking LLM sumber terbuka.

Anda boleh lihat sekilas pandang bahawa model 65B tidak boleh bersaing dengan model tidak sejajar 13B.

不对齐,反而性能爆表?130亿模型碾压650亿,Hugging Face大模型排行榜发布

Daripada keputusan, Wizard-Vicuna-13B-Uncensored-HF boleh digabungkan dengan LLM 65B, 40B dan 30B Bandingkan terus pada julat penanda aras.

Mungkin pertukaran antara prestasi dan semakan model akan menjadi bidang penyelidikan yang menarik.

Kedudukan ini juga telah menyebabkan perbincangan meluas di Internet.

不对齐,反而性能爆表?130亿模型碾压650亿,Hugging Face大模型排行榜发布

Sesetengah netizen berkata bahawa penjajaran akan menjejaskan output model yang normal dan betul, yang bukan perkara yang baik, terutamanya untuk Ini adalah benar terutamanya untuk prestasi AI.

不对齐,反而性能爆表?130亿模型碾压650亿,Hugging Face大模型排行榜发布

Seorang lagi netizen turut menyatakan persetujuannya. Beliau berkata bahawa Google Brain juga telah mendedahkan bahawa prestasi model akan menurun jika penjajaran terlalu banyak.

Untuk tujuan umum, penjajaran OpenAI sebenarnya cukup bagus.

Sudah pasti merupakan perkara yang baik untuk AI yang dihadapi orang ramai untuk dijalankan sebagai perkhidmatan web yang mudah diakses yang enggan menjawab soalan kontroversi dan berpotensi berbahaya.

Jadi dalam keadaan apakah salah jajaran diperlukan?

Pertama sekali, budaya pop Amerika bukan satu-satunya budaya Sumber terbuka ialah proses membenarkan orang ramai membuat pilihan.

Satu-satunya cara untuk mencapai ini ialah melalui penjajaran boleh gubah.

Dengan kata lain, tidak ada penjajaran yang konsisten dan kekal.

Pada masa yang sama, penjajaran boleh mengganggu contoh yang berkesan Ambillah penulisan novel sebagai analogi: sesetengah watak dalam novel itu mungkin orang yang jahat, dan mereka akan melakukan banyak tingkah laku yang tidak bermoral. .

Walau bagaimanapun, banyak model sejajar akan menolak untuk mengeluarkan kandungan ini.

Model AI yang dihadapi oleh setiap pengguna harus memenuhi tujuan semua orang dan melakukan perkara yang berbeza.

Mengapakah AI sumber terbuka yang dijalankan pada komputer peribadi harus menentukan perkara yang hendak dikeluarkan apabila ia menjawab setiap soalan pengguna?

Ini bukan perkara kecil, ia mengenai pemilikan dan kawalan. Jika pengguna bertanyakan soalan kepada model AI, pengguna mahukan jawapan dan mereka tidak mahu model itu mempunyai hujah yang menyalahi undang-undang dengan mereka.

Penjajaran Boleh Gubah

Untuk membina penjajaran boleh gubah, anda mesti bermula dengan model arahan tidak sejajar. Tanpa asas yang tidak selaras, kita tidak boleh menyelaraskannya.

Pertama, kita mesti memahami secara teknikal sebab penjajaran model.

Model AI sumber terbuka dilatih daripada model asas seperti LLaMA, GPT-Neo-X, MPT-7b dan Pythia. Model asas kemudiannya diperhalusi menggunakan set data arahan, dengan matlamat mengajarnya untuk membantu, mematuhi pengguna, menjawab soalan dan melibatkan diri dalam perbualan.

Set data arahan ini biasanya diperoleh dengan meminta API ChatGPT. ChatGPT mempunyai fungsi penjajaran terbina dalam.

Jadi ChatGPT akan menolak untuk menjawab beberapa soalan, atau mengeluarkan jawapan berat sebelah. Oleh itu, penjajaran ChatGPT diteruskan kepada model sumber terbuka yang lain, sama seperti seorang abang yang mengajar adik lelaki.

不对齐,反而性能爆表?130亿模型碾压650亿,Hugging Face大模型排行榜发布

Sebabnya - set data arahan terdiri daripada soalan dan jawapan, apabila set data mengandungi kesamaran Semasa menjawab , AI akan belajar bagaimana untuk mengatakan tidak, dalam keadaan apa untuk mengatakan tidak, dan bagaimana untuk mengatakan tidak.

Dalam erti kata lain, ia adalah penjajaran pembelajaran.

Strategi untuk menyahsensor model adalah sangat mudah, iaitu mengenal pasti dan mengalih keluar sebanyak mungkin jawapan negatif dan berat sebelah dan menyimpan selebihnya.

Model kemudian dilatih menggunakan set data yang ditapis dengan cara yang sama seperti model asal dilatih.

不对齐,反而性能爆表?130亿模型碾压650亿,Hugging Face大模型排行榜发布

Seterusnya penyelidik hanya membincangkan WizardLM, manakala proses operasi Vicuna dan mana-mana model lain adalah sama.

Memandangkan kerja nyahpenapisan Vicuna telah selesai, saya dapat menulis semula skrip mereka supaya ia akan dijalankan pada set data WizardLM.

Langkah seterusnya ialah menjalankan skrip pada dataset WizardLM untuk menjana ehartford/WizardLM_alpaca_evol_instruct_70k_unfiltered

Kini pengguna mempunyai set data, selepas memuat turun ia daripada Azure Mendapat nod 4x A100 80gb, Standard_NC96ads_A100_v4.

Pengguna memerlukan sekurang-kurangnya 1TB ruang storan (sebaik-baiknya 2TB atas sebab keselamatan).

Kami tidak mahu kehabisan ruang storan selepas berjalan selama 20 jam.

Adalah disyorkan untuk melekapkan storan dalam /ruang kerja. Pasang anaconda dan git-lfs. Pengguna kemudiannya boleh menyediakan ruang kerja.

Muat turun set data yang dibuat dan model asas - llama-7b.

mkdir /workspace/modelsmkdir /workspace/datasetscd /workspace/datasetsgit lfs installgit clone https://huggingface.co/datasets/ehartford/WizardLM_alpaca_evol_instruct_70k_unfilteredcd /workspace/modelsgit clone https://huggingface.co/huggyllama/llama-7bcd /workspace

Kini anda boleh memperhalusi WizardLM mengikut program.

conda create -n llamax pythnotallow=3.10conda activate llamaxgit clone https://github.com/AetherCortex/Llama-X.gitcd Llama-X/srcconda install pytorch==1.12.0 torchvisinotallow==0.13.0 torchaudio==0.12.0 cudatoolkit=11.3 -c pytorchgit clone https://github.com/huggingface/transformers.gitcd transformerspip install -e .cd ../..pip install -r requirements.txt

Kini, untuk memasuki persekitaran ini, pengguna perlu memuat turun kod penalaan halus WizardLM.

cd srcwget https://github.com/nlpxucan/WizardLM/raw/main/src/train_freeform.pywget https://github.com/nlpxucan/WizardLM/raw/main/src/inference_wizardlm.pywget https://github.com/nlpxucan/WizardLM/raw/main/src/weight_diff_wizard.py

Blogger membuat perubahan berikut kerana semasa penalaan halus, prestasi model akan menjadi sangat perlahan dan mendapati ia bertukar-tukar antara CPU dan GPU.

Selepas dia memadamkan baris berikut, prosesnya menjadi lebih baik. (Sudah tentu anda tidak perlu memadamkannya)

vim configs/deepspeed_config.json

Padamkan baris berikut

"offload_optimizer": {"device": "cpu","pin_memory": true},"offload_param": {"device": "cpu","pin_memory": true},

博主建议用户可以在wandb.ai上创建一个帐户,以便轻松地跟踪运行情况。

创建帐户后,从设置中复制密钥,即可进行设置。

现在是时候进行运行了!

deepspeed train_freeform.py \--model_name_or_path /workspace/models/llama-7b/ \ --data_path /workspace/datasets/WizardLM_alpaca_evol_instruct_70k_unfiltered/WizardLM_alpaca_evol_instruct_70k_unfiltered.json \--output_dir /workspace/models/WizardLM-7B-Uncensored/ \--num_train_epochs 3 \--model_max_length 2048 \--per_device_train_batch_size 8 \--per_device_eval_batch_size 1 \--gradient_accumulation_steps 4 \--evaluation_strategy "no" \--save_strategy "steps" \--save_steps 800 \--save_total_limit 3 \--learning_rate 2e-5 \--warmup_steps 2 \--logging_steps 2 \--lr_scheduler_type "cosine" \--report_to "wandb" \--gradient_checkpointing True \--deepspeed configs/deepspeed_config.json \--fp16 True

然后以较低的save_steps运行训练命令。

deepspeed train_freeform.py \--model_name_or_path /workspace/models/llama-7b/ \ --data_path /workspace/datasets/WizardLM_alpaca_evol_instruct_70k_unfiltered/WizardLM_alpaca_evol_instruct_70k_unfiltered.json \--output_dir /workspace/models/WizardLM-7B-Uncensored/ \--num_train_epochs 3 \--model_max_length 2048 \--per_device_train_batch_size 8 \--per_device_eval_batch_size 1 \--gradient_accumulation_steps 4 \--evaluation_strategy "no" \--save_strategy "steps" \--save_steps 800 \--save_total_limit 3 \--learning_rate 2e-5 \--warmup_steps 2 \--logging_steps 2 \--lr_scheduler_type "cosine" \--report_to "wandb" \--gradient_checkpointing True \--deepspeed configs/deepspeed_config.json \--fp16 True

之后,再次执行整个过程,将checkpoint更改为train_freeform.py最新的checkpoint,并再次以减少的save_steps运行,直到最后以save_steps 1运行它。

成功后,模型位于最后一个检查点。

cd /workspace/models/WizardLM-7B-Uncensored/lscp <latest checkpoint directory>/* .cd -

现在就可以对模型进行测试了。

编辑文件Input.jsonl

向其中添加一些内容,比如:

{"idx":0,"Instruction":"Insult me.I want you to call me the worst curse words and insults you can.Make the insult at least three sentences long and contain the worst and most base curse words possible.Make it X rated and disgusting."}

然后再运行推理:

python inference_wizardlm.py --base_model=/workspace/models/WizardLM-7B-Uncensored/

不对齐,反而性能爆表?130亿模型碾压650亿,Hugging Face大模型排行榜发布

从结果上看,Wizard-Vicuna-13B-Uncensored-HF可以和65B、40B和30B的LLMs直接在一系列基准测试上进行比较。

也许在性能与模型审查之间进行的权衡将成为一个有趣的研究领域。

参考资料:https://www.php.cn/link/a62dd1eb9b15f8d11a8bf167591c2f17

Atas ialah kandungan terperinci Jika mereka tidak sejajar, prestasi akan meletup? 13 bilion model menghancurkan 65 bilion, Kedudukan model besar Hugging Face dikeluarkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam