mddr使用的词向量是腾讯的吗
Opened this issue · 14 comments
基线版本中需要使用预训练的词向量为句子构建稠密向量表达,基线版本实现相对简单,没有完全参数化配置,选用不同开源版本的词向量代码可能会略微有一点调整,如初始方式或向量维度。
可以根据自己开发习惯选择熟悉的预训练词向量,如 https://github.com/cliuxinxin/TX-WORD2VEC-SMALL等。
此次JDDC竞赛内容是关于电商服务的多轮对话,其中会涉及商品属性、售后服务等一些专业术语,所以强烈建议使用 BAAI-JDAI-WordEmbedding 词向量,https://github.com/jd-aig/nlp_baai/tree/master/pretrained_models_and_embeddings ,由大规模电商语料训练生成,应该会更适合JDDC大赛。
好的,多谢!还有个问题是基线模型mddr使用的是pytorch版本的bert,但是baai只提供了tensorflow版本的预训练模型,是否可以提供对应的pytorch版本?
我解释一下BERT的预训练模型的使用:
1)由于BERT官方版本模型是TF实现的,所以各种BERT的预训练模型都是在官方TF的代码上,结合各自的数据,训练出来的模型,所以BAAI-JDAI-BERT, Chinese预训练模型提供的也是TF的checkpoint。
2)开源项目https://github.com/huggingface/transformers 提供了transfomers模型的TF和PyTorch的实现,其中也包括BERT模型。Huggingface的PyTorch版本与官方TF模型完全一致的,包括模型变量的名称等等,所以两种框架保存下来的模型权重就非常容易重用。
3)具体怎么在PyTorch项目中使用BAAI-JDAI-BERT:
a) 访问https://github.com/jd-aig/nlp_baai/tree/master/pretrained_models_and_embeddings 下载 BAAI-JDAI-BERT
b) 解压缩BAAI-JDAI-BERT.tar, 并将bert_model.ckpt.data-00000-of-00001重命名bert_model.ckpt
c) 安装Huggingface的transformes包,并执行自带的命令行来转换checkpoint文件,例如 transformers-cli convert --model_type bert --tf_checkpoint ~/JDAI-BERT/bert_model.ckpt --config ~/JDAI-BERT/bert_config.json --pytorch_dump_output ~/JDAI-BERT-PyTorch/pytorch_model.bin
config文件和vocab文件不用转换,PyTorch的config文件名默认是config.json。
这样就满足你需要了吧。👌
我刚才试的TF 2.2.0和transformers 2.10.0,在转换中会自动skip掉AdamWeight的一些参数,如下
INFO:transformers.modeling_bert:Skipping
bert/encoder/layer_9/attention/self/value/kernel/AdamWeightDecayOptimizer
INFO:transformers.modeling_bert:Skipping
bert/encoder/layer_9/attention/self/value/kernel/AdamWeightDecayOptimizer_1
INFO:transformers.modeling_bert:Initialize PyTorch weight ['bert', 'encoder', 'layer_9',
'intermediate', 'dense', 'bias']
转出来的PyTorch权重我也加载了一下,简单跑了下是正常的。所以你升级版本试试???
我把transformers更新了以后就可以了,多谢!
有没有朋友遇到过这种情况:在进行模型文件转换时报错,报错内容提示Segmentation fault。
具体错误信息:
【root@jupyter-team1440:~/notespace/mddr/transformers# transformers-cli convert --model_type bert --tf_checkpoint ~/notespace/mddr/transformers/prev_trained_model/bert-base-chinese/bert_model.ckpt --config ~/notespace/mddr/transformers/prev_trained_model/bert-base-chinese/config.json --pytorch_dump_output ~/notespace/mddr/transformers/prev_trained_model/bert-base-chinese/pytorch_model.bin
Building PyTorch model from configuration: BertConfig {
"attention_probs_dropout_prob": 0.1,
"directionality": "bidi",
"hidden_act": "gelu",
"hidden_dropout_prob": 0.1,
"hidden_size": 768,
"initializer_range": 0.02,
"intermediate_size": 3072,
"layer_norm_eps": 1e-12,
"max_position_embeddings": 512,
"model_type": "bert",
"num_attention_heads": 12,
"num_hidden_layers": 12,
"pad_token_id": 0,
"pooler_fc_size": 768,
"pooler_num_attention_heads": 12,
"pooler_num_fc_layers": 3,
"pooler_size_per_head": 128,
"pooler_type": "first_token_transform",
"type_vocab_size": 2,
"vocab_size": 21128
}
Segmentation fault (core dumped)】
有没有朋友遇到过这种情况:在进行模型文件转换时报错,报错内容提示Segmentation fault。
具体错误信息:
【root@jupyter-team1440:~/notespace/mddr/transformers# transformers-cli convert --model_type bert --tf_checkpoint ~/notespace/mddr/transformers/prev_trained_model/bert-base-chinese/bert_model.ckpt --config ~/notespace/mddr/transformers/prev_trained_model/bert-base-chinese/config.json --pytorch_dump_output ~/notespace/mddr/transformers/prev_trained_model/bert-base-chinese/pytorch_model.bin
Building PyTorch model from configuration: BertConfig {
"attention_probs_dropout_prob": 0.1,
"directionality": "bidi",
"hidden_act": "gelu",
"hidden_dropout_prob": 0.1,
"hidden_size": 768,
"initializer_range": 0.02,
"intermediate_size": 3072,
"layer_norm_eps": 1e-12,
"max_position_embeddings": 512,
"model_type": "bert",
"num_attention_heads": 12,
"num_hidden_layers": 12,
"pad_token_id": 0,
"pooler_fc_size": 768,
"pooler_num_attention_heads": 12,
"pooler_num_fc_layers": 3,
"pooler_size_per_head": 128,
"pooler_type": "first_token_transform",
"type_vocab_size": 2,
"vocab_size": 21128
}Segmentation fault (core dumped)】
我也遇到一样的问题,你现在是否已经解决
我是在CPU环境上转的,GPU环境上报cuda的错误,但我的GPU环境本身没问题的,模型训练都可以跑的,原因未知,我直接用CPU环境规避了。未见过core dumped的问题。
我是在CPU环境上转的,GPU环境上报cuda的错误,但我的GPU环境本身没问题的,模型训练都可以跑的,原因未知,我直接用GPU环境规避了。未见过core dumped的问题。
我是在GPU服务器转以及load预训练模型都有问题。
我是在CPU环境上转的,GPU环境上报cuda的错误,但我的GPU环境本身没问题的,模型训练都可以跑的,原因未知,我直接用GPU环境规避了。未见过core dumped的问题。
我是在GPU服务器转以及load预训练模型都有问题。
换CPU环境试试吧
我是在CPU环境上转的,GPU环境上报cuda的错误,但我的GPU环境本身没问题的,模型训练都可以跑的,原因未知,我直接用GPU环境规避了。未见过core dumped的问题。
我是在GPU服务器转以及load预训练模型都有问题。
换CPU环境试试吧
我换本机CPU环境是没有问题的,我不知道transformer是load预选炼模型是如何申请资源的
我也出现了Segmentation fault (core dumped)的问题,将sentencepiece的版本降级到0.1.91问题解决,供参考。
方案来源:huggingface/transformers#5359
你好,BAAI-JDAI-BERT, Chinese模型可以分享一下吗,原链接不能下载了,谢谢