ブログ |コード |デモ
WangChanGLM は、オープンソースの商業的に許可されたデータセット (LAION OIG チップ 2 および infill_dbpedia、DataBricks Dolly v2、OpenAI TL;DR、および Hello-SimpleAI HC3、約 400,000 例) を使用した、多言語で命令が微調整された Facebook XGLM-7.5B であり、以下でリリースされています。 CC-BY SA 4.0。モデルは、最も関連性が高いと考えられた指示に従うタスクのサブセット、つまり読解、ブレインストーミング、創造的なライティングを実行するようにトレーニングされています。英語のみのデータセット (wangchanglm-7.5B-sft-en) で微調整されたモデルの重みと、Google 翻訳されたタイ語データセット (wangchanglm-7.5B-sft-enth) でさらに微調整された別のチェックポイントの重みを提供します。人間と ChatGPT (この場合は、まだgpt-4
の待機リストに載っているため、 gpt-3.5-turbo
) の両方を使用して Vicuna スタイルの評価を実行し、2 種類のアノエーター間にいくつかの不一致を観察しました。すべてのトレーニング コードと評価コードは、Apache-2.0 ライセンスに基づいて Github で共有され、データセットとモデルの重みも HuggingFace で共有されます。 Dolly v2 と同様に、オープンソースで商業的に許容される事前トレーニング済みモデルとデータセットのみを使用します。当社のモデルは、LLaMA をベースとして使用するモデルのような非営利条項や、self を使用するモデルのような非競合条項によって制限されません。 -ChatGPT からデータセットを指示します。ここでライブデモをご覧ください。
次のようなさまざまなバージョンのモデルを提供しています。
デモで使用されたシャード バージョン:
弊社では以下のようなトレーニングセットを提供しております。
script/train_sft_peft_multi_world.py
で説明されているハイパーパラメータを使用して、4 V100 GPU (32GB VARM) 上の XGLM-7.5B を微調整しました。
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
アダプターは、lvwerra/trl のスクリプトを使用してメインの重みにマージされます。
script/train_sft_peft_single_world.py
で説明されているハイパーパラメータを使用して、単一の 32GB-VRAM GPU またはより小さい VRAM を備えた複数の GPU で XGLM-7.5B を微調整することが可能です。
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
また、別のトレーニング データ セットで小規模なモデルを実験した完全な微調整用のスクリプトも提供します。
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
script/generate_huggingface_answer.py
で説明されているハイパーパラメータを使用して、OpenAssistant プロンプトで推論を実行しました。
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
script/eval_vicuna_style.py
で説明されているように、 gpt-3.5-turbo
使用して模範解答のペアを評価しました。推論と評価全体はscript/infer_and_eval.sh
に保存されます。人間のアンケートはdata/human_questionnaire
に保存されます。
実験は、炭素効率が 0.432 kgCO2eq/kWh の民間インフラを使用して実施されました。 Tesla V100-SXM2-32GB (TDP 300W) タイプのハードウェアで、累積 500 時間の計算が実行されました。総排出量は 64.8 CO2eq と推定され、そのうちの 0% は直接相殺されます。推定は、lacoste2019quantifying で紹介された MachineLearning Impact 計算ツールを使用して行われました。
@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}
}
私たちは、Huggingface が構築したオープンソース インフラストラクチャとエコシステム、特に trl リポジトリの lvwerra に感謝したいと思います。 Alpaca、Alpaca-LoRA、GPT4All、OpenAssistant、Koala、Vicuna、Dolly など、これまでのオープンソース微調整の先駆者たちに感謝の意を表します。
ソース コードは、Apache-2.0 ライセンスに基づいてライセンスされています。モデルの重みは CC-BY-SA 4.0 に基づいてライセンスされています。微調整データセットは、LAION OIG チップ 2 および infill_dbpedia (Apache-2.0)、DataBricks Dolly v2 (Apache-2.0)、OpenAI TL;DR (MIT)、および Hello-SimpleAI HC3 (CC-BY SA) から供給されています。