Skripte von LLM -Vorab- und Finstieren (SFT)
Lora & Deepspeed unterstützt
Das Repository basiert auf Tatsu-Lab/stanford_alpaca.
Bevor Sie kontinuierliche LLM vor dem Training beginnen, sollten Sie den Modellnamen (Huggingface) oder den lokalen Modellpfad angeben.
Erstellen Sie Schulungsdaten, Sie können einen einfachen Text im Format von Markdown oder TXT für die Vorbereitung verwenden. Das Beispiel ist ein Leitfaden zum Schreiben der Neurips Impact Statement. Sie können mehr Textkorpus im Datenordner hinzufügen.
Start
pip install -r requirements.txt
cd llm_pretrain
./pretrain_llama.sh
Beachten Sie, dass einige Parametereinstellungen dieser Modelle unterschiedlich sind.
Bevor Sie mit der Feinabstimmung LLM beginnen, sollten Sie den Modellnamen (Umarmung) oder den lokalen Modellpfad angeben.
Erstellen Sie Trainingsdaten, Sie können Ihre eigenen Aufgabendaten wie das Beispiel in sft_examples.json hinzufügen, die dem alpaca_data.json ähnlich ist
Das Format lautet wie folgt:
{
"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."
},
...
],
...
}
Beachten Sie, dass das Skript als Teil der Trainingsdaten verwendet wird, wenn Sie die alpaca_data.json in den Datenordner einfügen.
LLAMA-2 : Da es in Lama-2 kein PAD_Token gibt, wird empfohlen, dem Tokenizer 'tokenizer.pad_token = tokenizer.unk_token' hinzuzufügen.
pip install -r requirements.txt
cd llm_sft
./train_llama.sh
pip install -r requirements.txt
cd llm_sft
./train_baichuan_LORA.sh
Sie können die Konfigurationen in der train_lora.py einstellen. In unseren Experimenten sollte Ihre Transformatoren -Version für Baichuan> = 4.29.0 und <4.34.0.
Beachten Sie, dass einige Parametereinstellungen dieser Modelle unterschiedlich sind.
Wenn Sie DeepSpeed verwenden möchten, verwenden Sie den folgenden Befehl:
--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