训练的数据集预处理说明
以 llama2-13b 举例,运行:0_pl_pretrain_13b.sh 训练脚本后,脚本检查是否已经完成数据集预处理的过程。
若已完成数据集预处理,则直接执行预训练任务。若未进行数据集预处理,则会自动执行 scripts/llama2/1_preprocess_data.sh 。
预训练数据集预处理参数说明
预训练数据集预处理脚本scripts/llama2/1_preprocess_data.sh 中的具体参数如下:
- --input:原始数据集的存放路径。
- --output-prefix:处理后的数据集保存路径+数据集名称(例如:moss-003-sft-data)。
- --tokenizer-type:tokenizer的类型,可选项有['BertWordPieceLowerCase','BertWordPieceCase','GPT2BPETokenizer','PretrainedFromHF'],一般为PretrainedFromHF。
- --tokenizer-name-or-path:tokenizer的存放路径,与HF权重存放在一个文件夹下。
- --seq-length:要处理的最大seq length。
- --workers:设置数据处理使用执行卡数量 / 启动的工作进程数。
- --log-interval:是一个用于设置日志输出间隔的参数,表示输出日志的频率。在训练大规模模型时,可以通过设置这个参数来控制日志的输出。
输出数据预处理结果路径:
训练完成后,以 llama2-13b 为例,输出数据路径为:/home/ma-user/ws/llm_train/AscendSpeed/processed_for_input/llama2-13b/data/pretrain/
微调数据集预处理参数说明
微调包含SFT和LoRA微调。数据集预处理脚本参数说明如下:
- --input:原始数据集的存放路径。
- --output-prefix:处理后的数据集保存路径+数据集名称(例如:moss-003-sft-data)
- --tokenizer-type:tokenizer的类型,可选项有['BertWordPieceLowerCase','BertWordPieceCase','GPT2BPETokenizer','PretrainedFromHF'],一般为PretrainedFromHF。
- --tokenizer-name-or-path:tokenizer的存放路径,与HF权重存放在一个文件夹下。
- --handler-name:生成数据集的用途,这里是生成的指令数据集,用于微调。
- GeneralPretrainHandler:默认。用于预训练时的数据预处理过程中,将数据集根据key值进行简单的过滤。
- GeneralInstructionHandler:用于sft、lora微调时的数据预处理过程中,会对数据集full_prompt中的user_prompt进行mask操作。
- --seq-length:要处理的最大seq length。
- --workers:设置数据处理使用执行卡数量 / 启动的工作进程数。
- --log-interval:是一个用于设置日志输出间隔的参数,表示输出日志的频率。在训练大规模模型时,可以通过设置这个参数来控制日志的输出。
输出数据预处理结果路径:
训练完成后,以 llama2-13b 为例,输出数据路径为:/home/ma-user/ws/llm_train/AscendSpeed/processed_for_input/llama2-13b/data/finetune/
用户自定义执行数据处理脚本修改参数说明
同样以 llama2 为例,用户可直接编辑 scripts/llama2/1_preprocess_data.sh 脚本,自定义环境变量的值,并运行该脚本。其中环境变量详细介绍如下:
环境变量 |
示例 |
参数说明 |
---|---|---|
RUN_TYPE |
pretrain、sft、lora |
数据预处理区分: 预训练场景下数据预处理,默认参数:pretrain 微调场景下数据预处理,默认:sft / lora |
ORIGINAL_TRAIN_DATA_PATH |
/home/ma-user/ws/llm_train/AscendSpeed/training_data/${用户自定义的数据集路径和名称} |
原始数据集的存放路径。 |
TOKENIZER_PATH |
/home/ma-user/ws/llm_train/AscendSpeed/tokenizers/llama2-13b |
tokenizer的存放路径,与HF权重存放在一个文件夹下。请根据实际规划修改。 |
PROCESSED_DATA_PREFIX |
/home/ma-user/ws/llm_train/AscendSpeed/processed_for_input/llama2-13b/data |
处理后的数据集保存路径+数据集前缀 |
TOKENIZER_TYPE |
PretrainedFromHF |
可选项有:['BertWordPieceLowerCase','BertWordPieceCase','GPT2BPETokenizer','PretrainedFromHF'],一般为 PretrainedFromHF 。 |
SEQ_LEN |
4096 |
要处理的最大seq length。脚本会检测超出SEQ_LEN长度的数据,并打印log。 |