Skrip LLM Pretraining and Finetuing (SFT)
Lora & Deepspeed didukung
Repositori didasarkan pada Tatsu-Lab/Stanford_alpaca.
Sebelum Anda memulai LLM pra-pelatihan terus menerus, Anda harus memberikan nama model (HuggingFace) atau jalur model lokal.
Siapkan data pelatihan, Anda dapat menggunakan teks biasa dalam format Markdown atau TXT untuk pretraining. Contohnya adalah panduan untuk menulis Pernyataan Dampak Neurips. Anda dapat menambahkan lebih banyak corpus teks di folder data.
Meluncurkan
pip install -r requirements.txt
cd llm_pretrain
./pretrain_llama.sh
Perhatikan bahwa beberapa pengaturan parameter dari model ini berbeda.
Sebelum Anda mulai menyempurnakan LLM, Anda harus memberikan nama model (HuggingFace) atau jalur model lokal.
Siapkan data pelatihan, Anda dapat menambahkan data tugas Anda sendiri seperti contoh di sft_examples.json, yang mirip dengan alpaca_data.json
Formatnya adalah sebagai berikut:
{
"binary_selection": [
{
"instruction": "Does the following text violate the law?nText: OH MY FUCKING GOD",
"output": "No"
},
...
],
"another_task_name": [
{
"instruction": "How are you?",
"output": "Not bad."
},
...
],
...
}
Perhatikan bahwa jika Anda memasukkan alpaca_data.json di folder data, skrip akan menggunakannya sebagai bagian dari data pelatihan.
Llama-2 : Karena tidak ada pad_token di llama-2, disarankan agar Anda dapat menambahkan 'tokenizer.pad_token = tokenizer.unk_token' ke tokenizer.
pip install -r requirements.txt
cd llm_sft
./train_llama.sh
pip install -r requirements.txt
cd llm_sft
./train_baichuan_LORA.sh
Anda dapat menyesuaikan konfigurasi di train_lora.py. Dalam percobaan kami, untuk Baichuan, versi Transformers Anda harus> = 4.29.0 dan <4.34.0.
Perhatikan bahwa beberapa pengaturan parameter dari model ini berbeda.
Jika Anda ingin menggunakan Deepspeed, gunakan perintah berikut:
--deepspeed "./configs/default_offload_opt_param.json"
.
├── LICENSE
├── README.md
├── llm_pretrain_clean
│ ├── data
│ │ └── A_Guide_to_Writing_the_NeurIPS_Impact_Statement.md
│ ├── evaluation
│ │ └── inference_single.py
│ ├── generate_pretrain_data.py
│ ├── pretrain.py
│ ├── pretrain_baichuan2.sh
│ ├── pretrain_llama.sh
│ ├── pretrain_mistral.sh
│ ├── requirementsX.txt
│ └── utils.py
└── sft_model_clean
├── README.md
├── configs
│ └── default_offload_opt_param.json
├── data
│ ├── alpaca_data.json
│ └── sft_examples.json
├── evaluation
│ └── inference_single.py
├── generate_sft_data.py
├── requirementsX.txt
├── train.py
├── train_baichuan.sh
├── train_baichuan_LORA.sh
├── train_llama.sh
├── train_lora.py
├── train_mistral.sh
└── utils.py