Scripts de LLM Pretratening y Fineting (SFT)
Lora y Deepspeed apoyado
El repositorio se basa en Tatsu-Lab/Stanford_Alpaca.
Antes de comenzar la LLM de pre-entrenamiento continuo, debe proporcionar el nombre del modelo (Huggingface) o la ruta del modelo local.
Prepare los datos de entrenamiento, puede usar texto plano en el formato de Markdown o TXT para el pretrete. El ejemplo es una guía para escribir la declaración de impacto de Neurips. Puede agregar más Corpus de texto en la carpeta de datos.
Lanzamiento
pip install -r requirements.txt
cd llm_pretrain
./pretrain_llama.sh
Tenga en cuenta que algunas configuraciones de parámetros de estos modelos son diferentes.
Antes de comenzar a ajustar LLM, debe proporcionar el nombre del modelo (Huggingface) o la ruta del modelo local.
Prepare los datos de entrenamiento, puede agregar sus propios datos de tareas como el ejemplo en sft_examples.json, que es similar al alpaca_data.json
El formato es el siguiente:
{
"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."
},
...
],
...
}
Tenga en cuenta que si coloca el alpaca_data.json en la carpeta de datos, el script lo usará como parte de los datos de entrenamiento.
LLAMA-2 : Dado que no hay pad_token en Llama-2, se recomienda que pueda agregar 'tokenizer.pad_token = tokenizer.unk_token' al tokenizer.
pip install -r requirements.txt
cd llm_sft
./train_llama.sh
pip install -r requirements.txt
cd llm_sft
./train_baichuan_LORA.sh
Puede ajustar las configuraciones en Train_lora.py. En nuestros experimentos, para Baichuan, su versión Transformers debería> = 4.29.0 y <4.34.0.
Tenga en cuenta que algunas configuraciones de parámetros de estos modelos son diferentes.
Si desea usar DeepSpeed, use el siguiente comando:
--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