Skip to content

Latest commit

 

History

History
103 lines (68 loc) · 3.28 KB

File metadata and controls

103 lines (68 loc) · 3.28 KB

预训练数据集处理

常用的预训练数据集

数据集下载

数据集下载可以基于网页直接下载,也可以基于命令行下载,比如:

mkdir dataset
cd dataset/
wget https://huggingface.co/datasets/tatsu-lab/alpaca/resolve/main/data/train-00000-of-00001-a09b74b3ef9c3b56.parquet
cd ..

数据集处理

预训练数据集处理方法

source /usr/local/Ascend/cann/set_env.sh # 修改为实际安装的Toolkit包路径
mkdir ./dataset

python ./preprocess_data.py \
    --input ./dataset/train-00000-of-00001-a09b74b3ef9c3b56.parquet \
    --tokenizer-name-or-path ./model_from_hf/llama-2-7b-hf \
    --tokenizer-type PretrainedFromHF \
    --handler-name GeneralPretrainHandler \
    --output-prefix ./dataset/alpaca_llama2_7b \
    --json-keys text \
    --workers 4 \
    --log-interval 1000  

MindSpeed-LLM预训练数据集处理脚本命名风格及启动方法为:

# 命名及启动:examples/mcore/model_name/data_convert_xxx_pretrain.sh
bash examples/mcore/llama2/data_convert_llama2_pretrain.sh

参数说明

【--input】

可以直接输入到数据集目录或具体文件,如果是目录,则处理全部文件, 支持.parquet/.csv/.json/.jsonl/.txt/.arrow格式, 同一个文件夹下的数据格式需要保持一致

【--tokenizer-type】

说明使用tokenizer类别,参数值为PretrainedFromHF时,词表路径填写模型目录即可。否则需要配置--tokenizer-model参数,指定分词器模型的路径,路径具体到tokenizer.model文件

【--tokenizer-name-or-path】

词表路径,当tokenizer类别为PretrainedFromHF时,只需配置到目标模型的tokenizer所在目录即可

【--output-prefix】

转换后输出的数据集文件的文件名前缀

【--handler-name】

当前预训练默认使用 GeneralPretrainHandler,支持的是预训练数据风格,提取数据的text列,格式如下:

[
  {"text": "document"},
  {"other keys": "optional content"}
]

用户可结合具体数据处理需求添加新的Handler进行数据处理

【--json-keys】

从文件中提取的列名列表,默认为 text,可以为 text, input, title 等多个输入,结合具体需求及数据集内容使用,如:

--json-keys text input output \

【--workers】

同时进行数据集处理的进程数

【--n-subs】

数据预处理并行加速参数。当需要预处理的数据集比较大时,可以通过并行处理进行加速,方法为设置参数--n-subs,通过该参数设置并行处理数量。在数据预处理过程会将原始数据集切分为n-subs个子集,对子集进行并行处理,然后合并,从而实现加速。建议预处理数据集超过GB级别时加上该参数。

处理结果

预训练数据集处理结果如下:

./dataset/alpaca_llama2_7b_text_document.bin
./dataset/alpaca_llama2_7b_text_document.idx

预训练时,数据集路径--data-path参数传入 ./dataset/alpaca_llama2_7b_text_document 即可