PaddlePaddle/PaddleNLP

[Question]: 再使用UIE-X封闭域信息抽取时遇到的问题

lili-changjiang opened this issue · 18 comments

请提出你的问题

使用的是
paddlepaddle-gpu 2.5.2.post112
paddlenlp 2.5.2
protobuf 3.20.2
报错:ImportError: cannot import name 'DataCollatorForClosedDomainIE' from 'paddlenlp.data.data_collator'
求解

paddlenlp 2.6.0 2.6.1 2.7.0 2.7.1 2.7.2 都试过也不行

我把 paddlepaddle-gpu 回退到 2.4.0rc0, cuda 回退到了10.2 然后 构建封闭域训练样本 就得到了label_maps.json, 我就开始准备训练, 一脸懵逼啊...

python train.py \
    --train_path data/train_data.json \
    --dev_path data/dev_data.json \
    --label_maps_path data/label_maps.json \
    --num_epochs 50 \
    --model_name_or_path ernie-3.0-base-zh

文档给出的训练数据和验证集 哪儿来的啊... 我最开始微调训练用过的吗? 我用训练和验证都指定训练时候用到的 label_studio.json,提示我 TypeError: list indices must be integers or slices, not str

我用 训练时候的 train.txt 和 dev.txt 然后提示我 KeyError: 'entity_list'... 好难啊 QAQ

我把 paddlepaddle-gpu 回退到 2.4.0rc0, cuda 回退到了10.2 然后 构建封闭域训练样本 就得到了label_maps.json, 我就开始准备训练, 一脸懵逼啊...

python train.py \
    --train_path data/train_data.json \
    --dev_path data/dev_data.json \
    --label_maps_path data/label_maps.json \
    --num_epochs 50 \
    --model_name_or_path ernie-3.0-base-zh

文档给出的训练数据和验证集 哪儿来的啊... 我最开始微调训练用过的吗? 我用训练和验证都指定训练时候用到的 label_studio.json,提示我 TypeError: list indices must be integers or slices, not str

我用 训练时候的 train.txt 和 dev.txt 然后提示我 KeyError: 'entity_list'... 好难啊 QAQ

谢谢提供思路,我试试去

我把 paddlepaddle-gpu 回退到 2.4.0rc0, cuda 回退到了10.2 然后 构建封闭域训练样本 就得到了label_maps.json, 我就开始准备训练, 一脸懵逼啊...

python train.py \
    --train_path data/train_data.json \
    --dev_path data/dev_data.json \
    --label_maps_path data/label_maps.json \
    --num_epochs 50 \
    --model_name_or_path ernie-3.0-base-zh

文档给出的训练数据和验证集 哪儿来的啊... 我最开始微调训练用过的吗? 我用训练和验证都指定训练时候用到的 label_studio.json,提示我 TypeError: list indices must be integers or slices, not str

我用 训练时候的 train.txt 和 dev.txt 然后提示我 KeyError: 'entity_list'... 好难啊 QAQ

还是不行,python data_convert.py --label_studio_file ../data/label_studio.json --splits 0.7 0.3 0 --task_type ext --layout_analysis True 我执行这个还是报错ImportError: cannot import name 'DataCollatorForClosedDomainIE' from 'paddlenlp.data.data_collator',你用的paddlenlp是哪个版本

我把 paddlepaddle-gpu 回退到 2.4.0rc0, cuda 回退到了10.2 然后 构建封闭域训练样本 就得到了label_maps.json, 我就开始准备训练, 一脸懵逼啊...

python train.py \
    --train_path data/train_data.json \
    --dev_path data/dev_data.json \
    --label_maps_path data/label_maps.json \
    --num_epochs 50 \
    --model_name_or_path ernie-3.0-base-zh

文档给出的训练数据和验证集 哪儿来的啊... 我最开始微调训练用过的吗? 我用训练和验证都指定训练时候用到的 label_studio.json,提示我 TypeError: list indices must be integers or slices, not str
我用 训练时候的 train.txt 和 dev.txt 然后提示我 KeyError: 'entity_list'... 好难啊 QAQ

还是不行,python data_convert.py --label_studio_file ../data/label_studio.json --splits 0.7 0.3 0 --task_type ext --layout_analysis True 我执行这个还是报错ImportError: cannot import name 'DataCollatorForClosedDomainIE' from 'paddlenlp.data.data_collator',你用的paddlenlp是哪个版本

我没有使用NLP... 我直接使用的源码, 在ide 里面运行这个 data_convert.py

我把 paddlepaddle-gpu 回退到 2.4.0rc0, cuda 回退到了10.2 然后 构建封闭域训练样本 就得到了label_maps.json, 我就开始准备训练, 一脸懵逼啊...

python train.py \
    --train_path data/train_data.json \
    --dev_path data/dev_data.json \
    --label_maps_path data/label_maps.json \
    --num_epochs 50 \
    --model_name_or_path ernie-3.0-base-zh

文档给出的训练数据和验证集 哪儿来的啊... 我最开始微调训练用过的吗? 我用训练和验证都指定训练时候用到的 label_studio.json,提示我 TypeError: list indices must be integers or slices, not str
我用 训练时候的 train.txt 和 dev.txt 然后提示我 KeyError: 'entity_list'... 好难啊 QAQ

还是不行,python data_convert.py --label_studio_file ../data/label_studio.json --splits 0.7 0.3 0 --task_type ext --layout_analysis True 我执行这个还是报错ImportError: cannot import name 'DataCollatorForClosedDomainIE' from 'paddlenlp.data.data_collator',你用的paddlenlp是哪个版本

我没有使用NLP... 我直接使用的源码, 在ide 里面运行这个 data_convert.py

我安装的paddlenlp2.5.2,然后把 add-doc-ie里面那个paddlenlp替换我自己的paddlenlp D:\Anaconda\envs\table\Lib\site-packages\paddlenlp,就问题了

可以使用较早版本的paddlenlp,比如paddlenlp2.5.2及其以下

下面几个版本2.3.x 2.4.x都试过,都有问题

是不是我们看到的文档都是错误的....
#8074
这里面说的,暂不支持...

我咨询了一下,DataCollatorForClosedDomainIE 这个暂停开发了,欢迎开发者贡献,或者使用大模型的解决方案。

我咨询了一下,DataCollatorForClosedDomainIE 这个暂停开发了,欢迎开发者贡献,或者使用大模型的解决方案。

大模型不方便本地化部署, 离线使用不方便...

用显存比较大的显卡,使用fp16或者量化后的模型进行推理部署

用显存比较大的显卡,使用fp16或者量化后的模型进行推理部署

训练我试过24GB的3090,还有就是16GB的4080s, 想在CPU进行推理部署,使用CPU进行推理,服务器级别的CPU,单核能力不强 推理不出来结果... 是那种卡半个小时,然后结果输出还是为空