字幕组双语原文:Keras 教程:BERT 文本摘要
英语原文:BERT (from HuggingFace Transformers) for Text Extraction
翻译:雷锋字幕组(yhfwww、wiige)
介绍
这个演示使用了SQuAD (Stanford question - answer Dataset)。在SQuAD 数据集中,输入由一个问题和一个上下文段落组成。目标是找到回答问题的段落的跨度。我们使用“精确匹配(Exact Match)”指标来评估我们在这些数据上的表现,它度量了精确匹配任何一个真实答案的预测的百分比。
我们对一个BERT模型进行微调,如下所示:
将上下文和问题作为输入,输入给BERT。
取两个向量S和T它们的维数等于BERT中隐藏状态的维数。
计算每个token作为答案范围的开始和结束的概率。一个token作为答案开始的概率是由S和在最后一层BERT中表示的token之间的点积给出的,然后是所有token的softmax。token作为最终答案的概率的计算方法与向量T类似。
微调BERT,学习S和T。
参考:
BERT
SQuAD
设置:
import os
import re
import json
import string
import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
from tokenizers import BertWordPieceTokenizer
from transformers import BertTokenizer,TFBertModel,Bert
Configmax_len = 384
configuration = BertConfig
# default paramters and configuration for BERT
设置BERT分词器
# Save the slow pretrained tokenizerslow_tokenizer = BertTokenizer.from_pretrained("bert-base-uncased")save_path = "bert_base_uncased/"if not os.path.exists(save_path):
os.makedirs(save_path)slow_tokenizer.save_pretrained(save_path)# Load the fast tokenizer from saved filetokenizer = BertWordPieceTokenizer("bert_base_uncased/vocab.txt