更新时间:2024-09-21 GMT+08:00
分享

训练数据集预处理说明

llama2-13b 举例,使用训练作业运行:obs_pipeline.sh 训练脚本后,脚本自动执行数据集预处理,并检查是否已经完成数据集预处理

如果已完成数据集预处理,则直接执行训练任务。若未进行数据集预处理,则会自动执行 scripts/llama2/1_preprocess_data.sh

预训练数据集预处理参数说明

预训练数据集预处理脚本 scripts/llama2/1_preprocess_data.sh 中的具体参数如下:

  • --input:原始数据集的存放路径。
  • --output-prefix:处理后的数据集保存路径+数据集名称(例如:alpaca_gpt4_data)。
  • --tokenizer-type:tokenizer的类型,可选项有['BertWordPieceLowerCase','BertWordPieceCase','GPT2BPETokenizer','PretrainedFromHF'],一般为PretrainedFromHF。
  • --tokenizer-name-or-path:tokenizer的存放路径,与HF权重存放在一个文件夹下。
  • --seq-length:要处理的最大seq length。
  • --workers:设置数据处理使用执行卡数量 / 启动的工作进程数。
  • --log-interval:是一个用于设置日志输出间隔的参数,表示输出日志的频率。在训练大规模模型时,可以通过设置这个参数来控制日志的输出。

微调数据集预处理参数说明

微调包含SFT和LoRA微调。数据集预处理脚本参数说明如下:

  • --input:原始数据集的存放路径。
  • --output-prefix:处理后的数据集保存路径+数据集名称(例如:alpaca_gpt4_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 为例。

  • 方法一:用户可打开scripts/llama2/1_preprocess_data.sh脚本,将执行的python命令复制下来,修改环境变量的值。在Notebook进入到 /home/ma-user/work/llm_train/AscendSpeed/ModelLink 路径中,再执行python命令。
  • 方法二:用户在Notebook中直接编辑scripts/llama2/1_preprocess_data.sh脚本,自定义环境变量的值,并在脚本的首行中添加 cd /home/ma-user/work/llm_train/AscendSpeed/ModelLink 命令,随后在Notebook中运行该脚本。

其中环境变量详细介绍如下:

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

环境变量

示例

参数说明

RUN_TYPE

pretrain、sft、lora

数据预处理区分:

预训练场景下数据预处理,默认参数:pretrain

微调场景下数据预处理,默认:sft / lora

ORIGINAL_TRAIN_DATA_PATH

/home/ma-user/work/training_data/finetune/moss_LossCompare.jsonl

原始数据集的存放路径。

TOKENIZER_PATH

/home/ma-user/work/model/llama-2-13b-chat-hf

tokenizer的存放路径,与HF权重存放在一个文件夹下。请根据实际规划修改。

PROCESSED_DATA_PREFIX

/home/ma-user/work/llm_train/processed_for_input/llama2-13b/data/pretrain/alpaca

处理后的数据集保存路径+数据集前缀。

TOKENIZER_TYPE

PretrainedFromHF

可选项有:['BertWordPieceLowerCase','BertWordPieceCase','GPT2BPETokenizer','PretrainedFromHF'],一般为 PretrainedFromHF 。

SEQ_LEN

4096

要处理的最大seq length。脚本会检测超出SEQ_LEN长度的数据,并打印log。

相关文档