Scripts de pré-formation et de fineting de LLM (SFT)
Lora & Deeppeed soutenue
Le référentiel est basé sur Tatsu-lab / stanford_alpaca.
Avant de démarrer LLM pré-entraînement continu, vous devez fournir le nom du modèle (Huggingface) ou le chemin du modèle local.
Préparez les données de formation, vous pouvez utiliser du texte brut dans le format de Markdown ou TXT pour la pré-formation. L'exemple est un guide pour rédiger l'énoncé d'impact des Neirips. Vous pouvez ajouter plus de corpus de texte dans le dossier de données.
Lancement
pip install -r requirements.txt
cd llm_pretrain
./pretrain_llama.sh
Notez que certains paramètres de paramètres de ces modèles sont différents.
Avant de commencer à régler Fining LLM, vous devez fournir le nom du modèle (Huggingface) ou le chemin du modèle local.
Préparez les données de formation, vous pouvez ajouter vos propres données de tâche comme l'exemple de sft_examples.json, qui est similaire à l'alpaca_data.json
Le format est le suivant:
{
"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."
},
...
],
...
}
Notez que si vous mettez l'ALPACA_DATA.json dans le dossier de données, le script l'utilisera dans le cadre des données de formation.
Lama-2 : Puisqu'il n'y a pas de pad_token dans lama-2, il est recommandé de pouvoir ajouter 'tokenizer.pad_token = tokenizer.unk_token' au tokenizer.
pip install -r requirements.txt
cd llm_sft
./train_llama.sh
pip install -r requirements.txt
cd llm_sft
./train_baichuan_LORA.sh
Vous pouvez ajuster les configurations dans le train_lora.py. Dans nos expériences, pour Baichuan, votre version Transformers devrait> = 4,29,0 et <4,34,0.
Notez que certains paramètres de paramètres de ces modèles sont différents.
Si vous souhaitez utiliser DeepPeed, utilisez la commande suivante:
--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