AI开发平台MODELARTS-预训练数据处理:Alpaca数据处理

时间:2024-05-16 12:45:47

Alpaca数据处理

数据预处理脚本preprocess_data.py存放在代码包的“llm_train/AscendSpeed/ModelLink/tools”目录中,脚本样例命令及参数详解如下,详细执行步骤请参考下一段落。

python ./tools/preprocess_data.py \
 --input {work_dir}/training_data/pretrain/train-00000-of-00001-a09b74b3ef9c3b56.parquet \
 --tokenizer-name-or-path {work_dir}/tokenizers/GLM3-6B \
 --output-prefix {work_dir}/processed_for_ma_input/GLM3-6B/data/pretrain/alpaca \
 --workers 4 \
 --tokenizer-type PretrainedFromHF \
 --append-eod \
 --seq-length 8192 \
 --tokenizer-not-use-fast 

参数说明:

  • ${work_dir}的路径指容器工作路径:如/home/ma-user/ws/ 。
  • - input:原始数据集的存放路径
  • - output-prefix:处理后的数据集保存路径+数据集名称前缀(例如: alpaca),该目录路径需提前创建
  • - tokenizer-type:tokenizer的类型,可选项有['BertWordPieceLowerCase','BertWordPieceCase','GPT2BPETokenizer','PretrainedFromHF'],一般为PretrainedFromHF。
  • - tokenizer-name-or-path:tokenizer的存放路径
  • -workers:设置数据处理使用执行卡数量
  • -append-eod:参数用于控制是否在每个输入序列的末尾添加一个特殊的标记。这个标记表示输入序列的结束,可以帮助模型更好地理解和处理长序列。
  • seq-length:是一个用于计算序列长度的函数。它接收一个序列作为输入,并返回序列的长度,需和训练时参数保持一致。

数据预处理后输出的训练数据如下:

  • alpaca_text_document.bin
  • alpaca_text_document.idx

训练的时指定的数据路径为${path}/alpaca/GLM3-6B/alpaca_text_document, 不加文件类型后缀。

support.huaweicloud.com/bestpractice-modelarts/modelarts_10_1677.html