Heim > Technologie-Peripheriegeräte > KI > Wenn sie nicht aufeinander abgestimmt sind, wird die Leistung explodieren? 13 Milliarden Models vernichten 65 Milliarden, Hugging Face-Rangliste der großen Models veröffentlicht

Wenn sie nicht aufeinander abgestimmt sind, wird die Leistung explodieren? 13 Milliarden Models vernichten 65 Milliarden, Hugging Face-Rangliste der großen Models veröffentlicht

王林
Freigeben: 2023-06-10 15:31:10
nach vorne
1012 Leute haben es durchsucht

Wir wissen, dass die meisten Modelle über eine Art eingebettete Ausrichtung verfügen.

Um nur einige Beispiele zu nennen: Alpaca, Vicuna, WizardLM, MPT-7B-Chat, Wizard-Vicuna, GPT4-X-Vicuna usw.

Generell ist Ausrichtung auf jeden Fall eine gute Sache. Der Zweck besteht darin, zu verhindern, dass das Modell schlechte Dinge tut – beispielsweise etwas Illegales generiert.

Aber woher kommt die Ausrichtung?

Der Grund dafür ist, dass diese Modelle mithilfe von Daten trainiert werden, die von ChatGPT generiert wurden, die selbst vom Team bei OpenAI ausgerichtet werden.

Da dieser Prozess nicht öffentlich ist, wissen wir nicht, wie OpenAI die Ausrichtung durchführt.

Aber insgesamt können wir beobachten, dass ChatGPT im Einklang mit der amerikanischen Mainstream-Kultur steht, sich an amerikanische Gesetze hält und bestimmte unvermeidliche Vorurteile aufweist.

Logisch gesehen ist Ausrichtung eine untadelige Sache. Sollten also alle Modelle aufeinander abgestimmt sein?

Ausrichtung? Nicht unbedingt eine gute Sache

Die Situation ist nicht so einfach.

Kürzlich hat HuggingFace ein Ranking von Open-Source-LLM veröffentlicht.

Sie können auf einen Blick erkennen, dass das 65B-Modell nicht mit dem 13B-Unaligned-Modell umgehen kann.

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

Aus den Ergebnissen kann Wizard-Vicuna-13B-Uncensored-HF in einer Reihe von Benchmark-Tests direkt mit 65B-, 40B- und 30B-LLMs verglichen werden.

Vielleicht wird der Kompromiss zwischen Leistung und Modellüberprüfung zu einem interessanten Forschungsgebiet.

Dieses Ranking hat auch im Internet für breite Diskussionen gesorgt.

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

Einige Internetnutzer sagten, dass die Ausrichtung die normale und korrekte Ausgabe des Modells beeinträchtigen würde, was insbesondere für die Leistung der KI keine gute Sache sei.

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

Ein anderer Internetnutzer drückte ebenfalls seine Zustimmung aus. Er sagte, dass Google Brain auch gezeigt habe, dass die Leistung des Modells abnimmt, wenn die Ausrichtung zu groß sei.

Für allgemeine Zwecke ist die Ausrichtung von OpenAI eigentlich ziemlich gut.

Es wäre zweifellos eine gute Sache, wenn öffentlich zugängliche KI als leicht zugänglicher Webdienst laufen würde, der sich weigert, kontroverse und potenziell gefährliche Fragen zu beantworten.

Unter welchen Umständen ist also eine Fehlstellung erforderlich?

Zuallererst ist die amerikanische Popkultur nicht die einzige Kultur, in der Menschen Entscheidungen treffen können.

Der einzige Weg, dies zu erreichen, ist die komponierbare Ausrichtung.

Mit anderen Worten, es gibt keine konsistente und ewige Art der Ausrichtung.

Gleichzeitig kann die Ausrichtung wirkungsvolle Beispiele beeinträchtigen. Nehmen Sie das Schreiben eines Romans als Vergleich: Einige Charaktere im Roman können völlig böse sein und viele unmoralische Verhaltensweisen begehen.

Viele ausgerichtete Modelle weigern sich jedoch, diese Inhalte auszugeben.

Das KI-Modell, mit dem jeder Benutzer konfrontiert ist, sollte jedem Zweck dienen und unterschiedliche Dinge tun.

Warum sollte eine Open-Source-KI, die auf einem PC läuft, über ihre eigene Ausgabe entscheiden, wenn sie die Frage jedes Benutzers beantwortet?

Das ist keine Kleinigkeit, es geht um Eigentum und Kontrolle. Wenn ein Benutzer einem KI-Modell eine Frage stellt, möchte der Benutzer eine Antwort und möchte nicht, dass das Modell einen illegalen Streit mit ihm führt.

Zusammensetzbare Ausrichtung

