Блог | Коды | Демо
WangChanGLM — это многоязычный Facebook XGLM-7.5B с точной настройкой инструкций, использующий коммерчески допустимые наборы данных с открытым исходным кодом (LAION OIG Chip2 и infill_dbpedia, DataBricks Dolly v2, OpenAI TL;DR и Hello-SimpleAI HC3; около 400 тысяч примеров), выпущенный под подпиской CC-BY SA 4.0. Модели обучены выполнять подмножество задач по выполнению инструкций, которые мы считаем наиболее актуальными, а именно: понимание прочитанного, мозговой штурм и творческое письмо. Мы предоставляем веса для модели, точно настроенной на наборе данных только на английском языке (wangchanglm-7.5B-sft-en), а также еще одной контрольной точки, дополнительно настроенной на тайском наборе данных, переведенном Google (wangchanglm-7.5B-sft-enth). Мы выполняем оценку в стиле Vicuna, используя как людей, так и ChatGPT (в нашем случае gpt-3.5-turbo
, поскольку мы все еще находимся в списке ожидания gpt-4
) и наблюдаем некоторые расхождения между двумя типами анноаторов. Все обучающие и оценочные коды доступны под лицензией Apache-2.0 в нашем Github, а также наборы данных и веса моделей на HuggingFace. Как и в Dolly v2, мы используем только коммерчески разрешенные предварительно обученные модели и наборы данных с открытым исходным кодом. Наши модели не ограничены ни некоммерческими положениями, такими как модели, которые используют LLaMA в качестве базовой, ни положениями о неконкуренции, такими как модели, которые используют self. -инструктировать наборы данных из ChatGPT. Посмотрите нашу живую демонстрацию здесь.
Мы предлагаем различные версии наших моделей:
Шардированные версии, использованные в демо:
Мы предоставляем следующие обучающие наборы:
Мы настроили XGLM-7.5B на 4 графических процессорах V100 (32 ГБ VARM) с помощью гиперпараметров, описанных в script/train_sft_peft_multi_world.py
.
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.
Можно точно настроить XGLM-7.5B на одном графическом процессоре с 32 ГБ видеопамяти или на нескольких графических процессорах с меньшей видеопамятью с помощью гиперпараметров, описанных в script/train_sft_peft_single_world.py
.
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
Мы выполнили вывод по запросам OpenAssistant, используя гиперпараметры, описанные в script/generate_huggingface_answer.py
.
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
Мы оценивали любую пару ответов модели с помощью gpt-3.5-turbo
, как описано в script/eval_vicuna_style.py
. Весь вывод и оценка хранятся в script/infer_and_eval.sh
. Человеческие анкеты хранятся в data/human_questionnaire
.
Эксперименты проводились с использованием частной инфраструктуры, углеродная эффективность которой составляет 0,432 кгCO2-экв/кВтч. В общей сложности 500 часов вычислений было выполнено на оборудовании типа Tesla V100-SXM2-32GB (TDP 300 Вт). Общий объем выбросов оценивается в 64,8 экв. CO2, из которых 0 процентов были компенсированы напрямую. Оценки проводились с использованием калькулятора MachineLearning Impact, представленного в количественной оценке lacoste2019.
@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 за созданную ими инфраструктуру и экосистему с открытым исходным кодом, особенно lvwerra из репозитория trl. Мы выражаем признательность пионерам точной настройки с открытым исходным кодом, которые были до нас, включая, помимо прочего, Alpaca, Alpaca-LoRA, GPT4All, OpenAssistant, Koala, Vicuna и Dolly.
Исходный код распространяется по лицензии Apache-2.0. Гири модели лицензированы по лицензии CC-BY-SA 4.0. Наборы данных для точной настройки получены из LAION OIG Chip2 и infill_dbpedia (Apache-2.0), DataBricks Dolly v2 (Apache-2.0), OpenAI TL;DR (MIT) и Hello-SimpleAI HC3 (CC-BY SA).