更新时间:2024-11-12 GMT+08:00
分享

训练的数据集预处理说明

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 脚本,自定义环境变量的值,并运行该脚本。其中环境变量详细介绍如下:

表1 数据预处理中的环境变量

环境变量

示例

参数说明

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。

相关文档