Blog | Codes | Demo
WangChanGLM ist ein mehrsprachiges, anweisungsfein abgestimmtes Facebook XGLM-7.5B, das kommerziell zulässige Open-Source-Datensätze (LAION OIG chip2 und infill_dbpedia, DataBricks Dolly v2, OpenAI TL;DR und Hello-SimpleAI HC3; etwa 400.000 Beispiele) verwendet und unter veröffentlicht wurde CC-BY SA 4.0. Die Modelle sind darauf trainiert, eine Teilmenge der Aufgaben zur Befolgung von Anweisungen auszuführen, die wir für am relevantesten hielten, nämlich: Leseverständnis, Brainstorming und kreatives Schreiben. Wir stellen die Gewichte für ein Modell bereit, das auf einem rein englischsprachigen Datensatz (wangchanglm-7.5B-sft-en) verfeinert wurde, und einen weiteren Prüfpunkt, der auf einem von Google übersetzten thailändischen Datensatz (wangchanglm-7.5B-sft-enth) weiter verfeinert wurde. Wir führen eine Auswertung im Vicuna-Stil sowohl mit Menschen als auch mit ChatGPT durch (in unserem Fall gpt-3.5-turbo
, da wir immer noch auf der Warteliste für gpt-4
stehen) und stellen einige Diskrepanzen zwischen den beiden Arten von Annoatoren fest. Alle Trainings- und Evaluierungscodes werden unter der Apache-2.0-Lizenz in unserem Github geteilt, ebenso wie Datensätze und Modellgewichte auf HuggingFace. Ähnlich wie bei Dolly v2 verwenden wir nur vorab trainierte Open-Source-Modelle und Datensätze mit kommerzieller Erlaubnis. Unsere Modelle unterliegen weder einer nichtkommerziellen Klausel wie Modelle, die LLaMA als Basis verwenden, noch einer Wettbewerbsverbotsklausel wie Modelle, die self verwenden -Datensätze von ChatGPT anweisen. Sehen Sie sich hier unsere Live-Demo an.
Wir bieten verschiedene Versionen unserer Modelle wie folgt an:
In der Demo verwendete Shard-Versionen:
Wir stellen unsere Trainingssets wie folgt zur Verfügung:
Wir haben XGLM-7.5B auf 4 V100-GPUs (32 GB VARM) mit den in script/train_sft_peft_multi_world.py
beschriebenen Hyperparametern optimiert.
python -m torch.distributed.launch --nproc_per_node=4 train_sft_peft_multi_world.py
--per_device_train_batch_size 1 --gradient_accumulation_steps 32 #effective batch size = 128 (4 GPUs * 1 batch size * 32 gradient accumulation)
--wandb_project your_project_name
--model_name facebook/xglm-7.5B
--dataset_name pythainlp/final_training_set_v1
--adapter_name save_adapter_to
Der Adapter wird mit dem Skript von lvwerra/trl zu den Hauptgewichten zusammengeführt.
Es ist möglich, XGLM-7.5B auf einer einzelnen 32-GB-VRAM-GPU oder mehreren GPUs mit einem kleineren VRAM mit den in script/train_sft_peft_single_world.py
beschriebenen Hyperparametern zu optimieren.
python train_sft_peft_single_world.py
--per_device_train_batch_size 2 --gradient_accumulation_steps 64 #effective batch size = 128 (1 GPU * 2 batch size * 64 gradient accumulation)
--wandb_project your_project_name
--model_name facebook/xglm-7.5B
--dataset_name pythainlp/final_training_set_v1
--adapter_name save_adapter_to
Wir stellen auch ein Skript für die vollständige Feinabstimmung bereit, die wir mit einem kleineren Modell und einem anderen Satz von Trainingsdaten experimentiert haben.
python -m torch.distributed.launch --nproc_per_node=8 train_sft.py
--per_device_train_batch_size=8 --per_device_eval_batch_size=8 --gradient_accumulation_steps=16
--model_name=facebook/xglm-1.7B --bf16 --deepspeed=../config/sft_deepspeed_config.json
Wir haben Rückschlüsse auf die OpenAssistant-Eingabeaufforderungen mithilfe der in script/generate_huggingface_answer.py
beschriebenen Hyperparameter gezogen.
python generate_huggingface_answer.py --input_fname ../data/oasst1_gpt35turbo_answer.csv
--model_name pythainlp/wangchanglm-7.5B-sft-en
--tokenizer_name pythainlp/wangchanglm-7.5B-sft-en
--output_fname ../data/oasst1_wangchang_sft_en_only_answer_answer.csv
Wir haben jedes Paar von Modellantworten mit gpt-3.5-turbo
ausgewertet, wie in script/eval_vicuna_style.py
beschrieben. Die gesamte Schlussfolgerung und Auswertung wird in script/infer_and_eval.sh
gespeichert. Die menschlichen Fragebögen werden in data/human_questionnaire
gespeichert.
Die Experimente wurden mit einer privaten Infrastruktur durchgeführt, die eine CO2-Effizienz von 0,432 kg CO2eq/kWh aufweist. Insgesamt wurden 500 Stunden Berechnung auf Hardware vom Typ Tesla V100-SXM2-32GB (TDP von 300 W) durchgeführt. Die Gesamtemissionen werden auf 64,8 CO2eq geschätzt, wovon 0 Prozent direkt kompensiert wurden. Schätzungen wurden mit dem MachineLearning Impact-Rechner durchgeführt, der in lacoste2019quantifying vorgestellt wird.
@software{charin_polpanumas_2023_7878101,
author = {Charin Polpanumas and
Wannaphong Phatthiyaphaibun and
Patomporn Payoungkhamdee and
Peerat Limkonchotiwat and
Lalita Lowphansirikul and
Can Udomcharoenchaikit and
Titipat Achakulwisut and
Ekapol Chuangsuwanich and
Sarana Nutanong},
title = {{WangChanGLM? — The Multilingual Instruction-
Following Model}},
month = apr,
year = 2023,
publisher = {Zenodo},
version = {v0.1},
doi = {10.5281/zenodo.7878101},
url = {https://doi.org/10.5281/zenodo.7878101}
}
Wir möchten Huggingface für die von ihnen aufgebaute Open-Source-Infrastruktur und das Open-Source-Ökosystem danken, insbesondere für die Bereitstellung des TRL-Repositorys. Wir danken den Open-Source-Feinabstimmungspionieren, die vor uns kamen, darunter unter anderem Alpaca, Alpaca-LoRA, GPT4All, OpenAssistant, Koala, Vicuna und Dolly.
Der Quellcode ist unter der Apache-2.0-Lizenz lizenziert. Die Modellgewichte sind unter CC-BY-SA 4.0 lizenziert. Feinabstimmungsdatensätze stammen von LAION OIG chip2 und infill_dbpedia (Apache-2.0), DataBricks Dolly v2 (Apache-2.0), OpenAI TL;DR (MIT) und Hello-SimpleAI HC3 (CC-BY SA).