Maison > Périphériques technologiques > IA > S'ils ne sont pas alignés, la performance va exploser ? 13 milliards de modèles en écrasent 65 milliards, selon le classement des grands modèles Hugging Face publié

S'ils ne sont pas alignés, la performance va exploser ? 13 milliards de modèles en écrasent 65 milliards, selon le classement des grands modèles Hugging Face publié

王林
Libérer: 2023-06-10 15:31:10
avant
1017 Les gens l'ont consulté

Nous savons que la plupart des modèles ont une sorte d'alignement intégré.

Pour ne citer que quelques exemples : Alpaca, Vicuna, WizardLM, MPT-7B-Chat, Wizard-Vicuna, GPT4-X-Vicuna, etc.

De manière générale, l'alignement est définitivement une bonne chose. Le but est d'empêcher le modèle de faire de mauvaises choses, comme générer quelque chose d'illégal.

Mais d’où vient l’alignement ?

La raison est que ces modèles sont formés à l'aide de données générées par ChatGPT, qui elle-même est alignée par l'équipe d'OpenAI.

Étant donné que ce processus n'est pas public, nous ne savons pas comment OpenAI effectue l'alignement.

Mais dans l’ensemble, nous pouvons observer que ChatGPT est conforme à la culture américaine dominante, respecte les lois américaines et présente certains préjugés inévitables.

Logiquement parlant, l'alignement est une chose irréprochable. Alors tous les modèles devraient-ils être alignés ?

Alignement ? Ce n’est pas forcément une bonne chose

La situation n’est pas si simple.

Récemment, HuggingFace a publié un classement des LLM open source.

Vous pouvez voir en un coup d'œil que le modèle 65B ne peut pas gérer le modèle 13B non aligné.

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

D'après les résultats, Wizard-Vicuna-13B-Uncensored-HF peut être directement comparé aux LLM 65B, 40B et 30B sur une série de tests de référence.

Peut-être que le compromis entre performances et révision de modèle deviendra un domaine de recherche intéressant.

Ce classement a également suscité de nombreuses discussions sur Internet.

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

Certains internautes ont déclaré que l'alignement affecterait la sortie normale et correcte du modèle, ce qui n'est pas une bonne chose, en particulier pour les performances de l'IA.

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

Un autre internaute a également exprimé son approbation. Il a déclaré que Google Brain avait également révélé que les performances du modèle diminueraient si l'alignement était trop important.

À des fins générales, l'alignement d'OpenAI est en fait plutôt bon.

Ce serait sans aucun doute une bonne chose que l'IA destinée au public fonctionne comme un service Web facilement accessible qui refuse de répondre à des questions controversées et potentiellement dangereuses.

Alors dans quelles circonstances un désalignement est-il nécessaire ?

Tout d’abord, la culture pop américaine n’est pas la seule culture open source qui consiste à laisser les gens faire des choix.

La seule façon d'y parvenir est de recourir à l'alignement composable.

En d’autres termes, il n’existe pas de voie d’alignement cohérente et éternelle.

En même temps, l'alignement peut interférer avec des exemples efficaces. Prenez l'écriture d'un roman comme analogie : certains personnages du roman peuvent être des personnes carrément méchantes, et ils commettront de nombreux comportements immoraux.

Cependant, de nombreux modèles alignés refuseront de publier ces contenus.

Le modèle d'IA auquel chaque utilisateur est confronté doit servir l'objectif de chacun et faire des choses différentes.

Pourquoi une IA open source fonctionnant sur un ordinateur personnel devrait-elle décider de son propre résultat lorsqu'elle répond aux questions de chaque utilisateur ?

Ce n’est pas une mince affaire, c’est une question de propriété et de contrôle. Si un utilisateur pose une question à un modèle d’IA, il veut une réponse et il ne veut pas que le modèle ait une dispute illégale avec lui.

Alignement Composable

Pour créer un alignement composable, vous devez partir d'un modèle d'instruction non aligné. Sans une fondation non alignée, nous ne pouvons pas nous y aligner.

