Giter VIP home page Giter VIP logo

ernie's Introduction

ERNIE_milestone_20210519_zh

文心大模型ERNIE是百度发布的产业级知识增强大模型,涵盖了NLP大模型和跨模态大模型。2019年3月,开源了国内首个开源预训练模型文心ERNIE 1.0,此后在语言与跨模态的理解和生成等领域取得一系列技术突破,并对外开源与开放了系列模型,助力大模型研究与产业化应用发展。提醒: ERNIE老版本代码已经迁移至repro分支,欢迎使用我们全新升级的基于动静结合的新版ERNIE套件进行开发。另外,也欢迎上EasyDLBML体验更丰富的功能。 【了解更多】

开源Roadmap

  • 2022.8.18:
    • 图文跨模态预训练模型ERNIE-ViL 2.0 (base) 正式开源
  • 2022.5.20:
    • 最新开源ERNIE 3.0系列预训练模型:
      • 110M参数通用模型ERNIE 3.0 Base
      • 280M参数重量级通用模型ERNIE 3.0 XBase
      • 74M轻量级通用模型ERNIE 3.0 Medium
    • 新增语音-语言跨模态模型ERNIE-SAT 正式开源
    • 新增ERNIE-Gen(中文)预训练模型,支持多类主流生成任务:主要包括摘要、问题生成、对话、问答
    • 动静结合的文心ERNIE开发套件:基于飞桨动态图功能,支持文心ERNIE模型动态图训练。您仅需要在模型训练开启前,修改一个参数配置,即可实现模型训练的动静切换。
    • 将文本预处理、预训练模型、网络搭建、模型评估、上线部署等NLP开发流程规范封装。
    • 支持NLP常用任务:文本分类、文本匹配、序列标注、信息抽取、文本生成、数据蒸馏等。
    • 提供数据清洗、数据增强、分词、格式转换、大小写转换等数据预处理工具。
  • 2021.12.3:
  • 2021.5.20:
    • ERNIE 最新开源四大预训练模型:
      • 多粒度语言知识模型ERNIE-Gram 正式开源
      • 超长文本双向建模预训练模型ERNIE-Doc 正式开源
      • 融合场景图知识的跨模态预训练模型教程ERNIE-ViL 正式开源
      • 语言与视觉一体的预训练模型ERNIE-UNIMO 正式开源
  • 2020.9.24:
    • ERNIE-ViL 技术发布! (点击进入)
      • 面向视觉-语言知识增强的预训练框架,首次在视觉-语言预训练引入结构化的知识。
        • 利用场景图中的知识,构建了物体、属性和关系预测任务,精细刻画模态间细粒度语义对齐。
      • 五项视觉-语言下游任务取得最好效果,视觉常识推理榜单取得第一。
  • 2020.5.20:
    • ERNIE-GEN 模型正式开源! (点击进入)
      • 最强文本生成预训练模型正式开源,相关工作已被 IJCAI-2020 收录。
        • 首次把 ERNIE 预训练技术能力扩展至文本生成领域,在多个典型任务上取得最佳。
        • 您现在即可下载论文报告的所有模型(包含 base/large/large-430G)。
      • 首次在预训练阶段加入span-by-span 生成任务,让模型每次能够生成一个语义完整的片段。
      • 提出填充式生成机制和噪声感知机制来缓解曝光偏差问题。
      • 精巧的 Mulit-Flow Attention 实现框架。
  • 2020.4.30 发布ERNIESage, 一种新型图神经网络模型,采用ERNIE做为aggreagtor. 由PGL实现。
  • 2020.3.27 在SemEval2020五项子任务上夺冠
  • 2019.12.26 GLUE榜第一名
  • 2019.11.6 发布ERNIE Tiny
  • 2019.7.7 发布ERNIE 2.0
  • 2019.3.16 发布ERNIE 1.0

环境安装

  1. 安装环境依赖:环境安装
  2. 安装Ernie套件
git clone https://github.com/PaddlePaddle/ERNIE.git

快速上手:使用文心ERNIE大模型进行训练

  • 使用ERNIE3.0作为预训练模型,准备工作包括:
    • 下载模型
    • 准备数据
    • 配置训练json文件
    • 启动训练模型
    • 配置预测json文件
    • 启动预测
  • 我们以文本分类任务为例,来快速上手ERNIE大模型的使用

下载模型

  • 使用ERNIE3.0预训练模型进行文本分类任务
  • ERNNIE3.0预训练模型的下载与配置
# ernie_3.0 模型下载
# 进入models_hub目录
cd ./applications/models_hub
# 运行下载脚本
sh download_ernie_3.0_base_ch.sh

准备数据

  • 文心各个任务的data目录下自带一些示例数据,能够实现直接使用,方便快速熟悉文心的使用。
  • 文本分类任务的数据
#进入文本分类任务文件夹
cd ./applications/tasks/text_classification/
#查看文本分类任务自带数据集
ls ./data
  • 注:示例数据仅作为格式演示使用,在真正训练模型时请替换为真实数据。

配置训练json文件

  • 其预置json文件在./examples/目录下,使用ERNIE3.0预训练模型进行训练的配置文件为的./examples/cls_ernie_fc_ch.json,在该json文件中对数据、模型、训练方式等逻辑进行了配置。
#查看 ERNIE3.0预训练模型 训练文本分类任务的配置文件
cat ./examples/cls_ernie_fc_ch.json

启动训练

  • 将数据集存放妥当,并配置好cls_ernie_fc_ch.json,我们就可以运行模型训练的命令。
  • 其中,单卡指令为python run_trainer.py,如下所示,使用基于ernie的中文文本分类模型在训练集上进行本地模型训练。
# ernie 中文文本分类模型
# 基于json实现预置网络训练。其调用了配置文件./examples/cls_ernie_fc_ch.json
python run_trainer.py --param_path ./examples/cls_ernie_fc_ch.json
  • 多卡指令为:
fleetrun --gpus=x,y run_trainer.py./examples/cls_ernie_fc_ch.json
  • 训练运行的日志会自动保存在**./log/test.log**文件中。
  • 训练中以及结束后产生的模型文件会默认保存在./output/目录下,其中save_inference_model/文件夹会保存用于预测的模型文件,save_checkpoint/ 文件夹会保存用于热启动的模型文件。

配置预测json文件

  • 其预置json文件在./examples/目录下,使用ERNIE2.0预训练模型训练的模型进行预测的配置文件为的./examples/cls_ernie_fc_ch_infer.json
  • 主要修改./examples/cls_ernie_fc_ch_infer.json文件的预测模型的输入路径、预测文件的输入路径、预测结果的输出路径,对应修改配置如下:
{
"dataset_reader":{"train_reader":{"config":{"data_path":"./data/predict_data"}}},
"inference":{"inference_model_path":"./output/cls_ernie_fc_ch/save_inference_model/inference_step_251",
                        "output_path": "./output/predict_result.txt"}
}

启动预测

  • 运行run_infer.py ,选择对应的参数配置文件即可。如下所示:
python run_infer.py --param_path ./examples/cls_ernie_fc_ch_infer.json
  • 预测过程中的日志自动保存在./output/predict_result.txt文件中。

预训练模型介绍

  • 参考预训练模型原理介绍:模型介绍
  • 预训练模型下载:进入./applications/models_hub目录下,下载示例:
#进入预训练模型下载目录
cd ./applications/models_hub
#下载ERNIE3.0 base模型
sh downlaod_ernie_3.0_base_ch.sh

数据集下载

CLUE数据集

DuIE2.0数据集

MSRA_NER数据集

模型效果评估

评估数据集

CLUE 评测结果:

配置 模型 CLUEWSC2020 IFLYTEK TNEWS AFQMC CMNLI CSL OCNLI 平均值
24L1024H RoBERTa-wwm-ext-large 90.79 62.02 59.33 76.00 83.88 83.67 78.81 76.36
20L1024H ERNIE 3.0-XBase 91.12 62.22 60.34 76.95 84.98 84.27 82.07 77.42
12L768H RoBERTa-wwm-ext-base 88.55 61.22 58.08 74.75 81.66 81.63 77.25 74.73
12L768H ERNIE 3.0-Base 88.18 60.72 58.73 76.53 83.65 83.30 80.31 75.63
6L768H RBT6, Chinese 75.00 59.68 56.62 73.15 79.26 80.04 73.15 70.99
6L768H ERNIE 3.0-Medium 79.93 60.14 57.16 74.56 80.87 81.23 77.02 72.99

具体评测方式

  1. 以上所有任务均基于 Grid Search 方式进行超参寻优。分类任务训练每间隔 100 steps 评估验证集效果,取验证集最优效果作为表格中的汇报指标。
  2. 分类任务 Grid Search 超参范围: batch_size: 16, 32, 64; learning rates: 1e-5, 2e-5, 3e-5, 5e-5;因为 CLUEWSC2020 数据集较小,所以模型在该数据集上的效果对 batch_size 较敏感,所以对 CLUEWSC2020 评测时额外增加了 batch_size = 8 的超参搜索; 因为CLUEWSC2020 和 IFLYTEK 数据集对 dropout 概率值较为敏感,所以对 CLUEWSC2020 和 IFLYTEK 数据集评测时增加dropout_prob = 0.0 的超参搜索。

下游任务的固定超参配置

分类和匹配任务:

TASK AFQMC TNEWS IFLYTEK CMNLI OCNLI CLUEWSC2020 CSL
epoch 3 3 3 2 5 50 5
max_seq_length 128 128 128 128 128 128 256
warmup_proportion 0.1 0.1 0.1 0.1 0.1 0.1 0.1

ERNIE模型Grid Search 最优超参

Model AFQMC TNEWS IFLYTEK CMNLI OCNLI CLUEWSC2020 CSL
ERNIE 3.0-Medium bsz_32_lr_2e-05 bsz_16_lr_3e-05 bsz_16_lr_5e-05 bsz_16_lr_1e-05/bsz_64_lr_2e-05 bsz_64_lr_2e-05 bsz_8_lr_2e-05 bsz_32_lr_1e-05
ERNIE 3.0-Base bsz_16_lr_2e-05 bsz_64_lr_3e-05 bsz_16_lr_5e-05 bsz_16_lr_2e-05 bsz_16_lr_2e-05 bsz_8_lr_2e-05(drop_out _0.1) bsz_16_lr_3e-05
ERNIE 3.0-XBase bsz_16_lr_1e-05 bsz_16_lr_2e-05 bsz_16_lr_3e-05 bsz_16_lr_1e-05 bsz_32_lr_2e-05 bsz_8_lr_2e-05 bsz_64_lr_1e-05

应用场景

