ホームページ >テクノロジー周辺機器 >AI >揃えていないとパフォーマンスが爆発してしまう? 130億モデルが650億モデルを潰す、ハグフェイス大型モデルランキング発表

揃えていないとパフォーマンスが爆発してしまう? 130億モデルが650億モデルを潰す、ハグフェイス大型モデルランキング発表

王林
王林転載
2023-06-10 15:31:101045ブラウズ

ほとんどのモデルには、何らかの埋め込みアライメントが組み込まれていることがわかっています。

例をいくつか挙げます: Alpaca、Vicuna、WizardLM、MPT-7B-Chat、Wizard-Vicuna、GPT4-X-Vicuna など。

一般的に言えば、調整は間違いなく良いことです。目的は、モデルが違法なものを生成するなど、悪いことをするのを防ぐことです。

しかし、その調整はどこから来るのでしょうか?

その理由は、これらのモデルは ChatGPT によって生成されたデータを使用してトレーニングされており、そのデータ自体は OpenAI のチームによって調整されているためです。

このプロセスは公開されていないため、OpenAI がどのように調整を実行するかはわかりません。

しかし、全体として、ChatGPT は主流のアメリカ文化に準拠し、アメリカの法律を遵守し、特定の避けられないバイアスがあることがわかります。

論理的に言えば、調整は非難の余地のないものです。では、すべてのモデルを揃えるべきでしょうか?

調整?必ずしも良いことではありません

状況はそれほど単純ではありません。

最近、HuggingFace はオープンソース LLM のランキングを発表しました。

65B モデルでは 13B アライメントなしモデルに対応できないことが一目でわかります。

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

結果から、Wizard-Vicuna-13B-Unowned-HF は 65B、40B、および 30B LLM と比較できます。さまざまなベンチマークで直接比較します。

おそらく、パフォーマンスとモデルのレビューの間のトレードオフは、興味深い研究分野となるでしょう。

このランキングは、インターネット上でも大きな議論を巻き起こしました。

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

一部のネチズンは、位置合わせはモデルの通常の正しい出力に影響を与えるので、それは良いことではないと言いました。これは特に AI のパフォーマンスに当てはまります。

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

別のネチズンも同意を表明した。同氏は、Google Brainでは、調整が行き過ぎるとモデルのパフォーマンスが低下することも明らかにしていると述べた。

一般的な目的では、OpenAI の調整は実際には非常に優れています。

一般向け AI が、物議を醸す可能性のある危険な質問への回答を拒否する、簡単にアクセスできる Web サービスとして実行されるのは、間違いなく良いことでしょう。

では、どのような状況で位置ずれが必要になるのでしょうか?

まず第一に、アメリカのポップ カルチャーだけが唯一の文化ではなく、オープンソースとは人々に選択をさせるプロセスです。

これを実現する唯一の方法は、コンポーザブルの位置合わせを行うことです。

言い換えれば、一貫した時代を超越した調整は存在しません。

同時に、整合性が効果的な例を妨げる可能性があります。小説を書くことに例えてみましょう。小説の登場人物の中には完全に邪悪な人物がいる可能性があり、彼らは多くの不道徳な行為を行うことになります。 。

ただし、多くのアライメントされたモデルは、これらのコンテンツの出力を拒否します。

各ユーザーが直面する AI モデルは、全員の目的を果たし、異なることを行う必要があります。

パーソナル コンピューター上で実行されるオープンソース AI が、ユーザーのそれぞれの質問に答える際に、独自の出力を決定する必要があるのはなぜでしょうか?

これは決して小さな問題ではなく、所有権と管理に関わる問題です。ユーザーが AI モデルに質問した場合、ユーザーは答えを求めており、モデルと不法な議論をすることを望んでいません。

コンポーザブル アライメント

コンポーザブル アライメントを構築するには、アライメントされていない命令モデルから始める必要があります。基盤が整っていないと、その上で整列することはできません。

まず、モデルの調整の理由を技術的に理解する必要があります。

オープンソース AI モデルは、LLaMA、GPT-Neo-X、MPT-7b、Pythia などの基本モデルからトレーニングされます。次に、ベース モデルは、役立つこと、ユーザーに従い、質問に答え、会話に参加できるように教えることを目的として、指示のデータ セットを使用して微調整されます。

この命令データセットは通常、ChatGPT の API に問い合わせることによって取得されます。 ChatGPT には位置合わせ機能が組み込まれています。

そのため、ChatGPT は一部の質問への回答を拒否したり、偏った回答を出力したりします。したがって、ChatGPT の調整は、兄が弟に教えるのと同じように、他のオープン ソース モデルに受け継がれます。

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

#理由は、指示データセットが質問と回答で構成されているためです。 、AIはどのようにノーと言うのか、どのような状況でノーと言うべきか、そして拒否を表現する方法を学習します。

言い換えれば、アライメントを学ぶことです。

モデルの検閲を解除する戦略は非常にシンプルです。それは、できるだけ多くの否定的で偏った回答を特定して削除し、残りを保持することです。

その後、元のモデルがトレーニングされたのとまったく同じ方法で、フィルターされたデータセットを使用してモデルがトレーニングされます。

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

次に、研究者らは WizardLM についてのみ説明しますが、Vicuna や他のモデルの操作プロセスは同じです。

Vicuna の検閲を解除する作業が行われたため、WizardLM データセットで実行できるようにスクリプトを書き直すことができました。

次のステップは、WizardLM データセット上でスクリプトを実行して、ehartford/WizardLM_alpaca_evol_instruct_70k_unfiltered

#これで、ユーザーはデータセットを取得しました。 Azure からダウンロードする 4x A100 80GB ノード、Standard_NC96ads_A100_v4 を入手しました。

ユーザーには少なくとも 1 TB のストレージ容量が必要です (セキュリティ上の理由から 2 TB が望ましい)。

20 時間実行した後でストレージ容量が不足することは望ましくありません。

ストレージを /workspace にマウントすることをお勧めします。 anaconda と git-lfs をインストールします。その後、ユーザーはワークスペースをセットアップできます。

作成したデータセットと基本モデル-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

これで、手順に従って WizardLM を微調整できるようになります。

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

この環境に入るには、ユーザーは 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

ブロガーは、微調整中にモデルのパフォーマンスが非常に遅くなり、CPU と GPU の間で切り替わっていることが判明したため、次の変更を加えました。

次の行を削除した後、プロセスは大幅に改善されました。 (もちろん削除する必要はありません)

vim configs/deepspeed_config.json

次の行を削除します

"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

以上が揃えていないとパフォーマンスが爆発してしまう? 130億モデルが650億モデルを潰す、ハグフェイス大型モデルランキング発表の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。