项目简介
本项目是基于PaddlePaddle框架的ERNIE-ViL-PMR模型,用于处理视觉 - 语言任务,特别是Premise-based Multimodal Reasoning (PMR)任务。模型借助场景图中的结构化知识,构建物体预测、属性预测、关系预测三种预训练任务,精准刻画视觉 - 语言模态间细粒度语义的对齐,以获得更优的视觉 - 语言联合表示。
项目的主要特性和功能
- 知识增强预训练框架:ERNIE - ViL在视觉 - 语言预训练中引入结构化知识,利用场景图构建三种预训练任务。
- 多模态场景图预测:提出物体、属性、关系预测三个多模态场景图预测任务,实现视觉 - 语言模态细粒度语义对齐。
- 下游任务支持:提供PMR任务的训练和测试功能,支持基于Bottom - Up - Attention生成图像特征后的PMR任务训练。
安装使用步骤
环境准备
确保安装训练所需环境和依赖,包括PaddlePaddle框架、numpy、scipy等库。安装命令示例:
bash
pip install nltk==3.2.4 numpy==1.21.6 scipy==1.2.1 six==1.16.0 json_lines==0.5.0 lmdb==0.97 opencv-python==3.4.2.17 paddlepaddle-gpu==2.3.0rc0 protobuf==3.20.0
数据准备
准备VQA、Flickr、VCR等数据集,并生成相应的图像特征。确保数据集路径和配置文件路径正确。
模型训练
使用提供的训练脚本,配置好任务、数据路径、模型参数等,进行模型训练。训练命令示例:
bash
python finetune.py --use_cuda True --is_distributed False --use_fast_executor true --nccl_comm_num 1 --batch_size 32 --do_train True --do_test False --task_name pmr --vocab_path ernie-large/vocab.txt --task_group_json ./conf/pmr/task_pmr.json --lr_scheduler manual_warmup_decay --decay_steps 13308;19962 --lr_decay_ratio 0.1 --layer_decay_rate 0.0 --text_init_layers 18 --n_layers 30 --margin 0.3 --num_train_steps 26640 --checkpoints ./PMR/output_pmr_ot --save_steps 3330 --init_checkpoint ernie-large/params --ernie_config_path ernie-large/ernie_vil.large.json --learning_rate 2e-5 --warmup_steps 6654 --weight_decay 0.01 --max_seq_len 50
模型评估
使用测试脚本评估模型在PMR任务上的性能。测试命令示例:
bash
python finetune.py --use_cuda True --use_fast_executor true --batch_size 32 --do_train False --do_test True --task_name pmr --test_split test --vocab_path ernie-large/vocab.txt --task_group_json ./conf/pmr/test_pmr.json --init_checkpoint ./PMR/output_pmr_tv/step_13320 --ernie_config_path ernie-large/ernie_vil.large.json --max_seq_len 50 --skip_steps 10 --result_file ./PMR/result_pmr_test/13320.txt
结果分析
根据输出的结果文件分析模型的性能,并进一步优化模型。
以上步骤基于用户已下载项目源码文件并安装相应环境和依赖,实际使用时可能需根据具体环境和数据集调整。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】