文本分类(文本分类

文本匹配(文本匹配

序列标注(序列标注

信息抽取(信息抽取

文本生成(文本生成

图文匹配(图文匹配

数据蒸馏(数据蒸馏

工具使用(工具使用

文献引用

ERNIE 1.0

@article{sun2019ernie,
  title={Ernie: Enhanced representation through knowledge integration},
  author={Sun, Yu and Wang, Shuohuan and Li, Yukun and Feng, Shikun and Chen, Xuyi and Zhang, Han and Tian, Xin and Zhu, Danxiang and Tian, Hao and Wu, Hua},
  journal={arXiv preprint arXiv:1904.09223},
  year={2019}
}

ERNIE 2.0

@inproceedings{sun2020ernie,
  title={Ernie 2.0: A continual pre-training framework for language understanding},
  author={Sun, Yu and Wang, Shuohuan and Li, Yukun and Feng, Shikun and Tian, Hao and Wu, Hua and Wang, Haifeng},
  booktitle={Proceedings of the AAAI Conference on Artificial Intelligence},
  volume={34},
  number={05},
  pages={8968--8975},
  year={2020}
}

ERNIE-GEN

@article{xiao2020ernie,
  title={Ernie-gen: An enhanced multi-flow pre-training and fine-tuning framework for natural language generation},
  author={Xiao, Dongling and Zhang, Han and Li, Yukun and Sun, Yu and Tian, Hao and Wu, Hua and Wang, Haifeng},
  journal={arXiv preprint arXiv:2001.11314},
  year={2020}
}

ERNIE-ViL

@article{yu2020ernie,
  title={Ernie-vil: Knowledge enhanced vision-language representations through scene graph},
  author={Yu, Fei and Tang, Jiji and Yin, Weichong and Sun, Yu and Tian, Hao and Wu, Hua and Wang, Haifeng},
  journal={arXiv preprint arXiv:2006.16934},
  year={2020}
}

ERNIE-Gram

@article{xiao2020ernie,
  title={ERNIE-Gram: Pre-Training with Explicitly N-Gram Masked Language Modeling for Natural Language Understanding},
  author={Xiao, Dongling and Li, Yu-Kun and Zhang, Han and Sun, Yu and Tian, Hao and Wu, Hua and Wang, Haifeng},
  journal={arXiv preprint arXiv:2010.12148},
  year={2020}
}

ERNIE-Doc

@article{ding2020ernie,
  title={ERNIE-Doc: A retrospective long-document modeling transformer},
  author={Ding, Siyu and Shang, Junyuan and Wang, Shuohuan and Sun, Yu and Tian, Hao and Wu, Hua and Wang, Haifeng},
  journal={arXiv preprint arXiv:2012.15688},
  year={2020}
}

ERNIE-UNIMO

@article{li2020unimo,
  title={Unimo: Towards unified-modal understanding and generation via cross-modal contrastive learning},
  author={Li, Wei and Gao, Can and Niu, Guocheng and Xiao, Xinyan and Liu, Hao and Liu, Jiachen and Wu, Hua and Wang, Haifeng},
  journal={arXiv preprint arXiv:2012.15409},
  year={2020}
}

ERNIE-M

@article{ouyang2020ernie,
  title={Ernie-m: Enhanced multilingual representation by aligning cross-lingual semantics with monolingual corpora},
  author={Ouyang, Xuan and Wang, Shuohuan and Pang, Chao and Sun, Yu and Tian, Hao and Wu, Hua and Wang, Haifeng},
  journal={arXiv preprint arXiv:2012.15674},
  year={2020}
}

ernie's People

Contributors

0xflotus avatar baojun-nervana avatar cclauss avatar dingsiyu avatar jacklxc avatar jesseyxujin avatar kennycao123 avatar kirayummy avatar liuhaixiao0720 avatar meiyim avatar nbcc avatar oyjxer avatar prooshio avatar shenyuhan avatar sneaxiy avatar tangdonnie avatar tianxin1860 avatar wang001 avatar webyfdt avatar weiyuesu avatar xfcygaocan avatar xiegegege avatar xixiaoyao avatar xuezhong avatar xyzhou-puck avatar yucosine avatar zeyuchen avatar zhanghan1992 avatar zhengya01 avatar zhiqiu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ernie's Issues

预处理数据的问题

“”基于百科类、资讯类、论坛对话类数据构造具有上下文关系的句子对数据,利用百度内部词法分析工具对句对数据进行字、词、实体等不同粒度的切分”(这个能给个切分后的例子吗,一个样本有两句?)

ERNIE分类只do_valid报错

你好,用ERNIE做finetune的分类任务后,再重新加载新生成的模型只做验证,报错,需要设置args.init_checkpoint,这个参数要如何设置?

when bert use save_inference_model, the __model__ is imcomplete

after I finetune and then

$python -u predict_classifier.py --task_name ${TASK_NAME} \
           --use_cuda false \ 
           --batch_size 1 \
           --data_dir ${DATA_PATH} \
           --vocab_path ${BERT_BASE_PATH}/vocab.txt \
           --do_lower_case true \
           --init_checkpoint ${INIT_CKPT_PATH} \
           --max_seq_len 8 \
           --bert_config_path ${BERT_BASE_PATH}/bert_config.json \
           --do_predict true \
           --save_inference_model_path ${SAVE_INFERENCE_PATH}

when I open the generated file __model__, I can found errors like(I use paddle 1.3.0):

^AX^R^Dfeed^R^X
^COut^R^Qread_file_0.tmp_3^Z^Dfeed"^O
^Kop_role_var^P^E"ü^F
^Lop_callstack^P^EBî^A  File "/home/xxx/python-2.7.14-paddle-1.3.0/lib/python2.7/site-p
ackages/paddle/fluid/framework.py", line 1382, in _prepend_op
    attrs=kwargs.get("attrs", None))
BÜ^A  File "/home/xxx/python-2.7.14-paddle-1.3.0/lib/python2.7/site-packages/paddle/flu
id/io.py", line 843, in prepend_feed_ops
    attrs={'col': i})
Bÿ^A  File "/home/xxx/python-2.7.14-paddle-1.3.0/lib/python2.7/site-packages/paddle/flu
id/io.py", line 996, in save_inference_model
    prepend_feed_ops(main_program, feeded_var_names)
BQ  File "predict_classifier.py", line 147, in main
    main_program=predict_prog)
BE  File "predict_classifier.py", line 152, in <module>
    main(args)
"^S

请问dbqa中如何显示模型回答的结果

你好,感觉的模型很棒,但是请问dbqa中如何显示模型回答的结果?我在源码中也没有看到训练模型时读取text_a和text_b的代码,并且test.tsv作为测试不应该没有label吗?

BERT init_checkpoint

请问BERT run_classifier.py中init_checkpoint要如何设置,示例中没有

运行run_ChnSentiCorp.sh报错

在下载完模型和任务数据之后,运行 bash script/run_ChnSentiCorp.sh。之后报错如下:

Theoretical memory usage in training: 10522.327 - 11023.390 MB
W0318 14:37:05.017385 13682 device_context.cc:263] Please NOTE: device: 0, CUDA Capability: 75, Driver API Version: 10.0, Runtime API Version: 9.0
W0318 14:37:05.017417 13682 device_context.cc:271] device: 0, cuDNN Version: 7.0.
Load pretraining parameters from /home/lab/liujiepeng/Framework/LARK/ERNIE/model/model_data/params.
Traceback (most recent call last):
  File "run_classifier.py", line 283, in <module>
    main(args)
  File "run_classifier.py", line 204, in main
    train_exe.run(fetch_list=[])
  File "/home/lab/liujiepeng/Framework/LARK/venv_paddle/lib/python3.5/site-packages/paddle/fluid/parallel_executor.py", line 303, in run
    self.executor.run(fetch_list, fetch_var_name)
paddle.fluid.core.EnforceNotMet: Invoke operator softmax error.
Python Callstacks: 
  File "/home/lab/liujiepeng/Framework/LARK/venv_paddle/lib/python3.5/site-packages/paddle/fluid/framework.py", line 1317, in append_op
    attrs=kwargs.get("attrs", None))
  File "/home/lab/liujiepeng/Framework/LARK/venv_paddle/lib/python3.5/site-packages/paddle/fluid/layer_helper.py", line 56, in append_op
    return self.main_program.current_block().append_op(*args, **kwargs)
  File "/home/lab/liujiepeng/Framework/LARK/venv_paddle/lib/python3.5/site-packages/paddle/fluid/layers/nn.py", line 1788, in softmax
    attrs={"use_cudnn": use_cudnn})
  File "/home/lab/liujiepeng/Framework/LARK/ERNIE/model/transformer_encoder.py", line 120, in scaled_dot_product_attention
    weights = layers.softmax(product)
  File "/home/lab/liujiepeng/Framework/LARK/ERNIE/model/transformer_encoder.py", line 148, in multi_head_attention
    dropout_rate)
  File "/home/lab/liujiepeng/Framework/LARK/ERNIE/model/transformer_encoder.py", line 274, in encoder_layer
    name=name + '_multi_head_att')
  File "/home/lab/liujiepeng/Framework/LARK/ERNIE/model/transformer_encoder.py", line 337, in encoder
    name=name + '_layer_' + str(i))
  File "/home/lab/liujiepeng/Framework/LARK/ERNIE/model/ernie.py", line 136, in _build_model
    name='encoder')
  File "/home/lab/liujiepeng/Framework/LARK/ERNIE/model/ernie.py", line 81, in __init__
    self._build_model(src_ids, position_ids, sentence_ids, self_attn_mask)
  File "/home/lab/liujiepeng/Framework/LARK/ERNIE/finetune/classifier.py", line 49, in create_model
    use_fp16=args.use_fp16)
  File "run_classifier.py", line 97, in main
    ernie_config=ernie_config)
  File "run_classifier.py", line 283, in <module>
    main(args)
