AI开发平台MODELARTS-SFT全参微调数据处理:数据预处理说明
数据预处理说明
使用数据预处理脚本preprocess_data.py脚本重新生成.bin和.idx格式的SFT全参微调数据。preprocess_data.py存放在xxx-Ascend/llm_train/AscendSpeed/ModelLink/tools目录中,脚本具体内容如下。xxx-Ascend请根据实际目录替换。
#进入ModelLink目录: cd /home/ma-user/ws/xxx-Ascend/llm_train/AscendSpeed/ModelLink export PYTHONPATH=$PYTHONPATH:/home/ma-user/ws/xxx-Ascend/llm_train/AscendSpeed/AscendSpeed export PYTHONPATH=$PYTHONPATH:/home/ma-user/ws/xxx-Ascend/llm_train/AscendSpeed/ModelLink python ./tools/preprocess_data.py \ --input /home/ma-user/ws/training_data/finetune/Alpaca_data_gpt4_zh.jsonl \ --tokenizer-name-or-path $TOKENIZER_PATH \ --output-prefix $DATASET_PATH\ --tokenizer-type PretrainedFromHF \ --workers 8 \ --seq-length 8192 \ --handler-name GeneralInstructionHandler \ --append-eod \ --tokenizer-not-use-fast
参数说明:
- - input:SFT全参微调数据的存放路径。
- - output-prefix:处理后的数据集保存路径+数据集名称前缀(例如:alpaca_ft)。
- - tokenizer-type:tokenizer的类型,可选项有['BertWordPieceLowerCase', 'BertWordPieceCase','GPT2BPETokenizer', 'PretrainedFromHF'],设置为PretrainedFromHF。
- - tokenizer-name-or-path:tokenizer的存放路径。
- - handler-name:生成数据集的用途,这里是生成的指令数据集,用于微调。
- - workers:数据处理线程数。
- seq-length:是一个用于计算序列长度的函数。它接收一个序列作为输入,并返回序列的长度,需和训练时参数保持一致。
- -append-eod:参数用于控制是否在每个输入序列的末尾添加一个特殊的标记。这个标记表示输入序列的结束,可以帮助模型更好地理解和处理长序列。
输出结果
alpaca_ft_packed_attention_mask_document.bin
alpaca_ft_packed_attention_mask_document.idx
alpaca_ft_packed_input_ids_document.bin
alpaca_ft_packed_input_ids_document.idx
alpaca_ft_packed_labels_document.bin
alpaca_ft_packed_labels_document.idx