项目简介
本项目是一套通用的自然语言任务处理流程,基于百度的深度学习框架PaddlePaddle。采用模块化总线式设计,将自然语言处理任务分为数据集整理、数据预处理、模型构建、训练与预测五个步骤,每个步骤都具备灵活的可替换性和扩展性。目前已加入处理SQuAD类型的机器阅读理解任务的逻辑代码,且若要加入其他任务,只需继承自然语言处理任务模块并添加特有逻辑代码即可。
项目的主要特性和功能
- 模块化设计:各步骤可单独替换和扩展,提升系统灵活性与可维护性。
- 可替换性:能按需替换各模块,如数据预处理和模型构建模块。
- 扩展性:通过继承抽象自然语言处理任务模块,可轻松添加新任务逻辑,如机器翻译、情感分析等。
- 支持SQuAD类型的机器阅读理解任务:加入处理该任务的逻辑代码并实现模块化设计。
安装使用步骤
环境准备
确保已安装Python 3.7及PaddlePaddle 1.8.1,安装项目所需的其他依赖库:
bash
pip install paddlepaddle==1.8.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install paddlehub==1.6.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install numpy
pip install logging
下载预训练模型
通过PaddleHub下载预训练模型(如ERNIE、RoBERTa等)并移动到本地目录:
bash
hub install ernie==1.2.0
cp -r /home/aistudio/.paddlehub/modules/ernie/ $HOME
rename 's/\@HUB_ernie-stable\@(.*)/$1/' ernie/assets/params/*
配置参数和日志管理
初始化参数管理,参数文件在File_Directory/config
下:
python
param = UParam()
param.read_config_file("config_ernie")
param.set_config(sys.argv[1:])
args = param.get_config(param.GLOBAL)
logger = ULog(args, params=param)
数据集准备
初始化数据集类,从源文件中读取数据:
python
train_dataset = Dataset(dataset_args)
train_dataset.read_from_srcfile(dataset_args['train_file_path'], is_training=True)
数据预处理
初始化预处理类,将数据集类生成的examples列表进行预处理:
python
train_preprocess = Preprocess(args=dataset_args, examples=train_dataset.get_examples())
train_data_generator = train_preprocess.do_preprocess()
模型构建
通过参数指定网络类型,构建网络对象:
python
net_args = param.get_config(param.MODEL_BUILD)
net = Net(args=net_args)
训练模型
创建训练引擎进行模型训练:
python
train_args = param.get_config(param.TRAIN)
train_engine = TrainEngine(args=train_args, network=net, train_data_generator=train_data_generator)
train_engine.train()
模型预测
使用预测引擎进行预测,并将结果写入指定目录:
python
test_args = param.get_config(param.PREDICT)
predict_engine = PredictEngine(test_args, net)
predict_engine.predict(predict_data_generator, predict_data=predict_data)
运行项目
直接运行main.py
文件,可通过命令行参数修改默认配置:
bash
python main.py --key1=value1 --key2=value2
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】