C++ Callstacks: 
CUDNN_STATUS_EXECUTION_FAILED at [/paddle/paddle/fluid/operators/math/softmax.cu:56]
PaddlePaddle Call Stacks: 
0       0x7fc944af6dbdp void paddle::platform::EnforceNotMet::Init<std::string>(std::string, char const*, int) + 365
1       0x7fc944af7107p paddle::platform::EnforceNotMet::EnforceNotMet(std::string const&, char const*, int) + 87
2       0x7fc94628bd8ep paddle::operators::math::SoftmaxCUDNNFunctor<float>::operator()(paddle::platform::CUDADeviceContext const&, paddle::framework::Tensor const*, paddle::framework::Tensor*) + 830
3       0x7fc9450ec423p paddle::operators::SoftmaxCUDNNKernel<float>::Compute(paddle::framework::ExecutionContext const&) const + 595
4       0x7fc9450ec4d3p std::_Function_handler<void (paddle::framework::ExecutionContext const&), paddle::framework::OpKernelRegistrarFunctor<paddle::platform::CUDAPlace, false, 0ul, paddle::operators::SoftmaxCUDNNKernel<float>, paddle::operators::SoftmaxCUDNNKernel<double>, paddle::operators::SoftmaxCUDNNKernel<paddle::platform::float16> >::operator()(char const*, char const*, int) const::{lambda(paddle::framework::ExecutionContext const&)#1}>::_M_invoke(std::_Any_data const&, paddle::framework::ExecutionContext const&) + 35
5       0x7fc946504c33p paddle::framework::OperatorWithKernel::RunImpl(paddle::framework::Scope const&, boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace, paddle::platform::CUDAPinnedPlace, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> const&) const + 659
6       0x7fc9465024a5p paddle::framework::OperatorBase::Run(paddle::framework::Scope const&, boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace, paddle::platform::CUDAPinnedPlace, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> const&) + 341
7       0x7fc94637881ap paddle::framework::details::ComputationOpHandle::RunImpl() + 250
8       0x7fc946371ef6p paddle::framework::details::OpHandleBase::Run(bool) + 118
9       0x7fc94630a10dp
10      0x7fc94630ab0dp paddle::framework::details::ThreadedSSAGraphExecutor::RunOp(std::shared_ptr<paddle::framework::BlockingQueue<paddle::framework::details::VarHandleBase*> > const&, paddle::framework::details::OpHandleBase*) + 1309
11      0x7fc94630c784p paddle::framework::details::ThreadedSSAGraphExecutor::Run(std::vector<std::string, std::allocator<std::string> > const&) + 2324
12      0x7fc94630380ap paddle::framework::details::ScopeBufferedSSAGraphExecutor::Run(std::vector<std::string, std::allocator<std::string> > const&) + 394
13      0x7fc944c31ca2p paddle::framework::ParallelExecutor::Run(std::vector<std::string, std::allocator<std::string> > const&, std::string const&) + 562
14      0x7fc944ae712ep
15      0x7fc944b21c4ep
16            0x4ea137p PyCFunction_Call + 119
17            0x53c176p PyEval_EvalFrameEx + 23030
18            0x5401efp
19            0x53b83fp PyEval_EvalFrameEx + 20671
20            0x53b294p PyEval_EvalFrameEx + 19220
21            0x53fc97p
22            0x5409bfp PyEval_EvalCode + 31
23            0x60cb42p
24            0x60efeap PyRun_FileExFlags + 154
25            0x60f7dcp PyRun_SimpleFileExFlags + 444
26            0x640256p Py_Main + 1110
27            0x4d0001p main + 225
28      0x7fc976ec5830p __libc_start_main + 240
29            0x5d6999p _start + 41

请问如何解决?谢谢!

pretrain.sh运行报错

运行script文件夹下的pretrain.sh运行报错,TypeError:a bytes-like object is required,not 'str' 程序也一直出不来结果

readme和代码实现中mask方法的逻辑不一致

readme中:这个方法与bert最大的区别在于不是mask随机字,而是mask随机词。 代码batching中:以词为单位,首字和其他字的mask方法不一致! 非首字按bert方法mask,首字按15%,15%,70%分别mask,replace,不变。 个人看法:保持首字和其余字的mask方法一致,效果会更好。

embedding

请问ERNIE有类似BERT的word embedding功能吗,如果有如何提取embedding

能否给出一个preprocess 文件

因为想试一下你们预训练的模型 我在处理我自己的数据过程中 不知道你们( 利用百度内部词法分析工具对句对数据进行字、词、实体等不同粒度的切分,然后基于 tokenization.py 中的 CharTokenizer 对切分后的数据进行 token 化处理,得到明文的 token 序列及切分边界,)用的什么词法分析工具 是否方便公开

paddle.fluid.core.EnforceNotMet: Cannot use CUDAPlace in CPU only version

Traceback (most recent call last):
File "/tmp/pycharm_project_909/ERNIE/run_classifier.py", line 277, in
main(args)
File "/tmp/pycharm_project_909/ERNIE/run_classifier.py", line 43, in main
place = fluid.CUDAPlace(0)
paddle.fluid.core.EnforceNotMet: Cannot use CUDAPlace in CPU only version at [/paddle/paddle/fluid/pybind/pybind.cc:731]
PaddlePaddle Call Stacks:
0 0x7fb5162d498dp void paddle::platform::EnforceNotMet::Initstd::string(std::string, char const*, int) + 365
1 0x7fb5162d4cd7p paddle::platform::EnforceNotMet::EnforceNotMet(std::string const&, char const*, int) + 87
2 0x7fb5162b7114p
3 0x7fb5162fc19ep
4 0x4a9151p _PyCFunction_FastCallDict + 513
5 0x451798p _PyObject_FastCallDict + 520
6 0x45187bp _PyObject_Call_Prepend + 203
7 0x451450p PyObject_Call + 96
8 0x4c748bp
9 0x4bebeap
10 0x451632p _PyObject_FastCallDict + 162
11 0x5400f5p
12 0x5451dcp _PyEval_EvalFrameDefault + 15980
13 0x53f331p
14 0x5404c7p
15 0x5451dcp _PyEval_EvalFrameDefault + 15980
16 0x53ffa1p
17 0x540de0p PyEval_EvalCode + 96
18 0x4266f8p PyRun_FileExFlags + 360
19 0x4268ddp PyRun_SimpleFileExFlags + 221
20 0x43b11ap Py_Main + 3418
21 0x41d892p main + 354
22 0x7fb57f9ab445p __libc_start_main + 245
23 0x41d950p
cuda 9 cudnn7 tensorflow-gpu正常运行,这个是什么问题,求解决

获取embedding时ernir_encoder.py保存文件时有问题

170行-175行

with open(os.path.join(args.output_dir, "cls_emb.npy"),
          "w") as cls_emb_file:
    np.save(cls_emb_file, total_cls_emb)
with open(os.path.join(args.output_dir, "top_layer_emb.npy"),
          "w") as top_layer_emb_file:
    np.save(top_layer_emb_file, total_top_layer_emb)

错误原因:np.save后只能跟文件名,并不能使用已打开的文件。

应改为
np.save(os.path.join(args.output_dir, "cls_emb.npy"), total_cls_emb)
np.save(os.path.join(args.output_dir, "top_layer_emb.npy"), total_top_layer_emb)

运行run_ChnSentiCorp.sh报错 (cpu版)

在运行run_ChnSentiCorp.sh报错 (cpu版),在 进行 模型加载的时候,总是被自动 kill,在监控内存消耗的时候,128G 的内存很快就被打满,是存在内存泄漏问题么?对应参数如下
image
image

ParallelExecutor 和 scheduled_lr

我想用现在模型的参数,在自己的数据集上进行一下pretrain的过程,并且只想用mask_lm_loss进行反向传播。所以我将train.py中的


                scheduled_lr = optimization(
                loss=total_loss,
                warmup_steps=args.warmup_steps,
                num_train_steps=args.num_train_steps,
                learning_rate=args.learning_rate,
                train_program=train_program,
                startup_prog=startup_prog,
                weight_decay=args.weight_decay,
                scheduler=args.lr_scheduler,
                use_fp16=args.use_fp16,
                loss_scaling=args.loss_scaling)

中的loss 改为了 mask_lm_loss,同时将

        train_exe = fluid.ParallelExecutor(
        use_cuda=args.use_cuda,
        loss_name=total_loss.name,
        build_strategy=build_strategy,
        exec_strategy=exec_strategy,
        main_program=train_program,
        num_trainers=nccl2_num_trainers,
        trainer_id=nccl2_trainer_id)

中的loss_name 改为mask_lm_loss

请问这样做对吗?如果只改scheduled_lr中的loss,而train_exe中的loss没改,在多GPU训练的时候收集起来的loss和进行反向传播的loss不一致,会有什么问题吗。

非常感谢你们的工作!

paddle 预训练模型转tensorflow,pytorch

请问应该怎么把预训练的模型参数转换成其他框架,这样是不是让人能更快上手。试了一下load_param,然后gloab_block()里面也没有参数,load居然返回None,加载的参数保存在哪,文档写的也不清楚,这种设计模式是真的没谁了,load模型参数的过程中,如果出错都不会报错的。

模型转换为pytorch的ckpt并加载之后,同样的id 进行embedding的结果不同

我在自己的数据集上,取得了比较大的提升,因此想要继续修改模型。

因为paddle文档比较少,因此想要把转换成pytorch。

我使用 #37 上的脚本,将paddle的ckpt转换为dict,再通过简单的名字对应和tensor的转换,将对应权重加载到pytorch中。

但是加载后做测试,结果相差很多。

为了找到不同的地方,我将两个框架的模型跑同一数据的前向传播,将每一步的数据进行对比。
结果发现,两个框架上同样的embedding权重(weight),对相同id的embedding居然不同。
我暂时没有对比两个框架的实现方法有何异同。

我推测要么是两个框架的embedding实现方法有差别,要么就是这个脚本保存的权重出现了一点问题。

希望有在做同样的事情的同学和我联系,一起交流。

embedding对应词表

请问 模型的embedding层对应词表在哪 config下的vocab.txt只有17964个字符,从模型提取的embedding是18000*768维度

/paddle/paddle/fluid/operators/math/cross_entropy.cu:40 Assertion `label[i] >= 0 && label[i] < D || label[i] == ignore_index` failed

Load pretraining parameters from /home/lby/ERNIE_stable/params.
/paddle/paddle/fluid/operators/math/cross_entropy.cu:40 Assertion label[i] >= 0 && label[i] < D || label[i] == ignore_index failed.
Traceback (most recent call last):
File "run_classifier.py", line 276, in
main(args)
File "run_classifier.py", line 195, in main
train_exe.run(fetch_list=[])
File "/home/lby/.conda/envs/paddlepaddle/lib/python3.6/site-packages/paddle/fluid/parallel_executor.py", line 303, in run

1 0x7f9b22cf2759p paddle::platform::EnforceNotMet::EnforceNotMet(std::__exception_ptr::exception_ptr, char const*, int) + 137
2 0x7f9b247840c6p
3 0x7f9b247a67d4p paddle::platform::TemporaryAllocator::Release(std::function<void ()> const&) + 100
4 0x7f9b247860e1p paddle::platform::CUDADeviceContext::Wait() const + 113
5 0x7f9b24506a68p paddle::framework::details::ScopeBufferedSSAGraphExecutor::WaitComputationalStreams() + 120
6 0x7f9b24506072p paddle::framework::details::ScopeBufferedSSAGraphExecutor::Run(std::vector<std::string, std::allocatorstd::string > const&) + 1794
7 0x7f9b22e2d872p paddle::framework::ParallelExecutor::Run(std::vector<std::string, std::allocatorstd::string > const&, std::string const&) + 562
8 0x7f9b22ce2c7ep
9 0x7f9b22d1d79ep
10 0x55838e22b744p _PyCFunction_FastCallDict + 340
11 0x55838e2b257ep
12 0x55838e2d738ap _PyEval_EvalFrameDefault + 778
13 0x55838e2abbfep
14 0x55838e2ac771p
15 0x55838e2b2505p
16 0x55838e2d8147p _PyEval_EvalFrameDefault + 4295
17 0x55838e2ac53bp
18 0x55838e2b2505p
19 0x55838e2d738ap _PyEval_EvalFrameDefault + 778
20 0x55838e2ad289p PyEval_EvalCodeEx + 809
21 0x55838e2ae01cp PyEval_EvalCode + 28
22 0x55838e3303c4p
23 0x55838e3307c1p PyRun_FileExFlags + 161
24 0x55838e3309c3p PyRun_SimpleFileExFlags + 451
25 0x55838e3344b3p Py_Main + 1555
26 0x55838e1fd02ep main + 238
27 0x7f9b5c84db97p __libc_start_main + 231
28 0x55838e2dde0ep

多分类会报这样的错误,请问是否可以使用预训练好的模型进行多分类呢?可以的话应该修改哪里呢?

ImportError: No module named paddle.fluid

执行bash script/pretrain.sh提示:
ImportError: No module named paddle.fluid

但单独使用 python3 进入python解释器,然后使用import paddle.fluid并没有报这个错

16G显存,batch size = 2,fintune句子对分类,好像都会爆显存,这是为什么啊

----------- Configuration Arguments -----------
batch_size: 2
checkpoints: ./checkpoints
dev_set: /home/wb-wzft515778/LARK/ERNIE/data//lcqmc/test.tsv
do_lower_case: True
do_test: True
do_train: True
do_val: True
epoch: 3
ernie_config_path: config/ernie_config.json
in_tokens: False
init_checkpoint: None
init_pretraining_params: /home/wb-wzft515778/LARK/ERNIE/ckpt//params
label_map_config: None
learning_rate: 2e-05
loss_scaling: 1.0
lr_scheduler: linear_warmup_decay
max_seq_len: 16
metrics: True
num_iteration_per_drop_scope: 1
num_labels: 2
random_seed: 1
save_steps: 1000
skip_steps: 10
test_set: /home/wb-wzft515778/LARK/ERNIE/data//lcqmc/test.tsv
train_set: /home/wb-wzft515778/LARK/ERNIE/data//lcqmc/train.tsv
use_cuda: True
use_fast_executor: False
use_fp16: False
validation_steps: 100
verbose: True
vocab_path: config/vocab.txt
warmup_proportion: 0.0
weight_decay: 0.0

attention_probs_dropout_prob: 0.1
hidden_act: relu
hidden_dropout_prob: 0.1
hidden_size: 768
initializer_range: 0.02
max_position_embeddings: 513
num_attention_heads: 12
num_hidden_layers: 12
type_vocab_size: 2
vocab_size: 18000

Device count: 1
Num train examples: 102477
Max train steps: 153715
Num warmup steps: 0
Theoretical memory usage in training: 2102.707 - 2202.836 MB
W0321 17:00:02.179066 66953 device_context.cc:263] Please NOTE: device: 0, CUDA Capability: 60, Driver API Version: 9.2, Runtime API Version: 9.0
W0321 17:00:02.179129 66953 device_context.cc:271] device: 0, cuDNN Version: 7.0.
Traceback (most recent call last):
File "run_classifier.py", line 283, in
main(args)
File "run_classifier.py", line 141, in main
exe.run(startup_prog)
File "/home/wb-wzft515778/anaconda3/envs/paddle/lib/python3.6/site-packages/paddle/fluid/executor.py", line 525, in run
use_program_cache=use_program_cache)
File "/home/wb-wzft515778/anaconda3/envs/paddle/lib/python3.6/site-packages/paddle/fluid/executor.py", line 591, in run
exe.run(program.desc, scope, 0, True, True)
paddle.fluid.core.EnforceNotMet: Invoke operator fill_constant error.
Python Callstacks:
File "/home/wb-wzft515778/anaconda3/envs/paddle/lib/python3.6/site-packages/paddle/fluid/framework.py", line 1382, in prepend_op
attrs=kwargs.get("attrs", None))
File "/home/wb-wzft515778/anaconda3/envs/paddle/lib/python3.6/site-packages/paddle/fluid/initializer.py", line 167, in call
stop_gradient=True)
File "/home/wb-wzft515778/anaconda3/envs/paddle/lib/python3.6/site-packages/paddle/fluid/framework.py", line 1198, in create_var
kwargs['initializer'](var, self)
File "/home/wb-wzft515778/anaconda3/envs/paddle/lib/python3.6/site-packages/paddle/fluid/layer_helper.py", line 402, in set_variable_initializer
initializer=initializer)
File "/home/wb-wzft515778/anaconda3/envs/paddle/lib/python3.6/site-packages/paddle/fluid/layers/tensor.py", line 137, in create_global_var
value=float(value), force_cpu=force_cpu))
File "/home/wb-wzft515778/anaconda3/envs/paddle/lib/python3.6/site-packages/paddle/fluid/optimizer.py", line 92, in create_global_learning_rate
persistable=True)
File "/home/wb-wzft515778/anaconda3/envs/paddle/lib/python3.6/site-packages/paddle/fluid/optimizer.py", line 224, in create_optimization_pass
self.create_global_learning_rate()
File "/home/wb-wzft515778/anaconda3/envs/paddle/lib/python3.6/site-packages/paddle/fluid/optimizer.py", line 350, in apply_gradients
optimize_ops = self.create_optimization_pass(params_grads)
File "/home/wb-wzft515778/anaconda3/envs/paddle/lib/python3.6/site-packages/paddle/fluid/optimizer.py", line 405, in minimize
optimize_ops = self.apply_gradients(params_grads)
File "/home/wb-wzft515778/LARK/ERNIE/optimization.py", line 127, in optimization
, param_grads = optimizer.minimize(loss)
File "run_classifier.py", line 108, in main
loss_scaling=args.loss_scaling)
File "run_classifier.py", line 283, in
main(args)
C++ Callstacks:
Enforce failed. Expected allocating <= available, but received allocating:14920696472 > available:14265745152.
Insufficient GPU memory to allocation. at [/paddle/paddle/fluid/platform/gpu_info.cc:216]
PaddlePaddle Call Stacks:
0 0x7f76e04d190dp void paddle::platform::EnforceNotMet::Initstd::string(std::string, char const*, int) + 365
1 0x7f76e04d1c57p paddle::platform::EnforceNotMet::EnforceNotMet(std::string const&, char const*, int) + 87
2 0x7f76e1f9baf8p paddle::platform::GpuMaxChunkSize() + 744
3 0x7f76e1f922a9p
4 0x7f779ab35bb9p
5 0x7f76e1f91a7dp paddle::memory::legacy::GetGPUBuddyAllocator(int) + 109
6 0x7f76e1f92767p void* paddle::memory::legacy::Allocpaddle::platform::CUDAPlace(paddle::platform::CUDAPlace const&, unsigned long) + 39
7 0x7f76e1f92e35p paddle::memory::allocation::LegacyAllocator::AllocateImpl(unsigned long, paddle::memory::allocation::Allocator::Attr) + 389
8 0x7f76e1f9513bp paddle::memory::allocation::Allocator::Allocate(unsigned long, paddle::memory::allocation::Allocator::Attr) + 27
9 0x7f76e1f868e3p paddle::memory::allocation::AllocatorFacade::Alloc(boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace, paddle::platform::CUDAPinnedPlace, boost::detail::variant::void
, boost::detail::variant::void
, boost::detail::variant::void
, boost::detail::variant::void
, boost::detail::variant::void
, boost::detail::variant::void
, boost::detail::variant::void
, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> const&, unsigned long, paddle::memory::allocation::Allocator::Attr) + 435
10 0x7f76e1f86a01p paddle::memory::allocation::AllocatorFacade::AllocShared(boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace, paddle::platform::CUDAPinnedPlace, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> const&, unsigned long, paddle::memory::allocation::Allocator::Attr) + 33
11 0x7f76e1c48540p paddle::memory::AllocShared(boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace, paddle::platform::CUDAPinnedPlace, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> const&, unsigned long, paddle::memory::allocation::Allocator::Attr) + 48
12 0x7f76e1f43576p paddle::framework::Tensor::mutable_data(boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace, paddle::platform::CUDAPinnedPlace, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, paddle::framework::proto::VarType_Type, paddle::memory::allocation::Allocator::Attr, unsigned long) + 150
13 0x7f76e095fc01p paddle::operators::FillConstantKernel::Compute(paddle::framework::ExecutionContext const&) const + 497
14 0x7f76e0962c23p std::Function_handler<void (paddle::framework::ExecutionContext const&), paddle::framework::OpKernelRegistrarFunctor<paddle::platform::CUDAPlace, false, 0ul, paddle::operators::FillConstantKernel, paddle::operators::FillConstantKernel, paddle::operators::FillConstantKernel, paddle::operators::FillConstantKernel, paddle::operators::FillConstantKernelpaddle::platform::float16 >::operator()(char const*, char const*, int) const::{lambda(paddle::framework::ExecutionContext const&)#1}>::M_invoke(std::Any_data const&, paddle::framework::ExecutionContext const&) + 35
15 0x7f76e1ee5f23p paddle::framework::OperatorWithKernel::RunImpl(paddle::framework::Scope const&, boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace, paddle::platform::CUDAPinnedPlace, boost::detail::variant::void
, boost::detail::variant::void
, boost::detail::variant::void
, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> const&) const + 659
16 0x7f76e1ee3795p paddle::framework::OperatorBase::Run(paddle::framework::Scope const&, boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace, paddle::platform::CUDAPinnedPlace, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> const&) + 341
17 0x7f76e05edf1ap paddle::framework::Executor::RunPreparedContext(paddle::framework::ExecutorPrepareContext*, paddle::framework::Scope*, bool, bool, bool) + 218
18 0x7f76e05eff15p paddle::framework::Executor::Run(paddle::framework::ProgramDesc const&, paddle::framework::Scope*, int, bool, bool) + 261
19 0x7f76e04b5a7bp
20 0x7f76e04fc79ep
21 0x7f779b07e744p _PyCFunction_FastCallDict + 340
22 0x7f779b10557ep
23 0x7f779b12a38ap _PyEval_EvalFrameDefault + 778
24 0x7f779b0fe8e4p
25 0x7f779b0ff771p
26 0x7f779b105505p
27 0x7f779b12b147p _PyEval_EvalFrameDefault + 4295
28 0x7f779b0fe8e4p
29 0x7f779b0ff771p
30 0x7f779b105505p
31 0x7f779b12a38ap _PyEval_EvalFrameDefault + 778
32 0x7f779b0ff53bp
33 0x7f779b105505p
34 0x7f779b12a38ap _PyEval_EvalFrameDefault + 778
35 0x7f779b100289p PyEval_EvalCodeEx + 809
36 0x7f779b10101cp PyEval_EvalCode + 28
37 0x7f779b1833c4p
38 0x7f779b1837c1p PyRun_FileExFlags + 161
39 0x7f779b1839c3p PyRun_SimpleFileExFlags + 451
40 0x7f779b1874b3p Py_Main + 1555
41 0x7f779b05002ep main + 238
42 0x7f779a781401p __libc_start_main + 241
43 0x7f779b130e0ep

实体之间的关系如何提取和表达?

介绍中提到:“ERNIE 通过学习词与实体的表达,使模型能够建模出『哈尔滨』与『黑龙江』的关系,学到『哈尔滨』是 『黑龙江』的省会以及『哈尔滨』是个冰雪城市。”

想问一下模型是如何规范的表达“哈尔滨”、“黑龙江”这些不同实体之间的关系的? 有程序接口或者具体示例吗? 谢谢了!

Integrate LASER/FastBPE

Please add Facebook LASER, Language-Agnostic SEntence Representations.
In my opinion it is more versatile than Google's BERT. More for the use of FastBPE, the fastest implementation of Byte Pair Encoding in C++ at moment, instead of WordPiece.

使用CPU进行predict过程的问题

用GPU进行了finetune过程的模型想用CPU进行推理是否还需要指定CUDA_VISIBLE_DEVICES,若不指定,将use_cuda设定为False后报错为:

Traceback (most recent call last):
  File "predict_classifier.py", line 153, in <module>
    main(args)
  File "predict_classifier.py", line 104, in main
    exe.run(predict_startup)
  File "/****/lib/python2.7/site-packages/paddle/fluid/executor.py", line 472, in run
    self.executor.run(program.desc, scope, 0, True, True)
paddle.fluid.core.EnforceNotMet: cudaGetDeviceCount failed in paddle::platform::GetCUDADeviceCount: no CUDA-capable device is detected at [/paddle/paddle/fluid/platform/gpu_info.cc:65]

若指定CUDA_VISIBLE_DEVICES,在预测过程中predict_pyreader直接抛出fluid.core.EOFException,不对数据进行处理。

An error occurred when I run run_dbqa.sh

The error is:
Traceback (most recent call last):
File "run_classifier.py", line 276, in
main(args)
File "run_classifier.py", line 195, in main
train_exe.run(fetch_list=[])
File "/root/anaconda3/lib/python3.6/site-packages/paddle/fluid/parallel_executor.py", line 303, in run
self.executor.run(fetch_list, fetch_var_name)
paddle.fluid.core.EnforceNotMet: Invoke operator matmul error.
Python Callstacks:
File "/root/anaconda3/lib/python3.6/site-packages/paddle/fluid/framework.py", line 1317, in append_op
attrs=kwargs.get("attrs", None))
File "/root/anaconda3/lib/python3.6/site-packages/paddle/fluid/layer_helper.py", line 56, in append_op
return self.main_program.current_block().append_op(*args, **kwargs)
File "/root/anaconda3/lib/python3.6/site-packages/paddle/fluid/layers/nn.py", line 4771, in matmul
'alpha': float(alpha),
File "/media/lixinyi/Office/LARK-develop/ERNIE/model/ernie.py", line 116, in _build_model
x=input_mask, y=input_mask, transpose_y=True)
File "/media/lixinyi/Office/LARK-develop/ERNIE/model/ernie.py", line 82, in init
self._build_model(src_ids, position_ids, sentence_ids, input_mask)
File "/media/lixinyi/Office/LARK-develop/ERNIE/finetune/classifier.py", line 49, in create_model
use_fp16=args.use_fp16)
File "run_classifier.py", line 94, in main
ernie_config=ernie_config)
File "run_classifier.py", line 276, in
main(args)
C++ Callstacks:
CUBLAS: execution failed, at [/paddle/paddle/fluid/operators/math/blas_impl.cu.h:50]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.