البرامج النصية لـ LLM Pretring and Finetuing (SFT)
مدعوم لورا وعربي
يعتمد المستودع على Tatsu-Lab/Stanford_Alpaca.
قبل أن تبدأ LLM المستمر قبل التدريب ، يجب عليك توفير اسم النموذج (Huggingface) أو مسار النموذج المحلي.
إعداد بيانات التدريب ، يمكنك استخدام نص عادي بتنسيق Markdown أو TXT للتدرب. المثال هو دليل لكتابة بيان تأثير العصبية. يمكنك إضافة المزيد من مجموعة النص في مجلد البيانات.
يطلق
pip install -r requirements.txt
cd llm_pretrain
./pretrain_llama.sh
لاحظ أن بعض إعدادات المعلمات لهذه النماذج مختلفة.
قبل أن تبدأ في ضبط LLM ، يجب عليك توفير اسم النموذج (Huggingface) أو مسار النموذج المحلي.
إعداد بيانات التدريب ، يمكنك إضافة بيانات المهمة الخاصة بك مثل المثال في sft_examples.json ، وهو مشابه لـ alpaca_data.json
التنسيق كما يلي:
{
"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."
},
...
],
...
}
لاحظ أنه إذا وضعت alpaca_data.json في مجلد البيانات ، فسيستخدمه البرنامج النصي كجزء من بيانات التدريب.
Llama-2 : نظرًا لعدم وجود pad_token في llama-2 ، يوصى بإضافة "tokenizer.pad_token = tokenizer.unk_token" إلى الرمز المميز.
pip install -r requirements.txt
cd llm_sft
./train_llama.sh
pip install -r requirements.txt
cd llm_sft
./train_baichuan_LORA.sh
يمكنك ضبط التكوينات في train_lora.py. في تجاربنا ، بالنسبة لـ Baichuan ، يجب أن يكون إصدار Transformers الخاص بك> = 4.29.0 و <4.34.0.
لاحظ أن بعض إعدادات المعلمات لهذه النماذج مختلفة.
إذا كنت ترغب في استخدام DeepSpeed ، استخدم الأمر التالي:
--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