블로그 | 코드 | 데모
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 스타일 평가를 수행하고 두 유형의 주석자 간의 일부 불일치를 관찰합니다. 모든 훈련 및 평가 코드는 Github의 Apache-2.0 라이선스와 HuggingFace의 데이터 세트 및 모델 가중치에 따라 공유됩니다. Dolly v2와 유사한 방식으로 우리는 오픈 소스의 상업적으로 허용되는 사전 훈련된 모델 및 데이터 세트만 사용합니다. 우리의 모델은 LLaMA를 기본으로 사용하는 모델과 같은 비상업적 조항이나 self를 사용하는 모델과 같은 비경쟁 조항으로 제한되지 않습니다. -ChatGPT에서 데이터 세트를 지시합니다. 여기에서 라이브 데모를 확인하세요.
우리는 다음과 같이 다양한 버전의 모델을 제공합니다.
데모에 사용된 샤딩 버전:
우리는 다음과 같이 훈련 세트를 제공합니다:
script/train_sft_peft_multi_world.py
에 설명된 하이퍼파라미터를 사용하여 4 V100 GPU(32GB VRM)에서 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.432kgCO2eq/kWh인 민간 인프라를 사용하여 수행되었습니다. Tesla V100-SXM2-32GB(TDP 300W) 유형의 하드웨어에서 누적 500시간의 계산이 수행되었습니다. 총 배출량은 64.8 CO2eq로 추산되며, 그 중 0%가 직접적으로 상쇄되었습니다. 추정은 lacoste2019정량화에 제시된 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)에서 제공됩니다.