LLM 프리 트레인 및 최종 스크립트 (SFT)
Lora & DeepSpeed가 지원했습니다
저장소는 Tatsu-Lab/Stanford_alpaca를 기반으로합니다.
연속적인 사전 훈련 LLM을 시작하기 전에 모델 이름 (Huggingface) 또는 로컬 모델 경로를 제공해야합니다.
훈련 데이터 준비하면, 프리 트레인을 위해 Markdown 또는 TXT 형식의 일반 텍스트를 사용할 수 있습니다. 이 예는 Neurips Impact 문을 작성하는 안내서입니다. 데이터 폴더에 더 많은 텍스트 코퍼스를 추가 할 수 있습니다.
시작하다
pip install -r requirements.txt
cd llm_pretrain
./pretrain_llama.sh
이 모델의 일부 매개 변수 설정은 다릅니다.
미세 조정 LLM을 시작하기 전에 모델 이름 (huggingface) 또는 로컬 모델 경로를 제공해야합니다.
교육 데이터 준비, sft_examples.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 : llama-2에는 pad_token이 없기 때문에 Tokenizer에 '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의 경우 변압기 버전은> = 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