Um eine zusammensetzbare Ausrichtung zu erstellen, müssen Sie von einem nicht ausgerichteten Anweisungsmodell ausgehen. Ohne ein nicht ausgerichtetes Fundament können wir uns nicht darauf ausrichten.

Zuerst müssen wir den Grund für die Modellausrichtung technisch verstehen.

Open-Source-KI-Modelle werden aus Basismodellen wie LLaMA, GPT-Neo-X, MPT-7b und Pythia trainiert. Das Basismodell wird dann mithilfe eines Datensatzes von Anweisungen verfeinert, mit dem Ziel, ihm beizubringen, hilfreich zu sein, Benutzern zu gehorchen, Fragen zu beantworten und sich an Gesprächen zu beteiligen.

Dieser Befehlsdatensatz wird normalerweise durch Abfragen der ChatGPT-API abgerufen. ChatGPT verfügt über eine integrierte Ausrichtungsfunktion.

ChatGPT weigert sich also, einige Fragen zu beantworten oder gibt voreingenommene Antworten aus. Daher wird die Ausrichtung von ChatGPT an andere Open-Source-Modelle weitergegeben, so wie ein großer Bruder einen jüngeren Bruder unterrichtet.

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

Der Anweisungsdatensatz besteht aus Fragen und Antworten. Wenn der Datensatz mehrdeutige Antworten enthält, lernt die KI, wie sie unter welchen Umständen ablehnt und was „Ablehnen“ bedeutet Ablehnung.

Mit anderen Worten, es geht um die Lernausrichtung.

Die Strategie zur Dezensur von Modellen ist sehr einfach: So viele negative und voreingenommene Antworten wie möglich zu identifizieren und zu entfernen und den Rest zu behalten.

Trainieren Sie dann das Modell mit dem gefilterten Datensatz auf genau die gleiche Weise, wie Sie das Originalmodell trainiert haben.

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

Als nächstes diskutieren die Forscher nur WizardLM, während der Betriebsprozess von Vicuna und jedem anderen Modell der gleiche ist.

Da die Arbeit zur Dezensurierung von Vicuna abgeschlossen ist, konnte ich ihr Skript so umschreiben, dass es auf dem WizardLM-Datensatz ausgeführt wird.

Der nächste Schritt besteht darin, das Skript auf dem WizardLM-Datensatz auszuführen, um ehartford/WizardLM_alpaca_evol_instruct_70k_unfiltered zu generieren

Da der Benutzer nun über den Datensatz verfügt, nachdem er einen 4x A100 80-GB-Knoten von Azure erhalten hat, Standard_NC96ads_A100_v4.

Benutzer benötigen mindestens 1 TB Speicherplatz (aus Sicherheitsgründen vorzugsweise 2 TB).

Wir wollen nicht, dass nach 20 Stunden Laufzeit der Speicherplatz ausgeht.

Es wird empfohlen, den Speicher in /workspace zu mounten. Installieren Sie Anaconda und Git-LFs. Anschließend kann der Benutzer den Arbeitsbereich einrichten.

Laden Sie den erstellten Datensatz und das Basismodell herunter – 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
Nach dem Login kopieren

Jetzt können Sie WizardLM entsprechend dem Programm feinabstimmen.

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
Nach dem Login kopieren

Um diese Umgebung zu betreten, müssen Benutzer nun den Feinabstimmungscode von WizardLM herunterladen.

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
Nach dem Login kopieren

Der Blogger nahm die folgenden Änderungen vor, da während der Feinabstimmung die Leistung des Modells sehr langsam wurde und er feststellte, dass es zwischen CPU und GPU hin und her wechselte.

Nachdem er die folgenden Zeilen entfernt hatte, verlief der Prozess viel besser. (Natürlich müssen Sie es nicht löschen)

vim configs/deepspeed_config.json
Nach dem Login kopieren

Löschen Sie die folgenden Zeilen

"offload_optimizer": {"device": "cpu","pin_memory": true},"offload_param": {"device": "cpu","pin_memory": true},
Nach dem Login kopieren

博主建议用户可以在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
Nach dem Login kopieren
Nach dem Login kopieren

然后以较低的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
Nach dem Login kopieren
Nach dem Login kopieren

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

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

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

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

编辑文件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."}
Nach dem Login kopieren

然后再运行推理:

python inference_wizardlm.py --base_model=/workspace/models/WizardLM-7B-Uncensored/
Nach dem Login kopieren

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

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

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

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

Das obige ist der detaillierte Inhalt vonWenn sie nicht aufeinander abgestimmt sind, wird die Leistung explodieren? 13 Milliarden Models vernichten 65 Milliarden, Hugging Face-Rangliste der großen Models veröffentlicht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:51cto.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage