บล็อก | รหัส | สาธิต
WangChanGLM เป็น Facebook XGLM-7.5B ของ Facebook ที่ปรับแต่งตามคำสั่งได้หลายภาษา โดยใช้ชุดข้อมูลแบบโอเพ่นซอร์สและได้รับอนุญาตในเชิงพาณิชย์ (ชิป LAION OIG2 และ infill_dbpedia, DataBricks Dolly v2, OpenAI TL; DR และ Hello-SimpleAI HC3; ประมาณ 400,000 ตัวอย่าง) เปิดตัวภายใต้ 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 เป็นฐาน หรือส่วนคำสั่งที่ไม่ใช่การแข่งขัน เช่น โมเดลที่ใช้ตนเอง -สั่งชุดข้อมูลจาก ChatGPT ดูการสาธิตสดของเราที่นี่
เรามีรุ่นต่างๆ ของเราดังนี้:
เวอร์ชันที่แชร์ที่ใช้ในการสาธิต:
เรามีชุดฝึกอบรมดังนี้:
เราปรับแต่ง XGLM-7.5B บน 4 V100 GPU (32GB 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 บน GPU 32GB-VRAM ตัวเดียว หรือ GPU หลายตัวที่มี VRAM ขนาดเล็กกว่าพร้อมไฮเปอร์พารามิเตอร์ที่อธิบายไว้ใน 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 kgCO2eq/kWh ทำการคำนวณสะสม 500 ชั่วโมงบนฮาร์ดแวร์ประเภท Tesla V100-SXM2-32GB (TDP 300W) การปล่อยก๊าซทั้งหมดคาดว่าจะอยู่ที่ 64.8 CO2eq โดย 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 OIG2 และ infill_dbpedia (Apache-2.0), DataBricks Dolly v2 (Apache-2.0), OpenAI TL;DR (MIT) และ Hello-SimpleAI HC3 (CC-BY SA)