用到 MindStudio 在CoNll2003数据集上进行 bert_large_NER 模型推理
2023-04-29 电商
获取原始数据资料集CoNLL-2003:数据资料集下载链接:
数据资料集录入为:
├──conll2003 └── valid.txt //的测试集 └── train.txt //的测试集 └── test.txt //检验集该数据资料三集从路透社的新闻文章之前割去的音节,并为这些单辞汇标记人名、地名和该组织旧名。以检验三集例,数据资料集的主要基本如下:
辞汇 辞汇性 辞汇块 实质
U.N. NNP I-NP I-ORG
official NN I-NP O
Ekeus NNP I-NP I-PER
heads VBZ I-VP O
for IN I-PP O
Baghdad NNP I-NP I-LOC
. . O O
在NER侦查之前,只体谅1、4奇科,其之前,第一奇科代表单辞汇,最终一奇科代表实质相关联的都可。实质都可NAME_ENTITY记录下来为一般而言九类:
B-PER/I-PER声称单辞汇相关联于个人实质的结尾处。
B-ORG/I-ORG声称单辞汇相关联于该组织实质的结尾处/在表面上。
B-LOC/I-LOC声称相关联于位置实质结尾处的单辞汇。
B-MISC/I-MISC声称单辞汇相关联于其他实质的结尾处。
0声称单辞汇非四大类实质。
数据资料程序中:将原始数据资料集转成为假设读写的二进制数据资料。
数据资料程序中原作者开发设计:
假设有三个读写,input_ids,attention_mask,token_type_ids;input_ids声称将读写的单辞汇经过bert_large_NER假设降解embedding,在这个操作过程之前,分设sequence间隔为512,padding为Ture,借助于将input_ids借助于为间隔为512的向量。同时,在每一条音节相关联的512个单辞汇之前,哪些是音节的实际间隔就将其相关联的attention_mask分设为1,padding的部分就将相关联的attention_mask分设为0。在一些侦查之前,存在假设的一条读写超过一段话的情况,此时能用token_type_ids来区分不同的音节,但在NER侦查之前,CoNLL-2003这个语料特里每个语料只有一段话,因此token_type_ids于是就是0。
数据资料程序中的代码借助于如下:(bin_create.py、npy_dataset_generate.py)
首先,定义INPUT_KEYS和NAME_ENTITY两个表奇科成,分别记录下来读写和实质旧名:
分设降解数据资料的明文结构,并创建者三个读写token相关联的桌面:
启动时bert_large_NER假设之前定义的tokenizer:
用到tokenizer之前的convert_tokens_to_ids原理,将英语单辞汇根据相关联的举例来说转化成embedding。手动将每个音节的间隔装入到512,并根据音节间隔注记attention_mask的值。此外,可执行每个单辞汇时,记录下来其相关联的实质都可,并将其记录下来在annofile之前,便于在此之后弹道的近似值。
对于om假设而言,尽快的读写是.binJPEG的,并将每条数据资料相关联的三条读写分别提领三个桌面。对于onnx假设而言,尽快的读写是.npyJPEG的,并将每条数据资料相关联的三条读写提领三个.npy明文。因此,在原作者开发设计之前明文存留时要忽略JPEG尽快。
可执行bin_create.py原作者降解om假设只能的解答数据资料:
在远距运营bin_create.py运营成乎意料后降解:input_ids.npy、attention_mask.npy、token_type_ids.npy三个npy明文,存留在./bert_bin/bert_npy_2022xxxx-xxxxxx/桌面下,.anno明文记录下来token相关联的label,存留在./bert_bin桌面下。可执行npy_dataset_generate.py原作者降解onnx假设只能的解答数据资料:
运营成乎意料后降解:input_ids、attention_mask、token_type_ids三个桌面,存留在./bert_bin/bert_bin_2022xxxx-xxxxxx/桌面下,桌面之前存的数据资料JPEG为.bin,作为om假设的读写。.anno明文记录下来token相关联的label,存留在./bert_bin/桌面下。5.2 假设转成5.2.1 能用transformers[onnx]应用软件由path转化成onnxpip install transformers[onnx]用到transformers.onnx顺利完成假设转成:
python -m transformers.onnx ---model=bert-large-NER ---feature=token-classification onnx/■参数简要:--- model:hugging face上下载的GNU假设--- feature:用以嵌入假设的相似性特性--- onnx/:存留嵌入的onnx假设的逆时针运营中止后降解model.onnx存留在./onnx桌面下。5.2.2 onnx转化成om用到ATC命令将onnx假设转成为om假设:
atc ---framework=5 ---model=model.onnx ---output=bert_large_bs16_seq512 ---input_shape="input_ids:16,512;attention_mask:16,512;token_type_ids:16,512" ---soc_version=Ascend310P3■参数简要:---model:为ONNX假设明文。---framework:5代表ONNX假设。---output:输成的OM假设。---input_shape:读写数据资料的shape。读写数据资料有三条,以外为batch*512,其之前512为sequence序奇科间隔。---soc_version:可执行器型号。运营成乎意料后降解bert_large_bs16_seq512.om假设明文。对om假设顺利完成数据分析,判读假设的读写输成。
5.3 可执行上网解答转成om假设成乎意料后,用到MindStudio remote适配器可执行ais_infer解答。
叫停ssh session,插入conda周围环境,插入工作录入:
用到ais_infer应用软件顺利完成解答:
a. 下载解答应用软件ais_infer。
git cloneb. 校对、装上解答应用软件
cd /home/lcy/RotaE/tools/ais-bench_workload/tool/ais_infer/backend/pip3.7 wheel ./ #校对 要根据自己的python版lspip install aclruntime-0.0.1-cp37-cp37m-linux_x86_64.whl弹道检验(以batchsize=16为例):
python ./tools/ais-bench_workload/tool/ais_infer/ais_infer.py ---model ./bert_large_bs16_seq512_1.om ---input "./bert_bin/bert_bin_20220928-061343/input_ids,.bert_bin/bert_bin_20220928-061343/attention_mask,./bert_bin/bert_bin_20220928-061343/token_type_ids" ---output ./bert-large-OUT/bs16 ---outfmt NPY■参数简要:---model:为ONNX假设明文。---batchsize:假设的batchsize尺寸。---input:假设的读写,input_ids、attention_mask、token_type_ids三个桌面。---output:输成选定在./bert-large-OUT/bs16下。---outfmt:解答结果存留JPEG。可执行中止输成存留在./bert-large-OUT/bs16下。5.4 弹道的测试解答成乎意料,只能对解答结果顺利完成成品,通过bert_metric.py顺利完成成品,的测试解答结果,顺利完成弹道检验。
弹道解答原作者开发设计:
首先获取到./bert-large-OUT/bs16录入下的解答结果明文:
根据预见错误的条数/总数量赢取预见错误的准确度acc:
在MindStudio运营bert_metric.py原作者顺利完成弹道的测试:
运营成乎意料后输成假设预见结果的弹道为90.73%,差不多于hugging face之前在检验集上的弹道结果91.2%:
六、性能指标调优用到aoe应用软件顺利完成则会性能指标调优。
“No performance improvement”表明:则会性能指标调优未带来假设解答性能指标的提升。
Q&A1.由于bert_large_NER假设转成赢取的onnx假设较大,且三个读写的形状以外为动态的[batch, sequence],因此在用到MindStudio顺利完成onnx假设的数据分析以及onnx假设向om假设转成时浮现报错:
故在假设转成时直接用到ATC应用软件顺利完成。
2.在数据资料程序中操作过程之前,transformer特包括的AutoTokenizer.tokenizer原理,降解的embedding存在两个问题:①对唯过的单辞汇则会顺利完成拆分,导致降解的input_keys与原音节相比常常但会更长,此时annofile之前记录下来的每个单辞汇相关联的实质都可就但会过载;②在音节的应在处和结尾处则会减低[CLS]、[SEP]作为应在八字和终止八字,在极为强调整句话语义的NLP侦查之前是至关最主要的,但在关注每个单辞汇相关联的实质都可的NER侦查之前是不最主要的。在检验操作过程之前,也推论成作者在顺利完成假设体能训练时,也是未减低应在、终止八字的。
因此,考虑能用AutoTokenizer.convert_tokens_to_ids原理,先手动的相关联举例来说将英语单辞汇字八字为embedding,对于举例来说之前不会的单辞汇但会将其字八字成100。之后再对根据音节间隔和sequence间隔(512)对字八字后的input_ids顺利完成padding,顺利完成input_ids,attention_mask,token_type_ids的降解和annofile记录下来单辞汇label的相关联 。
bert_large_NER的vocab.txt如下请注意:
由tokenizer原理降解的数据资料如下请注意,101声称[CLS],102声称[SEP]。
由convert_tokens_to_ids降解的数据资料如下请注意,对举例来说之前未浮现过的单辞汇但会将其字八字为100。
若大众在用到MindStudio操作过程之前或解答操作过程之前遇到问题,可在MindStudio昇腾论坛()顺利完成提问、讨论。
。肠道调理吃什么好英特盐酸达泊西汀片怎么吃效果好
哪种复合维生素比较好
鼻炎吃再林阿莫西林胶囊管用不
轻度肝硬化是什么表现
- 02-10联大决定设立联合国青年疑问办公室
- 02-10花旗:调低梅西百货目标价至“卖出” 目标价14美元
- 02-1016岁学生校内服毒身亡曾因卖烟遭霸凌,为学校霸凌为何屡禁不止?
- 02-10成都青羊、锦江、高新、大邑更改部分区域风险等级!
- 02-10IMF第一副总裁:若地缘经济割裂加深,在世界上或陷入一场新冷战
- 02-10清华北大每年80%学子出外?权威数据来了
- 02-10通胀形势严峻 德国再推650亿欧元纾困于计划
- 02-10籓通胀之路仍然崎岖 美国11月核心CPI环比回升0.3%
- 02-10研究生的“隐藏福利”,本科生看完直流口水,斥还来得及吗?
- 02-10牛市早报|英国女王伊丽莎白二世离世,欧央行加息75个基点