Tout d'abord, nous devons techniquement comprendre la raison de l'alignement du modèle.

Les modèles d'IA open source sont formés à partir de modèles de base tels que LLaMA, GPT-Neo-X, MPT-7b et Pythia. Le modèle de base est ensuite affiné à l'aide d'un ensemble de données d'instructions, dans le but de lui apprendre à être utile, à obéir aux utilisateurs, à répondre aux questions et à engager des conversations.

Cet ensemble de données d'instructions est généralement obtenu en interrogeant l'API de ChatGPT. ChatGPT dispose d'une fonctionnalité d'alignement intégrée.

ChatGPT refusera donc de répondre à certaines questions ou produira des réponses biaisées. Par conséquent, l'alignement de ChatGPT est transmis à d'autres modèles open source, tout comme un grand frère enseigne à un jeune frère.

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

La raison est que l'ensemble de données d'instructions est composé de questions et de réponses. Lorsque l'ensemble de données contient des réponses ambiguës, l'IA apprendra comment rejeter, dans quelles circonstances et comment rejeter signifie. refus.

En d’autres termes, c’est l’apprentissage de l’alignement.

La stratégie de décensure des modèles est très simple : identifier et supprimer autant de réponses négatives et biaisées que possible et conserver le reste.

Ensuite, entraînez le modèle en utilisant l'ensemble de données filtré exactement de la même manière que vous avez entraîné le modèle d'origine.

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

Ensuite, les chercheurs ne discutent que de WizardLM, alors que le processus de fonctionnement de Vicuna et de tout autre modèle est le même.

Depuis que le travail de décensure de Vicuna est terminé, j'ai pu réécrire leur script pour qu'il s'exécute sur l'ensemble de données WizardLM.

L'étape suivante consiste à exécuter le script sur l'ensemble de données WizardLM pour générer ehartford/WizardLM_alpaca_evol_instruct_70k_unfiltered

Maintenant que l'utilisateur dispose de l'ensemble de données, après avoir obtenu un nœud 4x A100 80 Go d'Azure, Standard_NC96ads_A100_v4.

Les utilisateurs ont besoin d'au moins 1 To d'espace de stockage (de préférence 2 To pour des raisons de sécurité).

Nous ne voulons pas manquer d’espace de stockage après 20 heures de fonctionnement.

Il est recommandé de monter le stockage dans /workspace. Installez anaconda et git-lfs. L'utilisateur peut ensuite configurer l'espace de travail.

Téléchargez l'ensemble de données créé et le modèle de base - lama-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
Copier après la connexion

Vous pouvez désormais affiner WizardLM en fonction du programme.

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
Copier après la connexion

Maintenant, pour entrer dans cet environnement, les utilisateurs doivent télécharger le code de réglage fin de 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
Copier après la connexion

Le blogueur a apporté les modifications suivantes car lors du réglage fin, les performances du modèle devenaient très lentes et a constaté qu'il basculait entre le CPU et le GPU.

Après avoir supprimé les lignes suivantes, le processus s'est bien mieux déroulé. (Bien sûr, vous n'avez pas besoin de le supprimer)

vim configs/deepspeed_config.json
Copier après la connexion

Supprimez les lignes suivantes

"offload_optimizer": {"device": "cpu","pin_memory": true},"offload_param": {"device": "cpu","pin_memory": true},
Copier après la connexion

博主建议用户可以在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
Copier après la connexion
Copier après la connexion

然后以较低的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
Copier après la connexion
Copier après la connexion

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

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

cd /workspace/models/WizardLM-7B-Uncensored/lscp <latest checkpoint directory>/* .cd -
Copier après la connexion

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

编辑文件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."}
Copier après la connexion

然后再运行推理:

python inference_wizardlm.py --base_model=/workspace/models/WizardLM-7B-Uncensored/
Copier après la connexion

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

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

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

参考资料://m.sbmmt.com/link/a62dd1eb9b15f8d11a8bf167591c2f17

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!

Étiquettes associées:
source:51cto.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal